diff --git a/404.html b/404.html index be284eebf7..da0c1f88c5 100644 --- a/404.html +++ b/404.html @@ -24,8 +24,8 @@ - - + + diff --git a/agent-tutorial.html b/agent-tutorial.html index c791ba22b0..f410fe6624 100644 --- a/agent-tutorial.html +++ b/agent-tutorial.html @@ -24,8 +24,8 @@ - - + + diff --git a/agents-tools.html b/agents-tools.html index 23357d7d86..66e99fa12c 100644 --- a/agents-tools.html +++ b/agents-tools.html @@ -24,8 +24,8 @@ - - + + diff --git a/agents.html b/agents.html index 3df6a97c60..752cab8b49 100644 --- a/agents.html +++ b/agents.html @@ -24,8 +24,8 @@ - - + + diff --git a/api-build.html b/api-build.html index 2adb110b40..877f17d705 100644 --- a/api-build.html +++ b/api-build.html @@ -24,8 +24,8 @@ - - + + diff --git a/api-files.html b/api-files.html index 980c131150..d531365f17 100644 --- a/api-files.html +++ b/api-files.html @@ -24,8 +24,8 @@ - - + + diff --git a/api-flows-run.html b/api-flows-run.html index 3abb699029..4153f4d11d 100644 --- a/api-flows-run.html +++ b/api-flows-run.html @@ -24,8 +24,8 @@ - - + + diff --git a/api-flows.html b/api-flows.html index 13a2b04ffd..42a0626364 100644 --- a/api-flows.html +++ b/api-flows.html @@ -24,8 +24,8 @@ - - + + diff --git a/api-keys-and-authentication.html b/api-keys-and-authentication.html index 5c4d1a1cc1..f55b8b49c0 100644 --- a/api-keys-and-authentication.html +++ b/api-keys-and-authentication.html @@ -24,8 +24,8 @@ - - + + diff --git a/api-logs.html b/api-logs.html index 5aa7fd1a79..24846ce576 100644 --- a/api-logs.html +++ b/api-logs.html @@ -24,8 +24,8 @@ - - + + diff --git a/api-monitor.html b/api-monitor.html index d4a2641eb3..5d22084f8f 100644 --- a/api-monitor.html +++ b/api-monitor.html @@ -24,8 +24,8 @@ - - + + diff --git a/api-openai-responses.html b/api-openai-responses.html index 749ca6d94a..3cfa836a22 100644 --- a/api-openai-responses.html +++ b/api-openai-responses.html @@ -24,8 +24,8 @@ - - + + diff --git a/api-projects.html b/api-projects.html index 1b8dbd9030..a9b5597a02 100644 --- a/api-projects.html +++ b/api-projects.html @@ -24,8 +24,8 @@ - - + + diff --git a/api-reference-api-examples.html b/api-reference-api-examples.html index b2dcef7024..3ce815ff6b 100644 --- a/api-reference-api-examples.html +++ b/api-reference-api-examples.html @@ -24,8 +24,8 @@ - - + + diff --git a/api-users.html b/api-users.html index acddc9b709..a49ee83a6f 100644 --- a/api-users.html +++ b/api-users.html @@ -24,8 +24,8 @@ - - + + diff --git a/api.html b/api.html index 43c67171d3..2a34d7ff2b 100644 --- a/api.html +++ b/api.html @@ -24,8 +24,8 @@ - - + + diff --git a/api/openapi.json.html b/api/openapi.json.html index f3639ed1ed..fa18124567 100644 --- a/api/openapi.json.html +++ b/api/openapi.json.html @@ -24,8 +24,8 @@ - - + + diff --git a/api/openapi.yaml.html b/api/openapi.yaml.html index 3f2081b423..2d6ec5f6d9 100644 --- a/api/openapi.yaml.html +++ b/api/openapi.yaml.html @@ -24,8 +24,8 @@ - - + + diff --git a/assets/js/22dd74f7.002d66c8.js b/assets/js/22dd74f7.002d66c8.js deleted file mode 100644 index d5c53da68a..0000000000 --- a/assets/js/22dd74f7.002d66c8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1567],{55226: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":{"docs":[{"type":"category","label":"Get started","items":[{"type":"link","label":"About Langflow","href":"/","docId":"Get-Started/about-langflow","unlisted":false},{"type":"link","label":"Install Langflow","href":"/get-started-installation","docId":"Get-Started/get-started-installation","unlisted":false},{"type":"link","label":"Quickstart","href":"/get-started-quickstart","docId":"Get-Started/get-started-quickstart","unlisted":false},{"type":"category","label":"Tutorials","items":[{"type":"link","label":"Create a vector RAG chatbot","href":"/chat-with-rag","docId":"Tutorials/chat-with-rag","unlisted":false},{"type":"link","label":"Create a chatbot that can ingest files","href":"/chat-with-files","docId":"Tutorials/chat-with-files","unlisted":false},{"type":"link","label":"Connect applications to agents","href":"/agent-tutorial","docId":"Tutorials/agent","unlisted":false},{"type":"link","label":"Connect to MCP servers from your application","href":"/mcp-tutorial","docId":"Tutorials/mcp-tutorial","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Flows","items":[{"type":"link","label":"Use the visual editor","href":"/concepts-overview","docId":"Flows/concepts-overview","unlisted":false},{"type":"link","label":"Build flows","href":"/concepts-flows","docId":"Flows/concepts-flows","unlisted":false},{"type":"category","label":"Run flows","items":[{"type":"link","label":"Trigger flows with the Langflow API","href":"/concepts-publish","docId":"Flows/concepts-publish","unlisted":false},{"type":"link","label":"Trigger flows with webhooks","href":"/webhook","docId":"Flows/webhook","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Test flows","href":"/concepts-playground","docId":"Flows/concepts-playground","unlisted":false},{"type":"link","label":"Import and export flows","href":"/concepts-flows-import","docId":"Flows/concepts-flows-import","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Agents","items":[{"type":"link","label":"Use Langflow agents","href":"/agents","docId":"Agents/agents","unlisted":false},{"type":"link","label":"Configure tools for agents","href":"/agents-tools","docId":"Agents/agents-tools","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Model Context Protocol (MCP)","items":[{"type":"link","label":"Use Langflow as an MCP client","href":"/mcp-client","docId":"Agents/mcp-client","unlisted":false},{"type":"link","label":"Use Langflow as an MCP server","href":"/mcp-server","docId":"Agents/mcp-server","unlisted":false},{"type":"link","label":"Connect an Astra DB MCP server to Langflow","href":"/mcp-component-astra","docId":"Agents/mcp-component-astra","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Develop","items":[{"type":"link","label":"API keys and authentication","href":"/api-keys-and-authentication","docId":"Develop/api-keys-and-authentication","unlisted":false},{"type":"link","label":"Install custom dependencies","href":"/install-custom-dependencies","docId":"Develop/install-custom-dependencies","unlisted":false},{"type":"link","label":"Global variables","href":"/configuration-global-variables","docId":"Develop/configuration-global-variables","unlisted":false},{"type":"link","label":"Environment variables","href":"/environment-variables","docId":"Develop/environment-variables","unlisted":false},{"type":"category","label":"Storage and memory","items":[{"type":"link","label":"Manage files","href":"/concepts-file-management","docId":"Develop/concepts-file-management","unlisted":false},{"type":"link","label":"Manage memory","href":"/memory","docId":"Develop/memory","unlisted":false},{"type":"link","label":"Use Session IDs","href":"/session-id","docId":"Develop/session-id","unlisted":false},{"type":"link","label":"Configure an external PostgreSQL database","href":"/configuration-custom-database","docId":"Develop/configuration-custom-database","unlisted":false},{"type":"link","label":"Database guide for enterprise administrators","href":"/enterprise-database-guide","docId":"Develop/enterprise-database-guide","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Observability","items":[{"type":"link","label":"Logs","href":"/logging","docId":"Develop/logging","unlisted":false},{"type":"category","label":"Monitoring","items":[{"type":"link","label":"Arize","href":"/integrations-arize","docId":"Develop/integrations-arize","unlisted":false},{"type":"link","label":"Langfuse","href":"/integrations-langfuse","docId":"Develop/integrations-langfuse","unlisted":false},{"type":"link","label":"LangSmith","href":"/integrations-langsmith","docId":"Develop/integrations-langsmith","unlisted":false},{"type":"link","label":"LangWatch","href":"/integrations-langwatch","docId":"Develop/integrations-langwatch","unlisted":false},{"type":"link","label":"Opik","href":"/integrations-opik","docId":"Develop/integrations-opik","unlisted":false},{"type":"link","label":"Traceloop","href":"/integrations-instana-traceloop","docId":"Develop/integrations-instana-traceloop","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Telemetry","href":"/contributing-telemetry","docId":"Develop/contributing-telemetry","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Use Langflow data types","href":"/data-types","docId":"Develop/data-types","unlisted":false},{"type":"link","label":"Use voice mode","href":"/concepts-voice-mode","docId":"Develop/concepts-voice-mode","unlisted":false},{"type":"link","label":"Use the Langflow CLI","href":"/configuration-cli","docId":"Develop/configuration-cli","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Deploy","items":[{"type":"link","label":"Langflow deployment overview","href":"/deployment-overview","docId":"Deployment/deployment-overview","unlisted":false},{"type":"link","label":"Deploy a public Langflow server","href":"/deployment-public-server","docId":"Deployment/deployment-public-server","unlisted":false},{"type":"link","label":"Deploy Langflow with Nginx and SSL","href":"/deployment-nginx-ssl","docId":"Deployment/deployment-nginx-ssl","unlisted":false},{"type":"category","label":"Containerized deployments","items":[{"type":"link","label":"Containerize a Langflow application","href":"/develop-application","docId":"Deployment/develop-application","unlisted":false},{"type":"link","label":"Langflow Docker images","href":"/deployment-docker","docId":"Deployment/deployment-docker","unlisted":false},{"type":"link","label":"Deploy Langflow on a remote server","href":"/deployment-caddyfile","docId":"Deployment/deployment-caddyfile","unlisted":false},{"type":"category","label":"Kubernetes","items":[{"type":"link","label":"Deployment architecture","href":"/deployment-architecture","docId":"Deployment/deployment-architecture","unlisted":false},{"type":"link","label":"Best practices","href":"/deployment-prod-best-practices","docId":"Deployment/deployment-prod-best-practices","unlisted":false},{"type":"link","label":"Deploy in development","href":"/deployment-kubernetes-dev","docId":"Deployment/deployment-kubernetes-dev","unlisted":false},{"type":"link","label":"Deploy in production","href":"/deployment-kubernetes-prod","docId":"Deployment/deployment-kubernetes-prod","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Cloud platforms","items":[{"type":"link","label":"Google Cloud Platform","href":"/deployment-gcp","docId":"Deployment/deployment-gcp","unlisted":false},{"type":"link","label":"Hugging Face Spaces","href":"/deployment-hugging-face-spaces","docId":"Deployment/deployment-hugging-face-spaces","unlisted":false},{"type":"link","label":"Railway","href":"/deployment-railway","docId":"Deployment/deployment-railway","unlisted":false},{"type":"link","label":"Render","href":"/deployment-render","docId":"Deployment/deployment-render","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Security","href":"/security","docId":"Deployment/security","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Components reference","items":[{"type":"link","label":"Components overview","href":"/concepts-components","docId":"Components/concepts-components","unlisted":false},{"type":"category","label":"Core components","items":[{"type":"link","label":"Input / Output","href":"/components-io","docId":"Components/components-io","unlisted":false},{"type":"link","label":"Agents","href":"/components-agents","docId":"Components/components-agents","unlisted":false},{"type":"category","label":"Models","items":[{"type":"link","label":"Language Model","href":"/components-models","docId":"Components/components-models","unlisted":false},{"type":"link","label":"Embedding Model","href":"/components-embedding-models","docId":"Components/components-embedding-models","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Data","href":"/components-data","docId":"Components/components-data","unlisted":false},{"type":"category","label":"Processing","items":[{"type":"link","label":"Processing components","href":"/components-processing","docId":"Components/components-processing","unlisted":false},{"type":"link","label":"Prompt Template","href":"/components-prompts","docId":"Components/components-prompts","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Logic","href":"/components-logic","docId":"Components/components-logic","unlisted":false},{"type":"link","label":"Helpers","href":"/components-helpers","docId":"Components/components-helpers","unlisted":false},{"type":"link","label":"Tools","href":"/components-tools","docId":"Components/components-tools","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Bundles","items":[{"type":"link","label":"About bundles","href":"/components-bundle-components","docId":"Components/components-bundles","unlisted":false},{"type":"link","label":"AI/ML API","href":"/bundles-aiml","docId":"Components/bundles-aiml","unlisted":false},{"type":"link","label":"Amazon","href":"/bundles-amazon","docId":"Components/bundles-amazon","unlisted":false},{"type":"link","label":"Anthropic","href":"/bundles-anthropic","docId":"Components/bundles-anthropic","unlisted":false},{"type":"link","label":"Apify","href":"/bundles-apify","docId":"Components/bundles-apify","unlisted":false},{"type":"link","label":"arXiv","href":"/bundles-arxiv","docId":"Components/bundles-arxiv","unlisted":false},{"type":"link","label":"AssemblyAI","href":"/bundles-assemblyai","docId":"Components/bundles-assemblyai","unlisted":false},{"type":"link","label":"Azure","href":"/bundles-azure","docId":"Components/bundles-azure","unlisted":false},{"type":"link","label":"Baidu","href":"/bundles-baidu","docId":"Components/bundles-baidu","unlisted":false},{"type":"link","label":"Bing","href":"/bundles-bing","docId":"Components/bundles-bing","unlisted":false},{"type":"link","label":"Cassandra","href":"/bundles-cassandra","docId":"Components/bundles-cassandra","unlisted":false},{"type":"link","label":"Chroma","href":"/bundles-chroma","docId":"Components/bundles-chroma","unlisted":false},{"type":"link","label":"Cleanlab","href":"/bundles-cleanlab","docId":"Components/bundles-cleanlab","unlisted":false},{"type":"link","label":"ClickHouse","href":"/bundles-clickhouse","docId":"Components/bundles-clickhouse","unlisted":false},{"type":"link","label":"Cloudflare","href":"/bundles-cloudflare","docId":"Components/bundles-cloudflare","unlisted":false},{"type":"link","label":"Cohere","href":"/bundles-cohere","docId":"Components/bundles-cohere","unlisted":false},{"type":"link","label":"Couchbase","href":"/bundles-couchbase","docId":"Components/bundles-couchbase","unlisted":false},{"type":"link","label":"DataStax","href":"/bundles-datastax","docId":"Components/bundles-datastax","unlisted":false},{"type":"link","label":"DeepSeek","href":"/bundles-deepseek","docId":"Components/bundles-deepseek","unlisted":false},{"type":"link","label":"Docling","href":"/bundles-docling","docId":"Components/bundles-docling","unlisted":false},{"type":"link","label":"DuckDuckGo","href":"/bundles-duckduckgo","docId":"Components/bundles-duckduckgo","unlisted":false},{"type":"link","label":"Elastic","href":"/bundles-elastic","docId":"Components/bundles-elastic","unlisted":false},{"type":"link","label":"Exa","href":"/bundles-exa","docId":"Components/bundles-exa","unlisted":false},{"type":"link","label":"FAISS","href":"/bundles-faiss","docId":"Components/bundles-faiss","unlisted":false},{"type":"link","label":"Glean","href":"/bundles-glean","docId":"Components/bundles-glean","unlisted":false},{"type":"link","label":"Google components","href":"/bundles-google","docId":"Components/bundles-google","unlisted":false},{"type":"link","label":"Groq","href":"/bundles-groq","docId":"Components/bundles-groq","unlisted":false},{"type":"link","label":"Hugging Face","href":"/bundles-huggingface","docId":"Components/bundles-huggingface","unlisted":false},{"type":"link","label":"IBM","href":"/bundles-ibm","docId":"Components/bundles-ibm","unlisted":false},{"type":"link","label":"Icosa Computing","href":"/bundles-icosacomputing","docId":"Components/bundles-icosacomputing","unlisted":false},{"type":"link","label":"LangChain","href":"/bundles-langchain","docId":"Components/bundles-langchain","unlisted":false},{"type":"link","label":"LM Studio","href":"/bundles-lmstudio","docId":"Components/bundles-lmstudio","unlisted":false},{"type":"link","label":"MariTalk","href":"/bundles-maritalk","docId":"Components/bundles-maritalk","unlisted":false},{"type":"link","label":"Mem0","href":"/bundles-mem0","docId":"Components/bundles-mem0","unlisted":false},{"type":"link","label":"Milvus","href":"/bundles-milvus","docId":"Components/bundles-milvus","unlisted":false},{"type":"link","label":"MistralAI","href":"/bundles-mistralai","docId":"Components/bundles-mistralai","unlisted":false},{"type":"link","label":"MongoDB","href":"/bundles-mongodb","docId":"Components/bundles-mongodb","unlisted":false},{"type":"link","label":"Notion","href":"/bundles-notion","docId":"Components/bundles-notion","unlisted":false},{"type":"link","label":"Novita","href":"/bundles-novita","docId":"Components/bundles-novita","unlisted":false},{"type":"link","label":"NVIDIA","href":"/bundles-nvidia","docId":"Components/bundles-nvidia","unlisted":false},{"type":"link","label":"Ollama","href":"/bundles-ollama","docId":"Components/bundles-ollama","unlisted":false},{"type":"link","label":"OpenAI","href":"/bundles-openai","docId":"Components/bundles-openai","unlisted":false},{"type":"link","label":"OpenRouter","href":"/bundles-openrouter","docId":"Components/bundles-openrouter","unlisted":false},{"type":"link","label":"Perplexity","href":"/bundles-perplexity","docId":"Components/bundles-perplexity","unlisted":false},{"type":"link","label":"pgvector","href":"/bundles-pgvector","docId":"Components/bundles-pgvector","unlisted":false},{"type":"link","label":"Pinecone","href":"/bundles-pinecone","docId":"Components/bundles-pinecone","unlisted":false},{"type":"link","label":"Qdrant","href":"/bundles-qdrant","docId":"Components/bundles-qdrant","unlisted":false},{"type":"link","label":"Redis","href":"/bundles-redis","docId":"Components/bundles-redis","unlisted":false},{"type":"link","label":"SambaNova","href":"/bundles-sambanova","docId":"Components/bundles-sambanova","unlisted":false},{"type":"link","label":"SearchApi","href":"/bundles-searchapi","docId":"Components/bundles-searchapi","unlisted":false},{"type":"link","label":"Serper","href":"/bundles-serper","docId":"Components/bundles-serper","unlisted":false},{"type":"link","label":"Supabase","href":"/bundles-supabase","docId":"Components/bundles-supabase","unlisted":false},{"type":"link","label":"Upstash","href":"/bundles-upstash","docId":"Components/bundles-upstash","unlisted":false},{"type":"link","label":"vLLM","href":"/bundles-vllm","docId":"Components/bundles-vllm","unlisted":false},{"type":"link","label":"Vectara","href":"/bundles-vectara","docId":"Components/bundles-vectara","unlisted":false},{"type":"link","label":"Vertex AI","href":"/bundles-vertexai","docId":"Components/bundles-vertexai","unlisted":false},{"type":"link","label":"Weaviate","href":"/bundles-weaviate","docId":"Components/bundles-weaviate","unlisted":false},{"type":"link","label":"Wikipedia","href":"/bundles-wikipedia","docId":"Components/bundles-wikipedia","unlisted":false},{"type":"link","label":"xAI","href":"/bundles-xai","docId":"Components/bundles-xai","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Create custom Python components","href":"/components-custom-components","docId":"Components/components-custom-components","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"API reference","items":[{"type":"link","label":"Get started with the Langflow API","href":"/api-reference-api-examples","docId":"API-Reference/api-reference-api-examples","unlisted":false},{"type":"link","label":"Use the TypeScript client","href":"/typescript-client","docId":"API-Reference/typescript-client","unlisted":false},{"type":"link","label":"Flow trigger endpoints","href":"/api-flows-run","docId":"API-Reference/api-flows-run","unlisted":false},{"type":"link","label":"OpenAI Responses endpoints","href":"/api-openai-responses","docId":"API-Reference/api-openai-responses","unlisted":false},{"type":"link","label":"Flow management endpoints","href":"/api-flows","docId":"API-Reference/api-flows","unlisted":false},{"type":"link","label":"Files endpoints","href":"/api-files","docId":"API-Reference/api-files","unlisted":false},{"type":"link","label":"Projects endpoints","href":"/api-projects","docId":"API-Reference/api-projects","unlisted":false},{"type":"link","label":"Logs endpoints","href":"/api-logs","docId":"API-Reference/api-logs","unlisted":false},{"type":"link","label":"Monitor endpoints","href":"/api-monitor","docId":"API-Reference/api-monitor","unlisted":false},{"type":"link","label":"Build endpoints","href":"/api-build","docId":"API-Reference/api-build","unlisted":false},{"type":"link","label":"Users endpoints","href":"/api-users","docId":"API-Reference/api-users","unlisted":false},{"type":"link","label":"Langflow API specification","href":"/api"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Contribute","items":[{"type":"link","label":"Join the Langflow community","href":"/contributing-community","docId":"Contributing/contributing-community","unlisted":false},{"type":"link","label":"Contribute to Langflow","href":"/contributing-how-to-contribute","docId":"Contributing/contributing-how-to-contribute","unlisted":false},{"type":"link","label":"Contribute components","href":"/contributing-components","docId":"Contributing/contributing-components","unlisted":false},{"type":"link","label":"Contribute component tests","href":"/contributing-component-tests","docId":"Contributing/contributing-component-tests","unlisted":false},{"type":"link","label":"Contribute templates","href":"/contributing-templates","docId":"Contributing/contributing-templates","unlisted":false},{"type":"link","label":"Contribute bundles","href":"/contributing-bundles","docId":"Contributing/contributing-bundles","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Release notes","items":[{"type":"link","label":"Release notes","href":"/release-notes","docId":"Support/release-notes","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Support","items":[{"type":"link","label":"Troubleshoot","href":"/troubleshoot","docId":"Support/troubleshooting","unlisted":false},{"type":"link","label":"Get help and request enhancements","href":"/contributing-github-issues","docId":"Support/contributing-github-issues","unlisted":false},{"type":"link","label":"IBM Elite Support for Langflow","href":"/luna-for-langflow","docId":"Support/luna-for-langflow","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"html","className":"sidebar-ad","value":"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n Get started in minutes\\n Download Langflow Desktop\\n
\\n \\n "}]},"docs":{"Agents/agents":{"id":"Agents/agents","title":"Use Langflow agents","description":"Langflow\'s Agent component is critical for building agent flows.","sidebar":"docs"},"Agents/agents-tools":{"id":"Agents/agents-tools","title":"Configure tools for agents","description":"By default, Langflow agents only include the functionality built-in to their base LLM.","sidebar":"docs"},"Agents/mcp-client":{"id":"Agents/mcp-client","title":"Use Langflow as an MCP client","description":"Langflow integrates with the Model Context Protocol (MCP) as both an MCP server and an MCP client.","sidebar":"docs"},"Agents/mcp-component-astra":{"id":"Agents/mcp-component-astra","title":"Connect an Astra DB MCP server to Langflow","description":"This guide demonstrates how to use Langflow as an MCP client by using the MCP Tools component to run a DataStax Astra DB MCP server in an agent flow.","sidebar":"docs"},"Agents/mcp-server":{"id":"Agents/mcp-server","title":"Use Langflow as an MCP server","description":"Langflow integrates with the Model Context Protocol (MCP) as both an MCP server and an MCP client.","sidebar":"docs"},"API-Reference/api-build":{"id":"API-Reference/api-build","title":"Build endpoints","description":"The /build endpoints are used by Langflow\'s frontend visual editor code.","sidebar":"docs"},"API-Reference/api-files":{"id":"API-Reference/api-files","title":"Files endpoints","description":"Use the /files endpoints to move files between your local machine and Langflow.","sidebar":"docs"},"API-Reference/api-flows":{"id":"API-Reference/api-flows","title":"Flow management endpoints","description":"Use the /flows endpoint to create, read, update, and delete flows.","sidebar":"docs"},"API-Reference/api-flows-run":{"id":"API-Reference/api-flows-run","title":"Flow trigger endpoints","description":"Use the /run and /webhook endpoints to run flows.","sidebar":"docs"},"API-Reference/api-logs":{"id":"API-Reference/api-logs","title":"Logs endpoints","description":"Retrieve logs for your Langflow flows and server.","sidebar":"docs"},"API-Reference/api-monitor":{"id":"API-Reference/api-monitor","title":"Monitor endpoints","description":"The /monitor endpoints are for internal Langflow functionality, primarily related to running flows in the Playground, storing chat history, and generating flow logs.","sidebar":"docs"},"API-Reference/api-openai-responses":{"id":"API-Reference/api-openai-responses","title":"OpenAI Responses API","description":"Langflow includes an endpoint that is compatible with the OpenAI Responses API.","sidebar":"docs"},"API-Reference/api-projects":{"id":"API-Reference/api-projects","title":"Projects endpoints","description":"Use the /projects endpoint to create, read, update, and delete Langflow projects.","sidebar":"docs"},"API-Reference/api-reference-api-examples":{"id":"API-Reference/api-reference-api-examples","title":"Get started with the Langflow API","description":"You can use the Langflow API for programmatic interactions with Langflow, such as the following:","sidebar":"docs"},"API-Reference/api-users":{"id":"API-Reference/api-users","title":"Users endpoints","description":"Use the /users endpoint to manage user accounts in Langflow.","sidebar":"docs"},"API-Reference/typescript-client":{"id":"API-Reference/typescript-client","title":"Langflow TypeScript client","description":"The Langflow TypeScript client allows your TypeScript applications to programmatically interact with the Langflow API.","sidebar":"docs"},"Components/bundles-aiml":{"id":"Components/bundles-aiml","title":"AI/ML API","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-amazon":{"id":"Components/bundles-amazon","title":"Amazon","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-anthropic":{"id":"Components/bundles-anthropic","title":"Anthropic","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-apify":{"id":"Components/bundles-apify","title":"Apify","description":"Apify is a web scraping and data extraction platform with more than 3,000 ready-made cloud tools called Actors.","sidebar":"docs"},"Components/bundles-arxiv":{"id":"Components/bundles-arxiv","title":"arXiv","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-assemblyai":{"id":"Components/bundles-assemblyai","title":"AssemblyAI","description":"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:","sidebar":"docs"},"Components/bundles-azure":{"id":"Components/bundles-azure","title":"Azure","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-baidu":{"id":"Components/bundles-baidu","title":"Baidu","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-bing":{"id":"Components/bundles-bing","title":"Bing","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-cassandra":{"id":"Components/bundles-cassandra","title":"Cassandra","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-chroma":{"id":"Components/bundles-chroma","title":"Chroma","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-cleanlab":{"id":"Components/bundles-cleanlab","title":"Cleanlab","description":"Cleanlab adds automation and trust to every data point going in and every prediction coming out of AI and RAG solutions.","sidebar":"docs"},"Components/bundles-clickhouse":{"id":"Components/bundles-clickhouse","title":"ClickHouse","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-cloudflare":{"id":"Components/bundles-cloudflare","title":"Cloudflare","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-cohere":{"id":"Components/bundles-cohere","title":"Cohere","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-composio":{"id":"Components/bundles-composio","title":"Composio","description":"Bundles contain custom components that support specific third-party integrations with Langflow."},"Components/bundles-couchbase":{"id":"Components/bundles-couchbase","title":"Couchbase","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-datastax":{"id":"Components/bundles-datastax","title":"DataStax","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-deepseek":{"id":"Components/bundles-deepseek","title":"DeepSeek","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-docling":{"id":"Components/bundles-docling","title":"Docling","description":"Langflow integrates with Docling through a bundle of components for parsing documents.","sidebar":"docs"},"Components/bundles-duckduckgo":{"id":"Components/bundles-duckduckgo","title":"DuckDuckGo","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-elastic":{"id":"Components/bundles-elastic","title":"Elastic","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-exa":{"id":"Components/bundles-exa","title":"Exa","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-faiss":{"id":"Components/bundles-faiss","title":"FAISS","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-glean":{"id":"Components/bundles-glean","title":"Glean","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-google":{"id":"Components/bundles-google","title":"Google components","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-groq":{"id":"Components/bundles-groq","title":"Groq","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-huggingface":{"id":"Components/bundles-huggingface","title":"Hugging Face","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-ibm":{"id":"Components/bundles-ibm","title":"IBM","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-icosacomputing":{"id":"Components/bundles-icosacomputing","title":"Icosa Computing","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-langchain":{"id":"Components/bundles-langchain","title":"LangChain","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-lmstudio":{"id":"Components/bundles-lmstudio","title":"LM Studio","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-maritalk":{"id":"Components/bundles-maritalk","title":"MariTalk","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-mem0":{"id":"Components/bundles-mem0","title":"Mem0","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-milvus":{"id":"Components/bundles-milvus","title":"Milvus","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-mistralai":{"id":"Components/bundles-mistralai","title":"MistralAI","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-mongodb":{"id":"Components/bundles-mongodb","title":"MongoDB","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-notion":{"id":"Components/bundles-notion","title":"Notion","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, and then provide two examples of flows with Notion components.","sidebar":"docs"},"Components/bundles-novita":{"id":"Components/bundles-novita","title":"Novita","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-nvidia":{"id":"Components/bundles-nvidia","title":"NVIDIA","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-ollama":{"id":"Components/bundles-ollama","title":"Ollama","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-openai":{"id":"Components/bundles-openai","title":"OpenAI","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-openrouter":{"id":"Components/bundles-openrouter","title":"OpenRouter","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-perplexity":{"id":"Components/bundles-perplexity","title":"Perplexity","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-pgvector":{"id":"Components/bundles-pgvector","title":"pgvector","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-pinecone":{"id":"Components/bundles-pinecone","title":"Pinecone","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-qdrant":{"id":"Components/bundles-qdrant","title":"Qdrant","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-redis":{"id":"Components/bundles-redis","title":"Redis","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-sambanova":{"id":"Components/bundles-sambanova","title":"SambaNova","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-searchapi":{"id":"Components/bundles-searchapi","title":"SearchApi","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-serper":{"id":"Components/bundles-serper","title":"Serper","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-supabase":{"id":"Components/bundles-supabase","title":"Supabase","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-upstash":{"id":"Components/bundles-upstash","title":"Upstash","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-vectara":{"id":"Components/bundles-vectara","title":"Vectara","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-vertexai":{"id":"Components/bundles-vertexai","title":"Vertex AI","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-vllm":{"id":"Components/bundles-vllm","title":"vLLM","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-weaviate":{"id":"Components/bundles-weaviate","title":"Weaviate","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-wikipedia":{"id":"Components/bundles-wikipedia","title":"Wikipedia","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-xai":{"id":"Components/bundles-xai","title":"xAI","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/components-agents":{"id":"Components/components-agents","title":"Agents","description":"Langflow\'s Agent and MCP Tools components are critical for building agent flows.","sidebar":"docs"},"Components/components-bundles":{"id":"Components/components-bundles","title":"About bundles","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/components-custom-components":{"id":"Components/components-custom-components","title":"Create custom Python components","description":"Custom components extend Langflow\'s functionality through Python classes that inherit from Component. This enables integration of new features, data manipulation, external services, and specialized tools.","sidebar":"docs"},"Components/components-data":{"id":"Components/components-data","title":"Data","description":"Data components bring data into your flows from various sources like files, API endpoints, and URLs.","sidebar":"docs"},"Components/components-embedding-models":{"id":"Components/components-embedding-models","title":"Embedding Model","description":"Embedding model components in Langflow generate text embeddings using a specified Large Language Model (LLM).","sidebar":"docs"},"Components/components-helpers":{"id":"Components/components-helpers","title":"Helpers","description":"Helper components provide utility functions to help manage data and perform simple tasks in your flow.","sidebar":"docs"},"Components/components-io":{"id":"Components/components-io","title":"Input / Output","description":"Input and output components define where data enters and exits your flow, but they don\'t have identical functionality.","sidebar":"docs"},"Components/components-logic":{"id":"Components/components-logic","title":"Logic","description":"Logic components provide functionalities for routing, conditional processing, and flow management.","sidebar":"docs"},"Components/components-models":{"id":"Components/components-models","title":"Language Model","description":"Language model components in Langflow generate text using a specified Large Language Model (LLM).","sidebar":"docs"},"Components/components-processing":{"id":"Components/components-processing","title":"Processing components","description":"Processing components process and transform data within a flow.","sidebar":"docs"},"Components/components-prompts":{"id":"Components/components-prompts","title":"Prompt Template","description":"Use the Prompt Template core component to create a prompt that supplies instructions and context to an LLM or agent, separate from other input like chat messages and file uploads.","sidebar":"docs"},"Components/components-tools":{"id":"Components/components-tools","title":"Tools","description":"In Langflow version 1.5, the Tools category was deprecated.","sidebar":"docs"},"Components/concepts-components":{"id":"Components/concepts-components","title":"Components overview","description":"Components are the building blocks of your flows.","sidebar":"docs"},"Contributing/contributing-bundles":{"id":"Contributing/contributing-bundles","title":"Contribute bundles","description":"Bundles are groups of components that are related to a specific service provider.","sidebar":"docs"},"Contributing/contributing-community":{"id":"Contributing/contributing-community","title":"Join the Langflow community","description":"There are several ways you can interact with the Langflow community and learn more about the Langflow codebase.","sidebar":"docs"},"Contributing/contributing-component-tests":{"id":"Contributing/contributing-component-tests","title":"Contribute component tests","description":"This guide outlines how to structure and implement tests for application components to ensure consistency and adequate coverage.","sidebar":"docs"},"Contributing/contributing-components":{"id":"Contributing/contributing-components","title":"Contribute components","description":"New components are added as objects of the Component class.","sidebar":"docs"},"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":"docs"},"Contributing/contributing-templates":{"id":"Contributing/contributing-templates","title":"Contribute templates","description":"Follow these best practices when submitting a template to Langflow.","sidebar":"docs"},"Deployment/deployment-architecture":{"id":"Deployment/deployment-architecture","title":"Langflow architecture on Kubernetes","description":"There are two broad types of Langflow deployments:","sidebar":"docs"},"Deployment/deployment-caddyfile":{"id":"Deployment/deployment-caddyfile","title":"Deploy Langflow on a remote server","description":"Learn how to deploy Langflow on your own remote server with secure web access.","sidebar":"docs"},"Deployment/deployment-docker":{"id":"Deployment/deployment-docker","title":"Deploy Langflow on Docker","description":"Running applications in Docker containers ensures consistent behavior across different systems and eliminates dependency conflicts.","sidebar":"docs"},"Deployment/deployment-gcp":{"id":"Deployment/deployment-gcp","title":"Deploy Langflow on Google Cloud Platform","description":"This guide demonstrates how to deploy Langflow on Google Cloud Platform with a Cloud Shell script that walks through the process of setting up a Debian-based VM with the Langflow package, Nginx, and the necessary configurations to run the Langflow development environment in GCP.","sidebar":"docs"},"Deployment/deployment-hugging-face-spaces":{"id":"Deployment/deployment-hugging-face-spaces","title":"Deploy Langflow on Hugging Face Spaces","description":"This guide explains how to deploy Langflow on Hugging Face Spaces.","sidebar":"docs"},"Deployment/deployment-kubernetes-dev":{"id":"Deployment/deployment-kubernetes-dev","title":"Deploy the Langflow development environment on Kubernetes","description":"The Langflow integrated development environment (IDE) Helm chart is designed to provide a complete environment for developers to create, test, and debug their flows. It includes both the Langflow API and visual editor.","sidebar":"docs"},"Deployment/deployment-kubernetes-prod":{"id":"Deployment/deployment-kubernetes-prod","title":"Deploy the Langflow production environment on Kubernetes","description":"The Langflow runtime Helm chart is tailored for deploying applications in a production environment. It is focused on stability, performance, isolation, and security to ensure that applications run reliably and efficiently.","sidebar":"docs"},"Deployment/deployment-nginx-ssl":{"id":"Deployment/deployment-nginx-ssl","title":"Deploy Langflow with Nginx and SSL","description":"Deploy Langflow on a Linux-based server using Nginx as a reverse proxy, Let\'s Encrypt for SSL certificates, and Certbot for automated certificate management.","sidebar":"docs"},"Deployment/deployment-overview":{"id":"Deployment/deployment-overview","title":"Langflow deployment overview","description":"This section includes the different ways to bring your locally-built flows to the world.","sidebar":"docs"},"Deployment/deployment-prod-best-practices":{"id":"Deployment/deployment-prod-best-practices","title":"Best practices for Langflow on Kubernetes","description":"This guide provides best practices for deploying Langflow in production environments on Kubernetes.","sidebar":"docs"},"Deployment/deployment-public-server":{"id":"Deployment/deployment-public-server","title":"Deploy a public Langflow server","description":"By default, your Langflow server at http7860 isn\'t exposed to the public internet.","sidebar":"docs"},"Deployment/deployment-railway":{"id":"Deployment/deployment-railway","title":"Deploy Langflow on Railway","description":"Deploy Langflow to Railway using a one-click template","sidebar":"docs"},"Deployment/deployment-render":{"id":"Deployment/deployment-render","title":"Deploy Langflow on Render","description":"This guide explains how to deploy Langflow on Render, a cloud platform for deploying web applications and APIs.","sidebar":"docs"},"Deployment/develop-application":{"id":"Deployment/develop-application","title":"Containerize a Langflow application","description":"Designing flows in the visual editor is only the first step in building an application that uses Langflow.","sidebar":"docs"},"Deployment/security":{"id":"Deployment/security","title":"Security","description":"The Langflow UI is an IDE and code execution platform, which means that Langflow is inherently capable of executing arbitrary,","sidebar":"docs"},"Develop/api-keys-and-authentication":{"id":"Develop/api-keys-and-authentication","title":"API keys and authentication","description":"Never expose Langflow ports directly to the internet without proper security measures.","sidebar":"docs"},"Develop/concepts-file-management":{"id":"Develop/concepts-file-management","title":"Manage files","description":"Each Langflow server has a file management system where you can store files that you want to use in your flows.","sidebar":"docs"},"Develop/concepts-voice-mode":{"id":"Develop/concepts-voice-mode","title":"Use voice mode","description":"Voice mode is not available in Langflow Desktop.","sidebar":"docs"},"Develop/configuration-cli":{"id":"Develop/configuration-cli","title":"Langflow CLI","description":"The Langflow command line interface is the main interface for managing and running the Langflow server.","sidebar":"docs"},"Develop/configuration-custom-database":{"id":"Develop/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":"docs"},"Develop/configuration-global-variables":{"id":"Develop/configuration-global-variables","title":"Global variables","description":"Use global variables to store and reuse credentials and generic values across all of your flows.","sidebar":"docs"},"Develop/contributing-telemetry":{"id":"Develop/contributing-telemetry","title":"Telemetry","description":"Langflow uses anonymous telemetry to collect statistics about feature usage and performance.","sidebar":"docs"},"Develop/data-types":{"id":"Develop/data-types","title":"Langflow data types","description":"Langflow components are designed to accept and produce specific types of inputs and outputs.","sidebar":"docs"},"Develop/enterprise-database-guide":{"id":"Develop/enterprise-database-guide","title":"Langflow database guide for enterprise DBAs","description":"The Langflow database stores data that is essential for more Langflow operations, including startup, flow execution, user interactions, and administrative tasks.","sidebar":"docs"},"Develop/environment-variables":{"id":"Develop/environment-variables","title":"Environment variables","description":"In general, environment variables, like LANGFLOWPORT or LANGFLOWLOG_LEVEL, configure how Langflow runs.","sidebar":"docs"},"Develop/install-custom-dependencies":{"id":"Develop/install-custom-dependencies","title":"Install custom dependencies","description":"Langflow provides optional dependency groups and support for custom dependencies to extend Langflow functionality. This guide covers how to add dependencies for different Langflow installations, including Langflow Desktop and Langflow OSS.","sidebar":"docs"},"Develop/integrations-arize":{"id":"Develop/integrations-arize","title":"Arize","description":"Arize is a tool built on OpenTelemetry and OpenInference for monitoring and optimizing LLM applications.","sidebar":"docs"},"Develop/integrations-instana-traceloop":{"id":"Develop/integrations-instana-traceloop","title":"Traceloop","description":"Instrument Langflow with the Traceloop SDK, and export traces and metrics to Instana using OpenTelemetry.","sidebar":"docs"},"Develop/integrations-langfuse":{"id":"Develop/integrations-langfuse","title":"Langfuse","description":"Langfuse is an open-source platform for LLM observability. It provides tracing and monitoring capabilities for AI applications, helping developers debug, analyze, and optimize their AI systems. Langfuse integrates with various tools and frameworks, including workflow builders and runtimes like Langflow.","sidebar":"docs"},"Develop/integrations-langsmith":{"id":"Develop/integrations-langsmith","title":"LangSmith","description":"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, add your LangChain API key and configuration as Langflow environment variables, and then start Langflow.","sidebar":"docs"},"Develop/integrations-langwatch":{"id":"Develop/integrations-langwatch","title":"LangWatch","description":"LangWatch is an all-in-one LLMOps platform for monitoring, observability, analytics, evaluations and alerting for getting user insights and improve your LLM workflows.","sidebar":"docs"},"Develop/integrations-opik":{"id":"Develop/integrations-opik","title":"Opik","description":"Opik is an open-source platform designed for evaluating, testing, and monitoring large language model (LLM) applications. Developed by Comet, it aims to facilitate more intuitive collaboration, testing, and monitoring of LLM-based applications.","sidebar":"docs"},"Develop/logging":{"id":"Develop/logging","title":"Logs","description":"Langflow produces logs for individual flows and the Langflow application itself using the structlog library for logging.","sidebar":"docs"},"Develop/memory":{"id":"Develop/memory","title":"Memory management options","description":"Langflow provides flexible memory management options for storage and retrieval of data relevant to your flows and your Langflow server.","sidebar":"docs"},"Develop/session-id":{"id":"Develop/session-id","title":"Use session ID to manage communication between components","description":"Session ID is a unique identifier for client/server connections. A single session equals the duration of a client\'s connection to a server.","sidebar":"docs"},"Flows/concepts-flows":{"id":"Flows/concepts-flows","title":"Build flows","description":"A flow is a functional representation of an application workflow.","sidebar":"docs"},"Flows/concepts-flows-import":{"id":"Flows/concepts-flows-import","title":"Import and export flows","description":"You can export flows to transfer them between Langflow instances, share them with others, or create backups.","sidebar":"docs"},"Flows/concepts-overview":{"id":"Flows/concepts-overview","title":"Use the visual editor","description":"You use Langflow\'s visual editor to create, test, and share flows, which are functional representations of application workflows.","sidebar":"docs"},"Flows/concepts-playground":{"id":"Flows/concepts-playground","title":"Test flows in the Playground","description":"Langflow\'s Playground is a dynamic interface you can use to test your LLM-based flows in real-time.","sidebar":"docs"},"Flows/concepts-publish":{"id":"Flows/concepts-publish","title":"Trigger flows with the Langflow API","description":"After you build a flow, you probably want to run it within an application, such as a chatbot within a mobile app or website.","sidebar":"docs"},"Flows/webhook":{"id":"Flows/webhook","title":"Trigger flows with webhooks","description":"You can use the Webhook component to start a flow run in response to an external event.","sidebar":"docs"},"Get-Started/about-langflow":{"id":"Get-Started/about-langflow","title":"What is Langflow?","description":"Langflow is an open-source, Python-based, customizable framework for building AI applications.","sidebar":"docs"},"Get-Started/get-started-installation":{"id":"Get-Started/get-started-installation","title":"Install Langflow","description":"Langflow can be installed in multiple ways:","sidebar":"docs"},"Get-Started/get-started-quickstart":{"id":"Get-Started/get-started-quickstart","title":"Quickstart","description":"Get started with Langflow by loading a template flow, running it, and then serving it at the /run API endpoint.","sidebar":"docs"},"Support/contributing-github-issues":{"id":"Support/contributing-github-issues","title":"Get help and request enhancements","description":"The Langflow GitHub repository is an integral part of the Langflow community.","sidebar":"docs"},"Support/luna-for-langflow":{"id":"Support/luna-for-langflow","title":"IBM Elite Support for Langflow","description":"IBM Elite Support offers enterprise support for Langflow to help you develop and deploy Langflow applications with confidence.","sidebar":"docs"},"Support/release-notes":{"id":"Support/release-notes","title":"Langflow release notes","description":"This page summarizes significant changes to Langflow in each release.","sidebar":"docs"},"Support/troubleshooting":{"id":"Support/troubleshooting","title":"Troubleshoot Langflow","description":"This page provides troubleshooting advice for issues you might encounter when using Langflow or contributing to Langflow.","sidebar":"docs"},"Tutorials/agent":{"id":"Tutorials/agent","title":"Connect applications to agents","description":"This tutorial shows you how to connect a JavaScript application to a Langflow agent.","sidebar":"docs"},"Tutorials/chat-with-files":{"id":"Tutorials/chat-with-files","title":"Create a chatbot that can ingest files","description":"This tutorial shows you how to build a chatbot that can read and answer questions about files you upload, such as meeting notes or job applications.","sidebar":"docs"},"Tutorials/chat-with-rag":{"id":"Tutorials/chat-with-rag","title":"Create a vector RAG chatbot","description":"This tutorial demonstrates how you can use Langflow to create a chatbot application that uses Retrieval Augmented Generation (RAG) to embed your data as vectors in a vector database, and then chat with the data.","sidebar":"docs"},"Tutorials/mcp-tutorial":{"id":"Tutorials/mcp-tutorial","title":"Connect to MCP servers from your application","description":"This tutorial shows you how to connect MCP servers to your applications using Langflow\'s MCP Tools component.","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/22dd74f7.35841329.js b/assets/js/22dd74f7.35841329.js new file mode 100644 index 0000000000..3bc94e84ad --- /dev/null +++ b/assets/js/22dd74f7.35841329.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1567],{55226: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":{"docs":[{"type":"category","label":"Get started","items":[{"type":"link","label":"About Langflow","href":"/","docId":"Get-Started/about-langflow","unlisted":false},{"type":"link","label":"Install Langflow","href":"/get-started-installation","docId":"Get-Started/get-started-installation","unlisted":false},{"type":"link","label":"Quickstart","href":"/get-started-quickstart","docId":"Get-Started/get-started-quickstart","unlisted":false},{"type":"category","label":"Tutorials","items":[{"type":"link","label":"Create a vector RAG chatbot","href":"/chat-with-rag","docId":"Tutorials/chat-with-rag","unlisted":false},{"type":"link","label":"Create a chatbot that can ingest files","href":"/chat-with-files","docId":"Tutorials/chat-with-files","unlisted":false},{"type":"link","label":"Connect applications to agents","href":"/agent-tutorial","docId":"Tutorials/agent","unlisted":false},{"type":"link","label":"Connect to MCP servers from your application","href":"/mcp-tutorial","docId":"Tutorials/mcp-tutorial","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Flows","items":[{"type":"link","label":"Use the visual editor","href":"/concepts-overview","docId":"Flows/concepts-overview","unlisted":false},{"type":"link","label":"Build flows","href":"/concepts-flows","docId":"Flows/concepts-flows","unlisted":false},{"type":"category","label":"Run flows","items":[{"type":"link","label":"Trigger flows with the Langflow API","href":"/concepts-publish","docId":"Flows/concepts-publish","unlisted":false},{"type":"link","label":"Trigger flows with webhooks","href":"/webhook","docId":"Flows/webhook","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Test flows","href":"/concepts-playground","docId":"Flows/concepts-playground","unlisted":false},{"type":"link","label":"Import and export flows","href":"/concepts-flows-import","docId":"Flows/concepts-flows-import","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Agents","items":[{"type":"link","label":"Use Langflow agents","href":"/agents","docId":"Agents/agents","unlisted":false},{"type":"link","label":"Configure tools for agents","href":"/agents-tools","docId":"Agents/agents-tools","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Model Context Protocol (MCP)","items":[{"type":"link","label":"Use Langflow as an MCP client","href":"/mcp-client","docId":"Agents/mcp-client","unlisted":false},{"type":"link","label":"Use Langflow as an MCP server","href":"/mcp-server","docId":"Agents/mcp-server","unlisted":false},{"type":"link","label":"Connect an Astra DB MCP server to Langflow","href":"/mcp-component-astra","docId":"Agents/mcp-component-astra","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Develop","items":[{"type":"link","label":"API keys and authentication","href":"/api-keys-and-authentication","docId":"Develop/api-keys-and-authentication","unlisted":false},{"type":"link","label":"Install custom dependencies","href":"/install-custom-dependencies","docId":"Develop/install-custom-dependencies","unlisted":false},{"type":"link","label":"Global variables","href":"/configuration-global-variables","docId":"Develop/configuration-global-variables","unlisted":false},{"type":"link","label":"Environment variables","href":"/environment-variables","docId":"Develop/environment-variables","unlisted":false},{"type":"category","label":"Storage and memory","items":[{"type":"link","label":"Manage files","href":"/concepts-file-management","docId":"Develop/concepts-file-management","unlisted":false},{"type":"link","label":"Manage memory","href":"/memory","docId":"Develop/memory","unlisted":false},{"type":"link","label":"Use Session IDs","href":"/session-id","docId":"Develop/session-id","unlisted":false},{"type":"link","label":"Configure an external PostgreSQL database","href":"/configuration-custom-database","docId":"Develop/configuration-custom-database","unlisted":false},{"type":"link","label":"Database guide for enterprise administrators","href":"/enterprise-database-guide","docId":"Develop/enterprise-database-guide","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Observability","items":[{"type":"link","label":"Logs","href":"/logging","docId":"Develop/logging","unlisted":false},{"type":"category","label":"Monitoring","items":[{"type":"link","label":"Arize","href":"/integrations-arize","docId":"Develop/integrations-arize","unlisted":false},{"type":"link","label":"Langfuse","href":"/integrations-langfuse","docId":"Develop/integrations-langfuse","unlisted":false},{"type":"link","label":"LangSmith","href":"/integrations-langsmith","docId":"Develop/integrations-langsmith","unlisted":false},{"type":"link","label":"LangWatch","href":"/integrations-langwatch","docId":"Develop/integrations-langwatch","unlisted":false},{"type":"link","label":"Opik","href":"/integrations-opik","docId":"Develop/integrations-opik","unlisted":false},{"type":"link","label":"Traceloop","href":"/integrations-instana-traceloop","docId":"Develop/integrations-instana-traceloop","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Telemetry","href":"/contributing-telemetry","docId":"Develop/contributing-telemetry","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Use Langflow data types","href":"/data-types","docId":"Develop/data-types","unlisted":false},{"type":"link","label":"Use voice mode","href":"/concepts-voice-mode","docId":"Develop/concepts-voice-mode","unlisted":false},{"type":"link","label":"Use the Langflow CLI","href":"/configuration-cli","docId":"Develop/configuration-cli","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Deploy","items":[{"type":"link","label":"Langflow deployment overview","href":"/deployment-overview","docId":"Deployment/deployment-overview","unlisted":false},{"type":"link","label":"Deploy a public Langflow server","href":"/deployment-public-server","docId":"Deployment/deployment-public-server","unlisted":false},{"type":"link","label":"Deploy Langflow with Nginx and SSL","href":"/deployment-nginx-ssl","docId":"Deployment/deployment-nginx-ssl","unlisted":false},{"type":"category","label":"Containerized deployments","items":[{"type":"link","label":"Containerize a Langflow application","href":"/develop-application","docId":"Deployment/develop-application","unlisted":false},{"type":"link","label":"Langflow Docker images","href":"/deployment-docker","docId":"Deployment/deployment-docker","unlisted":false},{"type":"link","label":"Deploy Langflow on a remote server","href":"/deployment-caddyfile","docId":"Deployment/deployment-caddyfile","unlisted":false},{"type":"category","label":"Kubernetes","items":[{"type":"link","label":"Deployment architecture","href":"/deployment-architecture","docId":"Deployment/deployment-architecture","unlisted":false},{"type":"link","label":"Best practices","href":"/deployment-prod-best-practices","docId":"Deployment/deployment-prod-best-practices","unlisted":false},{"type":"link","label":"Deploy in development","href":"/deployment-kubernetes-dev","docId":"Deployment/deployment-kubernetes-dev","unlisted":false},{"type":"link","label":"Deploy in production","href":"/deployment-kubernetes-prod","docId":"Deployment/deployment-kubernetes-prod","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Cloud platforms","items":[{"type":"link","label":"Google Cloud Platform","href":"/deployment-gcp","docId":"Deployment/deployment-gcp","unlisted":false},{"type":"link","label":"Hugging Face Spaces","href":"/deployment-hugging-face-spaces","docId":"Deployment/deployment-hugging-face-spaces","unlisted":false},{"type":"link","label":"Railway","href":"/deployment-railway","docId":"Deployment/deployment-railway","unlisted":false},{"type":"link","label":"Render","href":"/deployment-render","docId":"Deployment/deployment-render","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Security","href":"/security","docId":"Deployment/security","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Components reference","items":[{"type":"link","label":"Components overview","href":"/concepts-components","docId":"Components/concepts-components","unlisted":false},{"type":"category","label":"Core components","items":[{"type":"link","label":"Input / Output","href":"/components-io","docId":"Components/components-io","unlisted":false},{"type":"link","label":"Agents","href":"/components-agents","docId":"Components/components-agents","unlisted":false},{"type":"category","label":"Models","items":[{"type":"link","label":"Language Model","href":"/components-models","docId":"Components/components-models","unlisted":false},{"type":"link","label":"Embedding Model","href":"/components-embedding-models","docId":"Components/components-embedding-models","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Data","href":"/components-data","docId":"Components/components-data","unlisted":false},{"type":"category","label":"Processing","items":[{"type":"link","label":"Processing components","href":"/components-processing","docId":"Components/components-processing","unlisted":false},{"type":"link","label":"Prompt Template","href":"/components-prompts","docId":"Components/components-prompts","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Logic","href":"/components-logic","docId":"Components/components-logic","unlisted":false},{"type":"link","label":"Helpers","href":"/components-helpers","docId":"Components/components-helpers","unlisted":false},{"type":"link","label":"Tools","href":"/components-tools","docId":"Components/components-tools","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Bundles","items":[{"type":"link","label":"About bundles","href":"/components-bundle-components","docId":"Components/components-bundles","unlisted":false},{"type":"link","label":"AI/ML API","href":"/bundles-aiml","docId":"Components/bundles-aiml","unlisted":false},{"type":"link","label":"Amazon","href":"/bundles-amazon","docId":"Components/bundles-amazon","unlisted":false},{"type":"link","label":"Anthropic","href":"/bundles-anthropic","docId":"Components/bundles-anthropic","unlisted":false},{"type":"link","label":"Apify","href":"/bundles-apify","docId":"Components/bundles-apify","unlisted":false},{"type":"link","label":"arXiv","href":"/bundles-arxiv","docId":"Components/bundles-arxiv","unlisted":false},{"type":"link","label":"AssemblyAI","href":"/bundles-assemblyai","docId":"Components/bundles-assemblyai","unlisted":false},{"type":"link","label":"Azure","href":"/bundles-azure","docId":"Components/bundles-azure","unlisted":false},{"type":"link","label":"Baidu","href":"/bundles-baidu","docId":"Components/bundles-baidu","unlisted":false},{"type":"link","label":"Bing","href":"/bundles-bing","docId":"Components/bundles-bing","unlisted":false},{"type":"link","label":"Cassandra","href":"/bundles-cassandra","docId":"Components/bundles-cassandra","unlisted":false},{"type":"link","label":"Chroma","href":"/bundles-chroma","docId":"Components/bundles-chroma","unlisted":false},{"type":"link","label":"Cleanlab","href":"/bundles-cleanlab","docId":"Components/bundles-cleanlab","unlisted":false},{"type":"link","label":"ClickHouse","href":"/bundles-clickhouse","docId":"Components/bundles-clickhouse","unlisted":false},{"type":"link","label":"Cloudflare","href":"/bundles-cloudflare","docId":"Components/bundles-cloudflare","unlisted":false},{"type":"link","label":"Cohere","href":"/bundles-cohere","docId":"Components/bundles-cohere","unlisted":false},{"type":"link","label":"Composio","href":"/bundles-composio","docId":"Components/bundles-composio","unlisted":false},{"type":"link","label":"Couchbase","href":"/bundles-couchbase","docId":"Components/bundles-couchbase","unlisted":false},{"type":"link","label":"DataStax","href":"/bundles-datastax","docId":"Components/bundles-datastax","unlisted":false},{"type":"link","label":"DeepSeek","href":"/bundles-deepseek","docId":"Components/bundles-deepseek","unlisted":false},{"type":"link","label":"Docling","href":"/bundles-docling","docId":"Components/bundles-docling","unlisted":false},{"type":"link","label":"DuckDuckGo","href":"/bundles-duckduckgo","docId":"Components/bundles-duckduckgo","unlisted":false},{"type":"link","label":"Elastic","href":"/bundles-elastic","docId":"Components/bundles-elastic","unlisted":false},{"type":"link","label":"Exa","href":"/bundles-exa","docId":"Components/bundles-exa","unlisted":false},{"type":"link","label":"FAISS","href":"/bundles-faiss","docId":"Components/bundles-faiss","unlisted":false},{"type":"link","label":"Glean","href":"/bundles-glean","docId":"Components/bundles-glean","unlisted":false},{"type":"link","label":"Google components","href":"/bundles-google","docId":"Components/bundles-google","unlisted":false},{"type":"link","label":"Groq","href":"/bundles-groq","docId":"Components/bundles-groq","unlisted":false},{"type":"link","label":"Hugging Face","href":"/bundles-huggingface","docId":"Components/bundles-huggingface","unlisted":false},{"type":"link","label":"IBM","href":"/bundles-ibm","docId":"Components/bundles-ibm","unlisted":false},{"type":"link","label":"Icosa Computing","href":"/bundles-icosacomputing","docId":"Components/bundles-icosacomputing","unlisted":false},{"type":"link","label":"LangChain","href":"/bundles-langchain","docId":"Components/bundles-langchain","unlisted":false},{"type":"link","label":"LM Studio","href":"/bundles-lmstudio","docId":"Components/bundles-lmstudio","unlisted":false},{"type":"link","label":"MariTalk","href":"/bundles-maritalk","docId":"Components/bundles-maritalk","unlisted":false},{"type":"link","label":"Mem0","href":"/bundles-mem0","docId":"Components/bundles-mem0","unlisted":false},{"type":"link","label":"Milvus","href":"/bundles-milvus","docId":"Components/bundles-milvus","unlisted":false},{"type":"link","label":"MistralAI","href":"/bundles-mistralai","docId":"Components/bundles-mistralai","unlisted":false},{"type":"link","label":"MongoDB","href":"/bundles-mongodb","docId":"Components/bundles-mongodb","unlisted":false},{"type":"link","label":"Notion","href":"/bundles-notion","docId":"Components/bundles-notion","unlisted":false},{"type":"link","label":"Novita","href":"/bundles-novita","docId":"Components/bundles-novita","unlisted":false},{"type":"link","label":"NVIDIA","href":"/bundles-nvidia","docId":"Components/bundles-nvidia","unlisted":false},{"type":"link","label":"Ollama","href":"/bundles-ollama","docId":"Components/bundles-ollama","unlisted":false},{"type":"link","label":"OpenAI","href":"/bundles-openai","docId":"Components/bundles-openai","unlisted":false},{"type":"link","label":"OpenRouter","href":"/bundles-openrouter","docId":"Components/bundles-openrouter","unlisted":false},{"type":"link","label":"Perplexity","href":"/bundles-perplexity","docId":"Components/bundles-perplexity","unlisted":false},{"type":"link","label":"pgvector","href":"/bundles-pgvector","docId":"Components/bundles-pgvector","unlisted":false},{"type":"link","label":"Pinecone","href":"/bundles-pinecone","docId":"Components/bundles-pinecone","unlisted":false},{"type":"link","label":"Qdrant","href":"/bundles-qdrant","docId":"Components/bundles-qdrant","unlisted":false},{"type":"link","label":"Redis","href":"/bundles-redis","docId":"Components/bundles-redis","unlisted":false},{"type":"link","label":"SambaNova","href":"/bundles-sambanova","docId":"Components/bundles-sambanova","unlisted":false},{"type":"link","label":"SearchApi","href":"/bundles-searchapi","docId":"Components/bundles-searchapi","unlisted":false},{"type":"link","label":"Serper","href":"/bundles-serper","docId":"Components/bundles-serper","unlisted":false},{"type":"link","label":"Supabase","href":"/bundles-supabase","docId":"Components/bundles-supabase","unlisted":false},{"type":"link","label":"Upstash","href":"/bundles-upstash","docId":"Components/bundles-upstash","unlisted":false},{"type":"link","label":"vLLM","href":"/bundles-vllm","docId":"Components/bundles-vllm","unlisted":false},{"type":"link","label":"Vectara","href":"/bundles-vectara","docId":"Components/bundles-vectara","unlisted":false},{"type":"link","label":"Vertex AI","href":"/bundles-vertexai","docId":"Components/bundles-vertexai","unlisted":false},{"type":"link","label":"Weaviate","href":"/bundles-weaviate","docId":"Components/bundles-weaviate","unlisted":false},{"type":"link","label":"Wikipedia","href":"/bundles-wikipedia","docId":"Components/bundles-wikipedia","unlisted":false},{"type":"link","label":"xAI","href":"/bundles-xai","docId":"Components/bundles-xai","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Create custom Python components","href":"/components-custom-components","docId":"Components/components-custom-components","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"API reference","items":[{"type":"link","label":"Get started with the Langflow API","href":"/api-reference-api-examples","docId":"API-Reference/api-reference-api-examples","unlisted":false},{"type":"link","label":"Use the TypeScript client","href":"/typescript-client","docId":"API-Reference/typescript-client","unlisted":false},{"type":"link","label":"Flow trigger endpoints","href":"/api-flows-run","docId":"API-Reference/api-flows-run","unlisted":false},{"type":"link","label":"OpenAI Responses endpoints","href":"/api-openai-responses","docId":"API-Reference/api-openai-responses","unlisted":false},{"type":"link","label":"Flow management endpoints","href":"/api-flows","docId":"API-Reference/api-flows","unlisted":false},{"type":"link","label":"Files endpoints","href":"/api-files","docId":"API-Reference/api-files","unlisted":false},{"type":"link","label":"Projects endpoints","href":"/api-projects","docId":"API-Reference/api-projects","unlisted":false},{"type":"link","label":"Logs endpoints","href":"/api-logs","docId":"API-Reference/api-logs","unlisted":false},{"type":"link","label":"Monitor endpoints","href":"/api-monitor","docId":"API-Reference/api-monitor","unlisted":false},{"type":"link","label":"Build endpoints","href":"/api-build","docId":"API-Reference/api-build","unlisted":false},{"type":"link","label":"Users endpoints","href":"/api-users","docId":"API-Reference/api-users","unlisted":false},{"type":"link","label":"Langflow API specification","href":"/api"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Contribute","items":[{"type":"link","label":"Join the Langflow community","href":"/contributing-community","docId":"Contributing/contributing-community","unlisted":false},{"type":"link","label":"Contribute to Langflow","href":"/contributing-how-to-contribute","docId":"Contributing/contributing-how-to-contribute","unlisted":false},{"type":"link","label":"Contribute components","href":"/contributing-components","docId":"Contributing/contributing-components","unlisted":false},{"type":"link","label":"Contribute component tests","href":"/contributing-component-tests","docId":"Contributing/contributing-component-tests","unlisted":false},{"type":"link","label":"Contribute templates","href":"/contributing-templates","docId":"Contributing/contributing-templates","unlisted":false},{"type":"link","label":"Contribute bundles","href":"/contributing-bundles","docId":"Contributing/contributing-bundles","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Release notes","items":[{"type":"link","label":"Release notes","href":"/release-notes","docId":"Support/release-notes","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Support","items":[{"type":"link","label":"Troubleshoot","href":"/troubleshoot","docId":"Support/troubleshooting","unlisted":false},{"type":"link","label":"Get help and request enhancements","href":"/contributing-github-issues","docId":"Support/contributing-github-issues","unlisted":false},{"type":"link","label":"IBM Elite Support for Langflow","href":"/luna-for-langflow","docId":"Support/luna-for-langflow","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"html","className":"sidebar-ad","value":"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n Get started in minutes\\n Download Langflow Desktop\\n
\\n
\\n "}]},"docs":{"Agents/agents":{"id":"Agents/agents","title":"Use Langflow agents","description":"Langflow\'s Agent component is critical for building agent flows.","sidebar":"docs"},"Agents/agents-tools":{"id":"Agents/agents-tools","title":"Configure tools for agents","description":"By default, Langflow agents only include the functionality built-in to their base LLM.","sidebar":"docs"},"Agents/mcp-client":{"id":"Agents/mcp-client","title":"Use Langflow as an MCP client","description":"Langflow integrates with the Model Context Protocol (MCP) as both an MCP server and an MCP client.","sidebar":"docs"},"Agents/mcp-component-astra":{"id":"Agents/mcp-component-astra","title":"Connect an Astra DB MCP server to Langflow","description":"This guide demonstrates how to use Langflow as an MCP client by using the MCP Tools component to run a DataStax Astra DB MCP server in an agent flow.","sidebar":"docs"},"Agents/mcp-server":{"id":"Agents/mcp-server","title":"Use Langflow as an MCP server","description":"Langflow integrates with the Model Context Protocol (MCP) as both an MCP server and an MCP client.","sidebar":"docs"},"API-Reference/api-build":{"id":"API-Reference/api-build","title":"Build endpoints","description":"The /build endpoints are used by Langflow\'s frontend visual editor code.","sidebar":"docs"},"API-Reference/api-files":{"id":"API-Reference/api-files","title":"Files endpoints","description":"Use the /files endpoints to move files between your local machine and Langflow.","sidebar":"docs"},"API-Reference/api-flows":{"id":"API-Reference/api-flows","title":"Flow management endpoints","description":"Use the /flows endpoint to create, read, update, and delete flows.","sidebar":"docs"},"API-Reference/api-flows-run":{"id":"API-Reference/api-flows-run","title":"Flow trigger endpoints","description":"Use the /run and /webhook endpoints to run flows.","sidebar":"docs"},"API-Reference/api-logs":{"id":"API-Reference/api-logs","title":"Logs endpoints","description":"Retrieve logs for your Langflow flows and server.","sidebar":"docs"},"API-Reference/api-monitor":{"id":"API-Reference/api-monitor","title":"Monitor endpoints","description":"The /monitor endpoints are for internal Langflow functionality, primarily related to running flows in the Playground, storing chat history, and generating flow logs.","sidebar":"docs"},"API-Reference/api-openai-responses":{"id":"API-Reference/api-openai-responses","title":"OpenAI Responses API","description":"Langflow includes an endpoint that is compatible with the OpenAI Responses API.","sidebar":"docs"},"API-Reference/api-projects":{"id":"API-Reference/api-projects","title":"Projects endpoints","description":"Use the /projects endpoint to create, read, update, and delete Langflow projects.","sidebar":"docs"},"API-Reference/api-reference-api-examples":{"id":"API-Reference/api-reference-api-examples","title":"Get started with the Langflow API","description":"You can use the Langflow API for programmatic interactions with Langflow, such as the following:","sidebar":"docs"},"API-Reference/api-users":{"id":"API-Reference/api-users","title":"Users endpoints","description":"Use the /users endpoint to manage user accounts in Langflow.","sidebar":"docs"},"API-Reference/typescript-client":{"id":"API-Reference/typescript-client","title":"Langflow TypeScript client","description":"The Langflow TypeScript client allows your TypeScript applications to programmatically interact with the Langflow API.","sidebar":"docs"},"Components/bundles-aiml":{"id":"Components/bundles-aiml","title":"AI/ML API","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-amazon":{"id":"Components/bundles-amazon","title":"Amazon","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-anthropic":{"id":"Components/bundles-anthropic","title":"Anthropic","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-apify":{"id":"Components/bundles-apify","title":"Apify","description":"Apify is a web scraping and data extraction platform with more than 3,000 ready-made cloud tools called Actors.","sidebar":"docs"},"Components/bundles-arxiv":{"id":"Components/bundles-arxiv","title":"arXiv","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-assemblyai":{"id":"Components/bundles-assemblyai","title":"AssemblyAI","description":"The AssemblyAI components allow you to apply powerful Speech AI models to your app for tasks like:","sidebar":"docs"},"Components/bundles-azure":{"id":"Components/bundles-azure","title":"Azure","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-baidu":{"id":"Components/bundles-baidu","title":"Baidu","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-bing":{"id":"Components/bundles-bing","title":"Bing","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-cassandra":{"id":"Components/bundles-cassandra","title":"Cassandra","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-chroma":{"id":"Components/bundles-chroma","title":"Chroma","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-cleanlab":{"id":"Components/bundles-cleanlab","title":"Cleanlab","description":"Cleanlab adds automation and trust to every data point going in and every prediction coming out of AI and RAG solutions.","sidebar":"docs"},"Components/bundles-clickhouse":{"id":"Components/bundles-clickhouse","title":"ClickHouse","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-cloudflare":{"id":"Components/bundles-cloudflare","title":"Cloudflare","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-cohere":{"id":"Components/bundles-cohere","title":"Cohere","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-composio":{"id":"Components/bundles-composio","title":"Composio","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-couchbase":{"id":"Components/bundles-couchbase","title":"Couchbase","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-datastax":{"id":"Components/bundles-datastax","title":"DataStax","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-deepseek":{"id":"Components/bundles-deepseek","title":"DeepSeek","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-docling":{"id":"Components/bundles-docling","title":"Docling","description":"Langflow integrates with Docling through a bundle of components for parsing documents.","sidebar":"docs"},"Components/bundles-duckduckgo":{"id":"Components/bundles-duckduckgo","title":"DuckDuckGo","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-elastic":{"id":"Components/bundles-elastic","title":"Elastic","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-exa":{"id":"Components/bundles-exa","title":"Exa","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-faiss":{"id":"Components/bundles-faiss","title":"FAISS","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-glean":{"id":"Components/bundles-glean","title":"Glean","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-google":{"id":"Components/bundles-google","title":"Google components","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-groq":{"id":"Components/bundles-groq","title":"Groq","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-huggingface":{"id":"Components/bundles-huggingface","title":"Hugging Face","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-ibm":{"id":"Components/bundles-ibm","title":"IBM","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-icosacomputing":{"id":"Components/bundles-icosacomputing","title":"Icosa Computing","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-langchain":{"id":"Components/bundles-langchain","title":"LangChain","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-lmstudio":{"id":"Components/bundles-lmstudio","title":"LM Studio","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-maritalk":{"id":"Components/bundles-maritalk","title":"MariTalk","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-mem0":{"id":"Components/bundles-mem0","title":"Mem0","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-milvus":{"id":"Components/bundles-milvus","title":"Milvus","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-mistralai":{"id":"Components/bundles-mistralai","title":"MistralAI","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-mongodb":{"id":"Components/bundles-mongodb","title":"MongoDB","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-notion":{"id":"Components/bundles-notion","title":"Notion","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, and then provide two examples of flows with Notion components.","sidebar":"docs"},"Components/bundles-novita":{"id":"Components/bundles-novita","title":"Novita","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-nvidia":{"id":"Components/bundles-nvidia","title":"NVIDIA","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-ollama":{"id":"Components/bundles-ollama","title":"Ollama","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-openai":{"id":"Components/bundles-openai","title":"OpenAI","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-openrouter":{"id":"Components/bundles-openrouter","title":"OpenRouter","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-perplexity":{"id":"Components/bundles-perplexity","title":"Perplexity","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-pgvector":{"id":"Components/bundles-pgvector","title":"pgvector","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-pinecone":{"id":"Components/bundles-pinecone","title":"Pinecone","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-qdrant":{"id":"Components/bundles-qdrant","title":"Qdrant","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-redis":{"id":"Components/bundles-redis","title":"Redis","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-sambanova":{"id":"Components/bundles-sambanova","title":"SambaNova","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-searchapi":{"id":"Components/bundles-searchapi","title":"SearchApi","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-serper":{"id":"Components/bundles-serper","title":"Serper","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-supabase":{"id":"Components/bundles-supabase","title":"Supabase","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-upstash":{"id":"Components/bundles-upstash","title":"Upstash","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-vectara":{"id":"Components/bundles-vectara","title":"Vectara","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-vertexai":{"id":"Components/bundles-vertexai","title":"Vertex AI","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-vllm":{"id":"Components/bundles-vllm","title":"vLLM","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-weaviate":{"id":"Components/bundles-weaviate","title":"Weaviate","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-wikipedia":{"id":"Components/bundles-wikipedia","title":"Wikipedia","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/bundles-xai":{"id":"Components/bundles-xai","title":"xAI","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/components-agents":{"id":"Components/components-agents","title":"Agents","description":"Langflow\'s Agent and MCP Tools components are critical for building agent flows.","sidebar":"docs"},"Components/components-bundles":{"id":"Components/components-bundles","title":"About bundles","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","sidebar":"docs"},"Components/components-custom-components":{"id":"Components/components-custom-components","title":"Create custom Python components","description":"Custom components extend Langflow\'s functionality through Python classes that inherit from Component. This enables integration of new features, data manipulation, external services, and specialized tools.","sidebar":"docs"},"Components/components-data":{"id":"Components/components-data","title":"Data","description":"Data components bring data into your flows from various sources like files, API endpoints, and URLs.","sidebar":"docs"},"Components/components-embedding-models":{"id":"Components/components-embedding-models","title":"Embedding Model","description":"Embedding model components in Langflow generate text embeddings using a specified Large Language Model (LLM).","sidebar":"docs"},"Components/components-helpers":{"id":"Components/components-helpers","title":"Helpers","description":"Helper components provide utility functions to help manage data and perform simple tasks in your flow.","sidebar":"docs"},"Components/components-io":{"id":"Components/components-io","title":"Input / Output","description":"Input and output components define where data enters and exits your flow, but they don\'t have identical functionality.","sidebar":"docs"},"Components/components-logic":{"id":"Components/components-logic","title":"Logic","description":"Logic components provide functionalities for routing, conditional processing, and flow management.","sidebar":"docs"},"Components/components-models":{"id":"Components/components-models","title":"Language Model","description":"Language model components in Langflow generate text using a specified Large Language Model (LLM).","sidebar":"docs"},"Components/components-processing":{"id":"Components/components-processing","title":"Processing components","description":"Processing components process and transform data within a flow.","sidebar":"docs"},"Components/components-prompts":{"id":"Components/components-prompts","title":"Prompt Template","description":"Use the Prompt Template core component to create a prompt that supplies instructions and context to an LLM or agent, separate from other input like chat messages and file uploads.","sidebar":"docs"},"Components/components-tools":{"id":"Components/components-tools","title":"Tools","description":"In Langflow version 1.5, the Tools category was deprecated.","sidebar":"docs"},"Components/concepts-components":{"id":"Components/concepts-components","title":"Components overview","description":"Components are the building blocks of your flows.","sidebar":"docs"},"Contributing/contributing-bundles":{"id":"Contributing/contributing-bundles","title":"Contribute bundles","description":"Bundles are groups of components that are related to a specific service provider.","sidebar":"docs"},"Contributing/contributing-community":{"id":"Contributing/contributing-community","title":"Join the Langflow community","description":"There are several ways you can interact with the Langflow community and learn more about the Langflow codebase.","sidebar":"docs"},"Contributing/contributing-component-tests":{"id":"Contributing/contributing-component-tests","title":"Contribute component tests","description":"This guide outlines how to structure and implement tests for application components to ensure consistency and adequate coverage.","sidebar":"docs"},"Contributing/contributing-components":{"id":"Contributing/contributing-components","title":"Contribute components","description":"New components are added as objects of the Component class.","sidebar":"docs"},"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":"docs"},"Contributing/contributing-templates":{"id":"Contributing/contributing-templates","title":"Contribute templates","description":"Follow these best practices when submitting a template to Langflow.","sidebar":"docs"},"Deployment/deployment-architecture":{"id":"Deployment/deployment-architecture","title":"Langflow architecture on Kubernetes","description":"There are two broad types of Langflow deployments:","sidebar":"docs"},"Deployment/deployment-caddyfile":{"id":"Deployment/deployment-caddyfile","title":"Deploy Langflow on a remote server","description":"Learn how to deploy Langflow on your own remote server with secure web access.","sidebar":"docs"},"Deployment/deployment-docker":{"id":"Deployment/deployment-docker","title":"Deploy Langflow on Docker","description":"Running applications in Docker containers ensures consistent behavior across different systems and eliminates dependency conflicts.","sidebar":"docs"},"Deployment/deployment-gcp":{"id":"Deployment/deployment-gcp","title":"Deploy Langflow on Google Cloud Platform","description":"This guide demonstrates how to deploy Langflow on Google Cloud Platform with a Cloud Shell script that walks through the process of setting up a Debian-based VM with the Langflow package, Nginx, and the necessary configurations to run the Langflow development environment in GCP.","sidebar":"docs"},"Deployment/deployment-hugging-face-spaces":{"id":"Deployment/deployment-hugging-face-spaces","title":"Deploy Langflow on Hugging Face Spaces","description":"This guide explains how to deploy Langflow on Hugging Face Spaces.","sidebar":"docs"},"Deployment/deployment-kubernetes-dev":{"id":"Deployment/deployment-kubernetes-dev","title":"Deploy the Langflow development environment on Kubernetes","description":"The Langflow integrated development environment (IDE) Helm chart is designed to provide a complete environment for developers to create, test, and debug their flows. It includes both the Langflow API and visual editor.","sidebar":"docs"},"Deployment/deployment-kubernetes-prod":{"id":"Deployment/deployment-kubernetes-prod","title":"Deploy the Langflow production environment on Kubernetes","description":"The Langflow runtime Helm chart is tailored for deploying applications in a production environment. It is focused on stability, performance, isolation, and security to ensure that applications run reliably and efficiently.","sidebar":"docs"},"Deployment/deployment-nginx-ssl":{"id":"Deployment/deployment-nginx-ssl","title":"Deploy Langflow with Nginx and SSL","description":"Deploy Langflow on a Linux-based server using Nginx as a reverse proxy, Let\'s Encrypt for SSL certificates, and Certbot for automated certificate management.","sidebar":"docs"},"Deployment/deployment-overview":{"id":"Deployment/deployment-overview","title":"Langflow deployment overview","description":"This section includes the different ways to bring your locally-built flows to the world.","sidebar":"docs"},"Deployment/deployment-prod-best-practices":{"id":"Deployment/deployment-prod-best-practices","title":"Best practices for Langflow on Kubernetes","description":"This guide provides best practices for deploying Langflow in production environments on Kubernetes.","sidebar":"docs"},"Deployment/deployment-public-server":{"id":"Deployment/deployment-public-server","title":"Deploy a public Langflow server","description":"By default, your Langflow server at http7860 isn\'t exposed to the public internet.","sidebar":"docs"},"Deployment/deployment-railway":{"id":"Deployment/deployment-railway","title":"Deploy Langflow on Railway","description":"Deploy Langflow to Railway using a one-click template","sidebar":"docs"},"Deployment/deployment-render":{"id":"Deployment/deployment-render","title":"Deploy Langflow on Render","description":"This guide explains how to deploy Langflow on Render, a cloud platform for deploying web applications and APIs.","sidebar":"docs"},"Deployment/develop-application":{"id":"Deployment/develop-application","title":"Containerize a Langflow application","description":"Designing flows in the visual editor is only the first step in building an application that uses Langflow.","sidebar":"docs"},"Deployment/security":{"id":"Deployment/security","title":"Security","description":"The Langflow UI is an IDE and code execution platform, which means that Langflow is inherently capable of executing arbitrary,","sidebar":"docs"},"Develop/api-keys-and-authentication":{"id":"Develop/api-keys-and-authentication","title":"API keys and authentication","description":"Never expose Langflow ports directly to the internet without proper security measures.","sidebar":"docs"},"Develop/concepts-file-management":{"id":"Develop/concepts-file-management","title":"Manage files","description":"Each Langflow server has a file management system where you can store files that you want to use in your flows.","sidebar":"docs"},"Develop/concepts-voice-mode":{"id":"Develop/concepts-voice-mode","title":"Use voice mode","description":"Voice mode is not available in Langflow Desktop.","sidebar":"docs"},"Develop/configuration-cli":{"id":"Develop/configuration-cli","title":"Langflow CLI","description":"The Langflow command line interface is the main interface for managing and running the Langflow server.","sidebar":"docs"},"Develop/configuration-custom-database":{"id":"Develop/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":"docs"},"Develop/configuration-global-variables":{"id":"Develop/configuration-global-variables","title":"Global variables","description":"Use global variables to store and reuse credentials and generic values across all of your flows.","sidebar":"docs"},"Develop/contributing-telemetry":{"id":"Develop/contributing-telemetry","title":"Telemetry","description":"Langflow uses anonymous telemetry to collect statistics about feature usage and performance.","sidebar":"docs"},"Develop/data-types":{"id":"Develop/data-types","title":"Langflow data types","description":"Langflow components are designed to accept and produce specific types of inputs and outputs.","sidebar":"docs"},"Develop/enterprise-database-guide":{"id":"Develop/enterprise-database-guide","title":"Langflow database guide for enterprise DBAs","description":"The Langflow database stores data that is essential for more Langflow operations, including startup, flow execution, user interactions, and administrative tasks.","sidebar":"docs"},"Develop/environment-variables":{"id":"Develop/environment-variables","title":"Environment variables","description":"In general, environment variables, like LANGFLOWPORT or LANGFLOWLOG_LEVEL, configure how Langflow runs.","sidebar":"docs"},"Develop/install-custom-dependencies":{"id":"Develop/install-custom-dependencies","title":"Install custom dependencies","description":"Langflow provides optional dependency groups and support for custom dependencies to extend Langflow functionality. This guide covers how to add dependencies for different Langflow installations, including Langflow Desktop and Langflow OSS.","sidebar":"docs"},"Develop/integrations-arize":{"id":"Develop/integrations-arize","title":"Arize","description":"Arize is a tool built on OpenTelemetry and OpenInference for monitoring and optimizing LLM applications.","sidebar":"docs"},"Develop/integrations-instana-traceloop":{"id":"Develop/integrations-instana-traceloop","title":"Traceloop","description":"Instrument Langflow with the Traceloop SDK, and export traces and metrics to Instana using OpenTelemetry.","sidebar":"docs"},"Develop/integrations-langfuse":{"id":"Develop/integrations-langfuse","title":"Langfuse","description":"Langfuse is an open-source platform for LLM observability. It provides tracing and monitoring capabilities for AI applications, helping developers debug, analyze, and optimize their AI systems. Langfuse integrates with various tools and frameworks, including workflow builders and runtimes like Langflow.","sidebar":"docs"},"Develop/integrations-langsmith":{"id":"Develop/integrations-langsmith","title":"LangSmith","description":"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, add your LangChain API key and configuration as Langflow environment variables, and then start Langflow.","sidebar":"docs"},"Develop/integrations-langwatch":{"id":"Develop/integrations-langwatch","title":"LangWatch","description":"LangWatch is an all-in-one LLMOps platform for monitoring, observability, analytics, evaluations and alerting for getting user insights and improve your LLM workflows.","sidebar":"docs"},"Develop/integrations-opik":{"id":"Develop/integrations-opik","title":"Opik","description":"Opik is an open-source platform designed for evaluating, testing, and monitoring large language model (LLM) applications. Developed by Comet, it aims to facilitate more intuitive collaboration, testing, and monitoring of LLM-based applications.","sidebar":"docs"},"Develop/logging":{"id":"Develop/logging","title":"Logs","description":"Langflow produces logs for individual flows and the Langflow application itself using the structlog library for logging.","sidebar":"docs"},"Develop/memory":{"id":"Develop/memory","title":"Memory management options","description":"Langflow provides flexible memory management options for storage and retrieval of data relevant to your flows and your Langflow server.","sidebar":"docs"},"Develop/session-id":{"id":"Develop/session-id","title":"Use session ID to manage communication between components","description":"Session ID is a unique identifier for client/server connections. A single session equals the duration of a client\'s connection to a server.","sidebar":"docs"},"Flows/concepts-flows":{"id":"Flows/concepts-flows","title":"Build flows","description":"A flow is a functional representation of an application workflow.","sidebar":"docs"},"Flows/concepts-flows-import":{"id":"Flows/concepts-flows-import","title":"Import and export flows","description":"You can export flows to transfer them between Langflow instances, share them with others, or create backups.","sidebar":"docs"},"Flows/concepts-overview":{"id":"Flows/concepts-overview","title":"Use the visual editor","description":"You use Langflow\'s visual editor to create, test, and share flows, which are functional representations of application workflows.","sidebar":"docs"},"Flows/concepts-playground":{"id":"Flows/concepts-playground","title":"Test flows in the Playground","description":"Langflow\'s Playground is a dynamic interface you can use to test your LLM-based flows in real-time.","sidebar":"docs"},"Flows/concepts-publish":{"id":"Flows/concepts-publish","title":"Trigger flows with the Langflow API","description":"After you build a flow, you probably want to run it within an application, such as a chatbot within a mobile app or website.","sidebar":"docs"},"Flows/webhook":{"id":"Flows/webhook","title":"Trigger flows with webhooks","description":"You can use the Webhook component to start a flow run in response to an external event.","sidebar":"docs"},"Get-Started/about-langflow":{"id":"Get-Started/about-langflow","title":"What is Langflow?","description":"Langflow is an open-source, Python-based, customizable framework for building AI applications.","sidebar":"docs"},"Get-Started/get-started-installation":{"id":"Get-Started/get-started-installation","title":"Install Langflow","description":"Langflow can be installed in multiple ways:","sidebar":"docs"},"Get-Started/get-started-quickstart":{"id":"Get-Started/get-started-quickstart","title":"Quickstart","description":"Get started with Langflow by loading a template flow, running it, and then serving it at the /run API endpoint.","sidebar":"docs"},"Support/contributing-github-issues":{"id":"Support/contributing-github-issues","title":"Get help and request enhancements","description":"The Langflow GitHub repository is an integral part of the Langflow community.","sidebar":"docs"},"Support/luna-for-langflow":{"id":"Support/luna-for-langflow","title":"IBM Elite Support for Langflow","description":"IBM Elite Support offers enterprise support for Langflow to help you develop and deploy Langflow applications with confidence.","sidebar":"docs"},"Support/release-notes":{"id":"Support/release-notes","title":"Langflow release notes","description":"This page summarizes significant changes to Langflow in each release.","sidebar":"docs"},"Support/troubleshooting":{"id":"Support/troubleshooting","title":"Troubleshoot Langflow","description":"This page provides troubleshooting advice for issues you might encounter when using Langflow or contributing to Langflow.","sidebar":"docs"},"Tutorials/agent":{"id":"Tutorials/agent","title":"Connect applications to agents","description":"This tutorial shows you how to connect a JavaScript application to a Langflow agent.","sidebar":"docs"},"Tutorials/chat-with-files":{"id":"Tutorials/chat-with-files","title":"Create a chatbot that can ingest files","description":"This tutorial shows you how to build a chatbot that can read and answer questions about files you upload, such as meeting notes or job applications.","sidebar":"docs"},"Tutorials/chat-with-rag":{"id":"Tutorials/chat-with-rag","title":"Create a vector RAG chatbot","description":"This tutorial demonstrates how you can use Langflow to create a chatbot application that uses Retrieval Augmented Generation (RAG) to embed your data as vectors in a vector database, and then chat with the data.","sidebar":"docs"},"Tutorials/mcp-tutorial":{"id":"Tutorials/mcp-tutorial","title":"Connect to MCP servers from your application","description":"This tutorial shows you how to connect MCP servers to your applications using Langflow\'s MCP Tools component.","sidebar":"docs"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/619c7267.141ef15f.js b/assets/js/619c7267.141ef15f.js deleted file mode 100644 index 092c35a8bd..0000000000 --- a/assets/js/619c7267.141ef15f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7902],{31929:(e,r,n)=>{n.d(r,{Ay:()=>h,RM:()=>o});var t=n(74848),s=n(28453),d=n(40619);const o=[];function i(e){const r={a:"a",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,t.jsxs)(r.p,{children:["Some parameters are hidden by default in the visual editor.\nYou can modify all parameters through the ",(0,t.jsx)(d.A,{name:"SlidersHorizontal","aria-hidden":"true"})," ",(0,t.jsx)(r.strong,{children:"Controls"})," in the ",(0,t.jsx)(r.a,{href:"/concepts-components#component-menus",children:"component's header menu"}),"."]})}function h(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(i,{...e})}):i(e)}},98406:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>a,contentTitle:()=>c,default:()=>m,frontMatter:()=>h,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"Components/bundles-cohere","title":"Cohere","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","source":"@site/docs/Components/bundles-cohere.mdx","sourceDirName":"Components","slug":"/bundles-cohere","permalink":"/bundles-cohere","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Cohere","slug":"/bundles-cohere"},"sidebar":"docs","previous":{"title":"Cloudflare","permalink":"/bundles-cloudflare"},"next":{"title":"Couchbase","permalink":"/bundles-couchbase"}}');var s=n(74848),d=n(28453),o=n(40619),i=n(31929);const h={title:"Cohere",slug:"/bundles-cohere"},c=void 0,a={},l=[{value:"Cohere text generation",id:"cohere-text-generation",level:2},{value:"Cohere text generation parameters",id:"cohere-text-generation-parameters",level:3},...i.RM,{value:"Cohere Embeddings",id:"cohere-embeddings",level:2},{value:"Cohere Embeddings parameters",id:"cohere-embeddings-parameters",level:3},...i.RM,{value:"Cohere Rerank",id:"cohere-rerank",level:2},{value:"Cohere Rerank parameters",id:"cohere-rerank-parameters",level:3},...i.RM];function x(e){const r={a:"a",code:"code",h2:"h2",h3:"h3",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(o.A,{name:"Blocks","aria-hidden":"true"})," ",(0,s.jsx)(r.a,{href:"/components-bundle-components",children:(0,s.jsx)(r.strong,{children:"Bundles"})})," contain custom components that support specific third-party integrations with Langflow."]}),"\n",(0,s.jsxs)(r.p,{children:["This page describes the components that are available in the ",(0,s.jsx)(r.strong,{children:"Cohere"})," bundle."]}),"\n",(0,s.jsxs)(r.p,{children:["For more information about Cohere features and functionality used by Cohere components, see the ",(0,s.jsx)(r.a,{href:"https://cohere.ai/",children:"Cohere documentation"}),"."]}),"\n",(0,s.jsx)(r.h2,{id:"cohere-text-generation",children:"Cohere text generation"}),"\n",(0,s.jsx)(r.p,{children:"This component generates text using Cohere's language models."}),"\n",(0,s.jsxs)(r.p,{children:["It can output either a ",(0,s.jsx)(r.strong,{children:"Model Response"})," (",(0,s.jsx)(r.a,{href:"/data-types#message",children:(0,s.jsx)(r.code,{children:"Message"})}),") or a ",(0,s.jsx)(r.strong,{children:"Language Model"})," (",(0,s.jsx)(r.a,{href:"/data-types#languagemodel",children:(0,s.jsx)(r.code,{children:"LanguageModel"})}),")."]}),"\n",(0,s.jsxs)(r.p,{children:["Use the ",(0,s.jsx)(r.strong,{children:"Language Model"})," output when you want to use a Cohere model as the LLM for another LLM-driven component, such as an ",(0,s.jsx)(r.strong,{children:"Agent"})," or ",(0,s.jsx)(r.strong,{children:"Smart Function"})," component."]}),"\n",(0,s.jsxs)(r.p,{children:["For more information, see ",(0,s.jsx)(r.a,{href:"/components-models",children:"Language model components"}),"."]}),"\n",(0,s.jsx)(r.h3,{id:"cohere-text-generation-parameters",children:"Cohere text generation parameters"}),"\n",(0,s.jsx)(i.Ay,{}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Name"}),(0,s.jsx)(r.th,{children:"Type"}),(0,s.jsx)(r.th,{children:"Description"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Input"}),(0,s.jsx)(r.td,{children:"String"}),(0,s.jsx)(r.td,{children:"Input parameter. Specifies the input text for text generation."})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"System Message"}),(0,s.jsx)(r.td,{children:"String"}),(0,s.jsxs)(r.td,{children:["Input parameter. A ",(0,s.jsx)(r.a,{href:"https://docs.cohere.com/docs/system-instructions",children:"system message"})," to pass to the model."]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Stream"}),(0,s.jsx)(r.td,{children:"Boolean"}),(0,s.jsxs)(r.td,{children:["Input parameter. Whether to stream the response. Only works in chat. Default: ",(0,s.jsx)(r.code,{children:"false"}),"."]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Cohere API Key"}),(0,s.jsx)(r.td,{children:"SecretString"}),(0,s.jsx)(r.td,{children:"Input parameter. Your Cohere API key."})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Temperature"}),(0,s.jsx)(r.td,{children:"Float"}),(0,s.jsxs)(r.td,{children:["Input parameter. Specifies the randomness of sampling. Lower values (near 0) are more deterministic, and higher values (near 1) are more creative. Defaults to ",(0,s.jsx)(r.code,{children:"0.75"}),"."]})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"cohere-embeddings",children:"Cohere Embeddings"}),"\n",(0,s.jsxs)(r.p,{children:["The ",(0,s.jsx)(r.strong,{children:"Cohere Embeddings"})," component is used to load embedding models from Cohere."]}),"\n",(0,s.jsxs)(r.p,{children:["For more information about using embedding model components in flows, see ",(0,s.jsx)(r.a,{href:"/components-embedding-models",children:"Embedding model components"}),"."]}),"\n",(0,s.jsx)(r.h3,{id:"cohere-embeddings-parameters",children:"Cohere Embeddings parameters"}),"\n",(0,s.jsx)(i.Ay,{}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Name"}),(0,s.jsx)(r.th,{children:"Type"}),(0,s.jsx)(r.th,{children:"Description"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"cohere_api_key"}),(0,s.jsx)(r.td,{children:"SecretString"}),(0,s.jsx)(r.td,{children:"Input parameter. The API key required to authenticate with the Cohere service."})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"model"}),(0,s.jsx)(r.td,{children:"String"}),(0,s.jsxs)(r.td,{children:["Input parameter. The language model used for embedding text documents and performing queries. Default: ",(0,s.jsx)(r.code,{children:"embed-english-v2.0"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"truncate"}),(0,s.jsx)(r.td,{children:"Boolean"}),(0,s.jsxs)(r.td,{children:["Input parameter. How to handle input that exceeds the model's token limit. One of ",(0,s.jsx)(r.code,{children:"NONE"}),", ",(0,s.jsx)(r.code,{children:"START"}),", or ",(0,s.jsx)(r.code,{children:"END"})," (default). For more information, see the ",(0,s.jsxs)(r.a,{href:"https://docs.cohere.com/reference/embed#request.body.truncate",children:["Cohere ",(0,s.jsx)(r.code,{children:"truncate"})," API reference"]}),"."]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"max_retries"}),(0,s.jsx)(r.td,{children:"Integer"}),(0,s.jsxs)(r.td,{children:["Input parameter. The maximum number of retry attempts for failed requests. Default: ",(0,s.jsx)(r.code,{children:"3"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"user_agent"}),(0,s.jsx)(r.td,{children:"String"}),(0,s.jsxs)(r.td,{children:["Input parameter. A user agent string to include in requests. Default: ",(0,s.jsx)(r.code,{children:"langchain"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"request_timeout"}),(0,s.jsx)(r.td,{children:"Float"}),(0,s.jsx)(r.td,{children:"Input parameter. The timeout duration for requests in seconds. Default: None"})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"cohere-rerank",children:"Cohere Rerank"}),"\n",(0,s.jsx)(r.p,{children:"This component finds and reranks documents using the Cohere API."}),"\n",(0,s.jsxs)(r.p,{children:["Outputs ",(0,s.jsx)(r.code,{children:"Data"})," containing the reranked documents, limited by the ",(0,s.jsx)(r.strong,{children:"Top N"})," parameter."]}),"\n",(0,s.jsx)(r.h3,{id:"cohere-rerank-parameters",children:"Cohere Rerank parameters"}),"\n",(0,s.jsx)(i.Ay,{}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Name"}),(0,s.jsx)(r.th,{children:"Type"}),(0,s.jsx)(r.th,{children:"Description"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Search Query"})}),(0,s.jsx)(r.td,{children:"String"}),(0,s.jsx)(r.td,{children:"Input parameter. The search query for reranking documents."})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Search Results"})}),(0,s.jsx)(r.td,{children:"Data"}),(0,s.jsx)(r.td,{children:"Input parameter. Connect search results output from a vector store component. Use this parameter to apply reranking after running a similarity search on your vector database."})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Top N"})}),(0,s.jsx)(r.td,{children:"Integer"}),(0,s.jsxs)(r.td,{children:["Input parameter. The number of documents to return after reranking. Default: ",(0,s.jsx)(r.code,{children:"3"}),"."]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Cohere API Key"})}),(0,s.jsx)(r.td,{children:"SecretString"}),(0,s.jsx)(r.td,{children:"Input parameter. Your Cohere API key."})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Model"})}),(0,s.jsx)(r.td,{children:"String"}),(0,s.jsxs)(r.td,{children:["Input parameter. The re-ranker model to use. Default: ",(0,s.jsx)(r.code,{children:"rerank-english-v3.0"})]})]})]})]})]})}function m(e={}){const{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(x,{...e})}):x(e)}}}]); \ No newline at end of file diff --git a/assets/js/619c7267.c50d77db.js b/assets/js/619c7267.c50d77db.js new file mode 100644 index 0000000000..d44012fedb --- /dev/null +++ b/assets/js/619c7267.c50d77db.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7902],{31929:(e,r,n)=>{n.d(r,{Ay:()=>h,RM:()=>o});var t=n(74848),s=n(28453),d=n(40619);const o=[];function i(e){const r={a:"a",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,t.jsxs)(r.p,{children:["Some parameters are hidden by default in the visual editor.\nYou can modify all parameters through the ",(0,t.jsx)(d.A,{name:"SlidersHorizontal","aria-hidden":"true"})," ",(0,t.jsx)(r.strong,{children:"Controls"})," in the ",(0,t.jsx)(r.a,{href:"/concepts-components#component-menus",children:"component's header menu"}),"."]})}function h(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(i,{...e})}):i(e)}},98406:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>a,contentTitle:()=>c,default:()=>m,frontMatter:()=>h,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"Components/bundles-cohere","title":"Cohere","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","source":"@site/docs/Components/bundles-cohere.mdx","sourceDirName":"Components","slug":"/bundles-cohere","permalink":"/bundles-cohere","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Cohere","slug":"/bundles-cohere"},"sidebar":"docs","previous":{"title":"Cloudflare","permalink":"/bundles-cloudflare"},"next":{"title":"Composio","permalink":"/bundles-composio"}}');var s=n(74848),d=n(28453),o=n(40619),i=n(31929);const h={title:"Cohere",slug:"/bundles-cohere"},c=void 0,a={},l=[{value:"Cohere text generation",id:"cohere-text-generation",level:2},{value:"Cohere text generation parameters",id:"cohere-text-generation-parameters",level:3},...i.RM,{value:"Cohere Embeddings",id:"cohere-embeddings",level:2},{value:"Cohere Embeddings parameters",id:"cohere-embeddings-parameters",level:3},...i.RM,{value:"Cohere Rerank",id:"cohere-rerank",level:2},{value:"Cohere Rerank parameters",id:"cohere-rerank-parameters",level:3},...i.RM];function x(e){const r={a:"a",code:"code",h2:"h2",h3:"h3",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,d.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:[(0,s.jsx)(o.A,{name:"Blocks","aria-hidden":"true"})," ",(0,s.jsx)(r.a,{href:"/components-bundle-components",children:(0,s.jsx)(r.strong,{children:"Bundles"})})," contain custom components that support specific third-party integrations with Langflow."]}),"\n",(0,s.jsxs)(r.p,{children:["This page describes the components that are available in the ",(0,s.jsx)(r.strong,{children:"Cohere"})," bundle."]}),"\n",(0,s.jsxs)(r.p,{children:["For more information about Cohere features and functionality used by Cohere components, see the ",(0,s.jsx)(r.a,{href:"https://cohere.ai/",children:"Cohere documentation"}),"."]}),"\n",(0,s.jsx)(r.h2,{id:"cohere-text-generation",children:"Cohere text generation"}),"\n",(0,s.jsx)(r.p,{children:"This component generates text using Cohere's language models."}),"\n",(0,s.jsxs)(r.p,{children:["It can output either a ",(0,s.jsx)(r.strong,{children:"Model Response"})," (",(0,s.jsx)(r.a,{href:"/data-types#message",children:(0,s.jsx)(r.code,{children:"Message"})}),") or a ",(0,s.jsx)(r.strong,{children:"Language Model"})," (",(0,s.jsx)(r.a,{href:"/data-types#languagemodel",children:(0,s.jsx)(r.code,{children:"LanguageModel"})}),")."]}),"\n",(0,s.jsxs)(r.p,{children:["Use the ",(0,s.jsx)(r.strong,{children:"Language Model"})," output when you want to use a Cohere model as the LLM for another LLM-driven component, such as an ",(0,s.jsx)(r.strong,{children:"Agent"})," or ",(0,s.jsx)(r.strong,{children:"Smart Function"})," component."]}),"\n",(0,s.jsxs)(r.p,{children:["For more information, see ",(0,s.jsx)(r.a,{href:"/components-models",children:"Language model components"}),"."]}),"\n",(0,s.jsx)(r.h3,{id:"cohere-text-generation-parameters",children:"Cohere text generation parameters"}),"\n",(0,s.jsx)(i.Ay,{}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Name"}),(0,s.jsx)(r.th,{children:"Type"}),(0,s.jsx)(r.th,{children:"Description"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Input"}),(0,s.jsx)(r.td,{children:"String"}),(0,s.jsx)(r.td,{children:"Input parameter. Specifies the input text for text generation."})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"System Message"}),(0,s.jsx)(r.td,{children:"String"}),(0,s.jsxs)(r.td,{children:["Input parameter. A ",(0,s.jsx)(r.a,{href:"https://docs.cohere.com/docs/system-instructions",children:"system message"})," to pass to the model."]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Stream"}),(0,s.jsx)(r.td,{children:"Boolean"}),(0,s.jsxs)(r.td,{children:["Input parameter. Whether to stream the response. Only works in chat. Default: ",(0,s.jsx)(r.code,{children:"false"}),"."]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Cohere API Key"}),(0,s.jsx)(r.td,{children:"SecretString"}),(0,s.jsx)(r.td,{children:"Input parameter. Your Cohere API key."})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Temperature"}),(0,s.jsx)(r.td,{children:"Float"}),(0,s.jsxs)(r.td,{children:["Input parameter. Specifies the randomness of sampling. Lower values (near 0) are more deterministic, and higher values (near 1) are more creative. Defaults to ",(0,s.jsx)(r.code,{children:"0.75"}),"."]})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"cohere-embeddings",children:"Cohere Embeddings"}),"\n",(0,s.jsxs)(r.p,{children:["The ",(0,s.jsx)(r.strong,{children:"Cohere Embeddings"})," component is used to load embedding models from Cohere."]}),"\n",(0,s.jsxs)(r.p,{children:["For more information about using embedding model components in flows, see ",(0,s.jsx)(r.a,{href:"/components-embedding-models",children:"Embedding model components"}),"."]}),"\n",(0,s.jsx)(r.h3,{id:"cohere-embeddings-parameters",children:"Cohere Embeddings parameters"}),"\n",(0,s.jsx)(i.Ay,{}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Name"}),(0,s.jsx)(r.th,{children:"Type"}),(0,s.jsx)(r.th,{children:"Description"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"cohere_api_key"}),(0,s.jsx)(r.td,{children:"SecretString"}),(0,s.jsx)(r.td,{children:"Input parameter. The API key required to authenticate with the Cohere service."})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"model"}),(0,s.jsx)(r.td,{children:"String"}),(0,s.jsxs)(r.td,{children:["Input parameter. The language model used for embedding text documents and performing queries. Default: ",(0,s.jsx)(r.code,{children:"embed-english-v2.0"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"truncate"}),(0,s.jsx)(r.td,{children:"Boolean"}),(0,s.jsxs)(r.td,{children:["Input parameter. How to handle input that exceeds the model's token limit. One of ",(0,s.jsx)(r.code,{children:"NONE"}),", ",(0,s.jsx)(r.code,{children:"START"}),", or ",(0,s.jsx)(r.code,{children:"END"})," (default). For more information, see the ",(0,s.jsxs)(r.a,{href:"https://docs.cohere.com/reference/embed#request.body.truncate",children:["Cohere ",(0,s.jsx)(r.code,{children:"truncate"})," API reference"]}),"."]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"max_retries"}),(0,s.jsx)(r.td,{children:"Integer"}),(0,s.jsxs)(r.td,{children:["Input parameter. The maximum number of retry attempts for failed requests. Default: ",(0,s.jsx)(r.code,{children:"3"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"user_agent"}),(0,s.jsx)(r.td,{children:"String"}),(0,s.jsxs)(r.td,{children:["Input parameter. A user agent string to include in requests. Default: ",(0,s.jsx)(r.code,{children:"langchain"})]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"request_timeout"}),(0,s.jsx)(r.td,{children:"Float"}),(0,s.jsx)(r.td,{children:"Input parameter. The timeout duration for requests in seconds. Default: None"})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"cohere-rerank",children:"Cohere Rerank"}),"\n",(0,s.jsx)(r.p,{children:"This component finds and reranks documents using the Cohere API."}),"\n",(0,s.jsxs)(r.p,{children:["Outputs ",(0,s.jsx)(r.code,{children:"Data"})," containing the reranked documents, limited by the ",(0,s.jsx)(r.strong,{children:"Top N"})," parameter."]}),"\n",(0,s.jsx)(r.h3,{id:"cohere-rerank-parameters",children:"Cohere Rerank parameters"}),"\n",(0,s.jsx)(i.Ay,{}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Name"}),(0,s.jsx)(r.th,{children:"Type"}),(0,s.jsx)(r.th,{children:"Description"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Search Query"})}),(0,s.jsx)(r.td,{children:"String"}),(0,s.jsx)(r.td,{children:"Input parameter. The search query for reranking documents."})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Search Results"})}),(0,s.jsx)(r.td,{children:"Data"}),(0,s.jsx)(r.td,{children:"Input parameter. Connect search results output from a vector store component. Use this parameter to apply reranking after running a similarity search on your vector database."})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Top N"})}),(0,s.jsx)(r.td,{children:"Integer"}),(0,s.jsxs)(r.td,{children:["Input parameter. The number of documents to return after reranking. Default: ",(0,s.jsx)(r.code,{children:"3"}),"."]})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Cohere API Key"})}),(0,s.jsx)(r.td,{children:"SecretString"}),(0,s.jsx)(r.td,{children:"Input parameter. Your Cohere API key."})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.strong,{children:"Model"})}),(0,s.jsx)(r.td,{children:"String"}),(0,s.jsxs)(r.td,{children:["Input parameter. The re-ranker model to use. Default: ",(0,s.jsx)(r.code,{children:"rerank-english-v3.0"})]})]})]})]})]})}function m(e={}){const{wrapper:r}={...(0,d.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(x,{...e})}):x(e)}}}]); \ No newline at end of file diff --git a/assets/js/69d616f2.7bfe45dc.js b/assets/js/69d616f2.7bfe45dc.js deleted file mode 100644 index ce6d73f626..0000000000 --- a/assets/js/69d616f2.7bfe45dc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5903],{26679:(o,e,n)=>{n.r(e),n.d(e,{CH:()=>h,assets:()=>d,chCodeConfig:()=>p,contentTitle:()=>a,default:()=>g,frontMatter:()=>l,metadata:()=>t,toc:()=>m});const t=JSON.parse('{"id":"Components/bundles-composio","title":"Composio","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","source":"@site/docs/Components/bundles-composio.mdx","sourceDirName":"Components","slug":"/bundles-composio","permalink":"/bundles-composio","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Composio","slug":"/bundles-composio"}}');var s=n(74848),r=n(28453),i=n(24754),c=n(40619);const l={title:"Composio",slug:"/bundles-composio"},a=void 0,d={},h={annotations:i.hk,Code:i.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},m=[{value:"Use Composio components in a flow",id:"use-composio-components-in-a-flow",level:2},{value:"Composio parameters",id:"composio-parameters",level:2},{value:"Composio authentication",id:"composio-authentication",level:2},{value:"Composio output",id:"composio-output",level:2}];function u(o){const e={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...o.components};return h||x("CH",!1),h.Code||x("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.jsxs)(e.p,{children:[(0,s.jsx)(c.A,{name:"Blocks","aria-hidden":"true"})," ",(0,s.jsx)(e.a,{href:"/components-bundle-components",children:(0,s.jsx)(e.strong,{children:"Bundles"})})," contain custom components that support specific third-party integrations with Langflow."]}),"\n",(0,s.jsxs)(e.p,{children:["This page describes the components that are available in the ",(0,s.jsx)(e.strong,{children:"Composio"})," bundle."]}),"\n",(0,s.jsxs)(e.p,{children:["For information about specific Composio functionality, see the ",(0,s.jsx)(e.a,{href:"https://docs.composio.dev/introduction/intro/overview",children:"Composio documentation"}),"."]}),"\n",(0,s.jsx)(e.h2,{id:"use-composio-components-in-a-flow",children:"Use Composio components in a flow"}),"\n",(0,s.jsxs)(e.p,{children:["Composio components are primarily used as ",(0,s.jsx)(e.a,{href:"/agents-tools",children:"tools for agents"}),"."]}),"\n",(0,s.jsxs)(e.p,{children:["The ",(0,s.jsx)(e.strong,{children:"Composio"})," bundle includes an aggregate ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component and the following single-service components:"]}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Dropbox"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"GitHub"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Gmail"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Google Calendar"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Google Meet"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Google Tasks"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Linear"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Outlook"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Reddit"})}),"\n",(0,s.jsxs)(e.li,{children:[(0,s.jsx)(e.strong,{children:"Slack"})," (your Slack account)"]}),"\n",(0,s.jsxs)(e.li,{children:[(0,s.jsx)(e.strong,{children:"Slackbot"})," (bot integration)"]}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Supabase"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Todoist"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Youtube"})}),"\n"]}),"\n",(0,s.jsxs)(e.p,{children:["The ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component is an access point for multiple Composio services (tools).\nHowever, most of these services are also available as single-service components, which are recommended over the ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component."]}),"\n",(0,s.jsxs)(e.p,{children:["Although you can use single-service components for non-agentic actions in your flows, they are primarily used in ",(0,s.jsx)(e.strong,{children:"Tool Mode"})," with ",(0,s.jsx)(e.strong,{children:"Agent"})," components.\nIn contrast, the ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component can ",(0,s.jsx)(e.em,{children:"only"})," be a tool for agents; it doesn't support non-agentic use."]}),"\n",(0,s.jsxs)(e.p,{children:["The following example demonstrates how to use the Composio ",(0,s.jsx)(e.strong,{children:"Gmail"})," component as a tool for an ",(0,s.jsx)(e.strong,{children:"Agent"})," component.\nThis allows the agent to use Composio Gmail functionality, if necessary, when generating responses.\nYou can connect other Composio components in the same way."]}),"\n",(0,s.jsxs)(e.ol,{children:["\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["Create a flow based on the ",(0,s.jsx)(e.strong,{children:"Simple Agent"})," template."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["In ",(0,s.jsx)(c.A,{name:"Blocks","aria-hidden":"true"})," ",(0,s.jsx)(e.strong,{children:"Bundles"}),", find the ",(0,s.jsx)(e.strong,{children:"Composio"})," bundle, and then add the ",(0,s.jsx)(e.strong,{children:"Gmail"})," component to the flow."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["In the ",(0,s.jsx)(e.strong,{children:"Composio API Key"})," field, enter your Composio API key or use the ",(0,s.jsx)(e.code,{children:"COMPOSIO_API_KEY"})," global variable.\nFor more information, see ",(0,s.jsx)(e.a,{href:"#composio-authentication",children:"Composio authentication"}),"."]}),"\n",(0,s.jsxs)(e.p,{children:["If the key is valid, the ",(0,s.jsx)(c.A,{name:"TriangleAlert","aria-hidden":"true"})," ",(0,s.jsx)(e.strong,{children:"Alert"})," is replaced by a ",(0,s.jsx)(c.A,{name:"Check","aria-hidden":"true"})," ",(0,s.jsx)(e.strong,{children:"Success"})," indicator, and the ",(0,s.jsx)(e.strong,{children:"Actions"})," list populates with actions available to your API key."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["In the ",(0,s.jsx)(e.a,{href:"/concepts-components#component-menus",children:"component's header menu"}),", enable ",(0,s.jsx)(e.strong,{children:"Tool Mode"}),"."]}),"\n",(0,s.jsxs)(e.p,{children:["If you are using the ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component, skip this step because the component is already configured as a tool."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["In the ",(0,s.jsx)(e.strong,{children:"Actions"})," list, configure the Gmail actions that you want to provide to the agent.\nYou can select the actions you want to allow, and you can edit each action's slug (agentic label) and description, which help the agent decide which tools to use."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["Connect the ",(0,s.jsx)(e.strong,{children:"Gmail"})," component's ",(0,s.jsx)(e.strong,{children:"Toolset"})," output to the ",(0,s.jsx)(e.strong,{children:"Agent"})," component's ",(0,s.jsx)(e.strong,{children:"Tools"})," input."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["In the ",(0,s.jsx)(e.strong,{children:"Agent"})," component, enter your OpenAI API key or configure the ",(0,s.jsx)(e.strong,{children:"Agent"})," component to use a different LLM.\nFor more information, see ",(0,s.jsx)(e.a,{href:"/components-models",children:"Language model components"}),"."]}),"\n",(0,s.jsx)(e.p,{children:"At this point, your flow has four connected components:"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["The ",(0,s.jsx)(e.strong,{children:"Chat Input"})," component is connected to the ",(0,s.jsx)(e.strong,{children:"Agent"})," component's ",(0,s.jsx)(e.strong,{children:"Input"})," port.\nThis allows the flow to be triggered by an incoming prompt from a user or application."]}),"\n",(0,s.jsxs)(e.li,{children:["The ",(0,s.jsx)(e.strong,{children:"Gmail"})," component is connected to the ",(0,s.jsx)(e.strong,{children:"Agent"})," component as a tool.\nThe agent may not use this tool for every request; the agent only uses this connection if it decides the Gmail tool can help respond to the prompt."]}),"\n",(0,s.jsxs)(e.li,{children:["The ",(0,s.jsx)(e.strong,{children:"Agent"})," component's ",(0,s.jsx)(e.strong,{children:"Output"})," port is connected to the ",(0,s.jsx)(e.strong,{children:"Chat Output"})," component, which returns the final response to the user or application."]}),"\n"]}),"\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.img,{alt:"Simple Agent flow with a Composio Tools component",src:n(83984).A+"",width:"2144",height:"1290"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["To test the flow, click ",(0,s.jsx)(e.strong,{children:"Playground"}),", and then ask the LLM about the tools available to it.\nThe agent should provide a list of connected tools, including the ",(0,s.jsx)(e.strong,{children:"Gmail"})," tool and the built-in tools in the ",(0,s.jsx)(e.strong,{children:"Agent"})," component.\nFor example:"]}),"\n",(0,s.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"User:",props:{}}]},{tokens:[{content:"What tools are available to you?",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"I have access to a variety of tools that allow me to help you with different tasks. Here are the main categories of tools available to me:",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"1. Gmail Tools:",props:{}}]},{tokens:[{content:" - Fetch emails, search, and filter messages.",props:{}}]},{tokens:[{content:" - Fetch specific email details by message ID.",props:{}}]},{tokens:[{content:" - Create email drafts (with attachments, HTML, CC/BCC, etc.).",props:{}}]},{tokens:[{content:" - Delete email drafts or specific messages.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"2. Date & Time Tools:",props:{}}]},{tokens:[{content:" - Get the current date and time in any timezone.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"3. Multi-Tool Use:",props:{}}]},{tokens:[{content:" - Run multiple tools in parallel for efficiency.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"If you have a specific task in mind, let me know and I can tell you which tool I would use or demonstrate how I can help!",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"To test a specific tool or function, tell the agent to perform an action that uses that tool.\nFor example, ask the agent to write a draft email:"}),"\n",(0,s.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'Create a draft email with the subject line "Greetings from Composio"',props:{}}]},{tokens:[{content:'recipient: "your.email@address.com"',props:{}}]},{tokens:[{content:'Body content: "Hello from composio!"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(e.p,{children:["The ",(0,s.jsx)(e.strong,{children:"Playground"})," prints the logic as the agent chooses the ",(0,s.jsx)(e.code,{children:"GMAIL_CREATE_EMAIL_DRAFT"})," tool to create the email draft.\nThe following example response is abbreviated:"]}),"\n",(0,s.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'The draft email with the subject "Greetings from Composio" and body "Hello from composio!" has been successfully created.',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "recipient_email"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"your.email@address.com"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "subject"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Greetings from Composio"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "body"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello from composio!"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "is_html"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "response_data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"r-237981011463568567"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"195dd80528171132"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "threadId"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"195dd80528171132"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "labelIds"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "DRAFT"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "successfull"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "successful"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsx)(e.p,{children:"For further confirmation, you can go to your Gmail account and find the message in your drafts folder."}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["Optional: To add more Composio services, repeat these steps to add more Composio components to your flow.\nFor each component, provide the necessary credentials, enable ",(0,s.jsx)(e.strong,{children:"Tool Mode"}),", configure the actions, and then connect it to the ",(0,s.jsx)(e.strong,{children:"Agent"})," component's ",(0,s.jsx)(e.strong,{children:"Tools"})," port."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.h2,{id:"composio-parameters",children:"Composio parameters"}),"\n",(0,s.jsxs)(e.p,{children:["All single-service Composio components have the same parameters, and the ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component has one additional parameter:"]}),"\n",(0,s.jsxs)(e.table,{children:[(0,s.jsx)(e.thead,{children:(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.th,{children:"Name"}),(0,s.jsx)(e.th,{children:"Type"}),(0,s.jsx)(e.th,{children:"Description"})]})}),(0,s.jsxs)(e.tbody,{children:[(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"entity_id"}),(0,s.jsx)(e.td,{children:"String"}),(0,s.jsxs)(e.td,{children:["Input parameter. The entity ID for the Composio account. Default: ",(0,s.jsx)(e.code,{children:"default"}),". This parameter is hidden by default in the visual editor. If you need to set this parameter, you can access it through the ",(0,s.jsx)(c.A,{name:"SlidersHorizontal","aria-hidden":"true"})," ",(0,s.jsx)(e.strong,{children:"Controls"})," in the ",(0,s.jsx)(e.a,{href:"/concepts-components#component-menus",children:"component's header menu"}),"."]})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"api_key"}),(0,s.jsx)(e.td,{children:"SecretString"}),(0,s.jsxs)(e.td,{children:["Input parameter. The Composio API key for authentication with the Composio platform. Make sure the key authorizes the specific service that you want to use. For more information, see ",(0,s.jsx)(e.a,{href:"#composio-authentication",children:"Composio authentication"}),"."]})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"tool_name"}),(0,s.jsx)(e.td,{children:"Connection"}),(0,s.jsxs)(e.td,{children:["Input parameter for the ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component only. Select the Composio service (tool) to connect to."]})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"action"}),(0,s.jsx)(e.td,{children:"List"}),(0,s.jsx)(e.td,{children:"Input parameter. Select actions to use. Available actions vary by service. Some actions might require premium access to a particular service."})]})]})]}),"\n",(0,s.jsx)(e.h2,{id:"composio-authentication",children:"Composio authentication"}),"\n",(0,s.jsx)(e.p,{children:"Composio components require authentication to the Composio platform with a Composio API key."}),"\n",(0,s.jsxs)(e.p,{children:["You can provide this key directly in your components, or you can use the ",(0,s.jsx)(e.code,{children:"COMPOSIO_API_KEY"})," ",(0,s.jsx)(e.a,{href:"/configuration-global-variables",children:"global variable"}),", which Langflow can automatically load from your ",(0,s.jsx)(e.code,{children:".env"})," file."]}),"\n",(0,s.jsx)(e.admonition,{type:"info",children:(0,s.jsxs)(e.p,{children:["The Composio API key ",(0,s.jsx)(e.em,{children:"only"})," handles the connection to Composio.\nService provider authentication is managed through the Composio platform for each service that you want to use."]})}),"\n",(0,s.jsxs)(e.p,{children:["Make sure that your Composio API key provides access to the required services for the components in your flow.\nFor example, if you are using the Composio ",(0,s.jsx)(e.strong,{children:"Gmail"})," component, your Composio API key must have access to the Gmail service."]}),"\n",(0,s.jsx)(e.h2,{id:"composio-output",children:"Composio output"}),"\n",(0,s.jsxs)(e.p,{children:["When used as tools for an agent, Composio components output ",(0,s.jsx)(e.a,{href:"/data-types#tool",children:(0,s.jsx)(e.code,{children:"Tools"})}),", which is a list of tools for use by an agent.\nWhen called by the agent, the response from the Composio service is ingested by the agent, not passed directly as output to the user or application."]}),"\n",(0,s.jsxs)(e.p,{children:["In non-agentic use cases, the output is a ",(0,s.jsx)(e.a,{href:"/data-types#dataframe",children:(0,s.jsx)(e.code,{children:"DataFrame"})})," containing the response from the specified Composio service, depending on the component and action used in the flow."]}),"\n",(0,s.jsxs)(e.p,{children:["Because the ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component supports ",(0,s.jsx)(e.em,{children:"only"})," agentic use, it cannot output ",(0,s.jsx)(e.code,{children:"DataFrame"}),".\nAll single-service Composio components can output either ",(0,s.jsx)(e.code,{children:"DataFrame"})," or ",(0,s.jsx)(e.code,{children:"Tools"}),"."]})]})}function g(o={}){const{wrapper:e}={...(0,r.R)(),...o.components};return e?(0,s.jsx)(e,{...o,children:(0,s.jsx)(u,{...o})}):u(o)}function x(o,e){throw new Error("Expected "+(e?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}},83984:(o,e,n)=>{n.d(e,{A:()=>t});const t=n.p+"assets/images/composio-create-flow-09bd66a05e013b5e1dbf31940f4ab8b4.png"}}]); \ No newline at end of file diff --git a/assets/js/69d616f2.c87785e1.js b/assets/js/69d616f2.c87785e1.js new file mode 100644 index 0000000000..4f1b715ac9 --- /dev/null +++ b/assets/js/69d616f2.c87785e1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5903],{26679:(o,e,n)=>{n.r(e),n.d(e,{CH:()=>h,assets:()=>d,chCodeConfig:()=>p,contentTitle:()=>a,default:()=>g,frontMatter:()=>l,metadata:()=>t,toc:()=>m});const t=JSON.parse('{"id":"Components/bundles-composio","title":"Composio","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","source":"@site/docs/Components/bundles-composio.mdx","sourceDirName":"Components","slug":"/bundles-composio","permalink":"/bundles-composio","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Composio","slug":"/bundles-composio"},"sidebar":"docs","previous":{"title":"Cohere","permalink":"/bundles-cohere"},"next":{"title":"Couchbase","permalink":"/bundles-couchbase"}}');var s=n(74848),r=n(28453),i=n(24754),c=n(40619);const l={title:"Composio",slug:"/bundles-composio"},a=void 0,d={},h={annotations:i.hk,Code:i.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},m=[{value:"Use Composio components in a flow",id:"use-composio-components-in-a-flow",level:2},{value:"Composio parameters",id:"composio-parameters",level:2},{value:"Composio authentication",id:"composio-authentication",level:2},{value:"Composio output",id:"composio-output",level:2}];function u(o){const e={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...o.components};return h||x("CH",!1),h.Code||x("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.jsxs)(e.p,{children:[(0,s.jsx)(c.A,{name:"Blocks","aria-hidden":"true"})," ",(0,s.jsx)(e.a,{href:"/components-bundle-components",children:(0,s.jsx)(e.strong,{children:"Bundles"})})," contain custom components that support specific third-party integrations with Langflow."]}),"\n",(0,s.jsxs)(e.p,{children:["This page describes the components that are available in the ",(0,s.jsx)(e.strong,{children:"Composio"})," bundle."]}),"\n",(0,s.jsxs)(e.p,{children:["For information about specific Composio functionality, see the ",(0,s.jsx)(e.a,{href:"https://docs.composio.dev/introduction/intro/overview",children:"Composio documentation"}),"."]}),"\n",(0,s.jsx)(e.h2,{id:"use-composio-components-in-a-flow",children:"Use Composio components in a flow"}),"\n",(0,s.jsxs)(e.p,{children:["Composio components are primarily used as ",(0,s.jsx)(e.a,{href:"/agents-tools",children:"tools for agents"}),"."]}),"\n",(0,s.jsxs)(e.p,{children:["The ",(0,s.jsx)(e.strong,{children:"Composio"})," bundle includes an aggregate ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component and the following single-service components:"]}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Dropbox"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"GitHub"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Gmail"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Google Calendar"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Google Meet"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Google Tasks"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Linear"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Outlook"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Reddit"})}),"\n",(0,s.jsxs)(e.li,{children:[(0,s.jsx)(e.strong,{children:"Slack"})," (your Slack account)"]}),"\n",(0,s.jsxs)(e.li,{children:[(0,s.jsx)(e.strong,{children:"Slackbot"})," (bot integration)"]}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Supabase"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Todoist"})}),"\n",(0,s.jsx)(e.li,{children:(0,s.jsx)(e.strong,{children:"Youtube"})}),"\n"]}),"\n",(0,s.jsxs)(e.p,{children:["The ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component is an access point for multiple Composio services (tools).\nHowever, most of these services are also available as single-service components, which are recommended over the ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component."]}),"\n",(0,s.jsxs)(e.p,{children:["Although you can use single-service components for non-agentic actions in your flows, they are primarily used in ",(0,s.jsx)(e.strong,{children:"Tool Mode"})," with ",(0,s.jsx)(e.strong,{children:"Agent"})," components.\nIn contrast, the ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component can ",(0,s.jsx)(e.em,{children:"only"})," be a tool for agents; it doesn't support non-agentic use."]}),"\n",(0,s.jsxs)(e.p,{children:["The following example demonstrates how to use the Composio ",(0,s.jsx)(e.strong,{children:"Gmail"})," component as a tool for an ",(0,s.jsx)(e.strong,{children:"Agent"})," component.\nThis allows the agent to use Composio Gmail functionality, if necessary, when generating responses.\nYou can connect other Composio components in the same way."]}),"\n",(0,s.jsxs)(e.ol,{children:["\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["Create a flow based on the ",(0,s.jsx)(e.strong,{children:"Simple Agent"})," template."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["In ",(0,s.jsx)(c.A,{name:"Blocks","aria-hidden":"true"})," ",(0,s.jsx)(e.strong,{children:"Bundles"}),", find the ",(0,s.jsx)(e.strong,{children:"Composio"})," bundle, and then add the ",(0,s.jsx)(e.strong,{children:"Gmail"})," component to the flow."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["In the ",(0,s.jsx)(e.strong,{children:"Composio API Key"})," field, enter your Composio API key or use the ",(0,s.jsx)(e.code,{children:"COMPOSIO_API_KEY"})," global variable.\nFor more information, see ",(0,s.jsx)(e.a,{href:"#composio-authentication",children:"Composio authentication"}),"."]}),"\n",(0,s.jsxs)(e.p,{children:["If the key is valid, the ",(0,s.jsx)(c.A,{name:"TriangleAlert","aria-hidden":"true"})," ",(0,s.jsx)(e.strong,{children:"Alert"})," is replaced by a ",(0,s.jsx)(c.A,{name:"Check","aria-hidden":"true"})," ",(0,s.jsx)(e.strong,{children:"Success"})," indicator, and the ",(0,s.jsx)(e.strong,{children:"Actions"})," list populates with actions available to your API key."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["In the ",(0,s.jsx)(e.a,{href:"/concepts-components#component-menus",children:"component's header menu"}),", enable ",(0,s.jsx)(e.strong,{children:"Tool Mode"}),"."]}),"\n",(0,s.jsxs)(e.p,{children:["If you are using the ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component, skip this step because the component is already configured as a tool."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["In the ",(0,s.jsx)(e.strong,{children:"Actions"})," list, configure the Gmail actions that you want to provide to the agent.\nYou can select the actions you want to allow, and you can edit each action's slug (agentic label) and description, which help the agent decide which tools to use."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["Connect the ",(0,s.jsx)(e.strong,{children:"Gmail"})," component's ",(0,s.jsx)(e.strong,{children:"Toolset"})," output to the ",(0,s.jsx)(e.strong,{children:"Agent"})," component's ",(0,s.jsx)(e.strong,{children:"Tools"})," input."]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["In the ",(0,s.jsx)(e.strong,{children:"Agent"})," component, enter your OpenAI API key or configure the ",(0,s.jsx)(e.strong,{children:"Agent"})," component to use a different LLM.\nFor more information, see ",(0,s.jsx)(e.a,{href:"/components-models",children:"Language model components"}),"."]}),"\n",(0,s.jsx)(e.p,{children:"At this point, your flow has four connected components:"}),"\n",(0,s.jsxs)(e.ul,{children:["\n",(0,s.jsxs)(e.li,{children:["The ",(0,s.jsx)(e.strong,{children:"Chat Input"})," component is connected to the ",(0,s.jsx)(e.strong,{children:"Agent"})," component's ",(0,s.jsx)(e.strong,{children:"Input"})," port.\nThis allows the flow to be triggered by an incoming prompt from a user or application."]}),"\n",(0,s.jsxs)(e.li,{children:["The ",(0,s.jsx)(e.strong,{children:"Gmail"})," component is connected to the ",(0,s.jsx)(e.strong,{children:"Agent"})," component as a tool.\nThe agent may not use this tool for every request; the agent only uses this connection if it decides the Gmail tool can help respond to the prompt."]}),"\n",(0,s.jsxs)(e.li,{children:["The ",(0,s.jsx)(e.strong,{children:"Agent"})," component's ",(0,s.jsx)(e.strong,{children:"Output"})," port is connected to the ",(0,s.jsx)(e.strong,{children:"Chat Output"})," component, which returns the final response to the user or application."]}),"\n"]}),"\n",(0,s.jsx)(e.p,{children:(0,s.jsx)(e.img,{alt:"Simple Agent flow with a Composio Tools component",src:n(83984).A+"",width:"2144",height:"1290"})}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["To test the flow, click ",(0,s.jsx)(e.strong,{children:"Playground"}),", and then ask the LLM about the tools available to it.\nThe agent should provide a list of connected tools, including the ",(0,s.jsx)(e.strong,{children:"Gmail"})," tool and the built-in tools in the ",(0,s.jsx)(e.strong,{children:"Agent"})," component.\nFor example:"]}),"\n",(0,s.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"User:",props:{}}]},{tokens:[{content:"What tools are available to you?",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"I have access to a variety of tools that allow me to help you with different tasks. Here are the main categories of tools available to me:",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"1. Gmail Tools:",props:{}}]},{tokens:[{content:" - Fetch emails, search, and filter messages.",props:{}}]},{tokens:[{content:" - Fetch specific email details by message ID.",props:{}}]},{tokens:[{content:" - Create email drafts (with attachments, HTML, CC/BCC, etc.).",props:{}}]},{tokens:[{content:" - Delete email drafts or specific messages.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"2. Date & Time Tools:",props:{}}]},{tokens:[{content:" - Get the current date and time in any timezone.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"3. Multi-Tool Use:",props:{}}]},{tokens:[{content:" - Run multiple tools in parallel for efficiency.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"If you have a specific task in mind, let me know and I can tell you which tool I would use or demonstrate how I can help!",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsx)(e.p,{children:"To test a specific tool or function, tell the agent to perform an action that uses that tool.\nFor example, ask the agent to write a draft email:"}),"\n",(0,s.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'Create a draft email with the subject line "Greetings from Composio"',props:{}}]},{tokens:[{content:'recipient: "your.email@address.com"',props:{}}]},{tokens:[{content:'Body content: "Hello from composio!"',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsxs)(e.p,{children:["The ",(0,s.jsx)(e.strong,{children:"Playground"})," prints the logic as the agent chooses the ",(0,s.jsx)(e.code,{children:"GMAIL_CREATE_EMAIL_DRAFT"})," tool to create the email draft.\nThe following example response is abbreviated:"]}),"\n",(0,s.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:'The draft email with the subject "Greetings from Composio" and body "Hello from composio!" has been successfully created.',props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,s.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "recipient_email"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"your.email@address.com"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "subject"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Greetings from Composio"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "body"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello from composio!"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "is_html"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "response_data"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"r-237981011463568567"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"195dd80528171132"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "threadId"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"195dd80528171132"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "labelIds"',props:{style:{color:"#7EE787"}}},{content:": [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "DRAFT"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "error"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "successfull"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "successful"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsx)(e.p,{children:"For further confirmation, you can go to your Gmail account and find the message in your drafts folder."}),"\n"]}),"\n",(0,s.jsxs)(e.li,{children:["\n",(0,s.jsxs)(e.p,{children:["Optional: To add more Composio services, repeat these steps to add more Composio components to your flow.\nFor each component, provide the necessary credentials, enable ",(0,s.jsx)(e.strong,{children:"Tool Mode"}),", configure the actions, and then connect it to the ",(0,s.jsx)(e.strong,{children:"Agent"})," component's ",(0,s.jsx)(e.strong,{children:"Tools"})," port."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(e.h2,{id:"composio-parameters",children:"Composio parameters"}),"\n",(0,s.jsxs)(e.p,{children:["All single-service Composio components have the same parameters, and the ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component has one additional parameter:"]}),"\n",(0,s.jsxs)(e.table,{children:[(0,s.jsx)(e.thead,{children:(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.th,{children:"Name"}),(0,s.jsx)(e.th,{children:"Type"}),(0,s.jsx)(e.th,{children:"Description"})]})}),(0,s.jsxs)(e.tbody,{children:[(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"entity_id"}),(0,s.jsx)(e.td,{children:"String"}),(0,s.jsxs)(e.td,{children:["Input parameter. The entity ID for the Composio account. Default: ",(0,s.jsx)(e.code,{children:"default"}),". This parameter is hidden by default in the visual editor. If you need to set this parameter, you can access it through the ",(0,s.jsx)(c.A,{name:"SlidersHorizontal","aria-hidden":"true"})," ",(0,s.jsx)(e.strong,{children:"Controls"})," in the ",(0,s.jsx)(e.a,{href:"/concepts-components#component-menus",children:"component's header menu"}),"."]})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"api_key"}),(0,s.jsx)(e.td,{children:"SecretString"}),(0,s.jsxs)(e.td,{children:["Input parameter. The Composio API key for authentication with the Composio platform. Make sure the key authorizes the specific service that you want to use. For more information, see ",(0,s.jsx)(e.a,{href:"#composio-authentication",children:"Composio authentication"}),"."]})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"tool_name"}),(0,s.jsx)(e.td,{children:"Connection"}),(0,s.jsxs)(e.td,{children:["Input parameter for the ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component only. Select the Composio service (tool) to connect to."]})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{children:"action"}),(0,s.jsx)(e.td,{children:"List"}),(0,s.jsx)(e.td,{children:"Input parameter. Select actions to use. Available actions vary by service. Some actions might require premium access to a particular service."})]})]})]}),"\n",(0,s.jsx)(e.h2,{id:"composio-authentication",children:"Composio authentication"}),"\n",(0,s.jsx)(e.p,{children:"Composio components require authentication to the Composio platform with a Composio API key."}),"\n",(0,s.jsxs)(e.p,{children:["You can provide this key directly in your components, or you can use the ",(0,s.jsx)(e.code,{children:"COMPOSIO_API_KEY"})," ",(0,s.jsx)(e.a,{href:"/configuration-global-variables",children:"global variable"}),", which Langflow can automatically load from your ",(0,s.jsx)(e.code,{children:".env"})," file."]}),"\n",(0,s.jsx)(e.admonition,{type:"info",children:(0,s.jsxs)(e.p,{children:["The Composio API key ",(0,s.jsx)(e.em,{children:"only"})," handles the connection to Composio.\nService provider authentication is managed through the Composio platform for each service that you want to use."]})}),"\n",(0,s.jsxs)(e.p,{children:["Make sure that your Composio API key provides access to the required services for the components in your flow.\nFor example, if you are using the Composio ",(0,s.jsx)(e.strong,{children:"Gmail"})," component, your Composio API key must have access to the Gmail service."]}),"\n",(0,s.jsx)(e.h2,{id:"composio-output",children:"Composio output"}),"\n",(0,s.jsxs)(e.p,{children:["When used as tools for an agent, Composio components output ",(0,s.jsx)(e.a,{href:"/data-types#tool",children:(0,s.jsx)(e.code,{children:"Tools"})}),", which is a list of tools for use by an agent.\nWhen called by the agent, the response from the Composio service is ingested by the agent, not passed directly as output to the user or application."]}),"\n",(0,s.jsxs)(e.p,{children:["In non-agentic use cases, the output is a ",(0,s.jsx)(e.a,{href:"/data-types#dataframe",children:(0,s.jsx)(e.code,{children:"DataFrame"})})," containing the response from the specified Composio service, depending on the component and action used in the flow."]}),"\n",(0,s.jsxs)(e.p,{children:["Because the ",(0,s.jsx)(e.strong,{children:"Composio Tools"})," component supports ",(0,s.jsx)(e.em,{children:"only"})," agentic use, it cannot output ",(0,s.jsx)(e.code,{children:"DataFrame"}),".\nAll single-service Composio components can output either ",(0,s.jsx)(e.code,{children:"DataFrame"})," or ",(0,s.jsx)(e.code,{children:"Tools"}),"."]})]})}function g(o={}){const{wrapper:e}={...(0,r.R)(),...o.components};return e?(0,s.jsx)(e,{...o,children:(0,s.jsx)(u,{...o})}):u(o)}function x(o,e){throw new Error("Expected "+(e?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}},83984:(o,e,n)=>{n.d(e,{A:()=>t});const t=n.p+"assets/images/composio-create-flow-09bd66a05e013b5e1dbf31940f4ab8b4.png"}}]); \ No newline at end of file diff --git a/assets/js/b1379b2b.7f241d20.js b/assets/js/b1379b2b.7f241d20.js new file mode 100644 index 0000000000..b0bd41dd62 --- /dev/null +++ b/assets/js/b1379b2b.7f241d20.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5663],{31929:(e,t,n)=>{n.d(t,{Ay:()=>i,RM:()=>c});var r=n(74848),s=n(28453),o=n(40619);const c=[];function a(e){const t={a:"a",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(t.p,{children:["Some parameters are hidden by default in the visual editor.\nYou can modify all parameters through the ",(0,r.jsx)(o.A,{name:"SlidersHorizontal","aria-hidden":"true"})," ",(0,r.jsx)(t.strong,{children:"Controls"})," in the ",(0,r.jsx)(t.a,{href:"/concepts-components#component-menus",children:"component's header menu"}),"."]})}function i(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},50005:(e,t,n)=>{n.d(t,{Ay:()=>a,RM:()=>o});var r=n(74848),s=n(28453);const o=[];function c(e){const t={a:"a",code:"code",p:"p",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["Because Langflow is based on LangChain, vector store components use an instance of ",(0,r.jsx)(t.a,{href:"https://docs.langchain.com/oss/python/integrations/vectorstores",children:"LangChain vector store"})," to drive the underlying read and write functions.\nThese instances are provider-specific and configured according to the component's parameters, such as the connection string, index name, and schema."]}),"\n",(0,r.jsxs)(t.p,{children:["In component code, this is often instantiated as ",(0,r.jsx)(t.code,{children:"vector_store"}),", but some vector store components use a different name, such as the provider name."]}),"\n",(0,r.jsx)(t.p,{children:"Some LangChain classes don't expose all possible options as component parameters.\nDepending on the provider, these options might use default values or allow modification through environment variables, if they are supported in Langflow.\nFor information about specific options, see the LangChain API reference and vector store provider's documentation."})]})}function a(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},62563:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>j,frontMatter:()=>l,metadata:()=>r,toc:()=>m});const r=JSON.parse('{"id":"Components/bundles-couchbase","title":"Couchbase","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","source":"@site/docs/Components/bundles-couchbase.mdx","sourceDirName":"Components","slug":"/bundles-couchbase","permalink":"/bundles-couchbase","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Couchbase","slug":"/bundles-couchbase"},"sidebar":"docs","previous":{"title":"Composio","permalink":"/bundles-composio"},"next":{"title":"DataStax","permalink":"/bundles-datastax"}}');var s=n(74848),o=n(28453),c=n(40619),a=n(31929),i=n(80223),d=n(90465),h=n(50005);const l={title:"Couchbase",slug:"/bundles-couchbase"},u=void 0,p={},m=[{value:"Couchbase vector store",id:"couchbase-vector-store",level:2},...h.RM,...d.RM,{value:"Couchbase parameters",id:"couchbase-parameters",level:3},...a.RM,...i.RM];function x(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,o.R)(),...e.components},{Details:n}=t;return n||function(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:[(0,s.jsx)(c.A,{name:"Blocks","aria-hidden":"true"})," ",(0,s.jsx)(t.a,{href:"/components-bundle-components",children:(0,s.jsx)(t.strong,{children:"Bundles"})})," contain custom components that support specific third-party integrations with Langflow."]}),"\n",(0,s.jsxs)(t.p,{children:["This page describes the components that are available in the ",(0,s.jsx)(t.strong,{children:"Couchbase"})," bundle."]}),"\n",(0,s.jsx)(t.h2,{id:"couchbase-vector-store",children:"Couchbase vector store"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Couchbase"})," component reads and writes to a Couchbase vector store using an instance of ",(0,s.jsx)(t.code,{children:"CouchbaseSearchVectorStore"}),"."]}),"\n",(0,s.jsxs)(n,{children:[(0,s.jsx)("summary",{children:"About vector store instances"}),(0,s.jsx)(h.Ay,{})]}),"\n",(0,s.jsx)(d.Ay,{}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsxs)(t.p,{children:["For a tutorial using a vector database in a flow, see ",(0,s.jsx)(t.a,{href:"/chat-with-rag",children:"Create a vector RAG chatbot"}),"."]})}),"\n",(0,s.jsx)(t.h3,{id:"couchbase-parameters",children:"Couchbase parameters"}),"\n",(0,s.jsx)(t.p,{children:"You can inspect a vector store component's parameters to learn more about the inputs it accepts, the features it supports, and how to configure it."}),"\n",(0,s.jsx)(a.Ay,{}),"\n",(0,s.jsx)(i.Ay,{}),"\n",(0,s.jsxs)(t.p,{children:["For information about accepted values and functionality, see the ",(0,s.jsx)(t.a,{href:"https://docs.couchbase.com/home/index.html",children:"Couchbase documentation"})," or inspect ",(0,s.jsx)(t.a,{href:"/concepts-components#component-code",children:"component code"}),"."]}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Name"}),(0,s.jsx)(t.th,{children:"Type"}),(0,s.jsx)(t.th,{children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"couchbase_connection_string"}),(0,s.jsx)(t.td,{children:"SecretString"}),(0,s.jsx)(t.td,{children:"Input parameter. Couchbase Cluster connection string. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"couchbase_username"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. Couchbase username for authentication. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"couchbase_password"}),(0,s.jsx)(t.td,{children:"SecretString"}),(0,s.jsx)(t.td,{children:"Input parameter. Couchbase password for authentication. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"bucket_name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. Name of the Couchbase bucket. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"scope_name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. Name of the Couchbase scope. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"collection_name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. Name of the Couchbase collection. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"index_name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. Name of the Couchbase index. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"ingest_data"}),(0,s.jsx)(t.td,{children:"Data"}),(0,s.jsx)(t.td,{children:"Input parameter. The records to load into the vector store. Only relevant for writes."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_query"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The query string for vector search. Only relevant for reads."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"cache_vector_store"}),(0,s.jsx)(t.td,{children:"Boolean"}),(0,s.jsxs)(t.td,{children:["Input parameter. If ",(0,s.jsx)(t.code,{children:"true"}),", the component caches the vector store in memory for faster reads. Default: Enabled (",(0,s.jsx)(t.code,{children:"true"}),")."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"embedding"}),(0,s.jsx)(t.td,{children:"Embeddings"}),(0,s.jsx)(t.td,{children:"Input parameter. The embedding function to use for the vector store."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"number_of_results"}),(0,s.jsx)(t.td,{children:"Integer"}),(0,s.jsx)(t.td,{children:"Input parameter. Maximum number of search results to return. Default: 4. Only relevant for reads."})]})]})]})]})}function j(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(x,{...e})}):x(e)}},80223:(e,t,n)=>{n.d(t,{Ay:()=>a,RM:()=>o});var r=n(74848),s=n(28453);const o=[];function c(e){const t={p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(t.p,{children:["Some parameters are conditional, and they are only available after you set other parameters or select specific options for other parameters.\nConditional parameters may not be visible on the ",(0,r.jsx)(t.strong,{children:"Controls"})," pane until you set the required dependencies."]})}function a(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},90465:(e,t,n)=>{n.d(t,{Ay:()=>a,RM:()=>o});var r=n(74848),s=n(28453);const o=[];function c(e){const t={a:"a",code:"code",p:"p",...(0,s.R)(),...e.components};return(0,r.jsxs)(t.p,{children:["If you use a vector store component to query your vector database, it produces search results that you can pass to downstream components in your flow as a list of ",(0,r.jsx)(t.a,{href:"/data-types#data",children:(0,r.jsx)(t.code,{children:"Data"})})," objects or a tabular ",(0,r.jsx)(t.a,{href:"/data-types#dataframe",children:(0,r.jsx)(t.code,{children:"DataFrame"})}),".\nIf both types are supported, you can set the format near the vector store component's output port in the visual editor."]})}function a(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}}}]); \ No newline at end of file diff --git a/assets/js/b1379b2b.9ab44bc6.js b/assets/js/b1379b2b.9ab44bc6.js deleted file mode 100644 index 2febb4f854..0000000000 --- a/assets/js/b1379b2b.9ab44bc6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5663],{31929:(e,t,n)=>{n.d(t,{Ay:()=>i,RM:()=>c});var r=n(74848),s=n(28453),o=n(40619);const c=[];function a(e){const t={a:"a",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(t.p,{children:["Some parameters are hidden by default in the visual editor.\nYou can modify all parameters through the ",(0,r.jsx)(o.A,{name:"SlidersHorizontal","aria-hidden":"true"})," ",(0,r.jsx)(t.strong,{children:"Controls"})," in the ",(0,r.jsx)(t.a,{href:"/concepts-components#component-menus",children:"component's header menu"}),"."]})}function i(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},50005:(e,t,n)=>{n.d(t,{Ay:()=>a,RM:()=>o});var r=n(74848),s=n(28453);const o=[];function c(e){const t={a:"a",code:"code",p:"p",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["Because Langflow is based on LangChain, vector store components use an instance of ",(0,r.jsx)(t.a,{href:"https://docs.langchain.com/oss/python/integrations/vectorstores",children:"LangChain vector store"})," to drive the underlying read and write functions.\nThese instances are provider-specific and configured according to the component's parameters, such as the connection string, index name, and schema."]}),"\n",(0,r.jsxs)(t.p,{children:["In component code, this is often instantiated as ",(0,r.jsx)(t.code,{children:"vector_store"}),", but some vector store components use a different name, such as the provider name."]}),"\n",(0,r.jsx)(t.p,{children:"Some LangChain classes don't expose all possible options as component parameters.\nDepending on the provider, these options might use default values or allow modification through environment variables, if they are supported in Langflow.\nFor information about specific options, see the LangChain API reference and vector store provider's documentation."})]})}function a(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},62563:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>j,frontMatter:()=>l,metadata:()=>r,toc:()=>m});const r=JSON.parse('{"id":"Components/bundles-couchbase","title":"Couchbase","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","source":"@site/docs/Components/bundles-couchbase.mdx","sourceDirName":"Components","slug":"/bundles-couchbase","permalink":"/bundles-couchbase","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Couchbase","slug":"/bundles-couchbase"},"sidebar":"docs","previous":{"title":"Cohere","permalink":"/bundles-cohere"},"next":{"title":"DataStax","permalink":"/bundles-datastax"}}');var s=n(74848),o=n(28453),c=n(40619),a=n(31929),i=n(80223),d=n(90465),h=n(50005);const l={title:"Couchbase",slug:"/bundles-couchbase"},u=void 0,p={},m=[{value:"Couchbase vector store",id:"couchbase-vector-store",level:2},...h.RM,...d.RM,{value:"Couchbase parameters",id:"couchbase-parameters",level:3},...a.RM,...i.RM];function x(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,o.R)(),...e.components},{Details:n}=t;return n||function(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(t.p,{children:[(0,s.jsx)(c.A,{name:"Blocks","aria-hidden":"true"})," ",(0,s.jsx)(t.a,{href:"/components-bundle-components",children:(0,s.jsx)(t.strong,{children:"Bundles"})})," contain custom components that support specific third-party integrations with Langflow."]}),"\n",(0,s.jsxs)(t.p,{children:["This page describes the components that are available in the ",(0,s.jsx)(t.strong,{children:"Couchbase"})," bundle."]}),"\n",(0,s.jsx)(t.h2,{id:"couchbase-vector-store",children:"Couchbase vector store"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Couchbase"})," component reads and writes to a Couchbase vector store using an instance of ",(0,s.jsx)(t.code,{children:"CouchbaseSearchVectorStore"}),"."]}),"\n",(0,s.jsxs)(n,{children:[(0,s.jsx)("summary",{children:"About vector store instances"}),(0,s.jsx)(h.Ay,{})]}),"\n",(0,s.jsx)(d.Ay,{}),"\n",(0,s.jsx)(t.admonition,{type:"tip",children:(0,s.jsxs)(t.p,{children:["For a tutorial using a vector database in a flow, see ",(0,s.jsx)(t.a,{href:"/chat-with-rag",children:"Create a vector RAG chatbot"}),"."]})}),"\n",(0,s.jsx)(t.h3,{id:"couchbase-parameters",children:"Couchbase parameters"}),"\n",(0,s.jsx)(t.p,{children:"You can inspect a vector store component's parameters to learn more about the inputs it accepts, the features it supports, and how to configure it."}),"\n",(0,s.jsx)(a.Ay,{}),"\n",(0,s.jsx)(i.Ay,{}),"\n",(0,s.jsxs)(t.p,{children:["For information about accepted values and functionality, see the ",(0,s.jsx)(t.a,{href:"https://docs.couchbase.com/home/index.html",children:"Couchbase documentation"})," or inspect ",(0,s.jsx)(t.a,{href:"/concepts-components#component-code",children:"component code"}),"."]}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{children:"Name"}),(0,s.jsx)(t.th,{children:"Type"}),(0,s.jsx)(t.th,{children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"couchbase_connection_string"}),(0,s.jsx)(t.td,{children:"SecretString"}),(0,s.jsx)(t.td,{children:"Input parameter. Couchbase Cluster connection string. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"couchbase_username"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. Couchbase username for authentication. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"couchbase_password"}),(0,s.jsx)(t.td,{children:"SecretString"}),(0,s.jsx)(t.td,{children:"Input parameter. Couchbase password for authentication. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"bucket_name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. Name of the Couchbase bucket. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"scope_name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. Name of the Couchbase scope. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"collection_name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. Name of the Couchbase collection. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"index_name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. Name of the Couchbase index. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"ingest_data"}),(0,s.jsx)(t.td,{children:"Data"}),(0,s.jsx)(t.td,{children:"Input parameter. The records to load into the vector store. Only relevant for writes."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_query"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The query string for vector search. Only relevant for reads."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"cache_vector_store"}),(0,s.jsx)(t.td,{children:"Boolean"}),(0,s.jsxs)(t.td,{children:["Input parameter. If ",(0,s.jsx)(t.code,{children:"true"}),", the component caches the vector store in memory for faster reads. Default: Enabled (",(0,s.jsx)(t.code,{children:"true"}),")."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"embedding"}),(0,s.jsx)(t.td,{children:"Embeddings"}),(0,s.jsx)(t.td,{children:"Input parameter. The embedding function to use for the vector store."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"number_of_results"}),(0,s.jsx)(t.td,{children:"Integer"}),(0,s.jsx)(t.td,{children:"Input parameter. Maximum number of search results to return. Default: 4. Only relevant for reads."})]})]})]})]})}function j(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(x,{...e})}):x(e)}},80223:(e,t,n)=>{n.d(t,{Ay:()=>a,RM:()=>o});var r=n(74848),s=n(28453);const o=[];function c(e){const t={p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(t.p,{children:["Some parameters are conditional, and they are only available after you set other parameters or select specific options for other parameters.\nConditional parameters may not be visible on the ",(0,r.jsx)(t.strong,{children:"Controls"})," pane until you set the required dependencies."]})}function a(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},90465:(e,t,n)=>{n.d(t,{Ay:()=>a,RM:()=>o});var r=n(74848),s=n(28453);const o=[];function c(e){const t={a:"a",code:"code",p:"p",...(0,s.R)(),...e.components};return(0,r.jsxs)(t.p,{children:["If you use a vector store component to query your vector database, it produces search results that you can pass to downstream components in your flow as a list of ",(0,r.jsx)(t.a,{href:"/data-types#data",children:(0,r.jsx)(t.code,{children:"Data"})})," objects or a tabular ",(0,r.jsx)(t.a,{href:"/data-types#dataframe",children:(0,r.jsx)(t.code,{children:"DataFrame"})}),".\nIf both types are supported, you can set the format near the vector store component's output port in the visual editor."]})}function a(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}}}]); \ No newline at end of file diff --git a/assets/js/main.311d2fb1.js b/assets/js/main.311d2fb1.js deleted file mode 100644 index cc96f04480..0000000000 --- a/assets/js/main.311d2fb1.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.311d2fb1.js.LICENSE.txt */ -(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8792],{205:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(96540);const o=n(38193).default.canUseDOM?r.useLayoutEffect:r.useEffect},641:(e,t,n)=>{"use strict";n.r(t)},1093:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},1189:(e,t,n)=>{"use strict";var r=Array.prototype.slice,o=n(1093),a=Object.keys,i=a?function(e){return a(e)}:n(28875),s=Object.keys;i.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return o(e)?s(r.call(e)):s(e)})}else Object.keys=i;return Object.keys||i},e.exports=i},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},2833:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l{"use strict";n.d(t,{C:()=>r});const r="default"},3918:(e,t,n)=>{"use strict";var r=n(65606);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a(e){for(var t=1;te.length)&&(n=e.length),e.substring(n-t.length,n)===t}var v="",w="",k="",j="",O={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function P(e){var t=Object.keys(e),n=Object.create(Object.getPrototypeOf(e));return t.forEach(function(t){n[t]=e[t]}),Object.defineProperty(n,"message",{value:e.message}),n}function S(e){return g(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function I(e,t,n){var o="",a="",i=0,s="",l=!1,c=S(e),p=c.split("\n"),u=S(t).split("\n"),d=0,m="";if("strictEqual"===n&&"object"===h(e)&&"object"===h(t)&&null!==e&&null!==t&&(n="strictEqualObject"),1===p.length&&1===u.length&&p[0]!==u[0]){var f=p[0].length+u[0].length;if(f<=10){if(!("object"===h(e)&&null!==e||"object"===h(t)&&null!==t||0===e&&0===t))return"".concat(O[n],"\n\n")+"".concat(p[0]," !== ").concat(u[0],"\n")}else if("strictEqualObject"!==n){if(f<(r.stderr&&r.stderr.isTTY?r.stderr.columns:80)){for(;p[0][d]===u[0][d];)d++;d>2&&(m="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var n=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,n-e.length)}(" ",d),"^"),d=0)}}}for(var y=p[p.length-1],g=u[u.length-1];y===g&&(d++<2?s="\n ".concat(y).concat(s):o=y,p.pop(),u.pop(),0!==p.length&&0!==u.length);)y=p[p.length-1],g=u[u.length-1];var _=Math.max(p.length,u.length);if(0===_){var P=c.split("\n");if(P.length>30)for(P[26]="".concat(v,"...").concat(j);P.length>27;)P.pop();return"".concat(O.notIdentical,"\n\n").concat(P.join("\n"),"\n")}d>3&&(s="\n".concat(v,"...").concat(j).concat(s),l=!0),""!==o&&(s="\n ".concat(o).concat(s),o="");var I=0,x=O[n]+"\n".concat(w,"+ actual").concat(j," ").concat(k,"- expected").concat(j),A=" ".concat(v,"...").concat(j," Lines skipped");for(d=0;d<_;d++){var T=d-i;if(p.length1&&d>2&&(T>4?(a+="\n".concat(v,"...").concat(j),l=!0):T>3&&(a+="\n ".concat(u[d-2]),I++),a+="\n ".concat(u[d-1]),I++),i=d,o+="\n".concat(k,"-").concat(j," ").concat(u[d]),I++;else if(u.length1&&d>2&&(T>4?(a+="\n".concat(v,"...").concat(j),l=!0):T>3&&(a+="\n ".concat(p[d-2]),I++),a+="\n ".concat(p[d-1]),I++),i=d,a+="\n".concat(w,"+").concat(j," ").concat(p[d]),I++;else{var E=u[d],R=p[d],C=R!==E&&(!b(R,",")||R.slice(0,-1)!==E);C&&b(E,",")&&E.slice(0,-1)===R&&(C=!1,R+=","),C?(T>1&&d>2&&(T>4?(a+="\n".concat(v,"...").concat(j),l=!0):T>3&&(a+="\n ".concat(p[d-2]),I++),a+="\n ".concat(p[d-1]),I++),i=d,a+="\n".concat(w,"+").concat(j," ").concat(R),o+="\n".concat(k,"-").concat(j," ").concat(E),I+=2):(a+=o,o="",1!==T&&0!==d||(a+="\n ".concat(R),I++))}if(I>20&&d<_-2)return"".concat(x).concat(A,"\n").concat(a,"\n").concat(v,"...").concat(j).concat(o,"\n")+"".concat(v,"...").concat(j)}return"".concat(x).concat(l?A:"","\n").concat(a).concat(o).concat(s).concat(m)}var x=function(e,t){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&f(e,t)}(b,e);var n,o,i,l,u,d=(n=b,o=m(),function(){var e,t=y(n);if(o){var r=y(this).constructor;e=Reflect.construct(t,arguments,r)}else e=t.apply(this,arguments);return c(this,e)});function b(e){var t;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,b),"object"!==h(e)||null===e)throw new _("options","Object",e);var n=e.message,o=e.operator,a=e.stackStartFn,i=e.actual,s=e.expected,l=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=n)t=d.call(this,String(n));else if(r.stderr&&r.stderr.isTTY&&(r.stderr&&r.stderr.getColorDepth&&1!==r.stderr.getColorDepth()?(v="\x1b[34m",w="\x1b[32m",j="\x1b[39m",k="\x1b[31m"):(v="",w="",j="",k="")),"object"===h(i)&&null!==i&&"object"===h(s)&&null!==s&&"stack"in i&&i instanceof Error&&"stack"in s&&s instanceof Error&&(i=P(i),s=P(s)),"deepStrictEqual"===o||"strictEqual"===o)t=d.call(this,I(i,s,o));else if("notDeepStrictEqual"===o||"notStrictEqual"===o){var u=O[o],m=S(i).split("\n");if("notStrictEqual"===o&&"object"===h(i)&&null!==i&&(u=O.notStrictEqualObject),m.length>30)for(m[26]="".concat(v,"...").concat(j);m.length>27;)m.pop();t=1===m.length?d.call(this,"".concat(u," ").concat(m[0])):d.call(this,"".concat(u,"\n\n").concat(m.join("\n"),"\n"))}else{var f=S(i),y="",g=O[o];"notDeepEqual"===o||"notEqual"===o?(f="".concat(O[o],"\n\n").concat(f)).length>1024&&(f="".concat(f.slice(0,1021),"...")):(y="".concat(S(s)),f.length>512&&(f="".concat(f.slice(0,509),"...")),y.length>512&&(y="".concat(y.slice(0,509),"...")),"deepEqual"===o||"equal"===o?f="".concat(g,"\n\n").concat(f,"\n\nshould equal\n\n"):y=" ".concat(o," ").concat(y)),t=d.call(this,"".concat(f).concat(y))}return Error.stackTraceLimit=l,t.generatedMessage=!n,Object.defineProperty(p(t),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),t.code="ERR_ASSERTION",t.actual=i,t.expected=s,t.operator=o,Error.captureStackTrace&&Error.captureStackTrace(p(t),a),t.stack,t.name="AssertionError",c(t)}return i=b,(l=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:t,value:function(e,t){return g(this,a(a({},t),{},{customInspect:!1,depth:0}))}}])&&s(i.prototype,l),u&&s(i,u),Object.defineProperty(i,"prototype",{writable:!1}),b}(u(Error),g.custom);e.exports=x},4146:(e,t,n)=>{"use strict";var r=n(44363),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,p=Object.getOwnPropertyNames,u=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,m=Object.getPrototypeOf,f=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(f){var o=m(n);o&&o!==f&&e(t,o,r)}var i=p(n);u&&(i=i.concat(u(n)));for(var s=l(t),y=l(n),h=0;h{"use strict";n.d(t,{A:()=>r});const r={title:"Langflow Documentation",tagline:"Langflow is a low-code app builder for RAG and multi-agent AI applications.",favicon:"img/favicon.ico",url:"https://docs.langflow.org",baseUrl:"/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",onBrokenAnchors:"warn",organizationName:"langflow-ai",projectName:"langflow",trailingSlash:!1,staticDirectories:["static"],i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},headTags:[{tagName:"link",attributes:{rel:"stylesheet",href:"https://fonts.googleapis.com/css2?family=Sora:wght@550;600&display=swap"}},{tagName:"script",attributes:{},innerHTML:"\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n\n // Set default consent to denied\n gtag('consent', 'default', {\n 'ad_storage': 'denied',\n 'ad_user_data': 'denied',\n 'ad_personalization': 'denied',\n 'analytics_storage': 'denied'\n });\n "},{tagName:"script",attributes:{},innerHTML:"\n (function() {\n function updateGoogleConsent() {\n if (typeof window.truste !== 'undefined' && window.truste.cma) {\n var consent = window.truste.cma.callApi('getConsent', window.location.href) || {};\n\n // Map TrustArc categories to Google consent types\n // Category 0 = Required, 1 = Functional, 2 = Advertising, 3 = Analytics\n var hasAdvertising = consent[2] === 1;\n var hasAnalytics = consent[3] === 1;\n\n gtag('consent', 'update', {\n 'ad_storage': hasAdvertising ? 'granted' : 'denied',\n 'ad_user_data': hasAdvertising ? 'granted' : 'denied',\n 'ad_personalization': hasAdvertising ? 'granted' : 'denied',\n 'analytics_storage': hasAnalytics ? 'granted' : 'denied'\n });\n }\n }\n\n // Listen for consent changes\n if (window.addEventListener) {\n window.addEventListener('cm_data_subject_consent_changed', updateGoogleConsent);\n window.addEventListener('cm_consent_preferences_set', updateGoogleConsent);\n }\n\n // Initial check after TrustArc loads\n if (document.readyState === 'complete') {\n updateGoogleConsent();\n } else {\n window.addEventListener('load', updateGoogleConsent);\n }\n })();\n "}],presets:[["@docusaurus/preset-classic",{docs:{routeBasePath:"/",sidebarPath:"/home/runner/work/langflow/langflow/docs/sidebars.js",sidebarCollapsed:!0,beforeDefaultRemarkPlugins:[[null,{theme:"github-dark",showCopyButton:!0,lineNumbers:!0}]]},sitemap:{lastmod:"datetime",changefreq:null,priority:null,ignorePatterns:[]},gtag:{trackingID:"G-SLQFLQ3KPT"},blog:!1,theme:{customCss:["/home/runner/work/langflow/langflow/docs/node_modules/@code-hike/mdx/dist/index.css","/home/runner/work/langflow/langflow/docs/css/custom.css","/home/runner/work/langflow/langflow/docs/css/docu-notion-styles.css","/home/runner/work/langflow/langflow/docs/css/gifplayer.css"]}}],["redocusaurus",{openapi:{path:"openapi",routeBasePath:"/api"},specs:[{id:"api",spec:"openapi/openapi.json",route:"/api"}],theme:{primaryColor:"#7528FC"}}]],plugins:[["docusaurus-node-polyfills",{excludeAliases:["console"]}],"docusaurus-plugin-image-zoom",["./src/plugins/segment",{segmentPublicWriteKey:"B04fNhD06DqDPuaRfQl5lZ2iQICdxxuh",allowedInDev:!0}],["@docusaurus/plugin-client-redirects",{redirects:[{to:"/",from:["/whats-new-a-new-chapter-langflow","/\ud83d\udc4b Welcome-to-Langflow","/getting-started-welcome-to-langflow","/guides-new-to-llms","/about-langflow"]},{to:"/get-started-installation",from:["/getting-started-installation","/getting-started-common-installation-issues"]},{to:"/get-started-quickstart",from:"/getting-started-quickstart"},{to:"/concepts-overview",from:["/workspace-overview","/365085a8-a90a-43f9-a779-f8769ec7eca1","/My-Collection","/workspace","/settings-project-general-settings"]},{to:"/concepts-components",from:["/components","/components-overview"]},{to:"/configuration-global-variables",from:"/settings-global-variables"},{to:"/concepts-playground",from:["/workspace-playground","/workspace-logs","/guides-chat-memory"]},{to:"/data-types",from:["/guides-data-message","/configuration-objects"]},{to:"/concepts-flows",from:["/travel-planning-agent","/starter-projects-travel-planning-agent","/tutorials-travel-planning-agent","/starter-projects-dynamic-agent/","/simple-agent","/math-agent","/starter-projects-simple-agent","/starter-projects-math-agent","/tutorials-math-agent","/sequential-agent","/starter-projects-sequential-agent","/tutorials-sequential-agent","/memory-chatbot","/starter-projects-memory-chatbot","/tutorials-memory-chatbot","/financial-report-parser","/document-qa","/starter-projects-document-qa","/tutorials-document-qa","/blog-writer","/starter-projects-blog-writer","/tutorials-blog-writer","/basic-prompting","/starter-projects-basic-prompting","/vector-store-rag","/starter-projects-vector-store-rag"]},{to:"/components-bundle-components",from:["/components-rag","/components-vector-stores","/components-loaders"]},{to:"/api-keys-and-authentication",from:["/configuration-api-keys","/configuration-authentication","/configuration-security-best-practices","/Configuration/configuration-security-best-practices"]},{to:"/environment-variables",from:["/configuration-auto-saving","/Configuration/configuration-auto-saving","/configuration-backend-only","/Configuration/configuration-backend-only"]},{to:"/concepts-publish",from:["/concepts-api","/workspace-api"]},{to:"/components-custom-components",from:"/components/custom"},{to:"/mcp-server",from:"/integrations-mcp"},{to:"/deployment-kubernetes-dev",from:"/deployment-kubernetes"},{to:"/contributing-github-issues",from:"/contributing-github-discussions"},{to:"/agents",from:"/agents-tool-calling-agent-component"},{to:"/concepts-publish",from:"/embedded-chat-widget"},{to:"/bundles-google",from:["/integrations-setup-google-oauth-langflow","/integrations-google-big-query"]},{to:"/bundles-vertexai",from:"/integrations-setup-google-cloud-vertex-ai-langflow"},{to:"/develop-application",from:"/develop-overview"},{to:"/data-types",from:"/concepts-objects"},{to:"/components-helpers",from:"/components-memories"},{to:"/bundles-apify",from:"/integrations-apify"},{to:"/bundles-assemblyai",from:"/integrations-assemblyai"},{to:"/bundles-cleanlab",from:"/integrations-cleanlab"},{to:"/bundles-composio",from:"/integrations-composio"},{to:"/bundles-docling",from:"/integrations-docling"},{to:"/bundles-notion",from:["/integrations/notion/setup","/integrations/notion/notion-agent-meeting-notes","/integrations/notion/notion-agent-conversational"]},{to:"/bundles-nvidia",from:["/integrations-nvidia-ingest-wsl2","/integrations-nvidia-ingest","/integrations-nvidia-g-assist","/integrations-nvidia-system-assist"]}]}],null],themeConfig:{navbar:{hideOnScroll:!0,logo:{alt:"Langflow",src:"img/lf-docs-light.svg",srcDark:"img/lf-docs-dark.svg"},items:[{position:"right",href:"https://github.com/langflow-ai/langflow",className:"header-github-link",target:"_blank",rel:null,"data-event":"UI Interaction","data-action":"clicked","data-channel":"docs","data-element-id":"social-github","data-namespace":"header","data-platform-title":"Langflow"},{position:"right",href:"https://twitter.com/langflow_ai",className:"header-twitter-link",target:"_blank",rel:null,"data-event":"UI Interaction","data-action":"clicked","data-channel":"docs","data-element-id":"social-twitter","data-namespace":"header","data-platform-title":"Langflow"},{position:"right",href:"https://discord.gg/EqksyE2EX9",className:"header-discord-link",target:"_blank",rel:null,"data-event":"UI Interaction","data-action":"clicked","data-channel":"docs","data-element-id":"social-discord","data-namespace":"header","data-platform-title":"Langflow"}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!0},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},zoom:{selector:".markdown :not(a) > img:not(.no-zoom)",background:{light:"rgba(240, 240, 240, 0.9)"},config:{}},docs:{sidebar:{hideable:!1,autoCollapseCategories:!0},versionPersistence:"localStorage"},footer:{links:[{title:null,items:[{html:''}]}],style:"light"},algolia:{appId:"UZK6BDPCVY",apiKey:"adbd7686dceb1cd510d5ce20d04bf74c",indexName:"langflow",contextualSearch:!0,searchParameters:{},searchPagePath:"search"},blog:{sidebar:{groupByYear:!0}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,future:{v4:{removeLegacyPostBuildHeadAttribute:!1,useCssCascadeLayers:!1},experimental_faster:{swcJsLoader:!1,swcJsMinimizer:!1,swcHtmlMinimizer:!1,lightningCssMinimizer:!1,mdxCrossCompilerCache:!1,rspackBundler:!1,rspackPersistentCache:!1,ssgWorkerThreads:!1},experimental_storage:{type:"localStorage",namespace:!1},experimental_router:"browser"},onDuplicateRoutes:"warn",customFields:{},themes:[],scripts:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0},anchors:{maintainCase:!1}}}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(96540);var r=n(80545),o=n(74848);function a(e){return(0,o.jsx)(r.mg,{...e})}},5338:(e,t,n)=>{"use strict";var r=n(40961);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},5556:(e,t,n)=>{e.exports=n(2694)()},5947:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),p=r.speed,u=r.easing;return a.offsetWidth,s(function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,p,u)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout(function(){l(a,{transition:"all "+p+"ms linear",opacity:0}),setTimeout(function(){n.remove(),t()},p)},p)):setTimeout(t,p)}),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout(function(){n.status&&(n.trickle(),e())},r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always(function(){0===--t?(e=0,n.done()):n.set((e-t)/e)}),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");p(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&m(o),c!=document.body&&p(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&m(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(e,t){return t.toUpperCase()})}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function p(e,t){var n=d(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function u(e,t){var n,r=d(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function m(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(96540),o=n(74848);const a=r.createContext(!1);function i({children:e}){const[t,n]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{n(!0)},[]),(0,o.jsx)(a.Provider,{value:t,children:e})}},6188:e=>{"use strict";e.exports=Math.max},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(44586);function o(){return(0,r.A)().siteConfig.themeConfig}},6549:e=>{"use strict";e.exports=Object.getOwnPropertyDescriptor},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},7176:(e,t,n)=>{"use strict";var r,o=n(73126),a=n(75795);try{r=[].__proto__===Array.prototype}catch(c){if(!c||"object"!=typeof c||!("code"in c)||"ERR_PROTO_ACCESS"!==c.code)throw c}var i=!!r&&a&&a(Object.prototype,"__proto__"),s=Object,l=s.getPrototypeOf;e.exports=i&&"function"==typeof i.get?o([i.get]):"function"==typeof l&&function(e){return l(null==e?e:s(e))}},7463:(e,t,n)=>{"use strict";var r=n(96763);function o(e,t){var n=e.length;e.push(t);e:for(;0>>1,o=e[r];if(!(0>>1;rs(l,n))cs(p,l)?(e[r]=p,e[c]=n,r=c):(e[r]=l,e[i]=n,r=i);else{if(!(cs(p,n)))break e;e[r]=p,e[c]=n,r=c}}}return t}function s(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var l=performance;t.unstable_now=function(){return l.now()}}else{var c=Date,p=c.now();t.unstable_now=function(){return c.now()-p}}var u=[],d=[],m=1,f=null,y=3,h=!1,g=!1,_=!1,b="function"==typeof setTimeout?setTimeout:null,v="function"==typeof clearTimeout?clearTimeout:null,w="undefined"!=typeof setImmediate?setImmediate:null;function k(e){for(var t=a(d);null!==t;){if(null===t.callback)i(d);else{if(!(t.startTime<=e))break;i(d),t.sortIndex=t.expirationTime,o(u,t)}t=a(d)}}function j(e){if(_=!1,k(e),!g)if(null!==a(u))g=!0,F(O);else{var t=a(d);null!==t&&D(j,t.startTime-e)}}function O(e,n){g=!1,_&&(_=!1,v(x),x=-1),h=!0;var r=y;try{for(k(n),f=a(u);null!==f&&(!(f.expirationTime>n)||e&&!E());){var o=f.callback;if("function"==typeof o){f.callback=null,y=f.priorityLevel;var s=o(f.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?f.callback=s:f===a(u)&&i(u),k(n)}else i(u);f=a(u)}if(null!==f)var l=!0;else{var c=a(d);null!==c&&D(j,c.startTime-n),l=!1}return l}finally{f=null,y=r,h=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var P,S=!1,I=null,x=-1,A=5,T=-1;function E(){return!(t.unstable_now()-Te||125i?(e.sortIndex=r,o(d,e),null===a(u)&&e===a(d)&&(_?(v(x),x=-1):_=!0,D(j,r-i))):(e.sortIndex=s,o(u,e),g||h||(g=!0,F(O))),e},t.unstable_shouldYield=E,t.unstable_wrapCallback=function(e){var t=y;return function(){var n=y;y=t;try{return e.apply(this,arguments)}finally{y=n}}}},7767:(e,t,n)=>{"use strict";n.r(t)},8505:(e,t,n)=>{var r=n(64634);e.exports=y,e.exports.parse=a,e.exports.compile=function(e,t){return c(a(e,t),t)},e.exports.tokensToFunction=c,e.exports.tokensToRegExp=f;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,s=0,l="",c=t&&t.delimiter||"/";null!=(n=o.exec(e));){var p=n[0],d=n[1],m=n.index;if(l+=e.slice(s,m),s=m+p.length,d)l+=d[1];else{var f=e[s],y=n[2],h=n[3],g=n[4],_=n[5],b=n[6],v=n[7];l&&(r.push(l),l="");var w=null!=y&&null!=f&&f!==y,k="+"===b||"*"===b,j="?"===b||"*"===b,O=y||c,P=g||_,S=y||("string"==typeof r[r.length-1]?r[r.length-1]:"");r.push({name:h||a++,prefix:y||"",delimiter:O,optional:j,repeat:k,partial:w,asterisk:!!v,pattern:P?u(P):v?".*":i(O,S)})}}return s-1?"[^"+p(e)+"]+?":p(t)+"|(?:(?!"+p(t)+")[^"+p(e)+"])+?"}function s(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function l(e){return encodeURI(e).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function c(e,t){for(var n=new Array(e.length),o=0;o{var r=n(96763);const o=n(6969),a=n(98380),i=new Set;function s(e){void 0===e?e=Object.keys(o.languages).filter(e=>"meta"!=e):Array.isArray(e)||(e=[e]);const t=[...i,...Object.keys(Prism.languages)];a(o,e,t).load(e=>{if(!(e in o.languages))return void(s.silent||r.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(63157).resolve(t)],delete Prism.languages[e],n(63157)(t),i.add(e)})}s.silent=!1,e.exports=s},9394:(e,t,n)=>{"use strict";var r=n(89211);e.exports=function(){return"function"==typeof Object.is?Object.is:r}},9957:(e,t,n)=>{"use strict";var r=Function.prototype.call,o=Object.prototype.hasOwnProperty,a=n(66743);e.exports=a.call(r,o)},10076:e=>{"use strict";e.exports=Function.prototype.call},10119:(e,t,n)=>{"use strict";n.r(t)},10487:(e,t,n)=>{"use strict";var r=n(96897),o=n(30655),a=n(73126),i=n(12205);e.exports=function(e){var t=a(arguments),n=e.length-(arguments.length-1);return r(t,1+(n>0?n:0),!0)},o?o(e.exports,"apply",{value:i}):e.exports.apply=i},11002:e=>{"use strict";e.exports=Function.prototype.apply},11514:(e,t,n)=>{"use strict";var r=n(38403);e.exports=function(){return Object.assign?function(){if(!Object.assign)return!1;for(var e="abcdefghijklmnopqrst",t=e.split(""),n={},r=0;r{"use strict";n.d(t,{A:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},11818:(e,t,n)=>{"use strict";n.r(t)},12205:(e,t,n)=>{"use strict";var r=n(66743),o=n(11002),a=n(13144);e.exports=function(){return a(r,o,arguments)}},12838:(e,t,n)=>{"use strict";n.d(t,{A:()=>Mt});var r=n(96540),o=n(18215),a=n(67489),i=n(45500),s=n(56347),l=n(21312),c=n(75062),p=n(74848);const u="__docusaurus_skipToContent_fallback";function d(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function m(){const e=(0,r.useRef)(null),{action:t}=(0,s.W6)(),n=(0,r.useCallback)(e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(u);t&&d(t)},[]);return(0,c.$)(({location:n})=>{e.current&&!n.hash&&"PUSH"===t&&d(e.current)}),{containerRef:e,onClick:n}}const f=(0,l.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function y(e){const t=e.children??f,{containerRef:n,onClick:r}=m();return(0,p.jsx)("div",{ref:n,role:"region","aria-label":f,children:(0,p.jsx)("a",{...e,href:`#${u}`,onClick:r,children:t})})}var h=n(17559),g=n(14090);const _={skipToContent:"skipToContent_fXgn"};function b(){return(0,p.jsx)(y,{className:_.skipToContent})}var v=n(6342),w=n(65041);function k({width:e=21,height:t=21,color:n="currentColor",strokeWidth:r=1.2,className:o,...a}){return(0,p.jsx)("svg",{viewBox:"0 0 15 15",width:e,height:t,...a,children:(0,p.jsx)("g",{stroke:n,strokeWidth:r,children:(0,p.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const j={closeButton:"closeButton_CVFx"};function O(e){return(0,p.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close",j.closeButton,e.className),children:(0,p.jsx)(k,{width:14,height:14,strokeWidth:3.1})})}const P={content:"content_knG7"};function S(e){const{announcementBar:t}=(0,v.p)(),{content:n}=t;return(0,p.jsx)("div",{...e,className:(0,o.A)(P.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const I={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function x(){const{announcementBar:e}=(0,v.p)(),{isActive:t,close:n}=(0,w.M)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:i}=e;return(0,p.jsxs)("div",{className:(0,o.A)(h.G.announcementBar.container,I.announcementBar),style:{backgroundColor:r,color:a},role:"banner",children:[i&&(0,p.jsx)("div",{className:I.announcementBarPlaceholder}),(0,p.jsx)(S,{className:I.announcementBarContent}),i&&(0,p.jsx)(O,{onClick:n,className:I.announcementBarClose})]})}var A=n(22069),T=n(23104);var E=n(89532),R=n(75600);const C=r.createContext(null);function q({children:e}){const t=function(){const e=(0,A.M)(),t=(0,R.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,E.ZC)(a);return(0,r.useEffect)(()=>{a&&!i&&o(!0)},[a,i]),(0,r.useEffect)(()=>{a?e.shown||o(!0):o(!1)},[e.shown,a]),(0,r.useMemo)(()=>[n,o],[n])}();return(0,p.jsx)(C.Provider,{value:t,children:e})}function F(e){if(e.component){const t=e.component;return(0,p.jsx)(t,{...e.props})}}function D(){const e=(0,r.useContext)(C);if(!e)throw new E.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)(()=>n(!1),[n]),a=(0,R.YL)();return(0,r.useMemo)(()=>({shown:t,hide:o,content:F(a)}),[o,a,t])}function B(e){return parseInt(r.version.split(".")[0],10)<19?{inert:e?"":void 0}:{inert:e}}function N({children:e,inert:t}){return(0,p.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.mobileSidebar.panel,"navbar-sidebar__item menu"),...B(t),children:e})}function $({header:e,primaryMenu:t,secondaryMenu:n}){const{shown:r}=D();return(0,p.jsxs)("div",{className:(0,o.A)(h.G.layout.navbar.mobileSidebar.container,"navbar-sidebar"),children:[e,(0,p.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":r}),children:[(0,p.jsx)(N,{inert:r,children:t}),(0,p.jsx)(N,{inert:!r,children:n})]})]})}var L=n(95293),V=n(92303);function M(e){return(0,p.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,p.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function U(e){return(0,p.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,p.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}function z(e){return(0,p.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,p.jsx)("path",{fill:"currentColor",d:"m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"})})}const H="toggle_vylO",G="toggleButton_gllP",W="toggleIcon_g3eP",K="systemToggleIcon_QzmC",Q="lightToggleIcon_pyhR",Y="darkToggleIcon_wfgR",J="toggleButtonDisabled_aARS";function Z(e){switch(e){case null:return(0,l.T)({message:"system mode",id:"theme.colorToggle.ariaLabel.mode.system",description:"The name for the system color mode"});case"light":return(0,l.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"});case"dark":return(0,l.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"});default:throw new Error(`unexpected color mode ${e}`)}}function X(e){return(0,l.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the color mode toggle"},{mode:Z(e)})}function ee(){return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(M,{"aria-hidden":!0,className:(0,o.A)(W,Q)}),(0,p.jsx)(U,{"aria-hidden":!0,className:(0,o.A)(W,Y)}),(0,p.jsx)(z,{"aria-hidden":!0,className:(0,o.A)(W,K)})]})}function te({className:e,buttonClassName:t,respectPrefersColorScheme:n,value:r,onChange:a}){const i=(0,V.A)();return(0,p.jsx)("div",{className:(0,o.A)(H,e),children:(0,p.jsx)("button",{className:(0,o.A)("clean-btn",G,!i&&J,t),type:"button",onClick:()=>a(function(e,t){if(!t)return"dark"===e?"light":"dark";switch(e){case null:return"light";case"light":return"dark";case"dark":return null;default:throw new Error(`unexpected color mode ${e}`)}}(r,n)),disabled:!i,title:Z(r),"aria-label":X(r),children:(0,p.jsx)(ee,{})})})}const ne=r.memo(te),re={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function oe({className:e}){const t=(0,v.p)().navbar.style,{disableSwitch:n,respectPrefersColorScheme:r}=(0,v.p)().colorMode,{colorModeChoice:o,setColorMode:a}=(0,L.G)();return n?null:(0,p.jsx)(ne,{className:e,buttonClassName:"dark"===t?re.darkNavbarColorModeToggle:void 0,respectPrefersColorScheme:r,value:o,onChange:a})}var ae=n(23465);function ie(){return(0,p.jsx)(ae.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function se(){const e=(0,A.M)();return(0,p.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,p.jsx)(k,{color:"var(--ifm-color-emphasis-600)"})})}function le(){return(0,p.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,p.jsx)(ie,{}),(0,p.jsx)(oe,{className:"margin-right--md"}),(0,p.jsx)(se,{})]})}var ce=n(28774),pe=n(86025),ue=n(16654),de=n(91252),me=n(43186);function fe({activeBasePath:e,activeBaseRegex:t,to:n,href:r,label:o,html:a,isDropdownLink:i,prependBaseUrlToHref:s,...l}){const c=(0,pe.Ay)(n),u=(0,pe.Ay)(e),d=(0,pe.Ay)(r,{forcePrependBaseUrl:!0}),m=o&&r&&!(0,ue.A)(r),f=a?{dangerouslySetInnerHTML:{__html:a}}:{children:(0,p.jsxs)(p.Fragment,{children:[o,m&&(0,p.jsx)(me.A,{...i&&{width:12,height:12}})]})};return r?(0,p.jsx)(ce.A,{href:s?d:r,...l,...f}):(0,p.jsx)(ce.A,{to:c,isNavLink:!0,...(e||t)&&{isActive:(e,n)=>t?(0,de.G)(t,n.pathname):n.pathname.startsWith(u)},...l,...f})}function ye({className:e,isDropdownItem:t,...n}){return(0,p.jsx)("li",{className:"menu__list-item",children:(0,p.jsx)(fe,{className:(0,o.A)("menu__link",e),...n})})}function he({className:e,isDropdownItem:t=!1,...n}){const r=(0,p.jsx)(fe,{className:(0,o.A)(t?"dropdown__link":"navbar__item navbar__link",e),isDropdownLink:t,...n});return t?(0,p.jsx)("li",{children:r}):r}function ge({mobile:e=!1,position:t,...n}){const r=e?ye:he;return(0,p.jsx)(r,{...n,activeClassName:n.activeClassName??(e?"menu__link--active":"navbar__link--active")})}var _e=n(41422),be=n(99169),ve=n(44586);const we="dropdownNavbarItemMobile_J0Sd";function ke(e,t){return e.some(e=>function(e,t){return!!(0,be.ys)(e.to,t)||!!(0,de.G)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t))}function je({collapsed:e,onClick:t}){return(0,p.jsx)("button",{"aria-label":e?(0,l.T)({id:"theme.navbar.mobileDropdown.collapseButton.expandAriaLabel",message:"Expand the dropdown",description:"The ARIA label of the button to expand the mobile dropdown navbar item"}):(0,l.T)({id:"theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel",message:"Collapse the dropdown",description:"The ARIA label of the button to collapse the mobile dropdown navbar item"}),"aria-expanded":!e,type:"button",className:"clean-btn menu__caret",onClick:t})}function Oe({items:e,className:t,position:n,onClick:a,...i}){const l=function(){const{siteConfig:{baseUrl:e}}=(0,ve.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),c=(0,be.ys)(i.to,l),u=ke(e,l),{collapsed:d,toggleCollapsed:m}=function({active:e}){const{collapsed:t,toggleCollapsed:n,setCollapsed:o}=(0,_e.u)({initialState:()=>!e});return(0,r.useEffect)(()=>{e&&o(!1)},[e,o]),{collapsed:t,toggleCollapsed:n}}({active:c||u}),f=i.to?void 0:"#";return(0,p.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":d}),children:[(0,p.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":c}),children:[(0,p.jsx)(fe,{role:"button",className:(0,o.A)(we,"menu__link menu__link--sublist",t),href:f,...i,onClick:e=>{"#"===f&&e.preventDefault(),m()},children:i.children??i.label}),(0,p.jsx)(je,{collapsed:d,onClick:e=>{e.preventDefault(),m()}})]}),(0,p.jsx)(_e.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:d,children:e.map((e,t)=>(0,r.createElement)(Xe,{mobile:!0,isDropdownItem:!0,onClick:a,activeClassName:"menu__link--active",...e,key:t}))})]})}function Pe({items:e,position:t,className:n,onClick:a,...i}){const s=(0,r.useRef)(null),[l,c]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&c(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}},[s]),(0,p.jsxs)("div",{ref:s,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===t,"dropdown--show":l}),children:[(0,p.jsx)(fe,{"aria-haspopup":"true","aria-expanded":l,role:"button",href:i.to?void 0:"#",className:(0,o.A)("navbar__link",n),...i,onClick:i.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),c(!l))},children:i.children??i.label}),(0,p.jsx)("ul",{className:"dropdown__menu",children:e.map((e,t)=>(0,r.createElement)(Xe,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t}))})]})}function Se({mobile:e=!1,...t}){const n=e?Oe:Pe;return(0,p.jsx)(n,{...t})}var Ie=n(32131);function xe({width:e=20,height:t=20,...n}){return(0,p.jsx)("svg",{viewBox:"0 0 24 24",width:e,height:t,"aria-hidden":!0,...n,children:(0,p.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const Ae="iconLanguage_nlXk";var Te=n(40961),Ee=n(55600),Re=n(5260),Ce=n(24255),qe=n(51062),Fe=n(2967),De=n(82565);function Be(){return[`language:${(0,ve.A)().i18n.currentLocale}`,function(){const e=(0,De.v)();return[Fe.C,...e]}().map(e=>`docusaurus_tag:${e}`)]}const Ne={button:{buttonText:(0,l.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,l.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,l.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,l.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,l.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,l.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,l.T)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,l.T)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,l.T)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,l.T)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,l.T)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,l.T)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,l.T)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,l.T)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,l.T)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,l.T)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let $e=null;function Le(){return $e?Promise.resolve():Promise.all([n.e(8158).then(n.bind(n,48158)),Promise.all([n.e(1869),n.e(8913)]).then(n.bind(n,58913)),Promise.all([n.e(1869),n.e(416)]).then(n.bind(n,90416))]).then(([{DocSearchModal:e}])=>{$e=e})}function Ve({hit:e,children:t}){return(0,p.jsx)(ce.A,{to:e.url,children:t})}function Me({state:e,onClose:t}){const n=(0,Ce.w)();return(0,p.jsx)(ce.A,{to:n(e.query),onClick:t,children:(0,p.jsx)(l.A,{id:"theme.SearchBar.seeAll",values:{count:e.context.nbHits},children:"See all {count} results"})})}function Ue({externalUrlRegex:e,...t}){const n=function({externalUrlRegex:e}){const t=(0,s.W6)(),[n]=(0,r.useState)(()=>({navigate(n){(0,de.G)(e,n.itemUrl)?window.location.href=n.itemUrl:t.push(n.itemUrl)}}));return n}({externalUrlRegex:e}),o=function({contextualSearch:e,...t}){const n=Be(),r=t.searchParameters?.facetFilters??[],o=e?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(n,r):r;return{...t.searchParameters,facetFilters:o}}({...t}),a=function(e){const t=(0,qe.C)(),[n]=(0,r.useState)(()=>n=>e.transformItems?e.transformItems(n):n.map(e=>({...e,url:t(e.url)})));return n}(t),i=function(){const{siteMetadata:{docusaurusVersion:e}}=(0,ve.A)();return(0,r.useCallback)(t=>(t.addAlgoliaAgent("docusaurus",e),t),[e])}(),l=(0,r.useRef)(null),c=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1),[m,f]=(0,r.useState)(void 0),y=(0,r.useCallback)(()=>{if(!l.current){const e=document.createElement("div");l.current=e,document.body.insertBefore(e,document.body.firstChild)}},[]),h=(0,r.useCallback)(()=>{y(),Le().then(()=>d(!0))},[y]),g=(0,r.useCallback)(()=>{d(!1),c.current?.focus(),f(void 0)},[]),_=(0,r.useCallback)(e=>{"f"===e.key&&(e.metaKey||e.ctrlKey)||(e.preventDefault(),f(e.key),h())},[h]),b=function({closeModal:e}){return(0,r.useMemo)(()=>({state:t})=>(0,p.jsx)(Me,{state:t,onClose:e}),[e])}({closeModal:g});return(0,Ee.E8)({isOpen:u,onOpen:h,onClose:g,onInput:_,searchButtonRef:c}),(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(Re.A,{children:(0,p.jsx)("link",{rel:"preconnect",href:`https://${t.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})}),(0,p.jsx)(Ee.Bc,{onTouchStart:Le,onFocus:Le,onMouseOver:Le,onClick:h,ref:c,translations:t.translations?.button??Ne.button}),u&&$e&&l.current&&(0,Te.createPortal)((0,p.jsx)($e,{onClose:g,initialScrollY:window.scrollY,initialQuery:m,navigator:n,transformItems:a,hitComponent:Ve,transformSearchClient:i,...t.searchPagePath&&{resultsFooterComponent:b},placeholder:Ne.placeholder,...t,translations:t.translations?.modal??Ne.modal,searchParameters:o}),l.current)]})}function ze(){const{siteConfig:e}=(0,ve.A)();return(0,p.jsx)(Ue,{...e.themeConfig.algolia})}const He={navbarSearchContainer:"navbarSearchContainer_Bca1"};function Ge({children:e,className:t}){return(0,p.jsx)("div",{className:(0,o.A)(t,He.navbarSearchContainer),children:e})}var We=n(48295),Ke=n(26972);var Qe=n(53886);function Ye({docsPluginId:e,configs:t}){return function(e,t){if(t){const n=new Map(e.map(e=>[e.name,e])),r=(t,r)=>{const o=n.get(t);if(!o)throw new Error(`No docs version exist for name '${t}', please verify your 'docsVersionDropdown' navbar item versions config.\nAvailable version names:\n- ${e.map(e=>`${e.name}`).join("\n- ")}`);return{version:o,label:r?.label??o.label}};return Array.isArray(t)?t.map(e=>r(e,void 0)):Object.entries(t).map(([e,t])=>r(e,t))}return e.map(e=>({version:e,label:e.label}))}((0,We.jh)(e),t)}function Je(e,t){return t.alternateDocVersions[e.name]??function(e){return e.docs.find(t=>t.id===e.mainDocId)}(e)}const Ze={default:ge,localeDropdown:function({mobile:e,dropdownItemsBefore:t,dropdownItemsAfter:n,queryString:r="",...o}){const{i18n:{currentLocale:a,locales:i,localeConfigs:c}}=(0,ve.A)(),u=(0,Ie.o)(),{search:d,hash:m}=(0,s.zy)(),f=[...t,...i.map(t=>{const n=`${`pathname://${u.createUrl({locale:t,fullyQualified:!1})}`}${d}${m}${r}`;return{label:c[t].label,lang:c[t].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:t===a?e?"menu__link--active":"dropdown__link--active":""}}),...n],y=e?(0,l.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):c[a].label;return(0,p.jsx)(Se,{...o,mobile:e,label:(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(xe,{className:Ae}),y]}),items:f})},search:function({mobile:e,className:t}){return e?null:(0,p.jsx)(Ge,{className:t,children:(0,p.jsx)(ze,{})})},dropdown:Se,html:function({value:e,className:t,mobile:n=!1,isDropdownItem:r=!1}){const a=r?"li":"div";return(0,p.jsx)(a,{className:(0,o.A)({navbar__item:!n&&!r,"menu__list-item":n},t),dangerouslySetInnerHTML:{__html:e}})},doc:function({docId:e,label:t,docsPluginId:n,...r}){const{activeDoc:o}=(0,We.zK)(n),a=(0,Ke.QB)(e,n),i=o?.path===a?.path;return null===a||a.unlisted&&!i?null:(0,p.jsx)(ge,{exact:!0,...r,isActive:()=>i||!!o?.sidebar&&o.sidebar===a.sidebar,label:t??a.id,to:a.path})},docSidebar:function({sidebarId:e,label:t,docsPluginId:n,...r}){const{activeDoc:o}=(0,We.zK)(n),a=(0,Ke.fW)(e,n).link;if(!a)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${e}" doesn't have anything to be linked to.`);return(0,p.jsx)(ge,{exact:!0,...r,isActive:()=>o?.sidebar===e,label:t??a.label,to:a.path})},docsVersion:function({label:e,to:t,docsPluginId:n,...r}){const o=(0,Ke.Vd)(n)[0],a=e??o.label,i=t??(e=>e.docs.find(t=>t.id===e.mainDocId))(o).path;return(0,p.jsx)(ge,{...r,label:a,to:i})},docsVersionDropdown:function({mobile:e,docsPluginId:t,dropdownActiveClassDisabled:n,dropdownItemsBefore:r,dropdownItemsAfter:o,versions:a,...i}){const{search:c,hash:u}=(0,s.zy)(),d=(0,We.zK)(t),{savePreferredVersionName:m}=(0,Qe.g1)(t),f=Ye({docsPluginId:t,configs:a}),y=function({docsPluginId:e,versionItems:t}){return(0,Ke.Vd)(e).map(e=>t.find(t=>t.version===e)).filter(e=>void 0!==e)[0]??t[0]}({docsPluginId:t,versionItems:f}),h=[...r,...f.map(function({version:e,label:t}){return{label:t,to:`${Je(e,d).path}${c}${u}`,isActive:()=>e===d.activeVersion,onClick:()=>m(e.name)}}),...o],g=e&&h.length>1?(0,l.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):y.label,_=e&&h.length>1?void 0:Je(y.version,d).path;return h.length<=1?(0,p.jsx)(ge,{...i,mobile:e,label:g,to:_,isActive:n?()=>!1:void 0}):(0,p.jsx)(Se,{...i,mobile:e,label:g,to:_,items:h,isActive:n?()=>!1:void 0})}};function Xe({type:e,...t}){const n=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(e,t),r=Ze[n];if(!r)throw new Error(`No NavbarItem component found for type "${e}".`);return(0,p.jsx)(r,{...t})}function et(){const e=(0,A.M)(),t=(0,v.p)().navbar.items;return(0,p.jsx)("ul",{className:"menu__list",children:t.map((t,n)=>(0,r.createElement)(Xe,{mobile:!0,...t,onClick:()=>e.toggle(),key:n}))})}function tt(e){return(0,p.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,p.jsx)(l.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function nt(){const e=0===(0,v.p)().navbar.items.length,t=D();return(0,p.jsxs)(p.Fragment,{children:[!e&&(0,p.jsx)(tt,{onClick:()=>t.hide()}),t.content]})}function rt(){const e=(0,A.M)();return function(e=!0){(0,r.useEffect)(()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"}),[e])}(e.shown),e.shouldRender?(0,p.jsx)($,{header:(0,p.jsx)(le,{}),primaryMenu:(0,p.jsx)(et,{}),secondaryMenu:(0,p.jsx)(nt,{})}):null}const ot={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function at(e){return(0,p.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function it({children:e}){const{navbar:{hideOnScroll:t,style:n}}=(0,v.p)(),a=(0,A.M)(),{navbarRef:i,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)(e=>{null!==e&&(a.current=e.getBoundingClientRect().height)},[]);return(0,T.Mq)(({scrollY:t},r)=>{if(!e)return;if(t=i?n(!1):t+l{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)}),{navbarRef:i,isNavbarVisible:t}}(t);return(0,p.jsxs)("nav",{ref:i,"aria-label":(0,l.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)(h.G.layout.navbar.container,"navbar","navbar--fixed-top",t&&[ot.navbarHideable,!s&&ot.navbarHidden],{"navbar--dark":"dark"===n,"navbar--primary":"primary"===n,"navbar-sidebar--show":a.shown}),children:[e,(0,p.jsx)(at,{onClick:a.toggle}),(0,p.jsx)(rt,{})]})}var st=n(70440);const lt={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function ct(e){return(0,p.jsx)("button",{type:"button",...e,children:(0,p.jsx)(l.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function pt({error:e}){const t=(0,st.rA)(e).map(e=>e.message).join("\n\nCause:\n");return(0,p.jsx)("p",{className:lt.errorBoundaryError,children:t})}class ut extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const dt="right";function mt({width:e=30,height:t=30,className:n,...r}){return(0,p.jsx)("svg",{className:n,width:e,height:t,viewBox:"0 0 30 30","aria-hidden":"true",...r,children:(0,p.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function ft(){const{toggle:e,shown:t}=(0,A.M)();return(0,p.jsx)("button",{onClick:e,"aria-label":(0,l.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,p.jsx)(mt,{})})}const yt={colorModeToggle:"colorModeToggle_DEke"};function ht({items:e}){return(0,p.jsx)(p.Fragment,{children:e.map((e,t)=>(0,p.jsx)(ut,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,p.jsx)(Xe,{...e})},t))})}function gt({left:e,right:t}){return(0,p.jsxs)("div",{className:"navbar__inner",children:[(0,p.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.containerLeft,"navbar__items"),children:e}),(0,p.jsx)("div",{className:(0,o.A)(h.G.layout.navbar.containerRight,"navbar__items navbar__items--right"),children:t})]})}function _t(){const e=(0,A.M)(),t=(0,v.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??dt)}return[e.filter(t),e.filter(e=>!t(e))]}(t),o=t.find(e=>"search"===e.type);return(0,p.jsx)(gt,{left:(0,p.jsxs)(p.Fragment,{children:[!e.disabled&&(0,p.jsx)(ft,{}),(0,p.jsx)(ie,{}),(0,p.jsx)(ht,{items:n})]}),right:(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(ht,{items:r}),(0,p.jsx)(oe,{className:yt.colorModeToggle}),!o&&(0,p.jsx)(Ge,{children:(0,p.jsx)(ze,{})})]})})}function bt(){return(0,p.jsx)(it,{children:(0,p.jsx)(_t,{})})}function vt({item:e}){const{to:t,href:n,label:r,prependBaseUrlToHref:a,className:i,...s}=e,l=(0,pe.Ay)(t),c=(0,pe.Ay)(n,{forcePrependBaseUrl:!0});return(0,p.jsxs)(ce.A,{className:(0,o.A)("footer__link-item",i),...n?{href:a?c:n}:{to:l},...s,children:[r,n&&!(0,ue.A)(n)&&(0,p.jsx)(me.A,{})]})}function wt({item:e}){return e.html?(0,p.jsx)("li",{className:(0,o.A)("footer__item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,p.jsx)("li",{className:"footer__item",children:(0,p.jsx)(vt,{item:e})},e.href??e.to)}function kt({column:e}){return(0,p.jsxs)("div",{className:(0,o.A)(h.G.layout.footer.column,"col footer__col",e.className),children:[(0,p.jsx)("div",{className:"footer__title",children:e.title}),(0,p.jsx)("ul",{className:"footer__items clean-list",children:e.items.map((e,t)=>(0,p.jsx)(wt,{item:e},t))})]})}function jt({columns:e}){return(0,p.jsx)("div",{className:"row footer__links",children:e.map((e,t)=>(0,p.jsx)(kt,{column:e},t))})}function Ot(){return(0,p.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Pt({item:e}){return e.html?(0,p.jsx)("span",{className:(0,o.A)("footer__link-item",e.className),dangerouslySetInnerHTML:{__html:e.html}}):(0,p.jsx)(vt,{item:e})}function St({links:e}){return(0,p.jsx)("div",{className:"footer__links text--center",children:(0,p.jsx)("div",{className:"footer__links",children:e.map((t,n)=>(0,p.jsxs)(r.Fragment,{children:[(0,p.jsx)(Pt,{item:t}),e.length!==n+1&&(0,p.jsx)(Ot,{})]},n))})})}function It({links:e}){return function(e){return"title"in e[0]}(e)?(0,p.jsx)(jt,{columns:e}):(0,p.jsx)(St,{links:e})}var xt=n(21122);const At="footerLogoLink_BH7S";function Tt({logo:e}){const{withBaseUrl:t}=(0,pe.hH)(),n={light:t(e.src),dark:t(e.srcDark??e.src)};return(0,p.jsx)(xt.A,{className:(0,o.A)("footer__logo",e.className),alt:e.alt,sources:n,width:e.width,height:e.height,style:e.style})}function Et({logo:e}){return e.href?(0,p.jsx)(ce.A,{href:e.href,className:At,target:e.target,children:(0,p.jsx)(Tt,{logo:e})}):(0,p.jsx)(Tt,{logo:e})}function Rt({copyright:e}){return(0,p.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:e}})}function Ct({style:e,links:t,logo:n,copyright:r}){return(0,p.jsx)("footer",{className:(0,o.A)(h.G.layout.footer.container,"footer",{"footer--dark":"dark"===e}),children:(0,p.jsxs)("div",{className:"container container-fluid",children:[t,(n||r)&&(0,p.jsxs)("div",{className:"footer__bottom text--center",children:[n&&(0,p.jsx)("div",{className:"margin-bottom--sm",children:n}),r]})]})})}function qt(){const{footer:e}=(0,v.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,p.jsx)(Ct,{style:o,links:n&&n.length>0&&(0,p.jsx)(It,{links:n}),logo:r&&(0,p.jsx)(Et,{logo:r}),copyright:t&&(0,p.jsx)(Rt,{copyright:t})})}const Ft=r.memo(qt);function Dt(e){const[t,n]=(0,r.useState)(!1),o=r.useRef(null);(0,Ee.E8)({isOpen:!1,onOpen:()=>{o.current?.click()}});const a=(0,p.jsxs)("div",{ref:o,onClick:()=>{document.querySelector(".DocSearch-Button")?.click()},onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),style:{position:"fixed",right:"21px",bottom:"21px",zIndex:100,display:"flex",alignItems:"center",gap:"10px",cursor:"pointer"},children:[t&&(0,p.jsx)("div",{style:{backgroundColor:"#f6f6f6",padding:"8px 16px",borderRadius:"20px",color:"#000",fontSize:"14px",boxShadow:"0 2px 4px rgba(0,0,0,0.1)"},children:"Hi, how can I help you?"}),(0,p.jsx)("div",{style:{backgroundColor:"#f6f6f6",borderRadius:"50%",width:"48px",height:"48px",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 2px 4px rgba(0,0,0,0.1)"},children:(0,p.jsx)("img",{src:"/img/langflow-icon-black-transparent.svg",style:{width:"40px"},alt:"Search"})})]});return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(Ft,{...e}),a]})}const Bt=(0,E.fM)([L.a,w.o,T.Tv,Qe.VQ,i.Jx,function({children:e}){return(0,p.jsx)(R.y_,{children:(0,p.jsx)(A.e,{children:(0,p.jsx)(q,{children:e})})})}]);function Nt({children:e}){return(0,p.jsx)(Bt,{children:e})}var $t=n(51107);function Lt({error:e,tryAgain:t}){return(0,p.jsx)("main",{className:"container margin-vert--xl",children:(0,p.jsx)("div",{className:"row",children:(0,p.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,p.jsx)($t.A,{as:"h1",className:"hero__title",children:(0,p.jsx)(l.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,p.jsx)("div",{className:"margin-vert--lg",children:(0,p.jsx)(ct,{onClick:t,className:"button button--primary shadow--lw"})}),(0,p.jsx)("hr",{}),(0,p.jsx)("div",{className:"margin-vert--md",children:(0,p.jsx)(pt,{error:e})})]})})})}const Vt={mainWrapper:"mainWrapper_z2l0"};function Mt(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,g.J)(),(0,p.jsxs)(Nt,{children:[(0,p.jsx)(i.be,{title:s,description:l}),(0,p.jsx)(b,{}),(0,p.jsx)(x,{}),(0,p.jsx)(bt,{}),(0,p.jsx)("div",{id:u,className:(0,o.A)(h.G.layout.main.container,h.G.wrapper.main,Vt.mainWrapper,r),children:(0,p.jsx)(a.A,{fallback:e=>(0,p.jsx)(Lt,{...e}),children:t})}),!n&&(0,p.jsx)(Dt,{})]})}},12983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addTrailingSlash=o,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[i]=e.split(/[#?]/),s="/"===i||i===r?i:(l=i,c=n,c?o(l):a(l));var l,c;return e.replace(i,s)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=a;const r=n(42566);function o(e){return e.endsWith("/")?e:`${e}/`}function a(e){return(0,r.removeSuffix)(e,"/")}},13003:e=>{"use strict";e.exports=function(e){return e!=e}},13144:(e,t,n)=>{"use strict";var r=n(66743),o=n(11002),a=n(10076),i=n(47119);e.exports=i||r.call(a,o)},14035:(e,t,n)=>{"use strict";var r,o=n(36556),a=n(49092)(),i=n(9957),s=n(75795);if(a){var l=o("RegExp.prototype.exec"),c={},p=function(){throw c},u={toString:p,valueOf:p};"symbol"==typeof Symbol.toPrimitive&&(u[Symbol.toPrimitive]=p),r=function(e){if(!e||"object"!=typeof e)return!1;var t=s(e,"lastIndex");if(!(t&&i(t,"value")))return!1;try{l(e,u)}catch(n){return n===c}}}else{var d=o("Object.prototype.toString");r=function(e){return!(!e||"object"!=typeof e&&"function"!=typeof e)&&"[object RegExp]"===d(e)}}e.exports=r},14090:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(96540);const o="navigation-with-keyboard";function a(){(0,r.useEffect)(()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}},[])}},14563:(e,t,n)=>{"use strict";n.d(t,{AL:()=>p,s$:()=>u});var r=n(96540),o=n(44586),a=n(36803),i=n(89532),s=n(74848);const l=({title:e,siteTitle:t,titleDelimiter:n})=>{const r=e?.trim();return r&&r!==t?`${r} ${n} ${t}`:t},c=(0,r.createContext)(null);function p({formatter:e,children:t}){return(0,s.jsx)(c.Provider,{value:e,children:t})}function u(){const e=function(){const e=(0,r.useContext)(c);if(null===e)throw new i.dV("TitleFormatterProvider");return e}(),{siteConfig:t}=(0,o.A)(),{title:n,titleDelimiter:s}=t,{plugin:p}=(0,a.A)();return{format:t=>e({title:t,siteTitle:n,titleDelimiter:s,plugin:p,defaultFormatter:l})}}},15066:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;to});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),m=Symbol.iterator;var f={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},y=Object.assign,h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||f}function _(){}function b(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||f}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},_.prototype=g.prototype;var v=b.prototype=new _;v.constructor=b,y(v,g.prototype),v.isPureReactComponent=!0;var w=Array.isArray,k=Object.prototype.hasOwnProperty,j={current:null},O={key:!0,ref:!0,__self:!0,__source:!0};function P(e,t,r){var o,a={},i=null,s=null;if(null!=t)for(o in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,o)&&!O.hasOwnProperty(o)&&(a[o]=t[o]);var l=arguments.length-2;if(1===l)a.children=r;else if(1{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},17065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},17559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",blogAuthorsListPage:"blog-authors-list-page",blogAuthorsPostsPage:"blog-authors-posts-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",draftBanner:"theme-draft-banner",admonitionType:e=>`theme-admonition-${e}`},announcementBar:{container:"theme-announcement-bar"},layout:{navbar:{container:"theme-layout-navbar",containerLeft:"theme-layout-navbar-left",containerRight:"theme-layout-navbar-right",mobileSidebar:{container:"theme-layout-navbar-sidebar",panel:"theme-layout-navbar-sidebar-panel"}},main:{container:"theme-layout-main"},footer:{container:"theme-layout-footer",column:"theme-layout-footer-column"}},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},18215:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;to});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=18692},19700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o}),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var l=0;l=a.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var p=a[o],u=n.tokenStack[p],d="string"==typeof c?c:c.content,m=t(r,p),f=d.indexOf(m);if(f>-1){++o;var y=d.substring(0,f),h=new e.Token(r,e.tokenize(u,n.grammar),"language-"+r,u),g=d.substring(f+m.length),_=[];y&&_.push.apply(_,i([y])),_.push(h),g&&_.push.apply(_,i([g])),"string"==typeof c?s.splice.apply(s,[l,1].concat(_)):c.content=_}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},20311:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,s],p=0;(l=new Error(t.replace(/%s/g,function(){return c[p++]}))).name="Invariant Violation"}throw l.framesToPop=1,l}}},21020:(e,t,n)=>{"use strict";var r=n(96540),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,a={},c=null,p=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(p=t.ref),t)i.call(t,r)&&!l.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:o,type:e,key:c,ref:p,props:a,_owner:s.current}}t.Fragment=a,t.jsx=c,t.jsxs=c},21122:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(96540),o=n(15066),a=n(92303),i=n(95293);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(74848);function c({className:e,children:t}){const n=(0,a.A)(),{colorMode:c}=(0,i.G)();return(0,l.jsx)(l.Fragment,{children:(n?"dark"===c?["dark"]:["light"]:["light","dark"]).map(n=>{const a=t({theme:n,className:(0,o.A)(e,s.themedComponent,s[`themedComponent--${n}`])});return(0,l.jsx)(r.Fragment,{children:a},n)})})}function p(e){const{sources:t,className:n,alt:r,...o}=e;return(0,l.jsx)(c,{className:n,children:({theme:e,className:n})=>(0,l.jsx)("img",{src:t[e],alt:r,className:n,...o})})}},21312:(e,t,n)=>{"use strict";n.d(t,{A:()=>p,T:()=>c});var r=n(96540),o=n(74848);function a(e,t){const n=e.split(/(\{\w+\})/).map((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e});return n.some(e=>(0,r.isValidElement)(e))?n.map((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e).filter(e=>""!==e):n.join("")}var i=n(22654),s=n(96763);function l({id:e,message:t}){if(void 0===e&&void 0===t)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[e??t]??t??e}function c({message:e,id:t},n){return a(l({message:e,id:t}),n)}function p({children:e,id:t,values:n}){if(e&&"string"!=typeof e)throw s.warn("Illegal children",e),new Error("The Docusaurus component only accept simple string values");const r=l({message:e,id:t});return(0,o.jsx)(o.Fragment,{children:a(r,n)})}},21798:(e,t,n)=>{"use strict";n.r(t)},22067:(e,t,n)=>{"use strict";var r=n(96540),o=n(5338),a=n(80545),i=n(54625),s=n(4784),l=n(38193);const c=[n(31911),n(10119),n(26134),n(76294),n(641),n(21798),n(68665),n(11818),n(7767),n(23390),n(73796),n(29492),n(88135)];var p=n(35947),u=n(56347),d=n(22831),m=n(74848);function f({children:e}){return(0,m.jsx)(m.Fragment,{children:e})}var y=n(14563);const h=e=>e.defaultFormatter(e);function g({children:e}){return(0,m.jsx)(y.AL,{formatter:h,children:e})}function _({children:e}){return(0,m.jsx)(g,{children:e})}var b=n(5260),v=n(44586),w=n(86025),k=n(6342),j=n(45500),O=n(32131),P=n(14090),S=n(2967),I=n(70440),x=n(41463);function A(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,v.A)(),r=(0,O.o)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,m.jsxs)(b.A,{children:[Object.entries(n).map(([e,{htmlLang:t}])=>(0,m.jsx)("link",{rel:"alternate",href:r.createUrl({locale:e,fullyQualified:!0}),hrefLang:t},e)),(0,m.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,m.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter(e=>o!==e.htmlLang).map(e=>(0,m.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`))]})}function T({permalink:e}){const{siteConfig:{url:t}}=(0,v.A)(),n=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,v.A)(),{pathname:r}=(0,u.zy)();return e+(0,I.Ks)((0,w.Ay)(r),{trailingSlash:n,baseUrl:t})}(),r=e?`${t}${e}`:n;return(0,m.jsxs)(b.A,{children:[(0,m.jsx)("meta",{property:"og:url",content:r}),(0,m.jsx)("link",{rel:"canonical",href:r})]})}function E(){const{i18n:{currentLocale:e}}=(0,v.A)(),{metadata:t,image:n}=(0,k.p)();return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(b.A,{children:[(0,m.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,m.jsx)("body",{className:P.w})]}),n&&(0,m.jsx)(j.be,{image:n}),(0,m.jsx)(T,{}),(0,m.jsx)(A,{}),(0,m.jsx)(x.A,{tag:S.C,locale:e}),(0,m.jsx)(b.A,{children:t.map((e,t)=>(0,m.jsx)("meta",{...e},t))})]})}const R=new Map;var C=n(6125),q=n(26988),F=n(205);function D(e,...t){const n=c.map(n=>{const r=n.default?.[e]??n[e];return r?.(...t)});return()=>n.forEach(e=>e?.())}const B=function({children:e,location:t,previousLocation:n}){return(0,F.A)(()=>{n!==t&&(!function({location:e,previousLocation:t}){if(!t)return;const n=e.pathname===t.pathname,r=e.hash===t.hash,o=e.search===t.search;if(n&&r&&!o)return;const{hash:a}=e;if(a){const e=decodeURIComponent(a.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:t,previousLocation:n}),D("onRouteDidUpdate",{previousLocation:n,location:t}))},[n,t]),e};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map(e=>(0,d.u)(p.A,e)).flat();return Promise.all(t.map(e=>e.route.component.preload?.()))}var $=n(96763);class L extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.default.canUseDOM?D("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=D("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),N(n.pathname).then(()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})}).catch(e=>{$.warn(e),window.location.reload()}),!1}render(){const{children:e,location:t}=this.props;return(0,m.jsx)(B,{previousLocation:this.previousLocation,location:t,children:(0,m.jsx)(u.qh,{location:t,render:()=>e})})}}const V=L,M="__docusaurus-base-url-issue-banner-suggestion-container";function U(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '__docusaurus-base-url-issue-banner-container';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/!0===e.exact))return R.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return R.set(e.pathname,t),{...e,pathname:t}}((0,u.zy)());return(0,m.jsx)(V,{location:e,children:Y})}function Z(){return(0,m.jsx)(W.A,{children:(0,m.jsx)(q.l,{children:(0,m.jsxs)(C.x,{children:[(0,m.jsx)(f,{children:(0,m.jsxs)(_,{children:[(0,m.jsx)(G,{}),(0,m.jsx)(E,{}),(0,m.jsx)(H,{}),(0,m.jsx)(J,{})]})}),(0,m.jsx)(Q,{})]})})})}var X=n(84054);const ee=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)})}:function(e){return new Promise((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)})};var te=n(86921);const ne=new Set,re=new Set,oe=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ae={prefetch:e=>{if(!(e=>!oe()&&!re.has(e)&&!ne.has(e))(e))return!1;ne.add(e);const t=(0,d.u)(p.A,e).flatMap(e=>{return t=e.route.path,Object.entries(X).filter(([e])=>e.replace(/-[^-]+$/,"")===t).flatMap(([,e])=>Object.values((0,te.A)(e)));var t});return Promise.all(t.map(e=>{const t=n.gca(e);return t&&!t.includes("undefined")?ee(t).catch(()=>{}):Promise.resolve()}))},preload:e=>!!(e=>!oe()&&!re.has(e))(e)&&(re.add(e),N(e))},ie=Object.freeze(ae);var se=n(96763);function le({children:e}){return"hash"===s.A.future.experimental_router?(0,m.jsx)(i.I9,{children:e}):(0,m.jsx)(i.Kd,{children:e})}const ce=Boolean(!0);if(l.default.canUseDOM){window.docusaurus=ie;const e=document.getElementById("__docusaurus"),t=(0,m.jsx)(a.vd,{children:(0,m.jsx)(le,{children:(0,m.jsx)(Z,{})})}),n=(e,t)=>{se.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(ce)window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n});else{const r=o.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};N(window.location.pathname).then(()=>{(0,r.startTransition)(i)})}},22069:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>m});var r=n(96540),o=n(75600),a=n(24581),i=n(57485),s=n(6342),l=n(89532),c=n(74848);const p=r.createContext(void 0);function u(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,s.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1),c=(0,r.useCallback)(()=>{l(e=>!e)},[]);return(0,r.useEffect)(()=>{"desktop"===t&&l(!1)},[t]),(0,r.useMemo)(()=>({disabled:e,shouldRender:n,toggle:c,shown:i}),[e,n,c,i])}function d({handler:e}){return(0,i.$Z)(e),null}function m({children:e}){const t=u();return(0,c.jsxs)(c.Fragment,{children:[t.shown&&(0,c.jsx)(d,{handler:()=>(t.toggle(),!1)}),(0,c.jsx)(p.Provider,{value:t,children:e})]})}function f(){const e=r.useContext(p);if(void 0===e)throw new l.dV("NavbarMobileSidebarProvider");return e}},22551:(e,t,n)=>{"use strict";var r=n(96763),o=n(96540),a=n(69982);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n