Memories
Memories
Chat memory components store and retrieve chat messages by session_id.
AstraDBChatMemory Component
This component creates an AstraDBChatMessageHistory instance, which allows for storing and retrieving chat messages using Astra DB, a cloud-native database service.
Tools
Tools
Tool components are used to interact with external services, APIs, and tools. They can be used to search the web, query databases, and perform other tasks.
Bing Search API
This component allows you to call the Bing Search API.
diff --git a/Configuration/configuration-custom-database.html b/Configuration/configuration-custom-database.html new file mode 100644 index 0000000000..feb08535f3 --- /dev/null +++ b/Configuration/configuration-custom-database.html @@ -0,0 +1,61 @@ + + + + + +Configure an external PostgreSQL database
Langflow's default database is SQLite, but you can configure Langflow to use PostgreSQL instead.
+This guide will walk you through the process of setting up an external database for Langflow by replacing the default SQLite connection string sqlite:///./langflow.db with PostgreSQL.
Prerequisite
+-
+
- A PostgreSQL database +
Connect Langflow to PostgreSQL
+To connect Langflow to PostgreSQL, follow these steps.
+-
+
- Find your PostgreSQL database's connection string.
+It looks like
postgresql://user:password@host:port/dbname. +For example, if you started PostgreSQL with this Docker command:
+
_10docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres
Your connection string would be postgresql://some-postgres:mysecretpassword@localhost:5432/postgres.
-
+
- Create a
.envfile for configuring Langflow.
+
_10touch .env
-
+
- To set the database URL environment variable, add it to your
.envfile:
+
_10LANGFLOW_DATABASE_URL="postgresql://user:password@localhost:5432/dbname"
The Langflow project includes a .env.example file to help you get started.
+You can copy the contents of this file into your own .env file and replace the example values with your own preferred settings.
+Replace the value for LANGFLOW_DATABASE_URL with your PostgreSQL connection string.
-
+
- Run Langflow with the
.envfile:
+
_10langflow run --env-file .env
-
+
- In Langflow, create traffic by running a flow. +
- Inspect your PostgreSQL deployment's tables and activity. +You will see new tables and traffic created. +
Example Langflow and PostgreSQL docker-compose.yml
+The Langflow project includes a docker-compose.yml file for quick deployment with PostgreSQL.
This configuration launches Langflow and PostgreSQL containers, with Langflow pre-configured to use the PostgreSQL database. Customize the database credentials as needed.
+To start the services, navigate to the /docker_example directory, and then run docker-compose up.
_14services:_14 langflow:_14 image: langflow-ai/langflow:latest_14 environment:_14 - LANGFLOW_DATABASE_URL=postgresql://user:password@postgres:5432/langflow_14 depends_on:_14 - postgres_14_14 postgres:_14 image: postgres:15_14 environment:_14 - POSTGRES_USER=user_14 - POSTGRES_PASSWORD=password_14 - POSTGRES_DB=langflow
Agents overview
Agents are AI systems that use LLMs as a brain to analyze problems and select external tools.
+Agents overview
Agents are AI systems that use LLMs as a brain to analyze problems and select external tools.
Instead of developers having to create logical statements to direct every possible path of a program, an agent can operate with autonomy. An agent can leverage external tools and APIs to gather information and take action, demonstrate chain-of-thought reasoning, and generate tailored text for specific purposes.
To simplify the development of agents, Langflow created a custom Tool calling agent component that simplifies configuration and lets developers focus on solving problems with agents.
diff --git a/agents-tool-calling-agent-component.html b/agents-tool-calling-agent-component.html
index e281e3e590..8d984e513d 100644
--- a/agents-tool-calling-agent-component.html
+++ b/agents-tool-calling-agent-component.html
@@ -10,13 +10,13 @@
-
-
+
+
-Create a problem-solving agent
Create a problem-solving agent
Developing agents in Langchain is complex.
The AgentComponent is a component for easily creating an AI agent capable of analyzing tasks using tools you provide.
The component contains all of the elements you'll need for creating an agent. Instead of managing LLM models and providers, pick your model and enter your API key. Instead of connecting a Prompt component, enter instructions in the component's Agent Instruction fields.
diff --git a/assets/js/22dd74f7.641fccd8.js b/assets/js/22dd74f7.641fccd8.js new file mode 100644 index 0000000000..4c75c63225 --- /dev/null +++ b/assets/js/22dd74f7.641fccd8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1567],{5226:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"defaultSidebar":[{"type":"category","label":"Getting Started","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Welcome to Langflow","href":"/","docId":"Getting-Started/welcome-to-langflow","unlisted":false},{"type":"link","label":"Install Langflow","href":"/getting-started-installation","docId":"Getting-Started/getting-started-installation","unlisted":false},{"type":"link","label":"Quickstart","href":"/getting-started-quickstart","docId":"Getting-Started/getting-started-quickstart","unlisted":false}]},{"type":"category","label":"Starter Projects","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Basic Prompting","href":"/starter-projects-basic-prompting","docId":"Starter-Projects/starter-projects-basic-prompting","unlisted":false},{"type":"link","label":"Blog Writer","href":"/starter-projects-blog-writer","docId":"Starter-Projects/starter-projects-blog-writer","unlisted":false},{"type":"link","label":"Document QA","href":"/starter-projects-document-qa","docId":"Starter-Projects/starter-projects-document-qa","unlisted":false},{"type":"link","label":"Memory Chatbot","href":"/starter-projects-memory-chatbot","docId":"Starter-Projects/starter-projects-memory-chatbot","unlisted":false},{"type":"link","label":"Vector Store RAG","href":"/starter-projects-vector-store-rag","docId":"Starter-Projects/starter-projects-vector-store-rag","unlisted":false},{"type":"link","label":"Simple agent","href":"/starter-projects-simple-agent","docId":"Starter-Projects/starter-projects-simple-agent","unlisted":false},{"type":"link","label":"Dynamic agent","href":"/starter-projects-dynamic-agent","docId":"Starter-Projects/starter-projects-dynamic-agent","unlisted":false},{"type":"link","label":"Travel planning agent","href":"/starter-projects-travel-planning-agent","docId":"Starter-Projects/starter-projects-travel-planning-agent","unlisted":false}]},{"type":"category","label":"Guides","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"\ud83d\udcda New to LLMs?","href":"/guides-new-to-llms","docId":"Guides/guides-new-to-llms","unlisted":false},{"type":"link","label":"Chat Memory","href":"/guides-chat-memory","docId":"Guides/guides-chat-memory","unlisted":false},{"type":"link","label":"Data & Message","href":"/guides-data-message","docId":"Guides/guides-data-message","unlisted":false}]},{"type":"category","label":"Workspace","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Workspace concepts","href":"/workspace-overview","docId":"Workspace/workspace-overview","unlisted":false},{"type":"link","label":"API","href":"/workspace-api","docId":"Workspace/workspace-api","unlisted":false},{"type":"link","label":"Playground","href":"/workspace-playground","docId":"Workspace/workspace-playground","unlisted":false},{"type":"link","label":"Logs","href":"/workspace-logs","docId":"Workspace/workspace-logs","unlisted":false}]},{"type":"category","label":"Agents","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Agents overview","href":"/agents-overview","docId":"Agents/agents-overview","unlisted":false},{"type":"link","label":"Create a problem-solving agent","href":"/agents-tool-calling-agent-component","docId":"Agents/agent-tool-calling-agent-component","unlisted":false}]},{"type":"category","label":"Components","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"How to build flows with components","href":"/components-overview","docId":"Components/components-overview","unlisted":false},{"type":"link","label":"Inputs & Outputs","href":"/components-io","docId":"Components/components-io","unlisted":false},{"type":"link","label":"Prompts","href":"/components-prompts","docId":"Components/components-prompts","unlisted":false},{"type":"link","label":"Data","href":"/components-data","docId":"Components/components-data","unlisted":false},{"type":"link","label":"Helpers","href":"/components-helpers","docId":"Components/components-helpers","unlisted":false},{"type":"link","label":"Models","href":"/components-models","docId":"Components/components-models","unlisted":false},{"type":"link","label":"Embedding Models","href":"/components-embedding-models","docId":"Components/components-embedding-models","unlisted":false},{"type":"link","label":"Vector Stores","href":"/components-vector-stores","docId":"Components/components-vector-stores","unlisted":false},{"type":"link","label":"Custom Components","href":"/components-custom-components","docId":"Components/components-custom-components","unlisted":false},{"type":"link","label":"RAG","href":"/components-rag","docId":"Components/components-rag","unlisted":false},{"type":"link","label":"Loaders","href":"/components-loaders","docId":"Components/components-loaders","unlisted":false},{"type":"link","label":"Agents","href":"/components-agents","docId":"Components/components-agents","unlisted":false},{"type":"link","label":"Logic","href":"/components-logic","docId":"Components/components-logic","unlisted":false},{"type":"link","label":"Memories","href":"/Components/components-memories","docId":"Components/components-memories","unlisted":false},{"type":"link","label":"Tools","href":"/Components/components-tools","docId":"Components/components-tools","unlisted":false}]},{"type":"category","label":"Deployment","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"HuggingFace\xa0Spaces","href":"/deployment-hugging-face-spaces","docId":"Deployment/deployment-hugging-face-spaces","unlisted":false},{"type":"link","label":"Kubernetes","href":"/deployment-kubernetes","docId":"Deployment/deployment-kubernetes","unlisted":false},{"type":"link","label":"Docker","href":"/deployment-docker","docId":"Deployment/deployment-docker","unlisted":false},{"type":"link","label":"GCP","href":"/deployment-gcp","docId":"Deployment/deployment-gcp","unlisted":false},{"type":"link","label":"Render","href":"/deployment-render","docId":"Deployment/deployment-render","unlisted":false},{"type":"link","label":"Railway","href":"/deployment-railway","docId":"Deployment/deployment-railway","unlisted":false}]},{"type":"category","label":"Configuration","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Authentication","href":"/configuration-authentication","docId":"Configuration/configuration-authentication","unlisted":false},{"type":"link","label":"API keys","href":"/configuration-api-keys","docId":"Configuration/configuration-api-keys","unlisted":false},{"type":"link","label":"Langflow CLI","href":"/configuration-cli","docId":"Configuration/configuration-cli","unlisted":false},{"type":"link","label":"Run Langflow in backend-only mode","href":"/configuration-backend-only","docId":"Configuration/configuration-backend-only","unlisted":false},{"type":"link","label":"Global variables","href":"/configuration-global-variables","docId":"Configuration/configuration-global-variables","unlisted":false},{"type":"link","label":"Auto-saving","href":"/configuration-auto-save","docId":"Configuration/configuration-auto-saving","unlisted":false},{"type":"link","label":"Environment variables","href":"/environment-variables","docId":"Configuration/environment-variables","unlisted":false},{"type":"link","label":"Configure an external PostgreSQL database","href":"/Configuration/configuration-custom-database","docId":"Configuration/configuration-custom-database","unlisted":false}]},{"type":"category","label":"Integrations","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"AssemblyAI","href":"/integrations-assemblyai","docId":"Integrations/integrations-assemblyai","unlisted":false},{"type":"category","label":"Google","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Integrate Google OAuth with Langflow","href":"/integrations-setup-google-oauth-langflow","docId":"Integrations/Google/integrations-setup-google-oauth-langflow","unlisted":false}]},{"type":"link","label":"Langfuse","href":"/integrations-langfuse","docId":"Integrations/integrations-langfuse","unlisted":false},{"type":"link","label":"LangSmith","href":"/integrations-langsmith","docId":"Integrations/integrations-langsmith","unlisted":false},{"type":"link","label":"LangWatch","href":"/integrations-langwatch","docId":"Integrations/integrations-langwatch","unlisted":false},{"type":"category","label":"Notion","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Setup","href":"/integrations/notion/setup","docId":"Integrations/Notion/integrations-notion","unlisted":false},{"type":"link","label":"Notion Meeting Notes Agent","href":"/integrations/notion/notion-agent-meeting-notes","docId":"Integrations/Notion/notion-agent-meeting-notes","unlisted":false},{"type":"link","label":"Notion Conversational Agent","href":"/integrations/notion/notion-agent-conversational","docId":"Integrations/Notion/notion-agent-conversational","unlisted":false}]}]},{"type":"category","label":"Contributing","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Telemetry","href":"/contributing-telemetry","docId":"Contributing/contributing-telemetry","unlisted":false},{"type":"link","label":"Contribute to Langflow","href":"/contributing-how-to-contribute","docId":"Contributing/contributing-how-to-contribute","unlisted":false},{"type":"link","label":"Request an enhancement or report a bug","href":"/contributing-github-issues","docId":"Contributing/contributing-github-issues","unlisted":false},{"type":"link","label":"Ask for help on the Discussions board","href":"/contributing-github-discussions","docId":"Contributing/contributing-github-discussion-board","unlisted":false},{"type":"link","label":"Contribute components","href":"/contributing-components","docId":"Contributing/contributing-components","unlisted":false},{"type":"link","label":"Join the Langflow community","href":"/contributing-community","docId":"Contributing/contributing-community","unlisted":false}]}]},"docs":{"Agents/agent-tool-calling-agent-component":{"id":"Agents/agent-tool-calling-agent-component","title":"Create a problem-solving agent","description":"Developing agents in Langchain is complex.","sidebar":"defaultSidebar"},"Agents/agents-overview":{"id":"Agents/agents-overview","title":"Agents overview","description":"Agents are AI systems that use LLMs as a brain to analyze problems and select external tools.","sidebar":"defaultSidebar"},"Components/components-agents":{"id":"Components/components-agents","title":"Agents","description":"Agent components are used to define the behavior and capabilities of AI agents in your flow. Agents can interact with APIs, databases, and other services and use LLMs as a reasoning engine to decide which course to take in your flow.","sidebar":"defaultSidebar"},"Components/components-custom-components":{"id":"Components/components-custom-components","title":"Custom Components","description":"Custom components are created within Langflow and extend the platform\'s functionality with custom, resusable Python code.","sidebar":"defaultSidebar"},"Components/components-data":{"id":"Components/components-data","title":"Data","description":"API Request","sidebar":"defaultSidebar"},"Components/components-embedding-models":{"id":"Components/components-embedding-models","title":"Embedding Models","description":"Embeddings models are used to convert text into numerical vectors. These vectors can be used for various tasks such as similarity search, clustering, and classification.","sidebar":"defaultSidebar"},"Components/components-helpers":{"id":"Components/components-helpers","title":"Helpers","description":"Helper components provide utility functions to help manage data, tasks, and other components in your flow.","sidebar":"defaultSidebar"},"Components/components-io":{"id":"Components/components-io","title":"Inputs & Outputs","description":"This category of components defines where data enters and exits your flow. They dynamically alter the Playground and can be renamed to facilitate building and maintaining your flows.","sidebar":"defaultSidebar"},"Components/components-loaders":{"id":"Components/components-loaders","title":"Loaders","description":"Loaders are components used to load documents from various sources, such as databases, websites, and local files. They can be used to fetch data from external sources and convert it into a format that can be processed by other components.","sidebar":"defaultSidebar"},"Components/components-logic":{"id":"Components/components-logic","title":"Logic","description":"Logic components provide functionalities for routing, conditional processing, and flow management.","sidebar":"defaultSidebar"},"Components/components-memories":{"id":"Components/components-memories","title":"Memories","description":"Chat memory components store and retrieve chat messages by session_id.","sidebar":"defaultSidebar"},"Components/components-models":{"id":"Components/components-models","title":"Models","description":"Model components are used to generate text using language models. These components can be used to generate text for various tasks such as chatbots, content generation, and more.","sidebar":"defaultSidebar"},"Components/components-overview":{"id":"Components/components-overview","title":"How to build flows with components","description":"A\xa0component\xa0is a single building block within a flow. It consists of inputs, outputs, and parameters that define their functionality. These elements provide a convenient and straightforward way to compose LLM-based applications. Learn more about components and how they work below.","sidebar":"defaultSidebar"},"Components/components-prompts":{"id":"Components/components-prompts","title":"Prompts","description":"A prompt serves as the input to a language model, comprising multiple components that can be parameterized using prompt templates.","sidebar":"defaultSidebar"},"Components/components-rag":{"id":"Components/components-rag","title":"RAG","description":"RAG (Retrieval-Augmented Generation) components process a user query by retrieving relevant documents and generating a concise summary that addresses the user\'s question.","sidebar":"defaultSidebar"},"Components/components-tools":{"id":"Components/components-tools","title":"Tools","description":"Tool components are used to interact with external services, APIs, and tools. They can be used to search the web, query databases, and perform other tasks.","sidebar":"defaultSidebar"},"Components/components-vector-stores":{"id":"Components/components-vector-stores","title":"Vector Stores","description":"Vector databases are used to store and search for vectors. They can be used to store embeddings, search for similar vectors, and perform other vector operations.","sidebar":"defaultSidebar"},"Configuration/configuration-api-keys":{"id":"Configuration/configuration-api-keys","title":"API keys","description":"Langflow provides an API key functionality that allows users to access their individual components and flows without traditional login authentication. The API key is a user-specific token that can be included in the request header, query parameter, or as a command line argument to authenticate API calls. This documentation outlines how to generate, use, and manage API keys in Langflow.","sidebar":"defaultSidebar"},"Configuration/configuration-authentication":{"id":"Configuration/configuration-authentication","title":"Authentication","description":"The login functionality in Langflow serves to authenticate users and protect sensitive routes in the application.","sidebar":"defaultSidebar"},"Configuration/configuration-auto-saving":{"id":"Configuration/configuration-auto-saving","title":"Auto-saving","description":"Langflow supports both manual and auto-saving functionality.","sidebar":"defaultSidebar"},"Configuration/configuration-backend-only":{"id":"Configuration/configuration-backend-only","title":"Run Langflow in backend-only mode","description":"Langflow can run in --backend-only mode to expose a Langflow app as an API endpoint, without running the frontend UI.","sidebar":"defaultSidebar"},"Configuration/configuration-cli":{"id":"Configuration/configuration-cli","title":"Langflow CLI","description":"The Langflow command line interface (Langflow CLI) is the main interface for managing and running the Langflow server.","sidebar":"defaultSidebar"},"Configuration/configuration-custom-database":{"id":"Configuration/configuration-custom-database","title":"Configure an external PostgreSQL database","description":"Langflow\'s default database is SQLite, but you can configure Langflow to use PostgreSQL instead.","sidebar":"defaultSidebar"},"Configuration/configuration-global-variables":{"id":"Configuration/configuration-global-variables","title":"Global variables","description":"Global variables let you store and reuse generic input values and credentials across your projects.","sidebar":"defaultSidebar"},"Configuration/environment-variables":{"id":"Configuration/environment-variables","title":"Environment variables","description":"Langflow lets you configure a number of settings using environment variables.","sidebar":"defaultSidebar"},"Contributing/contributing-community":{"id":"Contributing/contributing-community","title":"Join the Langflow community","description":"Join the Langflow Discord server","sidebar":"defaultSidebar"},"Contributing/contributing-components":{"id":"Contributing/contributing-components","title":"Contribute components","description":"New components are added as objects of the\xa0CustomComponent\xa0class.","sidebar":"defaultSidebar"},"Contributing/contributing-github-discussion-board":{"id":"Contributing/contributing-github-discussion-board","title":"Ask for help on the Discussions board","description":"If you\'re looking for help with your code, consider posting a question on the Langflow\xa0GitHub Discussions board. The Langflow team cannot provide individual support via email. The team also believes that help is much more valuable if it\'s\xa0shared publicly, so that more people can benefit from it.","sidebar":"defaultSidebar"},"Contributing/contributing-github-issues":{"id":"Contributing/contributing-github-issues","title":"Request an enhancement or report a bug","description":"The\xa0Issues page in the Langflow repo is kept up to date with bugs, improvements, and feature requests. Labels are used to help with sorting and discovery of issues of interest. For an overview of the system Langflow uses to tag issues and pull requests, see the Langflow repo\'s labels page.","sidebar":"defaultSidebar"},"Contributing/contributing-how-to-contribute":{"id":"Contributing/contributing-how-to-contribute","title":"Contribute to Langflow","description":"This guide is intended to help you start contributing to Langflow.","sidebar":"defaultSidebar"},"Contributing/contributing-telemetry":{"id":"Contributing/contributing-telemetry","title":"Telemetry","description":"Langflow uses anonymous telemetry to collect essential usage statistics to enhance functionality and the user experience. This data helps us identify popular features and areas that need improvement, and ensures development efforts align with what you need.","sidebar":"defaultSidebar"},"Deployment/deployment-docker":{"id":"Deployment/deployment-docker","title":"Docker","description":"This guide will help you get LangFlow up and running using Docker and Docker Compose.","sidebar":"defaultSidebar"},"Deployment/deployment-gcp":{"id":"Deployment/deployment-gcp","title":"GCP","description":"To deploy Langflow on Google Cloud Platform using Cloud Shell, use the below script.","sidebar":"defaultSidebar"},"Deployment/deployment-hugging-face-spaces":{"id":"Deployment/deployment-hugging-face-spaces","title":"HuggingFace\xa0Spaces","description":"HuggingFace Spaces","sidebar":"defaultSidebar"},"Deployment/deployment-kubernetes":{"id":"Deployment/deployment-kubernetes","title":"Kubernetes","description":"This guide will help you get LangFlow up and running in Kubernetes cluster, including the following steps:","sidebar":"defaultSidebar"},"Deployment/deployment-railway":{"id":"Deployment/deployment-railway","title":"Railway","description":"Deploy on Railway","sidebar":"defaultSidebar"},"Deployment/deployment-render":{"id":"Deployment/deployment-render","title":"Render","description":"Deploy on Render","sidebar":"defaultSidebar"},"Getting-Started/getting-started-installation":{"id":"Getting-Started/getting-started-installation","title":"Install Langflow","description":"You can deploy Langflow either locally or as a hosted service with Datastax Langflow.","sidebar":"defaultSidebar"},"Getting-Started/getting-started-quickstart":{"id":"Getting-Started/getting-started-quickstart","title":"Quickstart","description":"Prerequisites","sidebar":"defaultSidebar"},"Getting-Started/welcome-to-langflow":{"id":"Getting-Started/welcome-to-langflow","title":"Welcome to Langflow","description":"Langflow is a new, visual framework for building multi-agent and RAG applications. It is open-source, Python-powered, fully customizable, and LLM and vector store agnostic.","sidebar":"defaultSidebar"},"Guides/guides-chat-memory":{"id":"Guides/guides-chat-memory","title":"Chat Memory","description":"Langflow allows every chat message to be stored, and a single flow can have multiple memory sessions. This enables you to create separate memories for agents to store and recall information as needed.","sidebar":"defaultSidebar"},"Guides/guides-data-message":{"id":"Guides/guides-data-message","title":"Data & Message","description":"In Langflow, the\xa0Data\xa0and\xa0Message\xa0objects serve as structured, functional representations of data that enhance the capabilities and reliability of the platform.","sidebar":"defaultSidebar"},"Guides/guides-new-to-llms":{"id":"Guides/guides-new-to-llms","title":"\ud83d\udcda New to LLMs?","description":"Large Language Models, or LLMs, are part of an exciting new world in computing.","sidebar":"defaultSidebar"},"Integrations/Google/integrations-setup-google-oauth-langflow":{"id":"Integrations/Google/integrations-setup-google-oauth-langflow","title":"Integrate Google OAuth with Langflow","description":"A comprehensive guide on creating a Google OAuth app, obtaining tokens, and integrating them with Langflow\'s Google components.","sidebar":"defaultSidebar"},"Integrations/integrations-assemblyai":{"id":"Integrations/integrations-assemblyai","title":"AssemblyAI","description":"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:","sidebar":"defaultSidebar"},"Integrations/integrations-langfuse":{"id":"Integrations/integrations-langfuse","title":"Langfuse","description":"Langfuse is an observability and analytics platform specifically designed for language models and AI applications.","sidebar":"defaultSidebar"},"Integrations/integrations-langsmith":{"id":"Integrations/integrations-langsmith","title":"LangSmith","description":"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, just add your LangChain API key as a Langflow environment variable and you are good to go!","sidebar":"defaultSidebar"},"Integrations/integrations-langwatch":{"id":"Integrations/integrations-langwatch","title":"LangWatch","description":"938674091aac4d9d9aa4aa6eb5c215b4}","sidebar":"defaultSidebar"},"Integrations/Notion/integrations-notion":{"id":"Integrations/Notion/integrations-notion","title":"Setup","description":"To use Notion components in Langflow, you first need to create a Notion integration and configure it with the necessary capabilities. This guide will walk you through the process of setting up a Notion integration and granting it access to your Notion databases.","sidebar":"defaultSidebar"},"Integrations/Notion/notion-agent-conversational":{"id":"Integrations/Notion/notion-agent-conversational","title":"Notion Conversational Agent","description":"The Notion Conversational Agent is an AI-powered assistant that interacts with your Notion workspace through natural language conversations. This flow performs Notion-related tasks like creating pages, searching for information, and managing content, all through a chat interface.","sidebar":"defaultSidebar"},"Integrations/Notion/notion-agent-meeting-notes":{"id":"Integrations/Notion/notion-agent-meeting-notes","title":"Notion Meeting Notes Agent","description":"The Notion Agent for Meeting Notes is an AI-powered tool that automatically processes meeting transcripts and updates your Notion workspace. It identifies tasks, action items, and key points from your meetings, then creates new tasks or updates existing ones in Notion without manual input.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-basic-prompting":{"id":"Starter-Projects/starter-projects-basic-prompting","title":"Basic Prompting","description":"Prompts serve as the inputs to a large language model (LLM), acting as the interface between human instructions and computational tasks.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-blog-writer":{"id":"Starter-Projects/starter-projects-blog-writer","title":"Blog Writer","description":"Build a Blog Writer flow for a one-shot application using OpenAI.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-document-qa":{"id":"Starter-Projects/starter-projects-document-qa","title":"Document QA","description":"Build a question-and-answer chatbot with a document loaded from local memory.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-dynamic-agent":{"id":"Starter-Projects/starter-projects-dynamic-agent","title":"Dynamic agent","description":"Build a Dynamic Agent flow for an agentic application using the CrewAI.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-memory-chatbot":{"id":"Starter-Projects/starter-projects-memory-chatbot","title":"Memory Chatbot","description":"This flow extends the\xa0basic prompting\xa0flow to include a chat memory. This makes the AI remember previous user inputs.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-simple-agent":{"id":"Starter-Projects/starter-projects-simple-agent","title":"Simple agent","description":"Build a Simple Agent flow for an agentic application using the Tool-calling agent.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-travel-planning-agent":{"id":"Starter-Projects/starter-projects-travel-planning-agent","title":"Travel planning agent","description":"Build a Travel Planning Agent flow for an agentic application using the multiple Tool-calling agents.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-vector-store-rag":{"id":"Starter-Projects/starter-projects-vector-store-rag","title":"Vector Store RAG","description":"Retrieval Augmented Generation, or RAG, is a pattern for training LLMs on your data and querying it.","sidebar":"defaultSidebar"},"Workspace/workspace-api":{"id":"Workspace/workspace-api","title":"API","description":"The\xa0API\xa0section presents code templates for integrating your flow into external applications.","sidebar":"defaultSidebar"},"Workspace/workspace-logs":{"id":"Workspace/workspace-logs","title":"Logs","description":"The\xa0Logs\xa0pane provides a detailed record of all component executions within a workspace. It is designed to help you track actions, debug issues, and understand the flow of data through various components.","sidebar":"defaultSidebar"},"Workspace/workspace-overview":{"id":"Workspace/workspace-overview","title":"Workspace concepts","description":"The workspace is where you create AI applications by connecting and running components in flows.","sidebar":"defaultSidebar"},"Workspace/workspace-playground":{"id":"Workspace/workspace-playground","title":"Playground","description":"The\xa0Playground\xa0is a dynamic interface designed for real-time interaction with AIs, allowing users to chat, access memories and monitor inputs and outputs. Here, users can directly prototype and their models, making adjustments and observing different outcomes.","sidebar":"defaultSidebar"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/22dd74f7.7fce7a6c.js b/assets/js/22dd74f7.7fce7a6c.js deleted file mode 100644 index d7bfb0e1aa..0000000000 --- a/assets/js/22dd74f7.7fce7a6c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1567],{5226:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"defaultSidebar":[{"type":"category","label":"Getting Started","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Welcome to Langflow","href":"/","docId":"Getting-Started/welcome-to-langflow","unlisted":false},{"type":"link","label":"Install Langflow","href":"/getting-started-installation","docId":"Getting-Started/getting-started-installation","unlisted":false},{"type":"link","label":"Quickstart","href":"/getting-started-quickstart","docId":"Getting-Started/getting-started-quickstart","unlisted":false}]},{"type":"category","label":"Starter Projects","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Basic Prompting","href":"/starter-projects-basic-prompting","docId":"Starter-Projects/starter-projects-basic-prompting","unlisted":false},{"type":"link","label":"Blog Writer","href":"/starter-projects-blog-writer","docId":"Starter-Projects/starter-projects-blog-writer","unlisted":false},{"type":"link","label":"Document QA","href":"/starter-projects-document-qa","docId":"Starter-Projects/starter-projects-document-qa","unlisted":false},{"type":"link","label":"Memory Chatbot","href":"/starter-projects-memory-chatbot","docId":"Starter-Projects/starter-projects-memory-chatbot","unlisted":false},{"type":"link","label":"Vector Store RAG","href":"/starter-projects-vector-store-rag","docId":"Starter-Projects/starter-projects-vector-store-rag","unlisted":false},{"type":"link","label":"Simple agent","href":"/starter-projects-simple-agent","docId":"Starter-Projects/starter-projects-simple-agent","unlisted":false},{"type":"link","label":"Dynamic agent","href":"/starter-projects-dynamic-agent","docId":"Starter-Projects/starter-projects-dynamic-agent","unlisted":false},{"type":"link","label":"Travel planning agent","href":"/starter-projects-travel-planning-agent","docId":"Starter-Projects/starter-projects-travel-planning-agent","unlisted":false}]},{"type":"category","label":"Guides","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"\ud83d\udcda New to LLMs?","href":"/guides-new-to-llms","docId":"Guides/guides-new-to-llms","unlisted":false},{"type":"link","label":"Chat Memory","href":"/guides-chat-memory","docId":"Guides/guides-chat-memory","unlisted":false},{"type":"link","label":"Data & Message","href":"/guides-data-message","docId":"Guides/guides-data-message","unlisted":false}]},{"type":"category","label":"Workspace","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Workspace concepts","href":"/workspace-overview","docId":"Workspace/workspace-overview","unlisted":false},{"type":"link","label":"API","href":"/workspace-api","docId":"Workspace/workspace-api","unlisted":false},{"type":"link","label":"Playground","href":"/workspace-playground","docId":"Workspace/workspace-playground","unlisted":false},{"type":"link","label":"Logs","href":"/workspace-logs","docId":"Workspace/workspace-logs","unlisted":false}]},{"type":"category","label":"Agents","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Agents overview","href":"/agents-overview","docId":"Agents/agents-overview","unlisted":false},{"type":"link","label":"Create a problem-solving agent","href":"/agents-tool-calling-agent-component","docId":"Agents/agent-tool-calling-agent-component","unlisted":false}]},{"type":"category","label":"Components","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"How to build flows with components","href":"/components-overview","docId":"Components/components-overview","unlisted":false},{"type":"link","label":"Inputs & Outputs","href":"/components-io","docId":"Components/components-io","unlisted":false},{"type":"link","label":"Prompts","href":"/components-prompts","docId":"Components/components-prompts","unlisted":false},{"type":"link","label":"Data","href":"/components-data","docId":"Components/components-data","unlisted":false},{"type":"link","label":"Helpers","href":"/components-helpers","docId":"Components/components-helpers","unlisted":false},{"type":"link","label":"Models","href":"/components-models","docId":"Components/components-models","unlisted":false},{"type":"link","label":"Embedding Models","href":"/components-embedding-models","docId":"Components/components-embedding-models","unlisted":false},{"type":"link","label":"Vector Stores","href":"/components-vector-stores","docId":"Components/components-vector-stores","unlisted":false},{"type":"link","label":"Custom Components","href":"/components-custom-components","docId":"Components/components-custom-components","unlisted":false},{"type":"link","label":"RAG","href":"/components-rag","docId":"Components/components-rag","unlisted":false},{"type":"link","label":"Loaders","href":"/components-loaders","docId":"Components/components-loaders","unlisted":false},{"type":"link","label":"Agents","href":"/components-agents","docId":"Components/components-agents","unlisted":false},{"type":"link","label":"Logic","href":"/components-logic","docId":"Components/components-logic","unlisted":false},{"type":"link","label":"Memories","href":"/Components/components-memories","docId":"Components/components-memories","unlisted":false},{"type":"link","label":"Tools","href":"/Components/components-tools","docId":"Components/components-tools","unlisted":false}]},{"type":"category","label":"Deployment","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"HuggingFace\xa0Spaces","href":"/deployment-hugging-face-spaces","docId":"Deployment/deployment-hugging-face-spaces","unlisted":false},{"type":"link","label":"Kubernetes","href":"/deployment-kubernetes","docId":"Deployment/deployment-kubernetes","unlisted":false},{"type":"link","label":"Docker","href":"/deployment-docker","docId":"Deployment/deployment-docker","unlisted":false},{"type":"link","label":"GCP","href":"/deployment-gcp","docId":"Deployment/deployment-gcp","unlisted":false},{"type":"link","label":"Render","href":"/deployment-render","docId":"Deployment/deployment-render","unlisted":false},{"type":"link","label":"Railway","href":"/deployment-railway","docId":"Deployment/deployment-railway","unlisted":false}]},{"type":"category","label":"Configuration","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Authentication","href":"/configuration-authentication","docId":"Configuration/configuration-authentication","unlisted":false},{"type":"link","label":"API keys","href":"/configuration-api-keys","docId":"Configuration/configuration-api-keys","unlisted":false},{"type":"link","label":"Langflow CLI","href":"/configuration-cli","docId":"Configuration/configuration-cli","unlisted":false},{"type":"link","label":"Run Langflow in backend-only mode","href":"/configuration-backend-only","docId":"Configuration/configuration-backend-only","unlisted":false},{"type":"link","label":"Global variables","href":"/configuration-global-variables","docId":"Configuration/configuration-global-variables","unlisted":false},{"type":"link","label":"Auto-saving","href":"/configuration-auto-save","docId":"Configuration/configuration-auto-saving","unlisted":false},{"type":"link","label":"Environment variables","href":"/environment-variables","docId":"Configuration/environment-variables","unlisted":false}]},{"type":"category","label":"Integrations","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"AssemblyAI","href":"/integrations-assemblyai","docId":"Integrations/integrations-assemblyai","unlisted":false},{"type":"category","label":"Google","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Integrate Google OAuth with Langflow","href":"/integrations-setup-google-oauth-langflow","docId":"Integrations/Google/integrations-setup-google-oauth-langflow","unlisted":false}]},{"type":"link","label":"Langfuse","href":"/integrations-langfuse","docId":"Integrations/integrations-langfuse","unlisted":false},{"type":"link","label":"LangSmith","href":"/integrations-langsmith","docId":"Integrations/integrations-langsmith","unlisted":false},{"type":"link","label":"LangWatch","href":"/integrations-langwatch","docId":"Integrations/integrations-langwatch","unlisted":false},{"type":"category","label":"Notion","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Setup","href":"/integrations/notion/setup","docId":"Integrations/Notion/integrations-notion","unlisted":false},{"type":"link","label":"Notion Meeting Notes Agent","href":"/integrations/notion/notion-agent-meeting-notes","docId":"Integrations/Notion/notion-agent-meeting-notes","unlisted":false},{"type":"link","label":"Notion Conversational Agent","href":"/integrations/notion/notion-agent-conversational","docId":"Integrations/Notion/notion-agent-conversational","unlisted":false}]}]},{"type":"category","label":"Contributing","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Telemetry","href":"/contributing-telemetry","docId":"Contributing/contributing-telemetry","unlisted":false},{"type":"link","label":"Contribute to Langflow","href":"/contributing-how-to-contribute","docId":"Contributing/contributing-how-to-contribute","unlisted":false},{"type":"link","label":"Request an enhancement or report a bug","href":"/contributing-github-issues","docId":"Contributing/contributing-github-issues","unlisted":false},{"type":"link","label":"Ask for help on the Discussions board","href":"/contributing-github-discussions","docId":"Contributing/contributing-github-discussion-board","unlisted":false},{"type":"link","label":"Contribute components","href":"/contributing-components","docId":"Contributing/contributing-components","unlisted":false},{"type":"link","label":"Join the Langflow community","href":"/contributing-community","docId":"Contributing/contributing-community","unlisted":false}]}]},"docs":{"Agents/agent-tool-calling-agent-component":{"id":"Agents/agent-tool-calling-agent-component","title":"Create a problem-solving agent","description":"Developing agents in Langchain is complex.","sidebar":"defaultSidebar"},"Agents/agents-overview":{"id":"Agents/agents-overview","title":"Agents overview","description":"Agents are AI systems that use LLMs as a brain to analyze problems and select external tools.","sidebar":"defaultSidebar"},"Components/components-agents":{"id":"Components/components-agents","title":"Agents","description":"Agent components are used to define the behavior and capabilities of AI agents in your flow. Agents can interact with APIs, databases, and other services and use LLMs as a reasoning engine to decide which course to take in your flow.","sidebar":"defaultSidebar"},"Components/components-custom-components":{"id":"Components/components-custom-components","title":"Custom Components","description":"Custom components are created within Langflow and extend the platform\'s functionality with custom, resusable Python code.","sidebar":"defaultSidebar"},"Components/components-data":{"id":"Components/components-data","title":"Data","description":"API Request","sidebar":"defaultSidebar"},"Components/components-embedding-models":{"id":"Components/components-embedding-models","title":"Embedding Models","description":"Embeddings models are used to convert text into numerical vectors. These vectors can be used for various tasks such as similarity search, clustering, and classification.","sidebar":"defaultSidebar"},"Components/components-helpers":{"id":"Components/components-helpers","title":"Helpers","description":"Helper components provide utility functions to help manage data, tasks, and other components in your flow.","sidebar":"defaultSidebar"},"Components/components-io":{"id":"Components/components-io","title":"Inputs & Outputs","description":"This category of components defines where data enters and exits your flow. They dynamically alter the Playground and can be renamed to facilitate building and maintaining your flows.","sidebar":"defaultSidebar"},"Components/components-loaders":{"id":"Components/components-loaders","title":"Loaders","description":"Loaders are components used to load documents from various sources, such as databases, websites, and local files. They can be used to fetch data from external sources and convert it into a format that can be processed by other components.","sidebar":"defaultSidebar"},"Components/components-logic":{"id":"Components/components-logic","title":"Logic","description":"Logic components provide functionalities for routing, conditional processing, and flow management.","sidebar":"defaultSidebar"},"Components/components-memories":{"id":"Components/components-memories","title":"Memories","description":"Chat memory components store and retrieve chat messages by session_id.","sidebar":"defaultSidebar"},"Components/components-models":{"id":"Components/components-models","title":"Models","description":"Model components are used to generate text using language models. These components can be used to generate text for various tasks such as chatbots, content generation, and more.","sidebar":"defaultSidebar"},"Components/components-overview":{"id":"Components/components-overview","title":"How to build flows with components","description":"A\xa0component\xa0is a single building block within a flow. It consists of inputs, outputs, and parameters that define their functionality. These elements provide a convenient and straightforward way to compose LLM-based applications. Learn more about components and how they work below.","sidebar":"defaultSidebar"},"Components/components-prompts":{"id":"Components/components-prompts","title":"Prompts","description":"A prompt serves as the input to a language model, comprising multiple components that can be parameterized using prompt templates.","sidebar":"defaultSidebar"},"Components/components-rag":{"id":"Components/components-rag","title":"RAG","description":"RAG (Retrieval-Augmented Generation) components process a user query by retrieving relevant documents and generating a concise summary that addresses the user\'s question.","sidebar":"defaultSidebar"},"Components/components-tools":{"id":"Components/components-tools","title":"Tools","description":"Tool components are used to interact with external services, APIs, and tools. They can be used to search the web, query databases, and perform other tasks.","sidebar":"defaultSidebar"},"Components/components-vector-stores":{"id":"Components/components-vector-stores","title":"Vector Stores","description":"Vector databases are used to store and search for vectors. They can be used to store embeddings, search for similar vectors, and perform other vector operations.","sidebar":"defaultSidebar"},"Configuration/configuration-api-keys":{"id":"Configuration/configuration-api-keys","title":"API keys","description":"Langflow provides an API key functionality that allows users to access their individual components and flows without traditional login authentication. The API key is a user-specific token that can be included in the request header, query parameter, or as a command line argument to authenticate API calls. This documentation outlines how to generate, use, and manage API keys in Langflow.","sidebar":"defaultSidebar"},"Configuration/configuration-authentication":{"id":"Configuration/configuration-authentication","title":"Authentication","description":"The login functionality in Langflow serves to authenticate users and protect sensitive routes in the application.","sidebar":"defaultSidebar"},"Configuration/configuration-auto-saving":{"id":"Configuration/configuration-auto-saving","title":"Auto-saving","description":"Langflow supports both manual and auto-saving functionality.","sidebar":"defaultSidebar"},"Configuration/configuration-backend-only":{"id":"Configuration/configuration-backend-only","title":"Run Langflow in backend-only mode","description":"Langflow can run in --backend-only mode to expose a Langflow app as an API endpoint, without running the frontend UI.","sidebar":"defaultSidebar"},"Configuration/configuration-cli":{"id":"Configuration/configuration-cli","title":"Langflow CLI","description":"The Langflow command line interface (Langflow CLI) is the main interface for managing and running the Langflow server.","sidebar":"defaultSidebar"},"Configuration/configuration-global-variables":{"id":"Configuration/configuration-global-variables","title":"Global variables","description":"Global variables let you store and reuse generic input values and credentials across your projects.","sidebar":"defaultSidebar"},"Configuration/environment-variables":{"id":"Configuration/environment-variables","title":"Environment variables","description":"Langflow lets you configure a number of settings using environment variables.","sidebar":"defaultSidebar"},"Contributing/contributing-community":{"id":"Contributing/contributing-community","title":"Join the Langflow community","description":"Join the Langflow Discord server","sidebar":"defaultSidebar"},"Contributing/contributing-components":{"id":"Contributing/contributing-components","title":"Contribute components","description":"New components are added as objects of the\xa0CustomComponent\xa0class.","sidebar":"defaultSidebar"},"Contributing/contributing-github-discussion-board":{"id":"Contributing/contributing-github-discussion-board","title":"Ask for help on the Discussions board","description":"If you\'re looking for help with your code, consider posting a question on the Langflow\xa0GitHub Discussions board. The Langflow team cannot provide individual support via email. The team also believes that help is much more valuable if it\'s\xa0shared publicly, so that more people can benefit from it.","sidebar":"defaultSidebar"},"Contributing/contributing-github-issues":{"id":"Contributing/contributing-github-issues","title":"Request an enhancement or report a bug","description":"The\xa0Issues page in the Langflow repo is kept up to date with bugs, improvements, and feature requests. Labels are used to help with sorting and discovery of issues of interest. For an overview of the system Langflow uses to tag issues and pull requests, see the Langflow repo\'s labels page.","sidebar":"defaultSidebar"},"Contributing/contributing-how-to-contribute":{"id":"Contributing/contributing-how-to-contribute","title":"Contribute to Langflow","description":"This guide is intended to help you start contributing to Langflow.","sidebar":"defaultSidebar"},"Contributing/contributing-telemetry":{"id":"Contributing/contributing-telemetry","title":"Telemetry","description":"Langflow uses anonymous telemetry to collect essential usage statistics to enhance functionality and the user experience. This data helps us identify popular features and areas that need improvement, and ensures development efforts align with what you need.","sidebar":"defaultSidebar"},"Deployment/deployment-docker":{"id":"Deployment/deployment-docker","title":"Docker","description":"This guide will help you get LangFlow up and running using Docker and Docker Compose.","sidebar":"defaultSidebar"},"Deployment/deployment-gcp":{"id":"Deployment/deployment-gcp","title":"GCP","description":"To deploy Langflow on Google Cloud Platform using Cloud Shell, use the below script.","sidebar":"defaultSidebar"},"Deployment/deployment-hugging-face-spaces":{"id":"Deployment/deployment-hugging-face-spaces","title":"HuggingFace\xa0Spaces","description":"HuggingFace Spaces","sidebar":"defaultSidebar"},"Deployment/deployment-kubernetes":{"id":"Deployment/deployment-kubernetes","title":"Kubernetes","description":"This guide will help you get LangFlow up and running in Kubernetes cluster, including the following steps:","sidebar":"defaultSidebar"},"Deployment/deployment-railway":{"id":"Deployment/deployment-railway","title":"Railway","description":"Deploy on Railway","sidebar":"defaultSidebar"},"Deployment/deployment-render":{"id":"Deployment/deployment-render","title":"Render","description":"Deploy on Render","sidebar":"defaultSidebar"},"Getting-Started/getting-started-installation":{"id":"Getting-Started/getting-started-installation","title":"Install Langflow","description":"You can deploy Langflow either locally or as a hosted service with Datastax Langflow.","sidebar":"defaultSidebar"},"Getting-Started/getting-started-quickstart":{"id":"Getting-Started/getting-started-quickstart","title":"Quickstart","description":"Prerequisites","sidebar":"defaultSidebar"},"Getting-Started/welcome-to-langflow":{"id":"Getting-Started/welcome-to-langflow","title":"Welcome to Langflow","description":"Langflow is a new, visual framework for building multi-agent and RAG applications. It is open-source, Python-powered, fully customizable, and LLM and vector store agnostic.","sidebar":"defaultSidebar"},"Guides/guides-chat-memory":{"id":"Guides/guides-chat-memory","title":"Chat Memory","description":"Langflow allows every chat message to be stored, and a single flow can have multiple memory sessions. This enables you to create separate memories for agents to store and recall information as needed.","sidebar":"defaultSidebar"},"Guides/guides-data-message":{"id":"Guides/guides-data-message","title":"Data & Message","description":"In Langflow, the\xa0Data\xa0and\xa0Message\xa0objects serve as structured, functional representations of data that enhance the capabilities and reliability of the platform.","sidebar":"defaultSidebar"},"Guides/guides-new-to-llms":{"id":"Guides/guides-new-to-llms","title":"\ud83d\udcda New to LLMs?","description":"Large Language Models, or LLMs, are part of an exciting new world in computing.","sidebar":"defaultSidebar"},"Integrations/Google/integrations-setup-google-oauth-langflow":{"id":"Integrations/Google/integrations-setup-google-oauth-langflow","title":"Integrate Google OAuth with Langflow","description":"A comprehensive guide on creating a Google OAuth app, obtaining tokens, and integrating them with Langflow\'s Google components.","sidebar":"defaultSidebar"},"Integrations/integrations-assemblyai":{"id":"Integrations/integrations-assemblyai","title":"AssemblyAI","description":"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:","sidebar":"defaultSidebar"},"Integrations/integrations-langfuse":{"id":"Integrations/integrations-langfuse","title":"Langfuse","description":"Langfuse is an observability and analytics platform specifically designed for language models and AI applications.","sidebar":"defaultSidebar"},"Integrations/integrations-langsmith":{"id":"Integrations/integrations-langsmith","title":"LangSmith","description":"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, just add your LangChain API key as a Langflow environment variable and you are good to go!","sidebar":"defaultSidebar"},"Integrations/integrations-langwatch":{"id":"Integrations/integrations-langwatch","title":"LangWatch","description":"938674091aac4d9d9aa4aa6eb5c215b4}","sidebar":"defaultSidebar"},"Integrations/Notion/integrations-notion":{"id":"Integrations/Notion/integrations-notion","title":"Setup","description":"To use Notion components in Langflow, you first need to create a Notion integration and configure it with the necessary capabilities. This guide will walk you through the process of setting up a Notion integration and granting it access to your Notion databases.","sidebar":"defaultSidebar"},"Integrations/Notion/notion-agent-conversational":{"id":"Integrations/Notion/notion-agent-conversational","title":"Notion Conversational Agent","description":"The Notion Conversational Agent is an AI-powered assistant that interacts with your Notion workspace through natural language conversations. This flow performs Notion-related tasks like creating pages, searching for information, and managing content, all through a chat interface.","sidebar":"defaultSidebar"},"Integrations/Notion/notion-agent-meeting-notes":{"id":"Integrations/Notion/notion-agent-meeting-notes","title":"Notion Meeting Notes Agent","description":"The Notion Agent for Meeting Notes is an AI-powered tool that automatically processes meeting transcripts and updates your Notion workspace. It identifies tasks, action items, and key points from your meetings, then creates new tasks or updates existing ones in Notion without manual input.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-basic-prompting":{"id":"Starter-Projects/starter-projects-basic-prompting","title":"Basic Prompting","description":"Prompts serve as the inputs to a large language model (LLM), acting as the interface between human instructions and computational tasks.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-blog-writer":{"id":"Starter-Projects/starter-projects-blog-writer","title":"Blog Writer","description":"Build a Blog Writer flow for a one-shot application using OpenAI.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-document-qa":{"id":"Starter-Projects/starter-projects-document-qa","title":"Document QA","description":"Build a question-and-answer chatbot with a document loaded from local memory.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-dynamic-agent":{"id":"Starter-Projects/starter-projects-dynamic-agent","title":"Dynamic agent","description":"Build a Dynamic Agent flow for an agentic application using the CrewAI.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-memory-chatbot":{"id":"Starter-Projects/starter-projects-memory-chatbot","title":"Memory Chatbot","description":"This flow extends the\xa0basic prompting\xa0flow to include a chat memory. This makes the AI remember previous user inputs.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-simple-agent":{"id":"Starter-Projects/starter-projects-simple-agent","title":"Simple agent","description":"Build a Simple Agent flow for an agentic application using the Tool-calling agent.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-travel-planning-agent":{"id":"Starter-Projects/starter-projects-travel-planning-agent","title":"Travel planning agent","description":"Build a Travel Planning Agent flow for an agentic application using the multiple Tool-calling agents.","sidebar":"defaultSidebar"},"Starter-Projects/starter-projects-vector-store-rag":{"id":"Starter-Projects/starter-projects-vector-store-rag","title":"Vector Store RAG","description":"Retrieval Augmented Generation, or RAG, is a pattern for training LLMs on your data and querying it.","sidebar":"defaultSidebar"},"Workspace/workspace-api":{"id":"Workspace/workspace-api","title":"API","description":"The\xa0API\xa0section presents code templates for integrating your flow into external applications.","sidebar":"defaultSidebar"},"Workspace/workspace-logs":{"id":"Workspace/workspace-logs","title":"Logs","description":"The\xa0Logs\xa0pane provides a detailed record of all component executions within a workspace. It is designed to help you track actions, debug issues, and understand the flow of data through various components.","sidebar":"defaultSidebar"},"Workspace/workspace-overview":{"id":"Workspace/workspace-overview","title":"Workspace concepts","description":"The workspace is where you create AI applications by connecting and running components in flows.","sidebar":"defaultSidebar"},"Workspace/workspace-playground":{"id":"Workspace/workspace-playground","title":"Playground","description":"The\xa0Playground\xa0is a dynamic interface designed for real-time interaction with AIs, allowing users to chat, access memories and monitor inputs and outputs. Here, users can directly prototype and their models, making adjustments and observing different outcomes.","sidebar":"defaultSidebar"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/338a6f8e.e2b99e20.js b/assets/js/338a6f8e.e2b99e20.js new file mode 100644 index 0000000000..9b07d81885 --- /dev/null +++ b/assets/js/338a6f8e.e2b99e20.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2097],{6140:(e,o,t)=>{t.r(o),t.d(o,{CH:()=>d,assets:()=>i,chCodeConfig:()=>p,contentTitle:()=>c,default:()=>u,frontMatter:()=>l,metadata:()=>a,toc:()=>h});var n=t(4848),s=t(8453),r=t(4754);const l={title:"Configure an external PostgreSQL database",sidebar_position:8},c=void 0,a={id:"Configuration/configuration-custom-database",title:"Configure an external PostgreSQL database",description:"Langflow's default database is SQLite, but you can configure Langflow to use PostgreSQL instead.",source:"@site/docs/Configuration/configuration-custom-database.md",sourceDirName:"Configuration",slug:"/Configuration/configuration-custom-database",permalink:"/Configuration/configuration-custom-database",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{title:"Configure an external PostgreSQL database",sidebar_position:8},sidebar:"defaultSidebar",previous:{title:"Environment variables",permalink:"/environment-variables"},next:{title:"AssemblyAI",permalink:"/integrations-assemblyai"}},i={},d={annotations:r.hk,Code:r.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Connect Langflow to PostgreSQL",id:"connect-langflow-to-postgresql",level:2},{value:"Example Langflow and PostgreSQL docker-compose.yml",id:"example-langflow-and-postgresql-docker-composeyml",level:2}];function g(e){const o={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",ul:"ul",...(0,s.R)(),...e.components};return d||f("CH",!1),d.Code||f("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n",(0,n.jsxs)(o.p,{children:["Langflow's default database is ",(0,n.jsx)(o.a,{href:"https://www.sqlite.org/docs.html",children:"SQLite"}),", but you can configure Langflow to use PostgreSQL instead."]}),"\n",(0,n.jsxs)(o.p,{children:["This guide will walk you through the process of setting up an external database for Langflow by replacing the default SQLite connection string ",(0,n.jsx)(o.code,{children:"sqlite:///./langflow.db"})," with PostgreSQL."]}),"\n",(0,n.jsx)(o.h2,{id:"prerequisite",children:"Prerequisite"}),"\n",(0,n.jsxs)(o.ul,{children:["\n",(0,n.jsxs)(o.li,{children:["A ",(0,n.jsx)(o.a,{href:"https://www.pgadmin.org/download/",children:"PostgreSQL"})," database"]}),"\n"]}),"\n",(0,n.jsx)(o.h2,{id:"connect-langflow-to-postgresql",children:"Connect Langflow to PostgreSQL"}),"\n",(0,n.jsx)(o.p,{children:"To connect Langflow to PostgreSQL, follow these steps."}),"\n",(0,n.jsxs)(o.ol,{children:["\n",(0,n.jsxs)(o.li,{children:["Find your PostgreSQL database's connection string.\nIt looks like ",(0,n.jsx)(o.code,{children:"postgresql://user:password@host:port/dbname"}),".\nFor example, if you started PostgreSQL with this Docker command:"]}),"\n"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,n.jsxs)(o.p,{children:["Your connection string would be ",(0,n.jsx)(o.code,{children:"postgresql://some-postgres:mysecretpassword@localhost:5432/postgres"}),"."]}),"\n",(0,n.jsxs)(o.ol,{start:"2",children:["\n",(0,n.jsxs)(o.li,{children:["Create a ",(0,n.jsx)(o.code,{children:".env"})," file for configuring Langflow."]}),"\n"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"touch .env",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,n.jsxs)(o.ol,{start:"3",children:["\n",(0,n.jsxs)(o.li,{children:["To set the database URL environment variable, add it to your ",(0,n.jsx)(o.code,{children:".env"})," file:"]}),"\n"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'LANGFLOW_DATABASE_URL="postgresql://user:password@localhost:5432/dbname"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,n.jsx)(o.admonition,{type:"tip",children:(0,n.jsxs)(o.p,{children:["The Langflow project includes a ",(0,n.jsx)(o.a,{href:"https://github.com/langflow-ai/langflow/blob/main/.env.example",children:(0,n.jsx)(o.code,{children:".env.example"})})," file to help you get started.\nYou can copy the contents of this file into your own ",(0,n.jsx)(o.code,{children:".env"})," file and replace the example values with your own preferred settings.\nReplace the value for ",(0,n.jsx)(o.code,{children:"LANGFLOW_DATABASE_URL"})," with your PostgreSQL connection string."]})}),"\n",(0,n.jsxs)(o.ol,{start:"4",children:["\n",(0,n.jsxs)(o.li,{children:["Run Langflow with the ",(0,n.jsx)(o.code,{children:".env"})," file:"]}),"\n"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"--env-file ",props:{style:{color:"#79C0FF"}}},{content:".env",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsxs)(o.ol,{start:"5",children:["\n",(0,n.jsx)(o.li,{children:"In Langflow, create traffic by running a flow."}),"\n",(0,n.jsx)(o.li,{children:"Inspect your PostgreSQL deployment's tables and activity.\nYou will see new tables and traffic created."}),"\n"]}),"\n",(0,n.jsx)(o.h2,{id:"example-langflow-and-postgresql-docker-composeyml",children:"Example Langflow and PostgreSQL docker-compose.yml"}),"\n",(0,n.jsxs)(o.p,{children:["The Langflow project includes a ",(0,n.jsx)(o.a,{href:"https://github.com/langflow-ai/langflow/blob/main/docker_example/docker-compose.yml",children:(0,n.jsx)(o.code,{children:"docker-compose.yml"})})," file for quick deployment with PostgreSQL."]}),"\n",(0,n.jsx)(o.p,{children:"This configuration launches Langflow and PostgreSQL containers, with Langflow pre-configured to use the PostgreSQL database. Customize the database credentials as needed."}),"\n",(0,n.jsxs)(o.p,{children:["To start the services, navigate to the ",(0,n.jsx)(o.code,{children:"/docker_example"})," directory, and then run ",(0,n.jsx)(o.code,{children:"docker-compose up"}),"."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"services",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"langflow-ai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" environment",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_DATABASE_URL=postgresql://user:password@postgres:5432/langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" depends_on",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"postgres",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" postgres",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"postgres:15",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" environment",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"POSTGRES_USER=user",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"POSTGRES_PASSWORD=password",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"POSTGRES_DB=langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]})]})}function u(e={}){const{wrapper:o}={...(0,s.R)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(g,{...e})}):g(e)}function f(e,o){throw new Error("Expected "+(o?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]); \ No newline at end of file diff --git a/assets/js/829ff4d2.71cd6c9d.js b/assets/js/829ff4d2.71cd6c9d.js deleted file mode 100644 index 9e29a3f859..0000000000 --- a/assets/js/829ff4d2.71cd6c9d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3964],{4745:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var t=s(4848),i=s(8453);const l={title:"AssemblyAI",sidebar_position:1,slug:"/integrations-assemblyai"},r="AssemblyAI",o={id:"Integrations/integrations-assemblyai",title:"AssemblyAI",description:"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:",source:"@site/docs/Integrations/integrations-assemblyai.md",sourceDirName:"Integrations",slug:"/integrations-assemblyai",permalink:"/integrations-assemblyai",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"AssemblyAI",sidebar_position:1,slug:"/integrations-assemblyai"},sidebar:"defaultSidebar",previous:{title:"Environment variables",permalink:"/environment-variables"},next:{title:"Integrate Google OAuth with Langflow",permalink:"/integrations-setup-google-oauth-langflow"}},a={},c=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Components",id:"components",level:2},{value:"AssemblyAI Start Transcript",id:"assemblyai-start-transcript",level:3},{value:"AssebmlyAI Poll Transcript",id:"assebmlyai-poll-transcript",level:3},{value:"AssebmlyAI Get Subtitles",id:"assebmlyai-get-subtitles",level:3},{value:"AssebmlyAI LeMUR",id:"assebmlyai-lemur",level:3},{value:"AssemblyAI List Transcripts",id:"assemblyai-list-transcripts",level:3},{value:"Flow Process",id:"flow-process",level:2},{value:"Run the Transcription and Speech AI Flow",id:"run-the-transcription-and-speech-ai-flow",level:2},{value:"Customization",id:"customization",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function h(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"assemblyai",children:"AssemblyAI"})}),"\n",(0,t.jsx)(n.p,{children:"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Transcribing audio and video files"}),"\n",(0,t.jsx)(n.li,{children:"Formatting transcripts"}),"\n",(0,t.jsx)(n.li,{children:"Generating subtitles"}),"\n",(0,t.jsx)(n.li,{children:"Applying LLMs to audio files"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"More info about AssemblyAI:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/",children:"Website"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs",children:"AssemblyAI API Docs"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/dashboard/signup",children:"Get a Free API key"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,t.jsxs)(n.p,{children:["You need an ",(0,t.jsx)(n.strong,{children:"AssemblyAI API key"}),". After creating a free account, you'll find the API key in your dashboard. ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/dashboard/signup",children:"Get a Free API key here"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Enter the key in the ",(0,t.jsx)(n.em,{children:"AssemblyAI API Key"})," field in all components that require the key."]}),"\n",(0,t.jsx)(n.p,{children:"(Optional): To use LeMUR, you need to upgrade your AssemblyAI account, since this is not included in the free account."}),"\n",(0,t.jsx)(n.h2,{id:"components",children:"Components"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"AssemblyAI Components",src:s(7835).A+"",width:"1494",height:"1048"})}),"\n",(0,t.jsx)(n.h3,{id:"assemblyai-start-transcript",children:"AssemblyAI Start Transcript"}),"\n",(0,t.jsx)(n.p,{children:"This component allows you to submit an audio or video file for transcription."}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Tip"}),": You can freeze the path of this component to only submit the file once."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsx)(n.li,{children:"Audio File: The audio or video file to transcribe."}),"\n",(0,t.jsxs)(n.li,{children:["Speech Model (Optional): Select the class of models. Default is ",(0,t.jsx)(n.em,{children:"Best"}),". See ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs/speech-to-text/speech-recognition#select-the-speech-model-with-best-and-nano",children:"speech models"})," for more info."]}),"\n",(0,t.jsx)(n.li,{children:"Automatic Language Detection (Optional): Enable automatic language detection."}),"\n",(0,t.jsxs)(n.li,{children:["Language (Optional): The language of the audio file. Can be set manually if automatic language detection is disabled.\nSee ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs/getting-started/supported-languages",children:"supported languages"})," for a list of supported language codes."]}),"\n",(0,t.jsx)(n.li,{children:"Enable Speaker Labels (Optional): Detect speakers in an audio file and what each speaker said."}),"\n",(0,t.jsx)(n.li,{children:"Expected Number of Speakers (Optional): Set the expected number of speakers, if Speaker Labels is enabled."}),"\n",(0,t.jsxs)(n.li,{children:["Audio File URL (Optional): The URL of the audio or video file to transcribe. Can be used instead of ",(0,t.jsx)(n.em,{children:"Audio File"}),"."]}),"\n",(0,t.jsx)(n.li,{children:"Punctuate (Optional): Apply punctuation. Default is true."}),"\n",(0,t.jsx)(n.li,{children:"Format Text (Optional): Apply casing and text formatting. Default is true."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Transcript ID: The id of the transcript"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"assebmlyai-poll-transcript",children:"AssebmlyAI Poll Transcript"}),"\n",(0,t.jsx)(n.p,{children:"This components allows you to poll the transcripts. It checks the status of the transcript every few seconds until the transcription is completed."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsx)(n.li,{children:"Polling Interval (Optional): The polling interval in seconds. Default is 3."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Transcription Result: The AssemblyAI JSON response of a completed transcript. Contains the text and other info."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"assebmlyai-get-subtitles",children:"AssebmlyAI Get Subtitles"}),"\n",(0,t.jsx)(n.p,{children:"This component allows you to generate subtitles in SRT or VTT format."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsxs)(n.li,{children:["Transcription Result: The output of the ",(0,t.jsx)(n.em,{children:"Poll Transcript"})," component."]}),"\n",(0,t.jsx)(n.li,{children:"Subtitle Format: The format of the captions (SRT or VTT)."}),"\n",(0,t.jsx)(n.li,{children:"Character per Caption (Optional): The maximum number of characters per caption (0 for no limit)."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Subtitles: A JSON response with the ",(0,t.jsx)(n.code,{children:"subtitles"})," field containing the captions in SRT or VTT format."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"assebmlyai-lemur",children:"AssebmlyAI LeMUR"}),"\n",(0,t.jsxs)(n.p,{children:["This component allows you to apply Large Language Models to spoken data using the ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs/lemur",children:"AssemblyAI LeMUR framework"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"LeMUR automatically ingests the transcript as additional context, making it easy to apply LLMs to audio data. You can use it for tasks like summarizing audio, extracting insights, or asking questions."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsxs)(n.li,{children:["Transcription Result: The output of the ",(0,t.jsx)(n.em,{children:"Poll Transcript"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Input Prompt: The text to prompt the model. You can type your prompt in this field or connect it to a ",(0,t.jsx)(n.em,{children:"Prompt"})," component."]}),"\n",(0,t.jsx)(n.li,{children:"Final Model: The model that is used for the final prompt after compression is performed. Default is Claude 3.5 Sonnet."}),"\n",(0,t.jsx)(n.li,{children:"Temperature (Optional): The temperature to use for the model. Default is 0.0."}),"\n",(0,t.jsx)(n.li,{children:"Max Output Size (Optional): Max output size in tokens, up to 4000. Default is 2000."}),"\n",(0,t.jsxs)(n.li,{children:['Endpoint (Optional): The LeMUR endpoint to use. Default is "task". For "summary" and "question-answer", no prompt input is needed. See ',(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs/api-reference/lemur/",children:"LeMUR API docs"})," for more info."]}),"\n",(0,t.jsxs)(n.li,{children:["Questions (Optional): Comma-separated list of your questions. Only used if ",(0,t.jsx)(n.em,{children:"Endpoint"}),' is "question-answer".']}),"\n",(0,t.jsxs)(n.li,{children:["Transcript IDs (Optional): Comma-separated list of transcript IDs. LeMUR can perform actions over multiple transcripts. If provided, the ",(0,t.jsx)(n.em,{children:"Transcription Result"})," is ignored."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"LeMUR Response: The generated LLM response."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"assemblyai-list-transcripts",children:"AssemblyAI List Transcripts"}),"\n",(0,t.jsx)(n.p,{children:"This component can be used as a standalone component to list all previously generated transcripts."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsx)(n.li,{children:"Limit (Optional): Maximum number of transcripts to retrieve. Default is 20, use 0 for all."}),"\n",(0,t.jsx)(n.li,{children:"Filter (Optional): Filter by transcript status."}),"\n",(0,t.jsx)(n.li,{children:"Created On (Optional): Only get transcripts created on this date (YYYY-MM-DD)."}),"\n",(0,t.jsx)(n.li,{children:"Throttled Only (Optional): Only get throttled transcripts, overrides the status filter"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Transcript List: A list of all transcripts with info such as the transcript ID, the status, and the data."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"flow-process",children:"Flow Process"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"The user inputs an audio or video file."}),"\n",(0,t.jsx)(n.li,{children:"The user can also input an LLM prompt. In this example, we want to generate a summary of the transcript."}),"\n",(0,t.jsx)(n.li,{children:"The flow submits the audio file for transcription."}),"\n",(0,t.jsx)(n.li,{children:"The flow checks the status of the transcript every few seconds until transcription is completed."}),"\n",(0,t.jsx)(n.li,{children:"The flow parses the transcription result and outputs the transcribed text."}),"\n",(0,t.jsx)(n.li,{children:"The flow also generates subtitles."}),"\n",(0,t.jsx)(n.li,{children:"The flow applies the LLM prompt to generate a summary."}),"\n",(0,t.jsx)(n.li,{children:"As a standalone component, all transcripts can be listed."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"run-the-transcription-and-speech-ai-flow",children:"Run the Transcription and Speech AI Flow"}),"\n",(0,t.jsx)(n.p,{children:"To run the Transcription and Speech AI Flow:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Open Langflow and create a new project."}),"\n",(0,t.jsxs)(n.li,{children:["Add the components listed above to your flow canvas, or download the ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(8618).A+"",children:"AssemblyAI Transcription and Speech AI Flow"}),"(Download link) and ",(0,t.jsx)(n.strong,{children:"Import"})," the JSON file into Langflow."]}),"\n",(0,t.jsxs)(n.li,{children:["Connect the components as shown in the flow diagram. ",(0,t.jsx)(n.strong,{children:"Tip"}),": Freeze the path of the ",(0,t.jsx)(n.em,{children:"Start Transcript"})," component to only submit the file once."]}),"\n",(0,t.jsx)(n.li,{children:"Input the AssemblyAI API key in in all components that require the key (Start Transcript, Poll Transcript, Get Subtitles, LeMUR, List Transcripts)."}),"\n",(0,t.jsxs)(n.li,{children:["Select an audio or video file in the ",(0,t.jsx)(n.em,{children:"Start Transcript"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Run the flow by clicking ",(0,t.jsx)(n.strong,{children:"Play"})," on the ",(0,t.jsx)(n.em,{children:"Parse Data"})," component. Make sure that the specified template is ",(0,t.jsx)(n.code,{children:"{text}"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["To generate subtitles, click ",(0,t.jsx)(n.strong,{children:"Play"})," on the ",(0,t.jsx)(n.em,{children:"Get Subtitles"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["To apply an LLM to your audio file, click ",(0,t.jsx)(n.strong,{children:"Play"})," on the ",(0,t.jsx)(n.em,{children:"LeMUR"})," component. Note that you need an upgraded AssemblyAI account to use LeMUR."]}),"\n",(0,t.jsxs)(n.li,{children:["To list all transcripts, click ",(0,t.jsx)(n.strong,{children:"Play"})," on the ",(0,t.jsx)(n.em,{children:"List Transcript"})," component."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"customization",children:"Customization"}),"\n",(0,t.jsx)(n.p,{children:"The flow can be customized by:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Modifying the parameters in the ",(0,t.jsx)(n.em,{children:"Start Transcript"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Modifying the subtitle format in the ",(0,t.jsx)(n.em,{children:"Get Subtitles"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Modifying the LLM prompt for input of the ",(0,t.jsx)(n.em,{children:"LeMUR"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Modifying the LLM parameters (e.g., temperature) in the ",(0,t.jsx)(n.em,{children:"LeMUR"})," component."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,t.jsx)(n.p,{children:"If you encounter issues:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Ensure the API key is correctly set in all components that require the key."}),"\n",(0,t.jsx)(n.li,{children:"To use LeMUR, you need to upgrade your AssemblyAI account, since this is not included in the free account."}),"\n",(0,t.jsx)(n.li,{children:"Verify that all components are properly connected in the flow."}),"\n",(0,t.jsx)(n.li,{children:"Review the Langflow logs for any error messages."}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["For more advanced usage, refer to the ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs/",children:"AssemblyAI API documentation"}),". If you need more help, you can reach out to the ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/contact/support",children:"AssemblyAI support"}),"."]})]})}function d(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},8618:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/files/AssemblyAI_Flow-368be24ae9542f0b8b5253cc9d97b42f.json"},7835:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/assemblyai-components-b88c7c97e04114bf658898f7fc633e23.png"},8453:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>o});var t=s(6540);const i={},l=t.createContext(i);function r(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/829ff4d2.a70627a2.js b/assets/js/829ff4d2.a70627a2.js new file mode 100644 index 0000000000..bbbc8ea7c9 --- /dev/null +++ b/assets/js/829ff4d2.a70627a2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3964],{4745:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var t=s(4848),i=s(8453);const l={title:"AssemblyAI",sidebar_position:1,slug:"/integrations-assemblyai"},r="AssemblyAI",o={id:"Integrations/integrations-assemblyai",title:"AssemblyAI",description:"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:",source:"@site/docs/Integrations/integrations-assemblyai.md",sourceDirName:"Integrations",slug:"/integrations-assemblyai",permalink:"/integrations-assemblyai",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{title:"AssemblyAI",sidebar_position:1,slug:"/integrations-assemblyai"},sidebar:"defaultSidebar",previous:{title:"Configure an external PostgreSQL database",permalink:"/Configuration/configuration-custom-database"},next:{title:"Integrate Google OAuth with Langflow",permalink:"/integrations-setup-google-oauth-langflow"}},a={},c=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Components",id:"components",level:2},{value:"AssemblyAI Start Transcript",id:"assemblyai-start-transcript",level:3},{value:"AssebmlyAI Poll Transcript",id:"assebmlyai-poll-transcript",level:3},{value:"AssebmlyAI Get Subtitles",id:"assebmlyai-get-subtitles",level:3},{value:"AssebmlyAI LeMUR",id:"assebmlyai-lemur",level:3},{value:"AssemblyAI List Transcripts",id:"assemblyai-list-transcripts",level:3},{value:"Flow Process",id:"flow-process",level:2},{value:"Run the Transcription and Speech AI Flow",id:"run-the-transcription-and-speech-ai-flow",level:2},{value:"Customization",id:"customization",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function h(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"assemblyai",children:"AssemblyAI"})}),"\n",(0,t.jsx)(n.p,{children:"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Transcribing audio and video files"}),"\n",(0,t.jsx)(n.li,{children:"Formatting transcripts"}),"\n",(0,t.jsx)(n.li,{children:"Generating subtitles"}),"\n",(0,t.jsx)(n.li,{children:"Applying LLMs to audio files"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"More info about AssemblyAI:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/",children:"Website"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs",children:"AssemblyAI API Docs"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/dashboard/signup",children:"Get a Free API key"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,t.jsxs)(n.p,{children:["You need an ",(0,t.jsx)(n.strong,{children:"AssemblyAI API key"}),". After creating a free account, you'll find the API key in your dashboard. ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/dashboard/signup",children:"Get a Free API key here"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Enter the key in the ",(0,t.jsx)(n.em,{children:"AssemblyAI API Key"})," field in all components that require the key."]}),"\n",(0,t.jsx)(n.p,{children:"(Optional): To use LeMUR, you need to upgrade your AssemblyAI account, since this is not included in the free account."}),"\n",(0,t.jsx)(n.h2,{id:"components",children:"Components"}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.img,{alt:"AssemblyAI Components",src:s(7835).A+"",width:"1494",height:"1048"})}),"\n",(0,t.jsx)(n.h3,{id:"assemblyai-start-transcript",children:"AssemblyAI Start Transcript"}),"\n",(0,t.jsx)(n.p,{children:"This component allows you to submit an audio or video file for transcription."}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Tip"}),": You can freeze the path of this component to only submit the file once."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsx)(n.li,{children:"Audio File: The audio or video file to transcribe."}),"\n",(0,t.jsxs)(n.li,{children:["Speech Model (Optional): Select the class of models. Default is ",(0,t.jsx)(n.em,{children:"Best"}),". See ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs/speech-to-text/speech-recognition#select-the-speech-model-with-best-and-nano",children:"speech models"})," for more info."]}),"\n",(0,t.jsx)(n.li,{children:"Automatic Language Detection (Optional): Enable automatic language detection."}),"\n",(0,t.jsxs)(n.li,{children:["Language (Optional): The language of the audio file. Can be set manually if automatic language detection is disabled.\nSee ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs/getting-started/supported-languages",children:"supported languages"})," for a list of supported language codes."]}),"\n",(0,t.jsx)(n.li,{children:"Enable Speaker Labels (Optional): Detect speakers in an audio file and what each speaker said."}),"\n",(0,t.jsx)(n.li,{children:"Expected Number of Speakers (Optional): Set the expected number of speakers, if Speaker Labels is enabled."}),"\n",(0,t.jsxs)(n.li,{children:["Audio File URL (Optional): The URL of the audio or video file to transcribe. Can be used instead of ",(0,t.jsx)(n.em,{children:"Audio File"}),"."]}),"\n",(0,t.jsx)(n.li,{children:"Punctuate (Optional): Apply punctuation. Default is true."}),"\n",(0,t.jsx)(n.li,{children:"Format Text (Optional): Apply casing and text formatting. Default is true."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Transcript ID: The id of the transcript"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"assebmlyai-poll-transcript",children:"AssebmlyAI Poll Transcript"}),"\n",(0,t.jsx)(n.p,{children:"This components allows you to poll the transcripts. It checks the status of the transcript every few seconds until the transcription is completed."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsx)(n.li,{children:"Polling Interval (Optional): The polling interval in seconds. Default is 3."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Transcription Result: The AssemblyAI JSON response of a completed transcript. Contains the text and other info."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"assebmlyai-get-subtitles",children:"AssebmlyAI Get Subtitles"}),"\n",(0,t.jsx)(n.p,{children:"This component allows you to generate subtitles in SRT or VTT format."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsxs)(n.li,{children:["Transcription Result: The output of the ",(0,t.jsx)(n.em,{children:"Poll Transcript"})," component."]}),"\n",(0,t.jsx)(n.li,{children:"Subtitle Format: The format of the captions (SRT or VTT)."}),"\n",(0,t.jsx)(n.li,{children:"Character per Caption (Optional): The maximum number of characters per caption (0 for no limit)."}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Subtitles: A JSON response with the ",(0,t.jsx)(n.code,{children:"subtitles"})," field containing the captions in SRT or VTT format."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"assebmlyai-lemur",children:"AssebmlyAI LeMUR"}),"\n",(0,t.jsxs)(n.p,{children:["This component allows you to apply Large Language Models to spoken data using the ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs/lemur",children:"AssemblyAI LeMUR framework"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"LeMUR automatically ingests the transcript as additional context, making it easy to apply LLMs to audio data. You can use it for tasks like summarizing audio, extracting insights, or asking questions."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsxs)(n.li,{children:["Transcription Result: The output of the ",(0,t.jsx)(n.em,{children:"Poll Transcript"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Input Prompt: The text to prompt the model. You can type your prompt in this field or connect it to a ",(0,t.jsx)(n.em,{children:"Prompt"})," component."]}),"\n",(0,t.jsx)(n.li,{children:"Final Model: The model that is used for the final prompt after compression is performed. Default is Claude 3.5 Sonnet."}),"\n",(0,t.jsx)(n.li,{children:"Temperature (Optional): The temperature to use for the model. Default is 0.0."}),"\n",(0,t.jsx)(n.li,{children:"Max Output Size (Optional): Max output size in tokens, up to 4000. Default is 2000."}),"\n",(0,t.jsxs)(n.li,{children:['Endpoint (Optional): The LeMUR endpoint to use. Default is "task". For "summary" and "question-answer", no prompt input is needed. See ',(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs/api-reference/lemur/",children:"LeMUR API docs"})," for more info."]}),"\n",(0,t.jsxs)(n.li,{children:["Questions (Optional): Comma-separated list of your questions. Only used if ",(0,t.jsx)(n.em,{children:"Endpoint"}),' is "question-answer".']}),"\n",(0,t.jsxs)(n.li,{children:["Transcript IDs (Optional): Comma-separated list of transcript IDs. LeMUR can perform actions over multiple transcripts. If provided, the ",(0,t.jsx)(n.em,{children:"Transcription Result"})," is ignored."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"LeMUR Response: The generated LLM response."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"assemblyai-list-transcripts",children:"AssemblyAI List Transcripts"}),"\n",(0,t.jsx)(n.p,{children:"This component can be used as a standalone component to list all previously generated transcripts."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Input"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"AssemblyAI API Key: Your API key."}),"\n",(0,t.jsx)(n.li,{children:"Limit (Optional): Maximum number of transcripts to retrieve. Default is 20, use 0 for all."}),"\n",(0,t.jsx)(n.li,{children:"Filter (Optional): Filter by transcript status."}),"\n",(0,t.jsx)(n.li,{children:"Created On (Optional): Only get transcripts created on this date (YYYY-MM-DD)."}),"\n",(0,t.jsx)(n.li,{children:"Throttled Only (Optional): Only get throttled transcripts, overrides the status filter"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Output"}),":"]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Transcript List: A list of all transcripts with info such as the transcript ID, the status, and the data."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"flow-process",children:"Flow Process"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"The user inputs an audio or video file."}),"\n",(0,t.jsx)(n.li,{children:"The user can also input an LLM prompt. In this example, we want to generate a summary of the transcript."}),"\n",(0,t.jsx)(n.li,{children:"The flow submits the audio file for transcription."}),"\n",(0,t.jsx)(n.li,{children:"The flow checks the status of the transcript every few seconds until transcription is completed."}),"\n",(0,t.jsx)(n.li,{children:"The flow parses the transcription result and outputs the transcribed text."}),"\n",(0,t.jsx)(n.li,{children:"The flow also generates subtitles."}),"\n",(0,t.jsx)(n.li,{children:"The flow applies the LLM prompt to generate a summary."}),"\n",(0,t.jsx)(n.li,{children:"As a standalone component, all transcripts can be listed."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"run-the-transcription-and-speech-ai-flow",children:"Run the Transcription and Speech AI Flow"}),"\n",(0,t.jsx)(n.p,{children:"To run the Transcription and Speech AI Flow:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Open Langflow and create a new project."}),"\n",(0,t.jsxs)(n.li,{children:["Add the components listed above to your flow canvas, or download the ",(0,t.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:s(8618).A+"",children:"AssemblyAI Transcription and Speech AI Flow"}),"(Download link) and ",(0,t.jsx)(n.strong,{children:"Import"})," the JSON file into Langflow."]}),"\n",(0,t.jsxs)(n.li,{children:["Connect the components as shown in the flow diagram. ",(0,t.jsx)(n.strong,{children:"Tip"}),": Freeze the path of the ",(0,t.jsx)(n.em,{children:"Start Transcript"})," component to only submit the file once."]}),"\n",(0,t.jsx)(n.li,{children:"Input the AssemblyAI API key in in all components that require the key (Start Transcript, Poll Transcript, Get Subtitles, LeMUR, List Transcripts)."}),"\n",(0,t.jsxs)(n.li,{children:["Select an audio or video file in the ",(0,t.jsx)(n.em,{children:"Start Transcript"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Run the flow by clicking ",(0,t.jsx)(n.strong,{children:"Play"})," on the ",(0,t.jsx)(n.em,{children:"Parse Data"})," component. Make sure that the specified template is ",(0,t.jsx)(n.code,{children:"{text}"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["To generate subtitles, click ",(0,t.jsx)(n.strong,{children:"Play"})," on the ",(0,t.jsx)(n.em,{children:"Get Subtitles"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["To apply an LLM to your audio file, click ",(0,t.jsx)(n.strong,{children:"Play"})," on the ",(0,t.jsx)(n.em,{children:"LeMUR"})," component. Note that you need an upgraded AssemblyAI account to use LeMUR."]}),"\n",(0,t.jsxs)(n.li,{children:["To list all transcripts, click ",(0,t.jsx)(n.strong,{children:"Play"})," on the ",(0,t.jsx)(n.em,{children:"List Transcript"})," component."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"customization",children:"Customization"}),"\n",(0,t.jsx)(n.p,{children:"The flow can be customized by:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Modifying the parameters in the ",(0,t.jsx)(n.em,{children:"Start Transcript"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Modifying the subtitle format in the ",(0,t.jsx)(n.em,{children:"Get Subtitles"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Modifying the LLM prompt for input of the ",(0,t.jsx)(n.em,{children:"LeMUR"})," component."]}),"\n",(0,t.jsxs)(n.li,{children:["Modifying the LLM parameters (e.g., temperature) in the ",(0,t.jsx)(n.em,{children:"LeMUR"})," component."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,t.jsx)(n.p,{children:"If you encounter issues:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Ensure the API key is correctly set in all components that require the key."}),"\n",(0,t.jsx)(n.li,{children:"To use LeMUR, you need to upgrade your AssemblyAI account, since this is not included in the free account."}),"\n",(0,t.jsx)(n.li,{children:"Verify that all components are properly connected in the flow."}),"\n",(0,t.jsx)(n.li,{children:"Review the Langflow logs for any error messages."}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["For more advanced usage, refer to the ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/docs/",children:"AssemblyAI API documentation"}),". If you need more help, you can reach out to the ",(0,t.jsx)(n.a,{href:"https://www.assemblyai.com/contact/support",children:"AssemblyAI support"}),"."]})]})}function d(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},8618:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/files/AssemblyAI_Flow-368be24ae9542f0b8b5253cc9d97b42f.json"},7835:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/assemblyai-components-b88c7c97e04114bf658898f7fc633e23.png"},8453:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>o});var t=s(6540);const i={},l=t.createContext(i);function r(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b7251463.2b78c2d5.js b/assets/js/b7251463.2b78c2d5.js new file mode 100644 index 0000000000..aa701624a1 --- /dev/null +++ b/assets/js/b7251463.2b78c2d5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[51],{733:(e,n,r)=>{r.r(n),r.d(n,{CH:()=>x,assets:()=>h,chCodeConfig:()=>j,contentTitle:()=>c,default:()=>L,frontMatter:()=>d,metadata:()=>a,toc:()=>u});var s=r(4848),t=r(8453),i=r(4754),o=r(1470),l=r(9365);const d={title:"Environment variables",sidebar_position:7,slug:"/environment-variables"},c=void 0,a={id:"Configuration/environment-variables",title:"Environment variables",description:"Langflow lets you configure a number of settings using environment variables.",source:"@site/docs/Configuration/environment-variables.md",sourceDirName:"Configuration",slug:"/environment-variables",permalink:"/environment-variables",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{title:"Environment variables",sidebar_position:7,slug:"/environment-variables"},sidebar:"defaultSidebar",previous:{title:"Auto-saving",permalink:"/configuration-auto-save"},next:{title:"Configure an external PostgreSQL database",permalink:"/Configuration/configuration-custom-database"}},h={},x={annotations:i.hk,Code:i.Cy},j={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Configure environment variables",id:"configure-environment-variables",level:2},{value:"Set environment variables in your terminal",id:"configure-variables-terminal",level:3},{value:"Import environment variables from a .env file",id:"configure-variables-env-file",level:3},{value:"Precedence",id:"precedence",level:2},{value:"Supported environment variables",id:"supported-variables",level:2}];function f(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return x||p("CH",!1),x.Code||p("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n",(0,s.jsx)(n.p,{children:"Langflow lets you configure a number of settings using environment variables."}),"\n",(0,s.jsx)(n.h2,{id:"configure-environment-variables",children:"Configure environment variables"}),"\n",(0,s.jsxs)(n.p,{children:["Langflow recognizes ",(0,s.jsx)(n.a,{href:"#supported-variables",children:"supported environment variables"})," from the following sources:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Environment variables that you've set in your terminal."}),"\n",(0,s.jsxs)(n.li,{children:["Environment variables that you've imported from a ",(0,s.jsx)(n.code,{children:".env"})," file using the ",(0,s.jsx)(n.code,{children:"--env-file"})," option in the Langflow CLI."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["You can choose to use one source exclusively, or use both sources together.\nIf you choose to use both sources together, be aware that environment variables imported from a ",(0,s.jsx)(n.code,{children:".env"})," file take ",(0,s.jsx)(n.a,{href:"#precedence",children:"precedence"})," over those set in your terminal."]}),"\n",(0,s.jsx)(n.h3,{id:"configure-variables-terminal",children:"Set environment variables in your terminal"}),"\n",(0,s.jsx)(n.p,{children:"Run the following commands to set environment variables for your current terminal session:"}),"\n",(0,s.jsxs)(o.A,{children:[(0,s.jsx)(l.A,{value:"linux-macos",label:"Linux or macOS",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:j,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" VARIABLE_NAME",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"'VALUE'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(l.A,{value:"windows",label:"Windows",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:j,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"set VARIABLE_NAME='VALUE'",props:{}}]}],lang:"text"},annotations:[]}]})}),(0,s.jsx)(l.A,{value:"docker",label:"Docker",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:j,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"-it --rm \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -p ",props:{style:{color:"#79C0FF"}}},{content:"7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860 \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -e ",props:{style:{color:"#79C0FF"}}},{content:"VARIABLE_NAME='VALUE' ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" langflowai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n",(0,s.jsxs)(n.p,{children:["When you start Langflow, it looks for environment variables that you've set in your terminal.\nIf it detects a supported environment variable, then it automatically adopts the specified value, subject to ",(0,s.jsx)(n.a,{href:"#precedence",children:"precedence rules"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"configure-variables-env-file",children:"Import environment variables from a .env file"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Create a ",(0,s.jsx)(n.code,{children:".env"})," file and open it in your preferred editor."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Add your environment variables to the file:"}),"\n",(0,s.jsx)(x.Code,{codeConfig:j,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",title:'".env"',focus:"",code:{lines:[{tokens:[{content:"VARIABLE_NAME='VALUE'",props:{}}]},{tokens:[{content:"VARIABLE_NAME='VALUE'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["The Langflow project includes a ",(0,s.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/.env.example",children:(0,s.jsx)(n.code,{children:".env.example"})})," file to help you get started.\nYou can copy the contents of this file into your own ",(0,s.jsx)(n.code,{children:".env"})," file and replace the example values with your own preferred settings."]})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Save and close the file."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Start Langflow using the ",(0,s.jsx)(n.code,{children:"--env-file"})," option to define the path to your ",(0,s.jsx)(n.code,{children:".env"})," file:"]}),"\n",(0,s.jsxs)(o.A,{children:[(0,s.jsx)(l.A,{value:"local",label:"Local",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:j,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow run ",props:{style:{color:"#A5D6FF"}}},{content:"--env-file ",props:{style:{color:"#79C0FF"}}},{content:".env",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})}),(0,s.jsx)(l.A,{value:"docker",label:"Docker",default:!0,children:(0,s.jsx)(x.Code,{codeConfig:j,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"-it --rm \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -p ",props:{style:{color:"#79C0FF"}}},{content:"7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860 \\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" --env-file ",props:{style:{color:"#79C0FF"}}},{content:".env ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" langflowai/langflow:latest",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]})})]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["On startup, Langflow imports the environment variables from your ",(0,s.jsx)(n.code,{children:".env"})," file, as well as any that you ",(0,s.jsx)(n.a,{href:"#configure-variables-terminal",children:"set in your terminal"}),", and adopts their specified values."]}),"\n",(0,s.jsx)(n.h2,{id:"precedence",children:"Precedence"}),"\n",(0,s.jsxs)(n.p,{children:["Environment variables ",(0,s.jsx)(n.a,{href:"#configure-variables-env-file",children:"defined in the .env file"})," take precedence over those ",(0,s.jsx)(n.a,{href:"#configure-variables-terminal",children:"set in your terminal"}),".\nThat means, if you happen to set the same environment variable in both your terminal and your ",(0,s.jsx)(n.code,{children:".env"})," file, Langflow adopts the value from the the ",(0,s.jsx)(n.code,{children:".env"})," file."]}),"\n",(0,s.jsx)(n.admonition,{title:"CLI precedence",type:"info",children:(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.a,{href:"/configuration-cli",children:"Langflow CLI options"})," override the value of corresponding environment variables defined in the ",(0,s.jsx)(n.code,{children:".env"})," file as well as any environment variables set in your terminal."]})}),"\n",(0,s.jsx)(n.h2,{id:"supported-variables",children:"Supported environment variables"}),"\n",(0,s.jsx)(n.p,{children:"The following table lists the environment variables supported by Langflow."}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Variable"}),(0,s.jsx)(n.th,{children:"Format / Values"}),(0,s.jsx)(n.th,{children:"Default"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"DO_NOT_TRACK"}),(0,s.jsx)(n.code,{children:"DO_NOT_TRACK"})]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"If enabled, Langflow will not track telemetry."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_AUTO_LOGIN"}),(0,s.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable automatic login for Langflow. Set to ",(0,s.jsx)(n.code,{children:"false"})," to disable automatic login and require the login form to log into the Langflow UI. Setting to ",(0,s.jsx)(n.code,{children:"false"})," requires ",(0,s.jsx)(n.a,{href:"#LANGFLOW_SUPERUSER",children:(0,s.jsx)(n.code,{children:"LANGFLOW_SUPERUSER"})})," and ",(0,s.jsx)(n.a,{href:"#LANGFLOW_SUPERUSER_PASSWORD",children:(0,s.jsx)(n.code,{children:"LANGFLOW_SUPERUSER_PASSWORD"})})," to be set."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_AUTO_SAVING"}),(0,s.jsx)(n.code,{children:"LANGFLOW_AUTO_SAVING"})]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable flow auto-saving.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-auto-saving",children:[(0,s.jsx)(n.code,{children:"--auto-saving"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_AUTO_SAVING_INTERVAL"}),(0,s.jsx)(n.code,{children:"LANGFLOW_AUTO_SAVING_INTERVAL"})]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"1000"})}),(0,s.jsxs)(n.td,{children:["Set the interval for flow auto-saving in milliseconds.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-auto-saving-interval",children:[(0,s.jsx)(n.code,{children:"--auto-saving-interval"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_BACKEND_ONLY"}),(0,s.jsx)(n.code,{children:"LANGFLOW_BACKEND_ONLY"})]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Only run Langflow's backend server (no frontend).",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-backend-only",children:[(0,s.jsx)(n.code,{children:"--backend-only"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_CACHE_TYPE"}),(0,s.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})]}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"async"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.code,{children:"redis"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.code,{children:"memory"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.code,{children:"disk"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.code,{children:"critical"})]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"async"})}),(0,s.jsxs)(n.td,{children:["Set the cache type for Langflow.",(0,s.jsx)("br",{}),"If you set the type to ",(0,s.jsx)(n.code,{children:"redis"}),", then you must also set the following environment variables: ",(0,s.jsx)(n.a,{href:"#LANGFLOW_REDIS_HOST",children:(0,s.jsx)(n.code,{children:"LANGFLOW_REDIS_HOST"})}),", ",(0,s.jsx)(n.a,{href:"#LANGFLOW_REDIS_PORT",children:(0,s.jsx)(n.code,{children:"LANGFLOW_REDIS_PORT"})}),", ",(0,s.jsx)(n.a,{href:"#LANGFLOW_REDIS_DB",children:(0,s.jsx)(n.code,{children:"LANGFLOW_REDIS_DB"})}),", and ",(0,s.jsx)(n.a,{href:"#LANGFLOW_REDIS_CACHE_EXPIRE",children:(0,s.jsx)(n.code,{children:"LANGFLOW_REDIS_CACHE_EXPIRE"})}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_COMPONENTS_PATH"}),(0,s.jsx)(n.code,{children:"LANGFLOW_COMPONENTS_PATH"})]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"langflow/components"})}),(0,s.jsxs)(n.td,{children:["Path to the directory containing custom components.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-components-path",children:[(0,s.jsx)(n.code,{children:"--components-path"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_CONFIG_DIR"}),(0,s.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"})]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{children:"Set the Langflow configuration directory where files, logs, and the Langflow database are stored."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_DATABASE_URL"}),(0,s.jsx)(n.code,{children:"LANGFLOW_DATABASE_URL"})]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{}),(0,s.jsx)(n.td,{children:"Set the database URL for Langflow. If you don't provide one, Langflow uses an SQLite database."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_DEV"}),(0,s.jsx)(n.code,{children:"LANGFLOW_DEV"})]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Run Langflow in development mode (may contain bugs).",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-dev",children:[(0,s.jsx)(n.code,{children:"--dev"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_FALLBACK_TO_ENV_VAR"}),(0,s.jsx)(n.code,{children:"LANGFLOW_FALLBACK_TO_ENV_VAR"})]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["If enabled, ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"})," set in the Langflow UI fall back to an environment variable with the same name when Langflow fails to retrieve the variable value."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_FRONTEND_PATH"}),(0,s.jsx)(n.code,{children:"LANGFLOW_FRONTEND_PATH"})]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"./frontend"})}),(0,s.jsxs)(n.td,{children:["Path to the frontend directory containing build files. This is for development purposes only.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-frontend-path",children:[(0,s.jsx)(n.code,{children:"--frontend-path"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES"}),(0,s.jsx)(n.code,{children:"LANGFLOW_HEALTH_CHECK_MAX_RETRIES"})]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"5"})}),(0,s.jsxs)(n.td,{children:["Set the maximum number of retries for the health check.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-health-check-max-retries",children:[(0,s.jsx)(n.code,{children:"--health-check-max-retries"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_HOST"}),(0,s.jsx)(n.code,{children:"LANGFLOW_HOST"})]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"127.0.0.1"})}),(0,s.jsxs)(n.td,{children:["The host on which the Langflow server will run.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-host",children:[(0,s.jsx)(n.code,{children:"--host"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_LANGCHAIN_CACHE"}),(0,s.jsx)(n.code,{children:"LANGFLOW_LANGCHAIN_CACHE"})]}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"InMemoryCache"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.code,{children:"SQLiteCache"})]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"InMemoryCache"})}),(0,s.jsxs)(n.td,{children:["Type of cache to use.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-cache",children:[(0,s.jsx)(n.code,{children:"--cache"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_LOG_FILE"}),(0,s.jsx)(n.code,{children:"LANGFLOW_LOG_FILE"})]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"logs/langflow.log"})}),(0,s.jsxs)(n.td,{children:["Set the path to the log file for Langflow.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-log-file",children:[(0,s.jsx)(n.code,{children:"--log-file"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_LOG_LEVEL"}),(0,s.jsx)(n.code,{children:"LANGFLOW_LOG_LEVEL"})]}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.code,{children:"debug"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.code,{children:"info"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.code,{children:"warning"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.code,{children:"error"}),(0,s.jsx)("br",{}),(0,s.jsx)(n.code,{children:"critical"})]}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"critical"})}),(0,s.jsxs)(n.td,{children:["Set the logging level.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-log-level",children:[(0,s.jsx)(n.code,{children:"--log-level"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"}),(0,s.jsx)(n.code,{children:"LANGFLOW_MAX_FILE_SIZE_UPLOAD"})]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"100"})}),(0,s.jsxs)(n.td,{children:["Set the maximum file size for the upload in megabytes.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-max-file-size-upload",children:[(0,s.jsx)(n.code,{children:"--max-file-size-upload"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_OPEN_BROWSER"}),(0,s.jsx)(n.code,{children:"LANGFLOW_OPEN_BROWSER"})]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Open the system web browser on startup.",(0,s.jsx)("br",{})," See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-open-browser",children:[(0,s.jsx)(n.code,{children:"--open-browser"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_PORT"}),(0,s.jsx)(n.code,{children:"LANGFLOW_PORT"})]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"7860"})}),(0,s.jsxs)(n.td,{children:["The port on which the Langflow server will run. The server automatically selects a free port if the specified port is in use.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-port",children:[(0,s.jsx)(n.code,{children:"--port"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_PROMETHEUS_ENABLED"}),(0,s.jsx)(n.code,{children:"LANGFLOW_PROMETHEUS_ENABLED"})]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsx)(n.td,{children:"Expose Prometheus metrics."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_PROMETHEUS_PORT"}),(0,s.jsx)(n.code,{children:"LANGFLOW_PROMETHEUS_PORT"})]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"9090"})}),(0,s.jsx)(n.td,{children:"Set the port on which Langflow exposes Prometheus metrics."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_REDIS_CACHE_EXPIRE"}),(0,s.jsx)(n.code,{children:"LANGFLOW_REDIS_CACHE_EXPIRE"})]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"3600"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)(n.a,{href:"#LANGFLOW_CACHE_TYPE",children:(0,s.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_REDIS_DB"}),(0,s.jsx)(n.code,{children:"LANGFLOW_REDIS_DB"})]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"0"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)(n.a,{href:"#LANGFLOW_CACHE_TYPE",children:(0,s.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_REDIS_HOST"}),(0,s.jsx)(n.code,{children:"LANGFLOW_REDIS_HOST"})]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"localhost"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)(n.a,{href:"#LANGFLOW_CACHE_TYPE",children:(0,s.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_REDIS_PORT"}),(0,s.jsx)(n.code,{children:"LANGFLOW_REDIS_PORT"})]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"6379"})}),(0,s.jsxs)(n.td,{children:["See ",(0,s.jsx)(n.a,{href:"#LANGFLOW_CACHE_TYPE",children:(0,s.jsx)(n.code,{children:"LANGFLOW_CACHE_TYPE"})}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_REMOVE_API_KEYS"}),(0,s.jsx)(n.code,{children:"LANGFLOW_REMOVE_API_KEYS"})]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Remove API keys from the projects saved in the database.",(0,s.jsx)("br",{})," See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-remove-api-keys",children:[(0,s.jsx)(n.code,{children:"--remove-api-keys"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR"}),(0,s.jsx)(n.code,{children:"LANGFLOW_SAVE_DB_IN_CONFIG_DIR"})]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"false"})}),(0,s.jsxs)(n.td,{children:["Save the Langflow database in ",(0,s.jsx)(n.a,{href:"#LANGFLOW_CONFIG_DIR",children:(0,s.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"})})," instead of in the Langflow package directory. Note, when this variable is set to default (",(0,s.jsx)(n.code,{children:"false"}),"), the database isn't shared between different virtual environments and the database is deleted when you uninstall Langflow."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_STORE"}),(0,s.jsx)(n.code,{children:"LANGFLOW_STORE"})]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Enable the Langflow Store.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-store",children:[(0,s.jsx)(n.code,{children:"--store"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES"}),(0,s.jsx)(n.code,{children:"LANGFLOW_STORE_ENVIRONMENT_VARIABLES"})]}),(0,s.jsx)(n.td,{children:"Boolean"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"true"})}),(0,s.jsxs)(n.td,{children:["Store environment variables as ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"})," in the database."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_SUPERUSER"}),(0,s.jsx)(n.code,{children:"LANGFLOW_SUPERUSER"})]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsxs)(n.td,{children:["Set the name for the superuser. Required if ",(0,s.jsx)(n.a,{href:"#LANGFLOW_AUTO_LOGIN",children:(0,s.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})})," is set to ",(0,s.jsx)(n.code,{children:"false"}),".",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#superuser-username",children:[(0,s.jsx)(n.code,{children:"superuser --username"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_SUPERUSER_PASSWORD"}),(0,s.jsx)(n.code,{children:"LANGFLOW_SUPERUSER_PASSWORD"})]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsxs)(n.td,{children:["Set the password for the superuser. Required if ",(0,s.jsx)(n.a,{href:"#LANGFLOW_AUTO_LOGIN",children:(0,s.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})})," is set to ",(0,s.jsx)(n.code,{children:"false"}),".",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#superuser-password",children:[(0,s.jsx)(n.code,{children:"superuser --password"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT"}),(0,s.jsx)(n.code,{children:"LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT"})]}),(0,s.jsx)(n.td,{children:"String"}),(0,s.jsx)(n.td,{children:"Not set"}),(0,s.jsxs)(n.td,{children:["Comma-separated list of environment variables to get from the environment and store as ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_WORKER_TIMEOUT"}),(0,s.jsx)(n.code,{children:"LANGFLOW_WORKER_TIMEOUT"})]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"300"})}),(0,s.jsxs)(n.td,{children:["Worker timeout in seconds.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-worker-timeout",children:[(0,s.jsx)(n.code,{children:"--worker-timeout"})," option"]}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsxs)(n.td,{children:[(0,s.jsx)("a",{id:"LANGFLOW_WORKERS"}),(0,s.jsx)(n.code,{children:"LANGFLOW_WORKERS"})]}),(0,s.jsx)(n.td,{children:"Integer"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"1"})}),(0,s.jsxs)(n.td,{children:["Number of worker processes.",(0,s.jsx)("br",{}),"See ",(0,s.jsxs)(n.a,{href:"/configuration-cli#run-workers",children:[(0,s.jsx)(n.code,{children:"--workers"})," option"]}),"."]})]})]})]})]})}function L(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(f,{...e})}):f(e)}function p(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},9365:(e,n,r)=>{r.d(n,{A:()=>o});r(6540);var s=r(8215);const t={tabItem:"tabItem_Ymn6"};var i=r(4848);function o(e){let{children:n,hidden:r,className:o}=e;return(0,i.jsx)("div",{role:"tabpanel",className:(0,s.A)(t.tabItem,o),hidden:r,children:n})}},1470:(e,n,r)=>{r.d(n,{A:()=>_});var s=r(6540),t=r(8215),i=r(3104),o=r(6347),l=r(205),d=r(7485),c=r(1682),a=r(679);function h(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad1&&p>2&&(P>4?(a+="\n".concat(w,"...").concat(S),l=!0):P>3&&(a+="\n ".concat(u[p-2]),A++),a+="\n ".concat(u[p-1]),A++),i=p,a+="\n".concat(k,"+").concat(S," ").concat(u[p]),A++;else{var j=d[p],N=u[p],R=N!==j&&(!v(N,",")||N.slice(0,-1)!==j);R&&v(j,",")&&j.slice(0,-1)===N&&(R=!1,N+=","),R?(P>1&&p>2&&(P>4?(a+="\n".concat(w,"...").concat(S),l=!0):P>3&&(a+="\n ".concat(u[p-2]),A++),a+="\n ".concat(u[p-1]),A++),i=p,a+="\n".concat(k,"+").concat(S," ").concat(N),o+="\n".concat(x,"-").concat(S," ").concat(j),A+=2):(a+=o,o="",1!==P&&0!==p||(a+="\n ".concat(N),A++))}if(A>20&&p >>0?1:0),g=o.low=g+N,o.high=h+j+(g>>>0 dc&&bc("overflow"),d==t){for(l=n,c=pc;!(l<(u=c<=a?1:c>=a+26?26:c-a));c+=pc)h=l-u,m=pc-u,g.push(yc(vc(u+h%m,0))),l=gc(h/m);g.push(yc(vc(l,0))),a=wc(n,f,r==o),n=0,++r}++n,++t}return g.join("")}(e):e})).join(".");return n+r}(e)}function xc(e){return null===e}function Sc(e){return"string"==typeof e}function _c(e){return"object"==typeof e&&null!==e}function Ec(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var Cc=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function Ac(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}}function Oc(e,t){if(e.map)return e.map(t);for(var n=[],r=0;r>>0?1:0),O=p.low=O+H,p.high=A+U+(O>>>0
255){z=r[_]>>>18&31,$s(t,u,T[z+257]),u+=P[z+257],z>7&&(zs(t,u,r[_]>>>23&31),u+=ks[z]);var $=31&r[_];$s(t,u,j[$]),u+=N[$],$>3&&($s(t,u,r[_]>>>5&8191),u+=xs[$])}else $s(t,u,T[r[_]]),u+=P[r[_]];return $s(t,u,T[256]),u+P[256]},Ks=new ws([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Ys=new bs(0),Qs=function(){for(var e=new ws(256),t=0;t<256;++t){for(var n=t,r=9;--r;)n=(1&n&&3988292384)^n>>>1;e[t]=n}return e}(),Xs=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8};function Zs(e,t){void 0===t&&(t={});var n=function(){var e=4294967295;return{p:function(t){for(var n=e,r=0;rU&&(U=V,j=H)}}}D+=(P=j)-(j=g[P])+32768&32767}if(I){k[C++]=268435456|As[L]<<18|Os[I];var G=31&As[L],W=31&Os[I];E+=ks[G]+xs[W],++x[257+G],++S[W],A=u+L,++_}else k[C++]=e[u],++x[e[u]]}}c=Ws(e,l,a,k,x,S,E,C,O,u-O,c),a||(c=Gs(l,c,Ys))}return Bs(s,0,r+Ms(c)+o)}(e,null==t.level?6:t.level,null==t.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,n,r,!o)}(e,t,function(e){return 10+(e.filename&&e.filename.length+1||0)}(t),8),a=o.length;return function(e,t){var n=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=t.level<2?4:9==t.level?2:0,e[9]=3,0!=t.mtime&&Xs(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),n){e[3]=8;for(var r=0;r<=n.length;++r)e[r+10]=n.charCodeAt(r)}}(o,t),Xs(o,a-8,n.d()),Xs(o,a-4,r),o}function Js(e,t){var n=e.length;if(!t&&"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);for(var r=new bs(e.length+(e.length>>>1)),o=0,a=function(e){r[o++]=e},i=0;i
gc((dc-n)/(f=r+1))&&bc("overflow"),n+=(s-t)*f,t=s,i=0;i=0?(c=f.substr(0,m),u=f.substr(m+1)):(c=f,u=""),d=decodeURIComponent(c),p=decodeURIComponent(u),Ec(o,d)?Cc(o[d])?o[d].push(p):o[d]=[o[d],p]:o[d]=p}return o}function jc(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}zl.URL,zl.URLSearchParams;var Nc=/^([a-z0-9.+-]+:)/i,Rc=/:[0-9]*$/,Lc=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,Ic=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),Fc=["'"].concat(Ic),Dc=["%","/","?",";","#"].concat(Fc),Mc=["/","?","#"],Bc=/^[+a-z0-9A-Z_-]{0,63}$/,zc=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,$c={javascript:!0,"javascript:":!0},qc={javascript:!0,"javascript:":!0},Uc={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function Hc(e){var t=e.auth||"";t&&(t=(t=encodeURIComponent(t)).replace(/%3A/i,":"),t+="@");var n=e.protocol||"",r=e.pathname||"",o=e.hash||"",a=!1,i="";e.host?a=t+e.host:e.hostname&&(a=t+(-1===e.hostname.indexOf(":")?e.hostname:"["+this.hostname+"]"),e.port&&(a+=":"+e.port)),e.query&&_c(e.query)&&Object.keys(e.query).length&&(i=function(e,t,n){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Oc(Tc(e),(function(r){var o=encodeURIComponent(Ac(r))+n;return Cc(e[r])?Oc(e[r],(function(e){return o+encodeURIComponent(Ac(e))})).join(t):o+encodeURIComponent(Ac(e[r]))})).join(t):""}(e.query));var s=e.search||i&&"?"+i||"";return n&&":"!==n.substr(-1)&&(n+=":"),e.slashes||(!n||Uc[n])&&!1!==a?(a="//"+(a||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):a||(a=""),o&&"#"!==o.charAt(0)&&(o="#"+o),s&&"?"!==s.charAt(0)&&(s="?"+s),n+a+(r=r.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+o}function Vc(e){var t=e.host,n=Rc.exec(t);n&&(":"!==(n=n[0])&&(e.port=n.substr(1)),t=t.substr(0,t.length-n.length)),t&&(e.hostname=t)}function Gc(e){return null!==e&&"object"==typeof e&&e.href&&e.origin}jc.prototype.parse=function(e,t,n){return function(e,t,n,r){if(!Sc(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var o=t.indexOf("?"),a=-1!==o&&o