From ace215679552cb2e0a99dd46cb788d09dad2b6f3 Mon Sep 17 00:00:00 2001 From: "github-merge-queue[bot]" Date: Fri, 23 Jan 2026 22:04:33 +0000 Subject: [PATCH] deploy: 2bd1ec5cd76670304c423952945811f67bc61b53 --- 404.html | 2 +- agent-tutorial.html | 2 +- agents-tools.html | 2 +- agents.html | 2 +- api-build.html | 2 +- api-files.html | 2 +- api-flows-run.html | 2 +- api-flows.html | 2 +- api-keys-and-authentication.html | 2 +- api-logs.html | 2 +- api-monitor.html | 2 +- api-openai-responses.html | 2 +- api-projects.html | 2 +- api-reference-api-examples.html | 2 +- api-request.html | 2 +- api-users.html | 2 +- api.html | 2 +- api/openapi.json.html | 2 +- api/openapi.yaml.html | 2 +- assets/js/{70909872.d6bdb628.js => 70909872.40e07bb0.js} | 2 +- assets/js/{ef9aa223.af99e84a.js => ef9aa223.fba9a342.js} | 2 +- .../js/{runtime~main.4d748ed7.js => runtime~main.d00c9a2d.js} | 2 +- batch-run.html | 2 +- bundles-aiml.html | 2 +- bundles-altk.html | 2 +- bundles-amazon.html | 2 +- bundles-anthropic.html | 2 +- bundles-apify.html | 2 +- bundles-arxiv.html | 2 +- bundles-assemblyai.html | 2 +- bundles-azure.html | 2 +- bundles-baidu.html | 2 +- bundles-bing.html | 2 +- bundles-cassandra.html | 2 +- bundles-chroma.html | 2 +- bundles-cleanlab.html | 2 +- bundles-clickhouse.html | 2 +- bundles-cloudflare.html | 2 +- bundles-cohere.html | 2 +- bundles-cometapi.html | 2 +- bundles-composio.html | 2 +- bundles-couchbase.html | 2 +- bundles-cuga.html | 2 +- bundles-datastax.html | 4 ++-- bundles-deepseek.html | 2 +- bundles-docling.html | 2 +- bundles-duckduckgo.html | 2 +- bundles-elastic.html | 2 +- bundles-exa.html | 2 +- bundles-faiss.html | 2 +- bundles-glean.html | 2 +- bundles-google.html | 2 +- bundles-groq.html | 2 +- bundles-huggingface.html | 2 +- bundles-ibm.html | 2 +- bundles-icosacomputing.html | 2 +- bundles-langchain.html | 2 +- bundles-lmstudio.html | 2 +- bundles-maritalk.html | 2 +- bundles-mem0.html | 2 +- bundles-milvus.html | 2 +- bundles-mistralai.html | 2 +- bundles-mongodb.html | 2 +- bundles-notion.html | 2 +- bundles-novita.html | 2 +- bundles-nvidia.html | 2 +- bundles-ollama.html | 2 +- bundles-openai.html | 2 +- bundles-openrouter.html | 2 +- bundles-perplexity.html | 2 +- bundles-pgvector.html | 2 +- bundles-pinecone.html | 2 +- bundles-qdrant.html | 2 +- bundles-redis.html | 2 +- bundles-sambanova.html | 2 +- bundles-searchapi.html | 2 +- bundles-serper.html | 2 +- bundles-supabase.html | 2 +- bundles-upstash.html | 2 +- bundles-vectara.html | 2 +- bundles-vertexai.html | 2 +- bundles-vllm.html | 2 +- bundles-weaviate.html | 2 +- bundles-wikipedia.html | 2 +- bundles-xai.html | 2 +- calculator.html | 2 +- chat-input-and-output.html | 2 +- chat-with-files.html | 2 +- chat-with-rag.html | 2 +- component-webhook.html | 2 +- components-agents.html | 2 +- components-bundle-components.html | 2 +- components-custom-components.html | 2 +- components-embedding-models.html | 2 +- components-models.html | 2 +- components-prompts.html | 2 +- concepts-components.html | 2 +- concepts-file-management.html | 2 +- concepts-flows-import.html | 2 +- concepts-flows.html | 2 +- concepts-overview.html | 2 +- concepts-playground.html | 2 +- concepts-publish.html | 2 +- concepts-voice-mode.html | 2 +- configuration-cli.html | 2 +- configuration-custom-database.html | 2 +- configuration-global-variables.html | 2 +- contributing-bundles.html | 2 +- contributing-community.html | 2 +- contributing-component-tests.html | 2 +- contributing-components.html | 2 +- contributing-github-issues.html | 2 +- contributing-how-to-contribute.html | 2 +- contributing-telemetry.html | 2 +- contributing-templates.html | 2 +- current-date.html | 2 +- data-operations.html | 2 +- data-types.html | 2 +- dataframe-operations.html | 2 +- deployment-architecture.html | 2 +- deployment-caddyfile.html | 2 +- deployment-docker.html | 2 +- deployment-gcp.html | 2 +- deployment-hugging-face-spaces.html | 2 +- deployment-kubernetes-dev.html | 2 +- deployment-kubernetes-prod.html | 2 +- deployment-nginx-ssl.html | 2 +- deployment-overview.html | 2 +- deployment-prod-best-practices.html | 2 +- deployment-public-server.html | 2 +- deployment-railway.html | 2 +- deployment-render.html | 2 +- develop-application.html | 2 +- directory.html | 2 +- dynamic-create-data.html | 2 +- enterprise-database-guide.html | 2 +- environment-variables.html | 2 +- get-started-installation.html | 2 +- get-started-quickstart.html | 2 +- if-else.html | 2 +- index.html | 2 +- install-custom-dependencies.html | 2 +- integrations-arize.html | 2 +- integrations-instana-traceloop.html | 2 +- integrations-langfuse.html | 2 +- integrations-langsmith.html | 2 +- integrations-langwatch.html | 2 +- integrations-opik.html | 2 +- legacy-core-components.html | 2 +- llm-selector.html | 2 +- logging.html | 2 +- loop.html | 2 +- luna-for-langflow.html | 2 +- mcp-client.html | 2 +- mcp-component-astra.html | 4 ++-- mcp-server.html | 2 +- mcp-tools.html | 2 +- mcp-tutorial.html | 2 +- memory.html | 2 +- message-history.html | 2 +- mock-data.html | 2 +- notify-and-listen.html | 2 +- parser.html | 2 +- python-interpreter.html | 2 +- read-file.html | 2 +- release-notes.html | 2 +- run-flow.html | 2 +- search.html | 2 +- security.html | 2 +- session-id.html | 2 +- sitemap.xml | 2 +- smart-router.html | 2 +- smart-transform.html | 2 +- split-text.html | 2 +- sql-database.html | 2 +- structured-output.html | 2 +- text-input-and-output.html | 2 +- troubleshoot.html | 2 +- type-convert.html | 2 +- typescript-client.html | 2 +- url.html | 2 +- web-search.html | 2 +- webhook.html | 2 +- write-file.html | 2 +- 184 files changed, 186 insertions(+), 186 deletions(-) rename assets/js/{70909872.d6bdb628.js => 70909872.40e07bb0.js} (99%) rename assets/js/{ef9aa223.af99e84a.js => ef9aa223.fba9a342.js} (99%) rename assets/js/{runtime~main.4d748ed7.js => runtime~main.d00c9a2d.js} (98%) diff --git a/404.html b/404.html index b3dba7cf68..d647a4b565 100644 --- a/404.html +++ b/404.html @@ -24,7 +24,7 @@ - + diff --git a/agent-tutorial.html b/agent-tutorial.html index 1a22e26ebd..911b5a530f 100644 --- a/agent-tutorial.html +++ b/agent-tutorial.html @@ -24,7 +24,7 @@ - + diff --git a/agents-tools.html b/agents-tools.html index 0e5ba20230..1667e07407 100644 --- a/agents-tools.html +++ b/agents-tools.html @@ -24,7 +24,7 @@ - + diff --git a/agents.html b/agents.html index bb8c0c35f3..c5040e6ef0 100644 --- a/agents.html +++ b/agents.html @@ -24,7 +24,7 @@ - + diff --git a/api-build.html b/api-build.html index 320ca5d886..9ffba4a092 100644 --- a/api-build.html +++ b/api-build.html @@ -24,7 +24,7 @@ - + diff --git a/api-files.html b/api-files.html index d6d3bc5226..81f0de5399 100644 --- a/api-files.html +++ b/api-files.html @@ -24,7 +24,7 @@ - + diff --git a/api-flows-run.html b/api-flows-run.html index 2f56d55e4b..20df66cf83 100644 --- a/api-flows-run.html +++ b/api-flows-run.html @@ -24,7 +24,7 @@ - + diff --git a/api-flows.html b/api-flows.html index c0d43532b0..117f7e4489 100644 --- a/api-flows.html +++ b/api-flows.html @@ -24,7 +24,7 @@ - + diff --git a/api-keys-and-authentication.html b/api-keys-and-authentication.html index b8c3bf02cc..73fa8b0727 100644 --- a/api-keys-and-authentication.html +++ b/api-keys-and-authentication.html @@ -24,7 +24,7 @@ - + diff --git a/api-logs.html b/api-logs.html index 369a79aeb4..e15a144ded 100644 --- a/api-logs.html +++ b/api-logs.html @@ -24,7 +24,7 @@ - + diff --git a/api-monitor.html b/api-monitor.html index ac01a31339..f0ade768ff 100644 --- a/api-monitor.html +++ b/api-monitor.html @@ -24,7 +24,7 @@ - + diff --git a/api-openai-responses.html b/api-openai-responses.html index 2aa2d6cbff..545310a295 100644 --- a/api-openai-responses.html +++ b/api-openai-responses.html @@ -24,7 +24,7 @@ - + diff --git a/api-projects.html b/api-projects.html index b06cadda32..6e5a38ba36 100644 --- a/api-projects.html +++ b/api-projects.html @@ -24,7 +24,7 @@ - + diff --git a/api-reference-api-examples.html b/api-reference-api-examples.html index d2b9c7b604..6151fad25d 100644 --- a/api-reference-api-examples.html +++ b/api-reference-api-examples.html @@ -24,7 +24,7 @@ - + diff --git a/api-request.html b/api-request.html index 39d8cc5114..f3c4443554 100644 --- a/api-request.html +++ b/api-request.html @@ -24,7 +24,7 @@ - + diff --git a/api-users.html b/api-users.html index 595c0ceefe..bc209b9e4c 100644 --- a/api-users.html +++ b/api-users.html @@ -24,7 +24,7 @@ - + diff --git a/api.html b/api.html index f0ed8e862e..7bdbd90bc2 100644 --- a/api.html +++ b/api.html @@ -24,7 +24,7 @@ - + diff --git a/api/openapi.json.html b/api/openapi.json.html index c083231394..83ff4fa232 100644 --- a/api/openapi.json.html +++ b/api/openapi.json.html @@ -24,7 +24,7 @@ - + diff --git a/api/openapi.yaml.html b/api/openapi.yaml.html index 8cf5ec93d6..6b40cedc35 100644 --- a/api/openapi.yaml.html +++ b/api/openapi.yaml.html @@ -24,7 +24,7 @@ - + diff --git a/assets/js/70909872.d6bdb628.js b/assets/js/70909872.40e07bb0.js similarity index 99% rename from assets/js/70909872.d6bdb628.js rename to assets/js/70909872.40e07bb0.js index 399eb19820..1b11daba72 100644 --- a/assets/js/70909872.d6bdb628.js +++ b/assets/js/70909872.40e07bb0.js @@ -1 +1 @@ -"use strict";(globalThis.webpackChunklangflow_docs=globalThis.webpackChunklangflow_docs||[]).push([[5333],{6892:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/component-mcp-astra-db-efbe2da591a955d0a6fa5259bd659a0e.png"},23521:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>p,assets:()=>h,chCodeConfig:()=>g,contentTitle:()=>l,default:()=>u,frontMatter:()=>d,metadata:()=>o,toc:()=>m});const o=JSON.parse('{"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.","source":"@site/docs/Agents/mcp-component-astra.mdx","sourceDirName":"Agents","slug":"/mcp-component-astra","permalink":"/mcp-component-astra","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Connect an Astra DB MCP server to Langflow","slug":"/mcp-component-astra"},"sidebar":"docs","previous":{"title":"Use Langflow as an MCP server","permalink":"/mcp-server"},"next":{"title":"API keys and authentication","permalink":"/api-keys-and-authentication"}}');var s=t(74848),a=t(28453),r=t(24754),i=t(40619),c=t(76493);const d={title:"Connect an Astra DB MCP server to Langflow",slug:"/mcp-component-astra"},l=void 0,h={},p={annotations:r.hk,Code:r.Cy},g={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},m=[...c.RM];function x(e){const n={a:"a",admonition:"admonition",code:"code",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,a.R)(),...e.components};return p||f("CH",!1),p.Code||f("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)(n.p,{children:["This guide demonstrates how to ",(0,s.jsx)(n.a,{href:"/mcp-client",children:"use Langflow as an MCP client"})," by using the ",(0,s.jsx)(n.strong,{children:"MCP Tools"})," component to run a ",(0,s.jsx)(n.a,{href:"https://github.com/datastax/astra-db-mcp",children:"DataStax Astra DB MCP server"})," in an agent flow."]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Install an LTS release of ",(0,s.jsx)(n.a,{href:"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm",children:"Node.js"}),"."]}),"\n"]}),"\n",(0,s.jsx)(c.Ay,{}),"\n",(0,s.jsxs)(n.ol,{start:"2",children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Create an ",(0,s.jsx)(n.a,{href:"https://platform.openai.com/",children:"OpenAI"})," API key."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Create an ",(0,s.jsx)(n.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/create-database.html#create-vector-database",children:"Astra DB Serverless (Vector) database"}),", if you don't already have one."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Get your database's Astra DB API endpoint and an Astra application token with the ",(0,s.jsx)(n.strong,{children:"Database Administrator"})," role. For more information, see ",(0,s.jsx)(n.a,{href:"https://docs.datastax.com/en/astra-db-serverless/administration/manage-application-tokens.html#database-token",children:"Generate an application token for a database"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["To follow along with this guide, create a flow based on the ",(0,s.jsx)(n.strong,{children:"Simple Agent"})," template."]}),"\n",(0,s.jsx)(n.p,{children:"You can also use an existing flow or create a blank flow."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Remove the ",(0,s.jsx)(n.strong,{children:"URL"})," tool, and then replace it with an ",(0,s.jsxs)(n.a,{href:"/mcp-client",children:[(0,s.jsx)(n.strong,{children:"MCP Tools"})," component"]}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Configure the ",(0,s.jsx)(n.strong,{children:"MCP Tools"})," component as follows:"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the ",(0,s.jsx)(n.strong,{children:"MCP Server"})," field, click ",(0,s.jsx)(i.A,{name:"Plus","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Add MCP Server"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Select ",(0,s.jsx)(n.strong,{children:"Stdio"})," mode."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["EIn the ",(0,s.jsx)(n.strong,{children:"Name"})," field, enter a name for the MCP server."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the ",(0,s.jsx)(n.strong,{children:"Commmand"})," field, add the following code to connect to an Astra DB MCP server:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"npx ",props:{style:{color:"#FFA657"}}},{content:"-y ",props:{style:{color:"#79C0FF"}}},{content:"@datastax/astra-db-mcp",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the ",(0,s.jsx)(n.strong,{children:"Environment Variables"})," fields, add variables for ",(0,s.jsx)(n.code,{children:"ASTRA_DB_APPLICATION_TOKEN"})," and ",(0,s.jsx)(n.code,{children:"ASTRA_DB_API_ENDPOINT"})," with the values from your Astra database."]}),"\n",(0,s.jsxs)(n.admonition,{type:"info",children:[(0,s.jsxs)(n.p,{children:["Environment variables declared in your Langflow ",(0,s.jsx)(n.code,{children:".env"})," file can be referenced in your MCP server commands, but you cannot reference global variables declared in Langflow."]}),(0,s.jsxs)(n.p,{children:["If you want to use variables for ",(0,s.jsx)(n.code,{children:"ASTRA_DB_APPLICATION_TOKEN"})," and ",(0,s.jsx)(n.code,{children:"ASTRA_DB_API_ENDPOINT"}),", add them to Langflow's ",(0,s.jsx)(n.code,{children:".env"})," file, and then restart Langflow.\nFor more information, see ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"}),"."]})]}),"\n",(0,s.jsxs)(n.p,{children:["Add each variable separately.\nTo add another variable field click ",(0,s.jsx)(i.A,{name:"Plus","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Add More"}),"."]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"ASTRA_DB_APPLICATION_TOKEN",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"AstraCS:...",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"ASTRA_DB_API_ENDPOINT",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"https://...-us-east-2.apps.astra.datastax.com",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the ",(0,s.jsx)(n.strong,{children:"Agent"})," component, add your OpenAI API key."]}),"\n",(0,s.jsxs)(n.p,{children:["The default model is an OpenAI model.\nIf you want to use a different model, edit the ",(0,s.jsx)(n.strong,{children:"Model Provider"}),", ",(0,s.jsx)(n.strong,{children:"Model Name"}),", and ",(0,s.jsx)(n.strong,{children:"API Key"})," fields accordingly."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"The Simple Agent flow with the URL tool replaced by an MCP Tools component, and the MCP Tools component launching an Astra DB MCP server",src:t(6892).A+"",width:"4000",height:"2450"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Open the ",(0,s.jsx)(n.strong,{children:"Playground"}),", and then ask the agent, ",(0,s.jsx)(n.code,{children:"What collections are available?"})]}),"\n",(0,s.jsx)(n.p,{children:"Since Langflow is connected to your Astra DB database through the MCP server, the agent chooses the correct tool and connects to your database to retrieve the answer.\nFor example:"}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"The available collections in your database are:",props:{}}]},{tokens:[{content:"collection_002",props:{}}]},{tokens:[{content:"hardware_requirements",props:{}}]},{tokens:[{content:"load_collection",props:{}}]},{tokens:[{content:"nvidia_collection",props:{}}]},{tokens:[{content:"software_requirements",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(x,{...e})}):x(e)}function f(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},76493:(e,n,t)=>{t.d(n,{Ay:()=>i,RM:()=>a});var o=t(74848),s=t(28453);const a=[];function r(e){const n={a:"a",admonition:"admonition",code:"code",p:"p",...(0,s.R)(),...e.components};return(0,o.jsxs)(n.admonition,{type:"tip",children:[(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"uvx"})," is included with ",(0,o.jsx)(n.code,{children:"uv"})," in the Langflow package."]}),(0,o.jsxs)(n.p,{children:["To use ",(0,o.jsx)(n.code,{children:"npx"})," server commands, you must first install an LTS release of ",(0,o.jsx)(n.a,{href:"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm",children:"Node.js"}),". If you run Langflow in Docker, install Node.js inside the container image and rebuild so that ",(0,o.jsx)(n.code,{children:"npx"}),"-based MCP servers are available at runtime. For more information, see ",(0,o.jsx)(n.a,{href:"/develop-application#package-management",children:"Package management"}),"."]}),(0,o.jsxs)(n.p,{children:["For an example of an ",(0,o.jsx)(n.code,{children:"npx"})," MCP server in Langflow, see ",(0,o.jsx)(n.a,{href:"/mcp-component-astra",children:"Connect an Astra DB MCP server to Langflow"}),"."]})]})}function i(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(r,{...e})}):r(e)}}}]); \ No newline at end of file +"use strict";(globalThis.webpackChunklangflow_docs=globalThis.webpackChunklangflow_docs||[]).push([[5333],{6892:(e,n,t)=>{t.d(n,{A:()=>o});const o=t.p+"assets/images/component-mcp-astra-db-efbe2da591a955d0a6fa5259bd659a0e.png"},23521:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>p,assets:()=>h,chCodeConfig:()=>g,contentTitle:()=>l,default:()=>u,frontMatter:()=>d,metadata:()=>o,toc:()=>m});const o=JSON.parse('{"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.","source":"@site/docs/Agents/mcp-component-astra.mdx","sourceDirName":"Agents","slug":"/mcp-component-astra","permalink":"/mcp-component-astra","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Connect an Astra DB MCP server to Langflow","slug":"/mcp-component-astra"},"sidebar":"docs","previous":{"title":"Use Langflow as an MCP server","permalink":"/mcp-server"},"next":{"title":"API keys and authentication","permalink":"/api-keys-and-authentication"}}');var s=t(74848),a=t(28453),r=t(24754),i=t(40619),c=t(76493);const d={title:"Connect an Astra DB MCP server to Langflow",slug:"/mcp-component-astra"},l=void 0,h={},p={annotations:r.hk,Code:r.Cy},g={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},m=[...c.RM];function x(e){const n={a:"a",admonition:"admonition",code:"code",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,a.R)(),...e.components};return p||f("CH",!1),p.Code||f("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)(n.p,{children:["This guide demonstrates how to ",(0,s.jsx)(n.a,{href:"/mcp-client",children:"use Langflow as an MCP client"})," by using the ",(0,s.jsx)(n.strong,{children:"MCP Tools"})," component to run a ",(0,s.jsx)(n.a,{href:"https://github.com/datastax/astra-db-mcp",children:"DataStax Astra DB MCP server"})," in an agent flow."]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Install an LTS release of ",(0,s.jsx)(n.a,{href:"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm",children:"Node.js"}),"."]}),"\n"]}),"\n",(0,s.jsx)(c.Ay,{}),"\n",(0,s.jsxs)(n.ol,{start:"2",children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Create an ",(0,s.jsx)(n.a,{href:"https://platform.openai.com/",children:"OpenAI"})," API key."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Create an ",(0,s.jsx)(n.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/create-database.html#create-vector-database",children:"Astra DB Serverless (vector) database"}),", if you don't already have one."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Get your database's Astra DB API endpoint and an Astra application token with the ",(0,s.jsx)(n.strong,{children:"Database Administrator"})," role. For more information, see ",(0,s.jsx)(n.a,{href:"https://docs.datastax.com/en/astra-db-serverless/administration/manage-application-tokens.html#database-token",children:"Generate an application token for a database"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["To follow along with this guide, create a flow based on the ",(0,s.jsx)(n.strong,{children:"Simple Agent"})," template."]}),"\n",(0,s.jsx)(n.p,{children:"You can also use an existing flow or create a blank flow."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Remove the ",(0,s.jsx)(n.strong,{children:"URL"})," tool, and then replace it with an ",(0,s.jsxs)(n.a,{href:"/mcp-client",children:[(0,s.jsx)(n.strong,{children:"MCP Tools"})," component"]}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Configure the ",(0,s.jsx)(n.strong,{children:"MCP Tools"})," component as follows:"]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the ",(0,s.jsx)(n.strong,{children:"MCP Server"})," field, click ",(0,s.jsx)(i.A,{name:"Plus","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Add MCP Server"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Select ",(0,s.jsx)(n.strong,{children:"Stdio"})," mode."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["EIn the ",(0,s.jsx)(n.strong,{children:"Name"})," field, enter a name for the MCP server."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the ",(0,s.jsx)(n.strong,{children:"Commmand"})," field, add the following code to connect to an Astra DB MCP server:"]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"npx ",props:{style:{color:"#FFA657"}}},{content:"-y ",props:{style:{color:"#79C0FF"}}},{content:"@datastax/astra-db-mcp",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the ",(0,s.jsx)(n.strong,{children:"Environment Variables"})," fields, add variables for ",(0,s.jsx)(n.code,{children:"ASTRA_DB_APPLICATION_TOKEN"})," and ",(0,s.jsx)(n.code,{children:"ASTRA_DB_API_ENDPOINT"})," with the values from your Astra database."]}),"\n",(0,s.jsxs)(n.admonition,{type:"info",children:[(0,s.jsxs)(n.p,{children:["Environment variables declared in your Langflow ",(0,s.jsx)(n.code,{children:".env"})," file can be referenced in your MCP server commands, but you cannot reference global variables declared in Langflow."]}),(0,s.jsxs)(n.p,{children:["If you want to use variables for ",(0,s.jsx)(n.code,{children:"ASTRA_DB_APPLICATION_TOKEN"})," and ",(0,s.jsx)(n.code,{children:"ASTRA_DB_API_ENDPOINT"}),", add them to Langflow's ",(0,s.jsx)(n.code,{children:".env"})," file, and then restart Langflow.\nFor more information, see ",(0,s.jsx)(n.a,{href:"/configuration-global-variables",children:"global variables"}),"."]})]}),"\n",(0,s.jsxs)(n.p,{children:["Add each variable separately.\nTo add another variable field click ",(0,s.jsx)(i.A,{name:"Plus","aria-hidden":"true"})," ",(0,s.jsx)(n.strong,{children:"Add More"}),"."]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"ASTRA_DB_APPLICATION_TOKEN",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"AstraCS:...",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"ASTRA_DB_API_ENDPOINT",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"https://...-us-east-2.apps.astra.datastax.com",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["In the ",(0,s.jsx)(n.strong,{children:"Agent"})," component, add your OpenAI API key."]}),"\n",(0,s.jsxs)(n.p,{children:["The default model is an OpenAI model.\nIf you want to use a different model, edit the ",(0,s.jsx)(n.strong,{children:"Model Provider"}),", ",(0,s.jsx)(n.strong,{children:"Model Name"}),", and ",(0,s.jsx)(n.strong,{children:"API Key"})," fields accordingly."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"The Simple Agent flow with the URL tool replaced by an MCP Tools component, and the MCP Tools component launching an Astra DB MCP server",src:t(6892).A+"",width:"4000",height:"2450"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Open the ",(0,s.jsx)(n.strong,{children:"Playground"}),", and then ask the agent, ",(0,s.jsx)(n.code,{children:"What collections are available?"})]}),"\n",(0,s.jsx)(n.p,{children:"Since Langflow is connected to your Astra DB database through the MCP server, the agent chooses the correct tool and connects to your database to retrieve the answer.\nFor example:"}),"\n",(0,s.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"The available collections in your database are:",props:{}}]},{tokens:[{content:"collection_002",props:{}}]},{tokens:[{content:"hardware_requirements",props:{}}]},{tokens:[{content:"load_collection",props:{}}]},{tokens:[{content:"nvidia_collection",props:{}}]},{tokens:[{content:"software_requirements",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(x,{...e})}):x(e)}function f(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},76493:(e,n,t)=>{t.d(n,{Ay:()=>i,RM:()=>a});var o=t(74848),s=t(28453);const a=[];function r(e){const n={a:"a",admonition:"admonition",code:"code",p:"p",...(0,s.R)(),...e.components};return(0,o.jsxs)(n.admonition,{type:"tip",children:[(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"uvx"})," is included with ",(0,o.jsx)(n.code,{children:"uv"})," in the Langflow package."]}),(0,o.jsxs)(n.p,{children:["To use ",(0,o.jsx)(n.code,{children:"npx"})," server commands, you must first install an LTS release of ",(0,o.jsx)(n.a,{href:"https://docs.npmjs.com/downloading-and-installing-node-js-and-npm",children:"Node.js"}),". If you run Langflow in Docker, install Node.js inside the container image and rebuild so that ",(0,o.jsx)(n.code,{children:"npx"}),"-based MCP servers are available at runtime. For more information, see ",(0,o.jsx)(n.a,{href:"/develop-application#package-management",children:"Package management"}),"."]}),(0,o.jsxs)(n.p,{children:["For an example of an ",(0,o.jsx)(n.code,{children:"npx"})," MCP server in Langflow, see ",(0,o.jsx)(n.a,{href:"/mcp-component-astra",children:"Connect an Astra DB MCP server to Langflow"}),"."]})]})}function i(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(r,{...e})}):r(e)}}}]); \ No newline at end of file diff --git a/assets/js/ef9aa223.af99e84a.js b/assets/js/ef9aa223.fba9a342.js similarity index 99% rename from assets/js/ef9aa223.af99e84a.js rename to assets/js/ef9aa223.fba9a342.js index dfac110bfc..84dbfdade5 100644 --- a/assets/js/ef9aa223.af99e84a.js +++ b/assets/js/ef9aa223.fba9a342.js @@ -1 +1 @@ -"use strict";(globalThis.webpackChunklangflow_docs=globalThis.webpackChunklangflow_docs||[]).push([[6224],{7089:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>g,assets:()=>j,chCodeConfig:()=>f,contentTitle:()=>m,default:()=>v,frontMatter:()=>u,metadata:()=>r,toc:()=>y});const r=JSON.parse('{"id":"Components/bundles-datastax","title":"DataStax","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","source":"@site/docs/Components/bundles-datastax.mdx","sourceDirName":"Components","slug":"/bundles-datastax","permalink":"/bundles-datastax","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"DataStax","slug":"/bundles-datastax"},"sidebar":"docs","previous":{"title":"CUGA","permalink":"/bundles-cuga"},"next":{"title":"DeepSeek","permalink":"/bundles-deepseek"}}');var s=n(74848),a=n(28453),i=n(24754),o=n(40619),d=n(31929),c=n(80223),l=n(90465),h=n(50005),p=n(27027),x=n(36813);const u={title:"DataStax",slug:"/bundles-datastax"},m=void 0,j={},g={annotations:i.hk,Code:i.Cy},f={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},y=[{value:"Astra DB",id:"astra-db",level:2},...h.RM,{value:"Astra DB parameters",id:"astra-db-parameters",level:3},...d.RM,...c.RM,{value:"Astra DB examples",id:"astra-db-examples",level:3},...p.RM,{value:"Astra DB output",id:"astra-db-output",level:3},...l.RM,{value:"Astra DB CQL",id:"astra-db-cql",level:2},{value:"Astra DB CQL parameters",id:"astra-db-cql-parameters",level:3},...d.RM,{value:"Graph RAG",id:"graph-rag",level:2},{value:"Graph RAG parameters",id:"graph-rag-parameters",level:3},...d.RM,...c.RM,{value:"Hyper-Converged Database (HCD)",id:"hyper-converged-database-hcd",level:2},...h.RM,...l.RM,{value:"HCD parameters",id:"hcd-parameters",level:3},...d.RM,...c.RM,{value:"Other DataStax components",id:"other-datastax-components",level:2},{value:"Astra DB Chat Memory",id:"astra-db-chat-memory",level:3},{value:"Astra DB Chat Memory parameters",id:"astra-db-chat-memory-parameters",level:4},...d.RM,{value:"Legacy DataStax components",id:"legacy-datastax-components",level:2},...x.RM,...d.RM,...c.RM,{value:"See also",id:"see-also",level:2}];function b(e){const t={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",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,a.R)(),...e.components},{Details:r}=t;return g||w("CH",!1),g.Code||w("CH.Code",!0),r||w("Details",!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)(t.p,{children:[(0,s.jsx)(o.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:"DataStax"})," bundle, including components that read and write to Astra DB databases."]}),"\n",(0,s.jsx)(t.h2,{id:"astra-db",children:"Astra DB"}),"\n",(0,s.jsxs)(t.admonition,{type:"warning",children:[(0,s.jsxs)(t.p,{children:["It is recommended that you create any databases, keyspaces, and collections you need before configuring the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component."]}),(0,s.jsxs)(t.p,{children:["You can create new databases and collections through this component, but this is only possible in the Langflow visual editor (not at runtime), and you must wait while the database or collection initializes before proceeding with flow configuration.\nAdditionally, not all database and collection configuration options are available through the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component, such as hybrid search options, PCU groups, vectorize integration management, and multi-region deployments."]})]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component reads and writes to Astra DB Serverless databases, using an instance of ",(0,s.jsx)(t.code,{children:"AstraDBVectorStore"})," to call the Data API and DevOps API."]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"About vector store instances"}),(0,s.jsx)(h.Ay,{})]}),"\n",(0,s.jsx)(t.h3,{id:"astra-db-parameters",children:"Astra DB 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)(d.Ay,{}),"\n",(0,s.jsx)(c.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.datastax.com/en/astra-db-serverless/index.html",children:"Astra DB Serverless 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:"Display Name"}),(0,s.jsx)(t.th,{children:"Info"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"token"}),(0,s.jsx)(t.td,{children:"Astra DB Application Token"}),(0,s.jsx)(t.td,{children:"Input parameter. An Astra application token with permission to access your vector database. Once the connection is verified, additional fields are populated with your existing databases and collections. If you want to create a database through this component, the application token must have Organization Administrator permissions."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"environment"}),(0,s.jsx)(t.td,{children:"Environment"}),(0,s.jsxs)(t.td,{children:["Input parameter. The environment for the Astra DB API endpoint. Typically always ",(0,s.jsx)(t.code,{children:"prod"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"database_name"}),(0,s.jsx)(t.td,{children:"Database"}),(0,s.jsxs)(t.td,{children:["Input parameter. The name of the database that you want this component to connect to. Or, you can select ",(0,s.jsx)(t.strong,{children:"New Database"})," to create a new database, and then wait for the database to initialize before setting the remaining parameters."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"endpoint"}),(0,s.jsx)(t.td,{children:"Astra DB API Endpoint"}),(0,s.jsxs)(t.td,{children:["Input parameter. For multi-region databases, select the API endpoint for your nearest datacenter. To get the list of regions for a multi-region database, see ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/manage-regions.html#list-db-regions",children:"List database regions"}),". This field is automatically populated when you select a database, and it defaults to the primary region's endpoint."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"keyspace"}),(0,s.jsx)(t.td,{children:"Keyspace"}),(0,s.jsxs)(t.td,{children:["Input parameter. The keyspace in your database that contains the collection specified in ",(0,s.jsx)(t.code,{children:"collection_name"}),". Default: ",(0,s.jsx)(t.code,{children:"default_keyspace"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"collection_name"}),(0,s.jsx)(t.td,{children:"Collection"}),(0,s.jsxs)(t.td,{children:["Input parameter. The name of the collection that you want to use with this flow. Or, select ",(0,s.jsx)(t.strong,{children:"New Collection"})," to create a new collection with limited configuration options. To ensure your collection is configured with the correct embedding provider and search capabilities, it is recommended to create the collection in the Astra Portal or with the Data API ",(0,s.jsx)(t.em,{children:"before"})," configuring this component. For more information, see ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/manage-collections.html",children:"Manage collections in Astra DB Serverless"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"embedding_model"}),(0,s.jsx)(t.td,{children:"Embedding Model"}),(0,s.jsxs)(t.td,{children:["Input parameter. Attach an ",(0,s.jsx)(t.a,{href:"/components-embedding-models",children:"embedding model component"})," to generate embeddings. Only available if the specified collection doesn't have a ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/embedding-generation.html",children:"vectorize integration"}),". If a vectorize integration exists, the component automatically uses the collection's integrated model."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"ingest_data"}),(0,s.jsx)(t.td,{children:"Ingest Data"}),(0,s.jsxs)(t.td,{children:["Input parameter. The documents to load into the specified collection. Accepts ",(0,s.jsx)(t.code,{children:"Data"})," or ",(0,s.jsx)(t.code,{children:"DataFrame"})," input."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_query"}),(0,s.jsx)(t.td,{children:"Search Query"}),(0,s.jsx)(t.td,{children:"Input parameter. The query string for vector search."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"cache_vector_store"}),(0,s.jsx)(t.td,{children:"Cache Vector Store"}),(0,s.jsxs)(t.td,{children:["Input parameter. Whether to cache the vector store in Langflow 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:"search_method"}),(0,s.jsx)(t.td,{children:"Search Method"}),(0,s.jsxs)(t.td,{children:["Input parameter. The search methods to use, either ",(0,s.jsx)(t.code,{children:"Hybrid Search"})," or ",(0,s.jsx)(t.code,{children:"Vector Search"}),". Your collection must be configured to support the chosen option, and the default depends on what your collection supports. All vector-enabled collections in Astra DB Serverless (Vector) databases support vector search, but hybrid search requires that you set specific collection settings when creating the collection. These options are only available when creating a collection programmatically. For more information, see ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/about-search.html",children:"Ways to find data in Astra DB Serverless"})," and ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/collection-methods/create-collection.html#example-hybrid",children:"Create a collection that supports hybrid search"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"reranker"}),(0,s.jsx)(t.td,{children:"Reranker"}),(0,s.jsxs)(t.td,{children:["Input parameter. The re-ranker model to use for hybrid search, depending on the collection configuration. This parameter is only available for collections that support hybrid search. To determine if a collection supports hybrid search, ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/collection-methods/list-collection-metadata.html",children:"get collection metadata"}),", and then check that ",(0,s.jsx)(t.code,{children:"lexical"})," and ",(0,s.jsx)(t.code,{children:"rerank"})," both have ",(0,s.jsx)(t.code,{children:'"enabled": true'}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"lexical_terms"}),(0,s.jsx)(t.td,{children:"Lexical Terms"}),(0,s.jsxs)(t.td,{children:["Input parameter. A space-separated string of keywords for hybrid search, like ",(0,s.jsx)(t.code,{children:"features, data, attributes, characteristics"}),". This parameter is only available if the collection supports hybrid search. For more information, see the ",(0,s.jsx)(t.a,{href:"#astra-db-examples",children:"Hybrid search example"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"number_of_results"}),(0,s.jsx)(t.td,{children:"Number of Search Results"}),(0,s.jsx)(t.td,{children:"Input parameter. The number of search results to return. Default: 4."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_type"}),(0,s.jsx)(t.td,{children:"Search Type"}),(0,s.jsxs)(t.td,{children:["Input parameter. The search type to use, either ",(0,s.jsx)(t.code,{children:"Similarity"})," (default), ",(0,s.jsx)(t.code,{children:"Similarity with score threshold"}),", and ",(0,s.jsx)(t.code,{children:"MMR (Max Marginal Relevance)"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_score_threshold"}),(0,s.jsx)(t.td,{children:"Search Score Threshold"}),(0,s.jsxs)(t.td,{children:["Input parameter. The minimum similarity score threshold for vector search results with the ",(0,s.jsx)(t.code,{children:"Similarity with score threshold"})," search type. Default: 0."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"advanced_search_filter"}),(0,s.jsx)(t.td,{children:"Search Metadata Filter"}),(0,s.jsx)(t.td,{children:"Input parameter. An optional dictionary of metadata filters to apply in addition to vector or hybrid search."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"autodetect_collection"}),(0,s.jsx)(t.td,{children:"Autodetect Collection"}),(0,s.jsx)(t.td,{children:"Input parameter. Whether to automatically fetch a list of available collections after providing an application token and API endpoint."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"content_field"}),(0,s.jsx)(t.td,{children:"Content Field"}),(0,s.jsx)(t.td,{children:"Input parameter. For writes, this parameter specifies the name of the field in the documents that contains text strings for which you want to generate embeddings."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"deletion_field"}),(0,s.jsx)(t.td,{children:"Deletion Based On Field"}),(0,s.jsx)(t.td,{children:"Input parameter. When provided, documents in the target collection with metadata field values matching the input metadata field value are deleted before new records are loaded. Use this setting for writes with upserts (overwrites)."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"ignore_invalid_documents"}),(0,s.jsx)(t.td,{children:"Ignore Invalid Documents"}),(0,s.jsxs)(t.td,{children:["Input parameter. Whether to ignore invalid documents during writes. If disabled (",(0,s.jsx)(t.code,{children:"false"}),"), then an error is raised for invalid documents. Default: Enabled (",(0,s.jsx)(t.code,{children:"true"}),")."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"astradb_vectorstore_kwargs"}),(0,s.jsx)(t.td,{children:"AstraDBVectorStore Parameters"}),(0,s.jsxs)(t.td,{children:["Input parameter. An optional dictionary of additional parameters for the ",(0,s.jsx)(t.code,{children:"AstraDBVectorStore"})," instance."]})]})]})]}),"\n",(0,s.jsx)(t.h3,{id:"astra-db-examples",children:"Astra DB examples"}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Example: Vector RAG"}),(0,s.jsx)(p.Ay,{})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Example: Hybrid search"}),(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component supports the Data API's ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/hybrid-search.html",children:"hybrid search"})," feature.\nHybrid search performs a vector similarity search and a lexical search, compares the results of both searches, and then returns the most relevant results overall."]}),(0,s.jsxs)(t.p,{children:["To use hybrid search through the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component, do the following:"]}),(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Use the Data API to ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/collection-methods/create-collection.html#example-hybrid",children:"create a collection that supports hybrid search"})," if you don't already have one."]}),"\n",(0,s.jsxs)(t.p,{children:["Although you can create a collection through the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component, you have more control and insight into the collection settings when using the Data API for this operation."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Create a flow based on the ",(0,s.jsx)(t.strong,{children:"Hybrid Search RAG"})," template, which includes an ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component that is pre-configured for hybrid search."]}),"\n",(0,s.jsxs)(t.p,{children:["After loading the template, check for ",(0,s.jsx)(t.strong,{children:"Upgrade available"})," alerts on the components.\nIf any components have an upgrade pending, upgrade and reconnect them before continuing."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["In the ",(0,s.jsx)(t.strong,{children:"Language Model"})," components, add your OpenAI API key.\nIf you want to use a different provider or model, see ",(0,s.jsx)(t.a,{href:"/components-models",children:"Language model components"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Delete the ",(0,s.jsx)(t.strong,{children:"Language Model"})," component that is connected to the ",(0,s.jsx)(t.strong,{children:"Structured Output"})," component's ",(0,s.jsx)(t.strong,{children:"Input Message"})," port, and then connect the ",(0,s.jsx)(t.strong,{children:"Chat Input"})," component to that port."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Configure the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," vector store component:"]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Enter your Astra DB application token."}),"\n",(0,s.jsxs)(t.li,{children:["In the ",(0,s.jsx)(t.strong,{children:"Database"})," field, select your database."]}),"\n",(0,s.jsxs)(t.li,{children:["In the ",(0,s.jsx)(t.strong,{children:"Collection"})," field, select your collection with hybrid search enabled."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Once you select a collection that supports hybrid search, the other parameters automatically update to allow hybrid search options."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Connect the first ",(0,s.jsx)(t.strong,{children:"Parser"})," component's ",(0,s.jsx)(t.strong,{children:"Parsed Text"})," output to the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component's ",(0,s.jsx)(t.strong,{children:"Lexical Terms"})," input.\nThis input only appears after connecting a collection that support hybrid search with reranking."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Update the ",(0,s.jsx)(t.strong,{children:"Structured Output"})," template:"]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Click the ",(0,s.jsx)(t.strong,{children:"Structured Output"})," component to expose the ",(0,s.jsx)(t.a,{href:"/concepts-components#component-menus",children:"component's header menu"}),", and then click ",(0,s.jsx)(o.A,{name:"SlidersHorizontal","aria-hidden":"true"})," ",(0,s.jsx)(t.strong,{children:"Controls"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Find the ",(0,s.jsx)(t.strong,{children:"Format Instructions"})," row, click ",(0,s.jsx)(o.A,{name:"Expand","aria-hidden":"true"})," ",(0,s.jsx)(t.strong,{children:"Expand"}),", and then replace the prompt with the following text:"]}),"\n",(0,s.jsx)(g.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"You are a database query planner that takes a user's requests, and then converts to a search against the subject matter in question.",props:{}}]},{tokens:[{content:"You should convert the query into:",props:{}}]},{tokens:[{content:"1. A list of keywords to use against a Lucene text analyzer index, no more than 4. Strictly unigrams.",props:{}}]},{tokens:[{content:"2. A question to use as the basis for a QA embedding engine.",props:{}}]},{tokens:[{content:"Avoid common keywords associated with the user's subject matter.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Click ",(0,s.jsx)(t.strong,{children:"Finish Editing"}),", and then click ",(0,s.jsx)(t.strong,{children:"Close"})," to save your changes to the component."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Open the ",(0,s.jsx)(t.strong,{children:"Playground"}),", and then enter a natural language question that you would ask about your database."]}),"\n",(0,s.jsxs)(t.p,{children:["In this example, your input is sent to both the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," and ",(0,s.jsx)(t.strong,{children:"Structured Output"})," components:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["The input sent directly to the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component's ",(0,s.jsx)(t.strong,{children:"Search Query"})," port is used as a string for similarity search.\nAn embedding is generated from the query string using the collection's Astra DB vectorize integration."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["The input sent to the ",(0,s.jsx)(t.strong,{children:"Structured Output"})," component is processed by the ",(0,s.jsx)(t.strong,{children:"Structured Output"}),", ",(0,s.jsx)(t.strong,{children:"Language Model"}),", and ",(0,s.jsx)(t.strong,{children:"Parser"})," components to extract space-separated ",(0,s.jsx)(t.code,{children:"keywords"})," used for the lexical search portion of the hybrid search."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["The complete hybrid search query is executed against your database using the Data API's ",(0,s.jsx)(t.code,{children:"find_and_rerank"})," command.\nThe API's response is output as a ",(0,s.jsx)(t.code,{children:"DataFrame"})," that is transformed into a text string ",(0,s.jsx)(t.code,{children:"Message"})," by another ",(0,s.jsx)(t.strong,{children:"Parser"})," component.\nFinally, the ",(0,s.jsx)(t.strong,{children:"Chat Output"})," component prints the ",(0,s.jsx)(t.code,{children:"Message"})," response to the ",(0,s.jsx)(t.strong,{children:"Playground"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Optional: Exit the ",(0,s.jsx)(t.strong,{children:"Playground"}),", and then click ",(0,s.jsx)(o.A,{name:"TextSearch","aria-hidden":"true"})," ",(0,s.jsx)(t.strong,{children:"Inspect Output"})," on each individual component to understand how lexical keywords were constructed and view the raw response from the Data API.\nThis is helpful for debugging flows where a certain component isn't receiving input as expected from another component."]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Structured Output component"}),": The output is the ",(0,s.jsx)(t.code,{children:"Data"})," object produced by applying the output schema to the LLM's response to the input message and format instructions.\nThe following example is based on the aforementioned instructions for keyword extraction:"]}),"\n",(0,s.jsx)(g.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"1. Keywords: features, data, attributes, characteristics",props:{}}]},{tokens:[{content:"2. Question: What characteristics can be identified in my data?",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Parser component"}),": The output is the string of keywords extracted from the structured output ",(0,s.jsx)(t.code,{children:"Data"}),", and then used as lexical terms for the hybrid search."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Astra DB component"}),": The output is the ",(0,s.jsx)(t.code,{children:"DataFrame"})," containing the results of the hybrid search as returned by the Data API."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]}),"\n",(0,s.jsx)(t.h3,{id:"astra-db-output",children:"Astra DB output"}),"\n",(0,s.jsx)(l.Ay,{}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Vector Store Connection port"}),(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component has an additional ",(0,s.jsx)(t.strong,{children:"Vector Store Connection"})," output.\nThis output can only connect to a ",(0,s.jsx)(t.code,{children:"VectorStore"})," input port, and it was intended for use with dedicated Graph RAG components."]}),(0,s.jsxs)(t.p,{children:["The only non-legacy component that supports this input is the ",(0,s.jsxs)(t.a,{href:"#graph-rag",children:[(0,s.jsx)(t.strong,{children:"Graph RAG"})," component"]}),", which can be a Graph RAG extension to the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component.\nInstead, use the ",(0,s.jsx)(t.strong,{children:"Astra DB Graph"})," component that includes both the vector store connection and Graph RAG functionality."]})]}),"\n",(0,s.jsx)(t.h2,{id:"astra-db-cql",children:"Astra DB CQL"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB CQL"})," component allows agents to query data from CQL tables in Astra DB."]}),"\n",(0,s.jsxs)(t.p,{children:["The output is a list of ",(0,s.jsx)(t.a,{href:"/data-types#data",children:(0,s.jsx)(t.code,{children:"Data"})})," objects containing the query results from the Astra DB CQL table. Each Data object contains the document fields specified by the projection fields. Limited by the ",(0,s.jsx)(t.code,{children:"number_of_results"})," parameter."]}),"\n",(0,s.jsx)(t.h3,{id:"astra-db-cql-parameters",children:"Astra DB CQL parameters"}),"\n",(0,s.jsx)(d.Ay,{}),"\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:"Tool Name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The name used to reference the tool in the agent's prompt."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Tool Description"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. A brief description of the tool to guide the model in using it."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Keyspace"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The name of the keyspace."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Table Name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The name of the Astra DB CQL table to query."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Token"}),(0,s.jsx)(t.td,{children:"SecretString"}),(0,s.jsx)(t.td,{children:"Input parameter. The authentication token for Astra DB."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"API Endpoint"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The Astra DB API endpoint."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Projection Fields"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:'Input parameter. The attributes to return, separated by commas. Default: "*".'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Partition Keys"}),(0,s.jsx)(t.td,{children:"Dict"}),(0,s.jsx)(t.td,{children:"Input parameter. Required parameters that the model must fill to query the tool."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Clustering Keys"}),(0,s.jsx)(t.td,{children:"Dict"}),(0,s.jsxs)(t.td,{children:["Input parameter. Optional parameters the model can fill to refine the query. Required parameters should be marked with an exclamation mark, for example, ",(0,s.jsx)(t.code,{children:"!customer_id"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Static Filters"}),(0,s.jsx)(t.td,{children:"Dict"}),(0,s.jsx)(t.td,{children:"Input parameter. Attribute-value pairs used to filter query results."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Limit"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The number of records to return."})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"graph-rag",children:"Graph RAG"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Graph RAG"})," component uses an instance of ",(0,s.jsx)(t.a,{href:"https://datastax.github.io/graph-rag/reference/langchain_graph_retriever/",children:(0,s.jsx)(t.code,{children:"GraphRetriever"})})," for Graph RAG traversal enabling graph-based document retrieval in an Astra DB vector store.\nFor more information, see the ",(0,s.jsx)(t.a,{href:"https://datastax.github.io/graph-rag/",children:"DataStax Graph RAG documentation"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"graph-rag-parameters",children:"Graph RAG 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)(d.Ay,{}),"\n",(0,s.jsx)(c.Ay,{}),"\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:"Display Name"}),(0,s.jsx)(t.th,{children:"Info"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"embedding_model"}),(0,s.jsx)(t.td,{children:"Embedding Model"}),(0,s.jsxs)(t.td,{children:["Input parameter. Specify the embedding model to use. Not required if the connected vector store has a ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/embedding-generation.html",children:"vectorize integration"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"vector_store"}),(0,s.jsx)(t.td,{children:"Vector Store Connection"}),(0,s.jsxs)(t.td,{children:["Input parameter. An instance of ",(0,s.jsx)(t.code,{children:"AstraDbVectorStore"})," inherited from the ",(0,s.jsxs)(t.a,{href:"#astra-db",children:[(0,s.jsx)(t.strong,{children:"Astra DB"})," component"]}),"'s ",(0,s.jsx)(t.strong,{children:"Vector Store Connection"})," output."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"edge_definition"}),(0,s.jsx)(t.td,{children:"Edge Definition"}),(0,s.jsxs)(t.td,{children:["Input parameter. ",(0,s.jsx)(t.a,{href:"https://datastax.github.io/graph-rag/reference/graph_retriever/edges/",children:"Edge definition"})," for the graph traversal."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"strategy"}),(0,s.jsx)(t.td,{children:"Traversal Strategies"}),(0,s.jsx)(t.td,{children:"Input parameter. The strategy to use for graph traversal. Strategy options are dynamically loaded from available strategies."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_query"}),(0,s.jsx)(t.td,{children:"Search Query"}),(0,s.jsx)(t.td,{children:"Input parameter. The query to search for in the vector store."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"graphrag_strategy_kwargs"}),(0,s.jsx)(t.td,{children:"Strategy Parameters"}),(0,s.jsxs)(t.td,{children:["Input parameter. Optional dictionary of additional parameters for the ",(0,s.jsx)(t.a,{href:"https://datastax.github.io/graph-rag/reference/graph_retriever/strategies/",children:"retrieval strategy"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_results"}),(0,s.jsxs)(t.td,{children:[(0,s.jsx)(t.strong,{children:"Search Results"})," or ",(0,s.jsx)(t.strong,{children:"DataFrame"})]}),(0,s.jsxs)(t.td,{children:["Output parameter. The results of the graph-based document retrieval as a list of ",(0,s.jsx)(t.a,{href:"/data-types#data",children:(0,s.jsx)(t.code,{children:"Data"})})," objects or as a tabular ",(0,s.jsx)(t.a,{href:"/data-types#dataframe",children:(0,s.jsx)(t.code,{children:"DataFrame"})}),". You can set the desired output type near the component's output port."]})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"hyper-converged-database-hcd",children:"Hyper-Converged Database (HCD)"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Hyper-Converged Database (HCD)"})," component uses your cluster's Data API server to read and write to your HCD vector store.\nBecause the underlying functions call the Data API, which originated from Astra DB, the component uses an instance of ",(0,s.jsx)(t.code,{children:"AstraDBVectorStore"}),"."]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"A flow using the HCD component to load vector data.",src:n(42638).A+"",width:"2294",height:"1684"})}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"About vector store instances"}),(0,s.jsx)(h.Ay,{})]}),"\n",(0,s.jsx)(l.Ay,{}),"\n",(0,s.jsxs)(t.p,{children:["For more information about HCD, see ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/hyper-converged-database/1.2/get-started/get-started-hcd.html",children:"Get started with HCD 1.2"})," and ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/hyper-converged-database/1.2/api-reference/dataapiclient.html",children:"Get started with the Data API in HCD 1.2"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"hcd-parameters",children:"HCD 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)(d.Ay,{}),"\n",(0,s.jsx)(c.Ay,{}),"\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:"Display Name"}),(0,s.jsx)(t.th,{children:"Info"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"collection_name"}),(0,s.jsx)(t.td,{children:"Collection Name"}),(0,s.jsx)(t.td,{children:"Input parameter. The name of a vector store collection in HCD. For write operations, if the collection doesn't exist, then a new one is created. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"username"}),(0,s.jsx)(t.td,{children:"HCD Username"}),(0,s.jsxs)(t.td,{children:["Input parameter. Username for authenticating to your HCD deployment. Default: ",(0,s.jsx)(t.code,{children:"hcd-superuser"}),". Required."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"password"}),(0,s.jsx)(t.td,{children:"HCD Password"}),(0,s.jsx)(t.td,{children:"Input parameter. Password for authenticating to your HCD deployment. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"api_endpoint"}),(0,s.jsx)(t.td,{children:"HCD API Endpoint"}),(0,s.jsxs)(t.td,{children:["Input parameter. Your deployment's HCD Data API endpoint, formatted as ",(0,s.jsx)(t.code,{children:"http[s]://CLUSTER_HOST:GATEWAY_PORT"})," where ",(0,s.jsx)(t.code,{children:"CLUSTER_HOST"})," is the IP address of any node in your cluster and ",(0,s.jsx)(t.code,{children:"GATEWAY_PORT"})," is the port number for your API gateway service. For example, ",(0,s.jsx)(t.code,{children:"http://192.0.2.250:8181"}),". Required."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"ingest_data"}),(0,s.jsx)(t.td,{children:"Ingest Data"}),(0,s.jsx)(t.td,{children:"Input parameter. Records to load into the vector store. Only relevant for writes."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_input"}),(0,s.jsx)(t.td,{children:"Search Input"}),(0,s.jsx)(t.td,{children:"Input parameter. Query string for similarity search. Only relevant to reads."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"namespace"}),(0,s.jsx)(t.td,{children:"Namespace"}),(0,s.jsxs)(t.td,{children:["Input parameter. The namespace in HCD that contains or will contain the collection specified in ",(0,s.jsx)(t.code,{children:"collection_name"}),". Default: ",(0,s.jsx)(t.code,{children:"default_namespace"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"ca_certificate"}),(0,s.jsx)(t.td,{children:"CA Certificate"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional CA certificate for TLS connections to HCD."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"metric"}),(0,s.jsx)(t.td,{children:"Metric"}),(0,s.jsxs)(t.td,{children:["Input parameter. The metrics to use for similarity search calculations, either ",(0,s.jsx)(t.code,{children:"cosine"}),", ",(0,s.jsx)(t.code,{children:"dot_product"}),", or ",(0,s.jsx)(t.code,{children:"euclidean"}),". This is a collection setting. If calling an existing collection, leave unset to use the collection's metric. If a write operation creates a new collection, specify the desired similarity metric setting."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"batch_size"}),(0,s.jsx)(t.td,{children:"Batch Size"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional number of records to process in a single batch."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"bulk_insert_batch_concurrency"}),(0,s.jsx)(t.td,{children:"Bulk Insert Batch Concurrency"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional concurrency level for bulk write operations."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"bulk_insert_overwrite_concurrency"}),(0,s.jsx)(t.td,{children:"Bulk Insert Overwrite Concurrency"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional concurrency level for bulk write operations that allow upserts (overwriting existing records)."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"bulk_delete_concurrency"}),(0,s.jsx)(t.td,{children:"Bulk Delete Concurrency"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional concurrency level for bulk delete operations."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"setup_mode"}),(0,s.jsx)(t.td,{children:"Setup Mode"}),(0,s.jsxs)(t.td,{children:["Input parameter. Configuration mode for setting up the vector store, either ",(0,s.jsx)(t.code,{children:"Sync"})," (default), ",(0,s.jsx)(t.code,{children:"Async"}),", or ",(0,s.jsx)(t.code,{children:"Off"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"pre_delete_collection"}),(0,s.jsx)(t.td,{children:"Pre Delete Collection"}),(0,s.jsx)(t.td,{children:"Input parameter. Whether to delete the collection before creating a new one."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"metadata_indexing_include"}),(0,s.jsx)(t.td,{children:"Metadata Indexing Include"}),(0,s.jsxs)(t.td,{children:["Input parameter. A list of metadata fields to index if you want to enable ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/hyper-converged-database/1.2/api-reference/collection-indexes.html",children:"selective indexing"})," ",(0,s.jsx)(t.em,{children:"only"})," when creating a collection. Doesn't apply to existing collections. Only one ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameter can be set per collection. If all ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameters are unset, then all fields are indexed (default indexing)."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"metadata_indexing_exclude"}),(0,s.jsx)(t.td,{children:"Metadata Indexing Exclude"}),(0,s.jsxs)(t.td,{children:["Input parameter. A list of metadata fields to exclude from indexing if you want to enable selective indexing ",(0,s.jsx)(t.em,{children:"only"})," when creating a collection. Doesn't apply to existing collections. Only one ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameter can be set per collection. If all ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameters are unset, then all fields are indexed (default indexing)."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"collection_indexing_policy"}),(0,s.jsx)(t.td,{children:"Collection Indexing Policy"}),(0,s.jsxs)(t.td,{children:["Input parameter. A dictionary to define the indexing policy if you want to enable selective indexing ",(0,s.jsx)(t.em,{children:"only"})," when creating a collection. Doesn't apply to existing collections. Only one ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameter can be set per collection. If all ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameters are unset, then all fields are indexed (default indexing). The ",(0,s.jsx)(t.code,{children:"collection_indexing_policy"})," dictionary is used when you need to set indexing on subfields or a complex indexing definition that isn't compatible as a list."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"embedding"}),(0,s.jsx)(t.td,{children:"Embedding or Astra Vectorize"}),(0,s.jsxs)(t.td,{children:["Input parameter. The embedding model to use by attaching an ",(0,s.jsx)(t.strong,{children:"Embedding Model"})," component. This component doesn't support additional vectorize authentication headers, so it isn't possible to use a vectorize integration with this component, even if you have enabled one on an existing HCD collection."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"number_of_results"}),(0,s.jsx)(t.td,{children:"Number of Results"}),(0,s.jsx)(t.td,{children:"Input parameter. Number of search results to return. Default: 4. Only relevant to reads."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_type"}),(0,s.jsx)(t.td,{children:"Search Type"}),(0,s.jsxs)(t.td,{children:["Input parameter. Search type to use, either ",(0,s.jsx)(t.code,{children:"Similarity"})," (default), ",(0,s.jsx)(t.code,{children:"Similarity with score threshold"}),", or ",(0,s.jsx)(t.code,{children:"MMR (Max Marginal Relevance)"}),". Only relevant to reads."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_score_threshold"}),(0,s.jsx)(t.td,{children:"Search Score Threshold"}),(0,s.jsxs)(t.td,{children:["Input parameter. Minimum similarity score threshold for search results if the ",(0,s.jsx)(t.code,{children:"search_type"})," is ",(0,s.jsx)(t.code,{children:"Similarity with score threshold"}),". Default: 0."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_filter"}),(0,s.jsx)(t.td,{children:"Search Metadata Filter"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional dictionary of metadata filters to apply in addition to vector search."})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"other-datastax-components",children:"Other DataStax components"}),"\n",(0,s.jsxs)(t.p,{children:["The following components are also included in the ",(0,s.jsx)(t.strong,{children:"DataStax"})," bundle."]}),"\n",(0,s.jsx)(t.h3,{id:"astra-db-chat-memory",children:"Astra DB Chat Memory"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB Chat Memory"})," component retrieves and stores chat messages using an Astra DB database."]}),"\n",(0,s.jsxs)(t.p,{children:["Chat memories are passed between memory storage components as the ",(0,s.jsx)(t.a,{href:"/data-types#memory",children:(0,s.jsx)(t.code,{children:"Memory"})})," data type.\nSpecifically, the component creates an instance of ",(0,s.jsx)(t.code,{children:"AstraDBChatMessageHistory"}),", which is a LangChain chat message history class that uses Astra DB for storage."]}),"\n",(0,s.jsxs)(t.admonition,{type:"warning",children:[(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB Chat Memory"})," component isn't recommended for most memory storage because memories tend to be long JSON objects or strings, often exceeding the maximum size of a document or object supported by Astra DB."]}),(0,s.jsxs)(t.p,{children:["However, Langflow's ",(0,s.jsx)(t.strong,{children:"Agent"})," component includes built-in chat memory that is enabled by default.\nYour agentic flows don't need an external database to store chat memory.\nFor more information, see ",(0,s.jsx)(t.a,{href:"/memory",children:"Memory management options"}),"."]})]}),"\n",(0,s.jsxs)(t.p,{children:["For more information about using external chat memory in flows, see the ",(0,s.jsxs)(t.a,{href:"/message-history",children:[(0,s.jsx)(t.strong,{children:"Message History"})," component"]}),"."]}),"\n",(0,s.jsx)(t.h4,{id:"astra-db-chat-memory-parameters",children:"Astra DB Chat Memory parameters"}),"\n",(0,s.jsx)(d.Ay,{}),"\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:"collection_name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The name of the Astra DB collection for storing messages. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"token"}),(0,s.jsx)(t.td,{children:"SecretString"}),(0,s.jsx)(t.td,{children:"Input parameter. The authentication token for Astra DB access. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"api_endpoint"}),(0,s.jsx)(t.td,{children:"SecretString"}),(0,s.jsx)(t.td,{children:"Input parameter. The API endpoint URL for the Astra DB service. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"namespace"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The optional namespace within Astra DB for the collection."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"session_id"}),(0,s.jsx)(t.td,{children:"MessageText"}),(0,s.jsx)(t.td,{children:"Input parameter. The unique identifier for the chat session. Uses the current session ID if not provided."})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"legacy-datastax-components",children:"Legacy DataStax components"}),"\n","\n",(0,s.jsx)(x.Ay,{}),"\n",(0,s.jsx)(t.p,{children:"The following DataStax components are in legacy status:"}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Astra DB Tool"}),(0,s.jsxs)(t.p,{children:["Replace the ",(0,s.jsx)(t.strong,{children:"Astra DB Tool"})," component with the ",(0,s.jsxs)(t.a,{href:"#astra-db",children:[(0,s.jsx)(t.strong,{children:"Astra DB"})," component"]}),"."]}),(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB Tool"})," component enables searching data in Astra DB collections, including hybrid search, vector search, and regular filter-based search.\nSpecialized searches require that the collection is pre-configured with the required parameters."]}),(0,s.jsxs)(t.p,{children:["Outputs a list of ",(0,s.jsx)(t.a,{href:"/data-types#data",children:(0,s.jsx)(t.code,{children:"Data"})})," objects containing the query results from Astra DB. Each ",(0,s.jsx)(t.code,{children:"Data"})," object contains the document fields specified by the projection attributes. Limited by the ",(0,s.jsx)(t.code,{children:"number_of_results"})," parameter and the upper limit of the Astra DB Data API, depending on the type of search."]}),(0,s.jsxs)(t.p,{children:["You can use the component to execute queries directly as isolated steps in a flow, or you can connect it as a ",(0,s.jsx)(t.a,{href:"/agents-tools",children:"tool for an agent"})," to allow the agent to query data from Astra DB collections as needed to respond to user queries."]}),(0,s.jsxs)(t.p,{children:["The values for ",(0,s.jsx)(t.strong,{children:"Collection Name"}),", ",(0,s.jsx)(t.strong,{children:"Astra DB Application Token"}),", and ",(0,s.jsx)(t.strong,{children:"Astra DB API Endpoint"})," are found in your Astra DB deployment. For more information, see the ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/create-database.html",children:"Astra DB Serverless documentation"}),"."]}),(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:"Tool Name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The name used to reference the tool in the agent's prompt."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Tool Description"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. A brief description of the tool. This helps the model decide when to use it."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Keyspace Name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsxs)(t.td,{children:["Input parameter. The name of the keyspace in Astra DB. Default: ",(0,s.jsx)(t.code,{children:"default_keyspace"})]})]}),(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. The name of the Astra DB collection to query."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Token"}),(0,s.jsx)(t.td,{children:"SecretString"}),(0,s.jsx)(t.td,{children:"Input parameter. The authentication token for accessing Astra DB."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"API Endpoint"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The Astra DB API endpoint."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Projection Fields"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsxs)(t.td,{children:["Input parameter. Comma-separated list of attributes to return from matching documents. The default is the default projection, ",(0,s.jsx)(t.code,{children:"*"}),", which returns all attributes except reserved fields like ",(0,s.jsx)(t.code,{children:"$vector"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Tool Parameters"}),(0,s.jsx)(t.td,{children:"Dict"}),(0,s.jsxs)(t.td,{children:["Input parameter. ",(0,s.jsxs)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/document-methods/find-many.html#parameters",children:["Astra DB Data API ",(0,s.jsx)(t.code,{children:"find"})," filters"]})," that become tools for an agent. These Filters ",(0,s.jsx)(t.em,{children:"may"})," be used in a search, if the agent selects them."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Static Filters"}),(0,s.jsx)(t.td,{children:"Dict"}),(0,s.jsxs)(t.td,{children:["Input parameter. Attribute-value pairs used to filter query results. Equivalent to ",(0,s.jsxs)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/document-methods/find-many.html#parameters",children:["Astra DB Data API ",(0,s.jsx)(t.code,{children:"find"})," filters"]}),". ",(0,s.jsx)(t.strong,{children:"Static Filters"})," are included with ",(0,s.jsx)(t.em,{children:"every"})," query. Use ",(0,s.jsx)(t.strong,{children:"Static Filters"})," without semantic search to perform a regular filter search."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Number of Results"}),(0,s.jsx)(t.td,{children:"Int"}),(0,s.jsx)(t.td,{children:"Input parameter. The maximum number of documents to return."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Semantic Search"}),(0,s.jsx)(t.td,{children:"Boolean"}),(0,s.jsxs)(t.td,{children:["Input parameter. Whether to run a similarity search by generating a vector embedding from the chat input and following the ",(0,s.jsx)(t.strong,{children:"Semantic Search Instruction"}),". Default: ",(0,s.jsx)(t.code,{children:"false"}),". If ",(0,s.jsx)(t.code,{children:"true"}),", you must attach an ",(0,s.jsx)(t.a,{href:"/components-embedding-models",children:"embedding model component"})," or have vectorize pre-enabled on your collection."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Use Astra DB Vectorize"}),(0,s.jsx)(t.td,{children:"Boolean"}),(0,s.jsxs)(t.td,{children:["Input parameter. Whether to use the Astra DB vectorize feature for embedding generation when running a semantic search. Default: ",(0,s.jsx)(t.code,{children:"false"}),". If ",(0,s.jsx)(t.code,{children:"true"}),", you must have vectorize pre-enabled on your collection."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Embedding Model"}),(0,s.jsx)(t.td,{children:"Embedding"}),(0,s.jsxs)(t.td,{children:["Input parameter. A port to attach an embedding model component to generate a vector from input text for semantic search. This can be used when ",(0,s.jsx)(t.strong,{children:"Semantic Search"})," is ",(0,s.jsx)(t.code,{children:"true"}),", with or without vectorize. Be sure to use a model that aligns with the dimensions of the embeddings already present in the collection."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Semantic Search Instruction"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsxs)(t.td,{children:["Input parameter. The query to use for similarity search. Default: ",(0,s.jsx)(t.code,{children:'"Find documents similar to the query."'}),". This instruction is used to guide the model in performing semantic search."]})]})]})]})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Astra DB Graph"}),(0,s.jsxs)(t.p,{children:["Replace the ",(0,s.jsx)(t.strong,{children:"Astra DB Graph"})," component with the ",(0,s.jsxs)(t.a,{href:"#graph-rag",children:[(0,s.jsx)(t.strong,{children:"Graph RAG"})," component"]}),"."]}),(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB Graph"})," component uses ",(0,s.jsx)(t.code,{children:"AstraDBGraphVectorStore"}),", an instance of ",(0,s.jsx)(t.a,{href:"https://python.langchain.com/api_reference/community/graph_vectorstores.html",children:"LangChain graph vector store"}),", for graph traversal and graph-based document retrieval in an Astra DB collection. It also supports writing to the vector store.\nFor more information, see ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/tutorials/graph-rag.html",children:"Build a Graph RAG system with LangChain and GraphRetriever"}),"."]}),(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."}),(0,s.jsx)(d.Ay,{}),(0,s.jsx)(c.Ay,{}),(0,s.jsxs)(t.p,{children:["For information about accepted values and functionality, see the ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/index.html",children:"Astra DB Serverless documentation"})," or inspect ",(0,s.jsx)(t.a,{href:"/concepts-components#component-code",children:"component code"}),"."]}),(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:"Display Name"}),(0,s.jsx)(t.th,{children:"Info"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"token"}),(0,s.jsx)(t.td,{children:"Astra DB Application Token"}),(0,s.jsx)(t.td,{children:"Input parameter. An Astra application token with permission to access your vector database. Once the connection is verified, additional fields are populated with your existing databases and collections. If you want to create a database through this component, the application token must have Organization Administrator permissions."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"api_endpoint"}),(0,s.jsx)(t.td,{children:"API Endpoint"}),(0,s.jsx)(t.td,{children:"Input parameter. Your database's API endpoint."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"keyspace"}),(0,s.jsx)(t.td,{children:"Keyspace"}),(0,s.jsxs)(t.td,{children:["Input parameter. The keyspace in your database that contains the collection specified in ",(0,s.jsx)(t.code,{children:"collection_name"}),". Default: ",(0,s.jsx)(t.code,{children:"default_keyspace"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"collection_name"}),(0,s.jsx)(t.td,{children:"Collection"}),(0,s.jsx)(t.td,{children:"Input parameter. The name of the collection that you want to use with this flow. For write operations, if a matching collection doesn't exist, a new one is created."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"metadata_incoming_links_key"}),(0,s.jsx)(t.td,{children:"Metadata Incoming Links Key"}),(0,s.jsx)(t.td,{children:"Input parameter. The metadata key for the incoming links in the vector store."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"ingest_data"}),(0,s.jsx)(t.td,{children:"Ingest Data"}),(0,s.jsx)(t.td,{children:"Input parameter. Records to load into the vector store. Only relevant for writes."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_input"}),(0,s.jsx)(t.td,{children:"Search Query"}),(0,s.jsx)(t.td,{children:"Input parameter. Query string for similarity search. Only relevant to reads."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"cache_vector_store"}),(0,s.jsx)(t.td,{children:"Cache Vector Store"}),(0,s.jsxs)(t.td,{children:["Input parameter. Whether to cache the vector store in Langflow 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_model"}),(0,s.jsx)(t.td,{children:"Embedding Model"}),(0,s.jsxs)(t.td,{children:["Input parameter. Attach an ",(0,s.jsx)(t.a,{href:"/components-embedding-models",children:"embedding model component"})," to generate embeddings. If the collection has a ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/embedding-generation.html",children:"vectorize integration"}),", don't attach an embedding model component."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"metric"}),(0,s.jsx)(t.td,{children:"Metric"}),(0,s.jsxs)(t.td,{children:["Input parameter. The metrics to use for similarity search calculations, either ",(0,s.jsx)(t.code,{children:"cosine"})," (default), ",(0,s.jsx)(t.code,{children:"dot_product"}),", or ",(0,s.jsx)(t.code,{children:"euclidean"}),". This is a collection setting."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"batch_size"}),(0,s.jsx)(t.td,{children:"Batch Size"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional number of records to process in a single batch."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"bulk_insert_batch_concurrency"}),(0,s.jsx)(t.td,{children:"Bulk Insert Batch Concurrency"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional concurrency level for bulk write operations."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"bulk_insert_overwrite_concurrency"}),(0,s.jsx)(t.td,{children:"Bulk Insert Overwrite Concurrency"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional concurrency level for bulk write operations that allow upserts (overwriting existing records)."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"bulk_delete_concurrency"}),(0,s.jsx)(t.td,{children:"Bulk Delete Concurrency"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional concurrency level for bulk delete operations."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"setup_mode"}),(0,s.jsx)(t.td,{children:"Setup Mode"}),(0,s.jsxs)(t.td,{children:["Input parameter. Configuration mode for setting up the vector store, either ",(0,s.jsx)(t.code,{children:"Sync"})," (default) or ",(0,s.jsx)(t.code,{children:"Off"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"pre_delete_collection"}),(0,s.jsx)(t.td,{children:"Pre Delete Collection"}),(0,s.jsxs)(t.td,{children:["Input parameter. Whether to delete the collection before creating a new one. Default: Disabled (",(0,s.jsx)(t.code,{children:"false"}),")."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"metadata_indexing_include"}),(0,s.jsx)(t.td,{children:"Metadata Indexing Include"}),(0,s.jsxs)(t.td,{children:["Input parameter. A list of metadata fields to index if you want to enable ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/collection-indexes.html",children:"selective indexing"})," ",(0,s.jsx)(t.em,{children:"only"})," when creating a collection. Doesn't apply to existing collections. Only one ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameter can be set per collection. If all ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameters are unset, then all fields are indexed (default indexing)."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"metadata_indexing_exclude"}),(0,s.jsx)(t.td,{children:"Metadata Indexing Exclude"}),(0,s.jsxs)(t.td,{children:["Input parameter. A list of metadata fields to exclude from indexing if you want to enable selective indexing ",(0,s.jsx)(t.em,{children:"only"})," when creating a collection. Doesn't apply to existing collections. Only one ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameter can be set per collection. If all ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameters are unset, then all fields are indexed (default indexing)."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"collection_indexing_policy"}),(0,s.jsx)(t.td,{children:"Collection Indexing Policy"}),(0,s.jsxs)(t.td,{children:["Input parameter. A dictionary to define the indexing policy if you want to enable selective indexing ",(0,s.jsx)(t.em,{children:"only"})," when creating a collection. Doesn't apply to existing collections. Only one ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameter can be set per collection. If all ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameters are unset, then all fields are indexed (default indexing). The ",(0,s.jsx)(t.code,{children:"collection_indexing_policy"})," dictionary is used when you need to set indexing on subfields or a complex indexing definition that isn't compatible as a list."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"number_of_results"}),(0,s.jsx)(t.td,{children:"Number of Results"}),(0,s.jsx)(t.td,{children:"Input parameter. Number of search results to return. Default: 4. Only relevant to reads."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_type"}),(0,s.jsx)(t.td,{children:"Search Type"}),(0,s.jsxs)(t.td,{children:["Input parameter. Search type to use, either ",(0,s.jsx)(t.code,{children:"Similarity"}),", ",(0,s.jsx)(t.code,{children:"Similarity with score threshold"}),", or ",(0,s.jsx)(t.code,{children:"MMR (Max Marginal Relevance)"}),", ",(0,s.jsx)(t.code,{children:"Graph Traversal"}),", or ",(0,s.jsx)(t.code,{children:"MMR (Max Marginal Relevance) Graph Traversal"})," (default). Only relevant to reads."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_score_threshold"}),(0,s.jsx)(t.td,{children:"Search Score Threshold"}),(0,s.jsxs)(t.td,{children:["Input parameter. Minimum similarity score threshold for search results if the ",(0,s.jsx)(t.code,{children:"search_type"})," is ",(0,s.jsx)(t.code,{children:"Similarity with score threshold"}),". Default: 0."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_filter"}),(0,s.jsx)(t.td,{children:"Search Metadata Filter"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional dictionary of metadata filters to apply in addition to vector search."})]})]})]})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Assistants API components"}),(0,s.jsx)(t.p,{children:"The following DataStax components were used to create and manage Assistants API functions in a flow:"}),(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"Astra Assistant Agent"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"Create Assistant"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"Create Assistant Thread"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"Get Assistant Name"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"List Assistants"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"Run Assistant"})}),"\n"]}),(0,s.jsx)(t.p,{children:"These components are legacy and should be replaced with Langflow's native agent components."})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Environment variable components"}),(0,s.jsx)(t.p,{children:"The following DataStax components were used to load and retrieve environment variables in a flow:"}),(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Dotenv"}),": Loads environment variables from a ",(0,s.jsx)(t.code,{children:".env"})," file"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Get Environment Variable"}),": Retrieves the value of an environment variable"]}),"\n"]}),(0,s.jsx)(t.p,{children:"These components are legacy. Use Langflow's built-in environment variable support or global variables instead."})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Astra Vectorize"}),(0,s.jsxs)(t.p,{children:["This component was deprecated in Langflow version 1.1.2.\nReplace it with the ",(0,s.jsxs)(t.a,{href:"#astra-db",children:[(0,s.jsx)(t.strong,{children:"Astra DB"})," component"]}),"."]}),(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB Vectorize"})," component was used to generate embeddings with Astra DB's vectorize feature in conjunction with an ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component."]}),(0,s.jsxs)(t.p,{children:["The vectorize functionality is now built into the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component.\nYou no longer need a separate component for vectorize embedding generation."]})]}),"\n",(0,s.jsx)(t.h2,{id:"see-also",children:"See also"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsxs)(t.a,{href:"/bundles-cassandra",children:[(0,s.jsx)(t.strong,{children:"Cassandra"})," bundle"]})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"/chat-with-rag",children:"Create a vector RAG chatbot"})}),"\n"]})]})}function v(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(b,{...e})}):b(e)}function w(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},7685:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/vector-store-document-ingestion-6157311fb4d16e7f944d55254f0cc0e2.png"},27027:(e,t,n)=>{n.d(t,{Ay:()=>d,RM:()=>i});var r=n(74848),s=n(28453),a=n(40619);const i=[];function o(e){const t={a:"a",admonition:"admonition",code:"code",em:"em",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.admonition,{type:"tip",children:(0,r.jsxs)(t.p,{children:["For a tutorial that uses vector data in a flow, see ",(0,r.jsx)(t.a,{href:"/chat-with-rag",children:"Create a vector RAG chatbot"}),"."]})}),"\n",(0,r.jsx)(t.p,{children:"The following example demonstrates how to use vector store components in flows alongside related components like embedding model and language model components.\nThese steps walk through important configuration details, functionality, and best practices for using these components effectively.\nThis is only one example; it isn't a prescriptive guide to all possible use cases or configurations."}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Create a flow with the ",(0,r.jsx)(t.strong,{children:"Vector Store RAG"})," template."]}),"\n",(0,r.jsxs)(t.p,{children:["This template has two subflows.\nThe ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow loads embeddings and content into a vector database, and the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow runs a vector search to retrieve relevant context based on a user's query."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Configure the database connection for both ",(0,r.jsxs)(t.a,{href:"/bundles-datastax#astra-db",children:[(0,r.jsx)(t.strong,{children:"Astra DB"})," components"]}),", or replace them with another pair of vector store components of your choice.\nMake sure the components connect to the same vector store, and that the component in the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow is able to run a similarity search."]}),"\n",(0,r.jsxs)(t.p,{children:["The parameters you set in each vector store component depend on the component's role in your flow.\nIn this example, the ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow ",(0,r.jsx)(t.em,{children:"writes"})," to the vector store, whereas the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow ",(0,r.jsx)(t.em,{children:"reads"})," from the vector store.\nTherefore, search-related parameters are only relevant to the ",(0,r.jsx)(t.strong,{children:"Vector Search"})," component in the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow."]}),"\n",(0,r.jsx)(t.p,{children:"For information about specific parameters, see the documentation for your chosen vector store component."}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"To configure the embedding model, do one of the following:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Use an OpenAI model"}),": In both ",(0,r.jsx)(t.strong,{children:"OpenAI Embeddings"})," components, enter your OpenAI API key.\nYou can use the default model or select a different OpenAI embedding model."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Use another provider"}),": Replace the ",(0,r.jsx)(t.strong,{children:"OpenAI Embeddings"})," components with another pair of ",(0,r.jsx)(t.a,{href:"/components-embedding-models",children:"embedding model components"})," of your choice, and then configure the parameters and credentials accordingly."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Use Astra DB vectorize"}),": If you are using an Astra DB vector store that has a vectorize integration, you can remove both ",(0,r.jsx)(t.strong,{children:"OpenAI Embeddings"})," components.\nIf you do this, the vectorize integration automatically generates embeddings from the ",(0,r.jsx)(t.strong,{children:"Ingest Data"})," (in the ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow) and ",(0,r.jsx)(t.strong,{children:"Search Query"})," (in the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow)."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.admonition,{type:"tip",children:(0,r.jsx)(t.p,{children:"If your vector store already contains embeddings, make sure your embedding model components use the same model as your previous embeddings.\nMixing embedding models in the same vector store can produce inaccurate search results."})}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Recommended: In the ",(0,r.jsxs)(t.a,{href:"/split-text",children:[(0,r.jsx)(t.strong,{children:"Split Text"})," component"]}),", optimize the chunking settings for your embedding model.\nFor example, if your embedding model has a token limit of 512, then the ",(0,r.jsx)(t.strong,{children:"Chunk Size"})," parameter must not exceed that limit."]}),"\n",(0,r.jsxs)(t.p,{children:["Additionally, because the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow passes the chat input directly to the vector store component for vector search, make sure that your chat input string doesn't exceed your embedding model's limits.\nFor this example, you can enter a query that is within the limits; however, in a production environment, you might need to implement additional checks or preprocessing steps to ensure compliance.\nFor example, use additional components to prepare the chat input before running the vector search, or enforce chat input limits in your application code."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the ",(0,r.jsx)(t.strong,{children:"Language Model"})," component, enter your OpenAI API key, or select a different provider and model to use for the chat portion of the flow."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Run the ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow to populate your vector store.\nIn the ",(0,r.jsx)(t.strong,{children:"Read File"})," component, select one or more files, and then click ",(0,r.jsx)(a.A,{name:"Play","aria-hidden":"true"})," ",(0,r.jsx)(t.strong,{children:"Run component"})," on the vector store component in the ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow loads files from your local machine, chunks them, generates embeddings for the chunks, and then stores the chunks and their embeddings in the vector database."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Embedding data into a vector store",src:n(7685).A+"",width:"4000",height:"2512"})}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow is separate from the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow because you probably won't run it every time you use the chat.\nYou can run the ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow as needed to preload or update the data in your vector store.\nThen, your chat interactions only use the components that are necessary for chat."]}),"\n",(0,r.jsxs)(t.p,{children:["If your vector store already contains data that you want to use for vector search, then you don't need to run the ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"})," and start chatting to run the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow generates an embedding from chat input, runs a vector search to retrieve similar content from your vector store, parses the search results into supplemental context for the LLM, and then uses the LLM to generate a natural language response to your query.\nThe LLM uses the vector search results along with its internal training data and tools, such as basic web search and datetime information, to produce the response."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Retrieval from a vector store",src:n(67719).A+"",width:"4000",height:"1324"})}),"\n",(0,r.jsxs)(t.p,{children:["To avoid passing the entire block of raw search results to the LLM, the ",(0,r.jsx)(t.strong,{children:"Parser"})," component extracts ",(0,r.jsx)(t.code,{children:"text"})," strings from the search results ",(0,r.jsx)(t.code,{children:"Data"})," object, and then passes them to the ",(0,r.jsx)(t.strong,{children:"Prompt Template"})," component in ",(0,r.jsx)(t.code,{children:"Message"})," format.\nFrom there, the strings and other template content are compiled into natural language instructions for the LLM."]}),"\n",(0,r.jsxs)(t.p,{children:["You can use other components for this transformation, such as the ",(0,r.jsx)(t.strong,{children:"Data Operations"})," component, depending on how you want to use the search results."]}),"\n",(0,r.jsxs)(t.p,{children:["To view the raw search results, click ",(0,r.jsx)(a.A,{name:"TextSearch","aria-hidden":"true"})," ",(0,r.jsx)(t.strong,{children:"Inspect output"})," on the vector store component after running the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow."]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},31929:(e,t,n)=>{n.d(t,{Ay:()=>d,RM:()=>i});var r=n(74848),s=n(28453),a=n(40619);const i=[];function o(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)(a.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 d(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},36813:(e,t,n)=>{n.d(t,{Ay:()=>d,RM:()=>i});var r=n(74848),s=n(28453),a=n(40619);const i=[];function o(e){const t={a:"a",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["Legacy components are longer supported and can be removed in a future release.\nYou can continue to use them in existing flows, but it is recommended that you replace them with supported components as soon as possible.\nSuggested replacements are included in the ",(0,r.jsx)(t.strong,{children:"Legacy"})," banner on components in your flows.\nThey are also given in release notes and Langflow documentation whenever possible."]}),"\n",(0,r.jsxs)(t.p,{children:["If you aren't sure how to replace a legacy component, ",(0,r.jsx)(a.A,{name:"Search","aria-hidden":"true"})," ",(0,r.jsx)(t.strong,{children:"Search"})," for components by provider, service, or component name.\nThe component may have been deprecated in favor of a completely new component, a similar component, or a new version of the same component in a different category."]}),"\n",(0,r.jsxs)(t.p,{children:["If there is no obvious replacement, consider whether another component can be adapted to your use case.\nFor example, many ",(0,r.jsx)(a.A,{name:"Component","aria-hidden":"true"})," ",(0,r.jsx)(t.strong,{children:"Core components"})," provide generic functionality that can support multiple providers and use cases, such as the ",(0,r.jsxs)(t.a,{href:"/api-request",children:[(0,r.jsx)(t.strong,{children:"API Request"})," component"]}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["If neither of these options are viable, you could use the legacy component's code to create your own custom component, or ",(0,r.jsx)(t.a,{href:"/contributing-github-issues",children:"start a discussion"})," about the legacy component."]}),"\n",(0,r.jsxs)(t.p,{children:["To discourage use of legacy components in new flows, these components are hidden by default.\nIn the visual editor, you can click ",(0,r.jsx)(a.A,{name:"SlidersHorizontal","aria-hidden":"true"})," ",(0,r.jsx)(t.strong,{children:"Component settings"})," to toggle the ",(0,r.jsx)(t.strong,{children:"Legacy"})," filter."]})]})}function d(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},42638:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/component-hcd-example-flow-b82057600ce5e9e4a0f7ea0a61dcbf7f.png"},50005:(e,t,n)=>{n.d(t,{Ay:()=>o,RM:()=>a});var r=n(74848),s=n(28453);const a=[];function i(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 o(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(i,{...e})}):i(e)}},67719:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/vector-store-retrieval-af7257d77ff0259ab1a0980641d464ce.png"},80223:(e,t,n)=>{n.d(t,{Ay:()=>o,RM:()=>a});var r=n(74848),s=n(28453);const a=[];function i(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 o(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(i,{...e})}):i(e)}},90465:(e,t,n)=>{n.d(t,{Ay:()=>o,RM:()=>a});var r=n(74848),s=n(28453);const a=[];function i(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 o(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(i,{...e})}):i(e)}}}]); \ No newline at end of file +"use strict";(globalThis.webpackChunklangflow_docs=globalThis.webpackChunklangflow_docs||[]).push([[6224],{7089:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>g,assets:()=>j,chCodeConfig:()=>f,contentTitle:()=>m,default:()=>v,frontMatter:()=>u,metadata:()=>r,toc:()=>y});const r=JSON.parse('{"id":"Components/bundles-datastax","title":"DataStax","description":"Bundles contain custom components that support specific third-party integrations with Langflow.","source":"@site/docs/Components/bundles-datastax.mdx","sourceDirName":"Components","slug":"/bundles-datastax","permalink":"/bundles-datastax","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"DataStax","slug":"/bundles-datastax"},"sidebar":"docs","previous":{"title":"CUGA","permalink":"/bundles-cuga"},"next":{"title":"DeepSeek","permalink":"/bundles-deepseek"}}');var s=n(74848),a=n(28453),i=n(24754),o=n(40619),d=n(31929),c=n(80223),l=n(90465),h=n(50005),p=n(27027),x=n(36813);const u={title:"DataStax",slug:"/bundles-datastax"},m=void 0,j={},g={annotations:i.hk,Code:i.Cy},f={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},y=[{value:"Astra DB",id:"astra-db",level:2},...h.RM,{value:"Astra DB parameters",id:"astra-db-parameters",level:3},...d.RM,...c.RM,{value:"Astra DB examples",id:"astra-db-examples",level:3},...p.RM,{value:"Astra DB output",id:"astra-db-output",level:3},...l.RM,{value:"Astra DB CQL",id:"astra-db-cql",level:2},{value:"Astra DB CQL parameters",id:"astra-db-cql-parameters",level:3},...d.RM,{value:"Graph RAG",id:"graph-rag",level:2},{value:"Graph RAG parameters",id:"graph-rag-parameters",level:3},...d.RM,...c.RM,{value:"Hyper-Converged Database (HCD)",id:"hyper-converged-database-hcd",level:2},...h.RM,...l.RM,{value:"HCD parameters",id:"hcd-parameters",level:3},...d.RM,...c.RM,{value:"Other DataStax components",id:"other-datastax-components",level:2},{value:"Astra DB Chat Memory",id:"astra-db-chat-memory",level:3},{value:"Astra DB Chat Memory parameters",id:"astra-db-chat-memory-parameters",level:4},...d.RM,{value:"Legacy DataStax components",id:"legacy-datastax-components",level:2},...x.RM,...d.RM,...c.RM,{value:"See also",id:"see-also",level:2}];function b(e){const t={a:"a",admonition:"admonition",code:"code",em:"em",h2:"h2",h3:"h3",h4:"h4",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,a.R)(),...e.components},{Details:r}=t;return g||w("CH",!1),g.Code||w("CH.Code",!0),r||w("Details",!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)(t.p,{children:[(0,s.jsx)(o.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:"DataStax"})," bundle, including components that read and write to Astra DB databases."]}),"\n",(0,s.jsx)(t.h2,{id:"astra-db",children:"Astra DB"}),"\n",(0,s.jsxs)(t.admonition,{type:"warning",children:[(0,s.jsxs)(t.p,{children:["It is recommended that you create any databases, keyspaces, and collections you need before configuring the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component."]}),(0,s.jsxs)(t.p,{children:["You can create new databases and collections through this component, but this is only possible in the Langflow visual editor (not at runtime), and you must wait while the database or collection initializes before proceeding with flow configuration.\nAdditionally, not all database and collection configuration options are available through the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component, such as hybrid search options, PCU groups, vectorize integration management, and multi-region deployments."]})]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component reads and writes to Astra DB Serverless databases, using an instance of ",(0,s.jsx)(t.code,{children:"AstraDBVectorStore"})," to call the Data API and DevOps API."]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"About vector store instances"}),(0,s.jsx)(h.Ay,{})]}),"\n",(0,s.jsx)(t.h3,{id:"astra-db-parameters",children:"Astra DB 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)(d.Ay,{}),"\n",(0,s.jsx)(c.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.datastax.com/en/astra-db-serverless/index.html",children:"Astra DB Serverless 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:"Display Name"}),(0,s.jsx)(t.th,{children:"Info"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"token"}),(0,s.jsx)(t.td,{children:"Astra DB Application Token"}),(0,s.jsx)(t.td,{children:"Input parameter. An Astra application token with permission to access your vector database. Once the connection is verified, additional fields are populated with your existing databases and collections. If you want to create a database through this component, the application token must have Organization Administrator permissions."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"environment"}),(0,s.jsx)(t.td,{children:"Environment"}),(0,s.jsxs)(t.td,{children:["Input parameter. The environment for the Astra DB API endpoint. Typically always ",(0,s.jsx)(t.code,{children:"prod"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"database_name"}),(0,s.jsx)(t.td,{children:"Database"}),(0,s.jsxs)(t.td,{children:["Input parameter. The name of the database that you want this component to connect to. Or, you can select ",(0,s.jsx)(t.strong,{children:"New Database"})," to create a new database, and then wait for the database to initialize before setting the remaining parameters."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"endpoint"}),(0,s.jsx)(t.td,{children:"Astra DB API Endpoint"}),(0,s.jsxs)(t.td,{children:["Input parameter. For multi-region databases, select the API endpoint for your nearest datacenter. To get the list of regions for a multi-region database, see ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/manage-regions.html#list-db-regions",children:"List database regions"}),". This field is automatically populated when you select a database, and it defaults to the primary region's endpoint."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"keyspace"}),(0,s.jsx)(t.td,{children:"Keyspace"}),(0,s.jsxs)(t.td,{children:["Input parameter. The keyspace in your database that contains the collection specified in ",(0,s.jsx)(t.code,{children:"collection_name"}),". Default: ",(0,s.jsx)(t.code,{children:"default_keyspace"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"collection_name"}),(0,s.jsx)(t.td,{children:"Collection"}),(0,s.jsxs)(t.td,{children:["Input parameter. The name of the collection that you want to use with this flow. Or, select ",(0,s.jsx)(t.strong,{children:"New Collection"})," to create a new collection with limited configuration options. To ensure your collection is configured with the correct embedding provider and search capabilities, it is recommended to create the collection in the Astra Portal or with the Data API ",(0,s.jsx)(t.em,{children:"before"})," configuring this component. For more information, see ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/manage-collections.html",children:"Manage collections in Astra DB Serverless"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"embedding_model"}),(0,s.jsx)(t.td,{children:"Embedding Model"}),(0,s.jsxs)(t.td,{children:["Input parameter. Attach an ",(0,s.jsx)(t.a,{href:"/components-embedding-models",children:"embedding model component"})," to generate embeddings. Only available if the specified collection doesn't have a ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/embedding-generation.html",children:"vectorize integration"}),". If a vectorize integration exists, the component automatically uses the collection's integrated model."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"ingest_data"}),(0,s.jsx)(t.td,{children:"Ingest Data"}),(0,s.jsxs)(t.td,{children:["Input parameter. The documents to load into the specified collection. Accepts ",(0,s.jsx)(t.code,{children:"Data"})," or ",(0,s.jsx)(t.code,{children:"DataFrame"})," input."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_query"}),(0,s.jsx)(t.td,{children:"Search Query"}),(0,s.jsx)(t.td,{children:"Input parameter. The query string for vector search."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"cache_vector_store"}),(0,s.jsx)(t.td,{children:"Cache Vector Store"}),(0,s.jsxs)(t.td,{children:["Input parameter. Whether to cache the vector store in Langflow 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:"search_method"}),(0,s.jsx)(t.td,{children:"Search Method"}),(0,s.jsxs)(t.td,{children:["Input parameter. The search methods to use, either ",(0,s.jsx)(t.code,{children:"Hybrid Search"})," or ",(0,s.jsx)(t.code,{children:"Vector Search"}),". Your collection must be configured to support the chosen option, and the default depends on what your collection supports. All vector-enabled collections in Astra DB Serverless (vector) databases support vector search, but hybrid search requires that you set specific collection settings when creating the collection. These options are only available when creating a collection programmatically. For more information, see ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/about-search.html",children:"Ways to find data in Astra DB Serverless"})," and ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/collection-methods/create-collection.html#example-hybrid",children:"Create a collection that supports hybrid search"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"reranker"}),(0,s.jsx)(t.td,{children:"Reranker"}),(0,s.jsxs)(t.td,{children:["Input parameter. The re-ranker model to use for hybrid search, depending on the collection configuration. This parameter is only available for collections that support hybrid search. To determine if a collection supports hybrid search, ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/collection-methods/list-collection-metadata.html",children:"get collection metadata"}),", and then check that ",(0,s.jsx)(t.code,{children:"lexical"})," and ",(0,s.jsx)(t.code,{children:"rerank"})," both have ",(0,s.jsx)(t.code,{children:'"enabled": true'}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"lexical_terms"}),(0,s.jsx)(t.td,{children:"Lexical Terms"}),(0,s.jsxs)(t.td,{children:["Input parameter. A space-separated string of keywords for hybrid search, like ",(0,s.jsx)(t.code,{children:"features, data, attributes, characteristics"}),". This parameter is only available if the collection supports hybrid search. For more information, see the ",(0,s.jsx)(t.a,{href:"#astra-db-examples",children:"Hybrid search example"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"number_of_results"}),(0,s.jsx)(t.td,{children:"Number of Search Results"}),(0,s.jsx)(t.td,{children:"Input parameter. The number of search results to return. Default: 4."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_type"}),(0,s.jsx)(t.td,{children:"Search Type"}),(0,s.jsxs)(t.td,{children:["Input parameter. The search type to use, either ",(0,s.jsx)(t.code,{children:"Similarity"})," (default), ",(0,s.jsx)(t.code,{children:"Similarity with score threshold"}),", and ",(0,s.jsx)(t.code,{children:"MMR (Max Marginal Relevance)"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_score_threshold"}),(0,s.jsx)(t.td,{children:"Search Score Threshold"}),(0,s.jsxs)(t.td,{children:["Input parameter. The minimum similarity score threshold for vector search results with the ",(0,s.jsx)(t.code,{children:"Similarity with score threshold"})," search type. Default: 0."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"advanced_search_filter"}),(0,s.jsx)(t.td,{children:"Search Metadata Filter"}),(0,s.jsx)(t.td,{children:"Input parameter. An optional dictionary of metadata filters to apply in addition to vector or hybrid search."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"autodetect_collection"}),(0,s.jsx)(t.td,{children:"Autodetect Collection"}),(0,s.jsx)(t.td,{children:"Input parameter. Whether to automatically fetch a list of available collections after providing an application token and API endpoint."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"content_field"}),(0,s.jsx)(t.td,{children:"Content Field"}),(0,s.jsx)(t.td,{children:"Input parameter. For writes, this parameter specifies the name of the field in the documents that contains text strings for which you want to generate embeddings."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"deletion_field"}),(0,s.jsx)(t.td,{children:"Deletion Based On Field"}),(0,s.jsx)(t.td,{children:"Input parameter. When provided, documents in the target collection with metadata field values matching the input metadata field value are deleted before new records are loaded. Use this setting for writes with upserts (overwrites)."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"ignore_invalid_documents"}),(0,s.jsx)(t.td,{children:"Ignore Invalid Documents"}),(0,s.jsxs)(t.td,{children:["Input parameter. Whether to ignore invalid documents during writes. If disabled (",(0,s.jsx)(t.code,{children:"false"}),"), then an error is raised for invalid documents. Default: Enabled (",(0,s.jsx)(t.code,{children:"true"}),")."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"astradb_vectorstore_kwargs"}),(0,s.jsx)(t.td,{children:"AstraDBVectorStore Parameters"}),(0,s.jsxs)(t.td,{children:["Input parameter. An optional dictionary of additional parameters for the ",(0,s.jsx)(t.code,{children:"AstraDBVectorStore"})," instance."]})]})]})]}),"\n",(0,s.jsx)(t.h3,{id:"astra-db-examples",children:"Astra DB examples"}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Example: Vector RAG"}),(0,s.jsx)(p.Ay,{})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Example: Hybrid search"}),(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component supports the Data API's ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/hybrid-search.html",children:"hybrid search"})," feature.\nHybrid search performs a vector similarity search and a lexical search, compares the results of both searches, and then returns the most relevant results overall."]}),(0,s.jsxs)(t.p,{children:["To use hybrid search through the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component, do the following:"]}),(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Use the Data API to ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/collection-methods/create-collection.html#example-hybrid",children:"create a collection that supports hybrid search"})," if you don't already have one."]}),"\n",(0,s.jsxs)(t.p,{children:["Although you can create a collection through the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component, you have more control and insight into the collection settings when using the Data API for this operation."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Create a flow based on the ",(0,s.jsx)(t.strong,{children:"Hybrid Search RAG"})," template, which includes an ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component that is pre-configured for hybrid search."]}),"\n",(0,s.jsxs)(t.p,{children:["After loading the template, check for ",(0,s.jsx)(t.strong,{children:"Upgrade available"})," alerts on the components.\nIf any components have an upgrade pending, upgrade and reconnect them before continuing."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["In the ",(0,s.jsx)(t.strong,{children:"Language Model"})," components, add your OpenAI API key.\nIf you want to use a different provider or model, see ",(0,s.jsx)(t.a,{href:"/components-models",children:"Language model components"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Delete the ",(0,s.jsx)(t.strong,{children:"Language Model"})," component that is connected to the ",(0,s.jsx)(t.strong,{children:"Structured Output"})," component's ",(0,s.jsx)(t.strong,{children:"Input Message"})," port, and then connect the ",(0,s.jsx)(t.strong,{children:"Chat Input"})," component to that port."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Configure the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," vector store component:"]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Enter your Astra DB application token."}),"\n",(0,s.jsxs)(t.li,{children:["In the ",(0,s.jsx)(t.strong,{children:"Database"})," field, select your database."]}),"\n",(0,s.jsxs)(t.li,{children:["In the ",(0,s.jsx)(t.strong,{children:"Collection"})," field, select your collection with hybrid search enabled."]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Once you select a collection that supports hybrid search, the other parameters automatically update to allow hybrid search options."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Connect the first ",(0,s.jsx)(t.strong,{children:"Parser"})," component's ",(0,s.jsx)(t.strong,{children:"Parsed Text"})," output to the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component's ",(0,s.jsx)(t.strong,{children:"Lexical Terms"})," input.\nThis input only appears after connecting a collection that support hybrid search with reranking."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Update the ",(0,s.jsx)(t.strong,{children:"Structured Output"})," template:"]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Click the ",(0,s.jsx)(t.strong,{children:"Structured Output"})," component to expose the ",(0,s.jsx)(t.a,{href:"/concepts-components#component-menus",children:"component's header menu"}),", and then click ",(0,s.jsx)(o.A,{name:"SlidersHorizontal","aria-hidden":"true"})," ",(0,s.jsx)(t.strong,{children:"Controls"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Find the ",(0,s.jsx)(t.strong,{children:"Format Instructions"})," row, click ",(0,s.jsx)(o.A,{name:"Expand","aria-hidden":"true"})," ",(0,s.jsx)(t.strong,{children:"Expand"}),", and then replace the prompt with the following text:"]}),"\n",(0,s.jsx)(g.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"You are a database query planner that takes a user's requests, and then converts to a search against the subject matter in question.",props:{}}]},{tokens:[{content:"You should convert the query into:",props:{}}]},{tokens:[{content:"1. A list of keywords to use against a Lucene text analyzer index, no more than 4. Strictly unigrams.",props:{}}]},{tokens:[{content:"2. A question to use as the basis for a QA embedding engine.",props:{}}]},{tokens:[{content:"Avoid common keywords associated with the user's subject matter.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Click ",(0,s.jsx)(t.strong,{children:"Finish Editing"}),", and then click ",(0,s.jsx)(t.strong,{children:"Close"})," to save your changes to the component."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Open the ",(0,s.jsx)(t.strong,{children:"Playground"}),", and then enter a natural language question that you would ask about your database."]}),"\n",(0,s.jsxs)(t.p,{children:["In this example, your input is sent to both the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," and ",(0,s.jsx)(t.strong,{children:"Structured Output"})," components:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["The input sent directly to the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component's ",(0,s.jsx)(t.strong,{children:"Search Query"})," port is used as a string for similarity search.\nAn embedding is generated from the query string using the collection's Astra DB vectorize integration."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["The input sent to the ",(0,s.jsx)(t.strong,{children:"Structured Output"})," component is processed by the ",(0,s.jsx)(t.strong,{children:"Structured Output"}),", ",(0,s.jsx)(t.strong,{children:"Language Model"}),", and ",(0,s.jsx)(t.strong,{children:"Parser"})," components to extract space-separated ",(0,s.jsx)(t.code,{children:"keywords"})," used for the lexical search portion of the hybrid search."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["The complete hybrid search query is executed against your database using the Data API's ",(0,s.jsx)(t.code,{children:"find_and_rerank"})," command.\nThe API's response is output as a ",(0,s.jsx)(t.code,{children:"DataFrame"})," that is transformed into a text string ",(0,s.jsx)(t.code,{children:"Message"})," by another ",(0,s.jsx)(t.strong,{children:"Parser"})," component.\nFinally, the ",(0,s.jsx)(t.strong,{children:"Chat Output"})," component prints the ",(0,s.jsx)(t.code,{children:"Message"})," response to the ",(0,s.jsx)(t.strong,{children:"Playground"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Optional: Exit the ",(0,s.jsx)(t.strong,{children:"Playground"}),", and then click ",(0,s.jsx)(o.A,{name:"TextSearch","aria-hidden":"true"})," ",(0,s.jsx)(t.strong,{children:"Inspect Output"})," on each individual component to understand how lexical keywords were constructed and view the raw response from the Data API.\nThis is helpful for debugging flows where a certain component isn't receiving input as expected from another component."]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Structured Output component"}),": The output is the ",(0,s.jsx)(t.code,{children:"Data"})," object produced by applying the output schema to the LLM's response to the input message and format instructions.\nThe following example is based on the aforementioned instructions for keyword extraction:"]}),"\n",(0,s.jsx)(g.Code,{codeConfig:f,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"1. Keywords: features, data, attributes, characteristics",props:{}}]},{tokens:[{content:"2. Question: What characteristics can be identified in my data?",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Parser component"}),": The output is the string of keywords extracted from the structured output ",(0,s.jsx)(t.code,{children:"Data"}),", and then used as lexical terms for the hybrid search."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Astra DB component"}),": The output is the ",(0,s.jsx)(t.code,{children:"DataFrame"})," containing the results of the hybrid search as returned by the Data API."]}),"\n"]}),"\n"]}),"\n"]}),"\n"]})]}),"\n",(0,s.jsx)(t.h3,{id:"astra-db-output",children:"Astra DB output"}),"\n",(0,s.jsx)(l.Ay,{}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Vector Store Connection port"}),(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component has an additional ",(0,s.jsx)(t.strong,{children:"Vector Store Connection"})," output.\nThis output can only connect to a ",(0,s.jsx)(t.code,{children:"VectorStore"})," input port, and it was intended for use with dedicated Graph RAG components."]}),(0,s.jsxs)(t.p,{children:["The only non-legacy component that supports this input is the ",(0,s.jsxs)(t.a,{href:"#graph-rag",children:[(0,s.jsx)(t.strong,{children:"Graph RAG"})," component"]}),", which can be a Graph RAG extension to the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component.\nInstead, use the ",(0,s.jsx)(t.strong,{children:"Astra DB Graph"})," component that includes both the vector store connection and Graph RAG functionality."]})]}),"\n",(0,s.jsx)(t.h2,{id:"astra-db-cql",children:"Astra DB CQL"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB CQL"})," component allows agents to query data from CQL tables in Astra DB."]}),"\n",(0,s.jsxs)(t.p,{children:["The output is a list of ",(0,s.jsx)(t.a,{href:"/data-types#data",children:(0,s.jsx)(t.code,{children:"Data"})})," objects containing the query results from the Astra DB CQL table. Each Data object contains the document fields specified by the projection fields. Limited by the ",(0,s.jsx)(t.code,{children:"number_of_results"})," parameter."]}),"\n",(0,s.jsx)(t.h3,{id:"astra-db-cql-parameters",children:"Astra DB CQL parameters"}),"\n",(0,s.jsx)(d.Ay,{}),"\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:"Tool Name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The name used to reference the tool in the agent's prompt."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Tool Description"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. A brief description of the tool to guide the model in using it."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Keyspace"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The name of the keyspace."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Table Name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The name of the Astra DB CQL table to query."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Token"}),(0,s.jsx)(t.td,{children:"SecretString"}),(0,s.jsx)(t.td,{children:"Input parameter. The authentication token for Astra DB."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"API Endpoint"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The Astra DB API endpoint."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Projection Fields"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:'Input parameter. The attributes to return, separated by commas. Default: "*".'})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Partition Keys"}),(0,s.jsx)(t.td,{children:"Dict"}),(0,s.jsx)(t.td,{children:"Input parameter. Required parameters that the model must fill to query the tool."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Clustering Keys"}),(0,s.jsx)(t.td,{children:"Dict"}),(0,s.jsxs)(t.td,{children:["Input parameter. Optional parameters the model can fill to refine the query. Required parameters should be marked with an exclamation mark, for example, ",(0,s.jsx)(t.code,{children:"!customer_id"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Static Filters"}),(0,s.jsx)(t.td,{children:"Dict"}),(0,s.jsx)(t.td,{children:"Input parameter. Attribute-value pairs used to filter query results."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Limit"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The number of records to return."})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"graph-rag",children:"Graph RAG"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Graph RAG"})," component uses an instance of ",(0,s.jsx)(t.a,{href:"https://datastax.github.io/graph-rag/reference/langchain_graph_retriever/",children:(0,s.jsx)(t.code,{children:"GraphRetriever"})})," for Graph RAG traversal enabling graph-based document retrieval in an Astra DB vector store.\nFor more information, see the ",(0,s.jsx)(t.a,{href:"https://datastax.github.io/graph-rag/",children:"DataStax Graph RAG documentation"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"graph-rag-parameters",children:"Graph RAG 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)(d.Ay,{}),"\n",(0,s.jsx)(c.Ay,{}),"\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:"Display Name"}),(0,s.jsx)(t.th,{children:"Info"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"embedding_model"}),(0,s.jsx)(t.td,{children:"Embedding Model"}),(0,s.jsxs)(t.td,{children:["Input parameter. Specify the embedding model to use. Not required if the connected vector store has a ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/embedding-generation.html",children:"vectorize integration"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"vector_store"}),(0,s.jsx)(t.td,{children:"Vector Store Connection"}),(0,s.jsxs)(t.td,{children:["Input parameter. An instance of ",(0,s.jsx)(t.code,{children:"AstraDbVectorStore"})," inherited from the ",(0,s.jsxs)(t.a,{href:"#astra-db",children:[(0,s.jsx)(t.strong,{children:"Astra DB"})," component"]}),"'s ",(0,s.jsx)(t.strong,{children:"Vector Store Connection"})," output."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"edge_definition"}),(0,s.jsx)(t.td,{children:"Edge Definition"}),(0,s.jsxs)(t.td,{children:["Input parameter. ",(0,s.jsx)(t.a,{href:"https://datastax.github.io/graph-rag/reference/graph_retriever/edges/",children:"Edge definition"})," for the graph traversal."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"strategy"}),(0,s.jsx)(t.td,{children:"Traversal Strategies"}),(0,s.jsx)(t.td,{children:"Input parameter. The strategy to use for graph traversal. Strategy options are dynamically loaded from available strategies."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_query"}),(0,s.jsx)(t.td,{children:"Search Query"}),(0,s.jsx)(t.td,{children:"Input parameter. The query to search for in the vector store."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"graphrag_strategy_kwargs"}),(0,s.jsx)(t.td,{children:"Strategy Parameters"}),(0,s.jsxs)(t.td,{children:["Input parameter. Optional dictionary of additional parameters for the ",(0,s.jsx)(t.a,{href:"https://datastax.github.io/graph-rag/reference/graph_retriever/strategies/",children:"retrieval strategy"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_results"}),(0,s.jsxs)(t.td,{children:[(0,s.jsx)(t.strong,{children:"Search Results"})," or ",(0,s.jsx)(t.strong,{children:"DataFrame"})]}),(0,s.jsxs)(t.td,{children:["Output parameter. The results of the graph-based document retrieval as a list of ",(0,s.jsx)(t.a,{href:"/data-types#data",children:(0,s.jsx)(t.code,{children:"Data"})})," objects or as a tabular ",(0,s.jsx)(t.a,{href:"/data-types#dataframe",children:(0,s.jsx)(t.code,{children:"DataFrame"})}),". You can set the desired output type near the component's output port."]})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"hyper-converged-database-hcd",children:"Hyper-Converged Database (HCD)"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Hyper-Converged Database (HCD)"})," component uses your cluster's Data API server to read and write to your HCD vector store.\nBecause the underlying functions call the Data API, which originated from Astra DB, the component uses an instance of ",(0,s.jsx)(t.code,{children:"AstraDBVectorStore"}),"."]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"A flow using the HCD component to load vector data.",src:n(42638).A+"",width:"2294",height:"1684"})}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"About vector store instances"}),(0,s.jsx)(h.Ay,{})]}),"\n",(0,s.jsx)(l.Ay,{}),"\n",(0,s.jsxs)(t.p,{children:["For more information about HCD, see ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/hyper-converged-database/1.2/get-started/get-started-hcd.html",children:"Get started with HCD 1.2"})," and ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/hyper-converged-database/1.2/api-reference/dataapiclient.html",children:"Get started with the Data API in HCD 1.2"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"hcd-parameters",children:"HCD 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)(d.Ay,{}),"\n",(0,s.jsx)(c.Ay,{}),"\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:"Display Name"}),(0,s.jsx)(t.th,{children:"Info"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"collection_name"}),(0,s.jsx)(t.td,{children:"Collection Name"}),(0,s.jsx)(t.td,{children:"Input parameter. The name of a vector store collection in HCD. For write operations, if the collection doesn't exist, then a new one is created. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"username"}),(0,s.jsx)(t.td,{children:"HCD Username"}),(0,s.jsxs)(t.td,{children:["Input parameter. Username for authenticating to your HCD deployment. Default: ",(0,s.jsx)(t.code,{children:"hcd-superuser"}),". Required."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"password"}),(0,s.jsx)(t.td,{children:"HCD Password"}),(0,s.jsx)(t.td,{children:"Input parameter. Password for authenticating to your HCD deployment. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"api_endpoint"}),(0,s.jsx)(t.td,{children:"HCD API Endpoint"}),(0,s.jsxs)(t.td,{children:["Input parameter. Your deployment's HCD Data API endpoint, formatted as ",(0,s.jsx)(t.code,{children:"http[s]://CLUSTER_HOST:GATEWAY_PORT"})," where ",(0,s.jsx)(t.code,{children:"CLUSTER_HOST"})," is the IP address of any node in your cluster and ",(0,s.jsx)(t.code,{children:"GATEWAY_PORT"})," is the port number for your API gateway service. For example, ",(0,s.jsx)(t.code,{children:"http://192.0.2.250:8181"}),". Required."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"ingest_data"}),(0,s.jsx)(t.td,{children:"Ingest Data"}),(0,s.jsx)(t.td,{children:"Input parameter. Records to load into the vector store. Only relevant for writes."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_input"}),(0,s.jsx)(t.td,{children:"Search Input"}),(0,s.jsx)(t.td,{children:"Input parameter. Query string for similarity search. Only relevant to reads."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"namespace"}),(0,s.jsx)(t.td,{children:"Namespace"}),(0,s.jsxs)(t.td,{children:["Input parameter. The namespace in HCD that contains or will contain the collection specified in ",(0,s.jsx)(t.code,{children:"collection_name"}),". Default: ",(0,s.jsx)(t.code,{children:"default_namespace"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"ca_certificate"}),(0,s.jsx)(t.td,{children:"CA Certificate"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional CA certificate for TLS connections to HCD."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"metric"}),(0,s.jsx)(t.td,{children:"Metric"}),(0,s.jsxs)(t.td,{children:["Input parameter. The metrics to use for similarity search calculations, either ",(0,s.jsx)(t.code,{children:"cosine"}),", ",(0,s.jsx)(t.code,{children:"dot_product"}),", or ",(0,s.jsx)(t.code,{children:"euclidean"}),". This is a collection setting. If calling an existing collection, leave unset to use the collection's metric. If a write operation creates a new collection, specify the desired similarity metric setting."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"batch_size"}),(0,s.jsx)(t.td,{children:"Batch Size"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional number of records to process in a single batch."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"bulk_insert_batch_concurrency"}),(0,s.jsx)(t.td,{children:"Bulk Insert Batch Concurrency"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional concurrency level for bulk write operations."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"bulk_insert_overwrite_concurrency"}),(0,s.jsx)(t.td,{children:"Bulk Insert Overwrite Concurrency"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional concurrency level for bulk write operations that allow upserts (overwriting existing records)."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"bulk_delete_concurrency"}),(0,s.jsx)(t.td,{children:"Bulk Delete Concurrency"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional concurrency level for bulk delete operations."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"setup_mode"}),(0,s.jsx)(t.td,{children:"Setup Mode"}),(0,s.jsxs)(t.td,{children:["Input parameter. Configuration mode for setting up the vector store, either ",(0,s.jsx)(t.code,{children:"Sync"})," (default), ",(0,s.jsx)(t.code,{children:"Async"}),", or ",(0,s.jsx)(t.code,{children:"Off"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"pre_delete_collection"}),(0,s.jsx)(t.td,{children:"Pre Delete Collection"}),(0,s.jsx)(t.td,{children:"Input parameter. Whether to delete the collection before creating a new one."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"metadata_indexing_include"}),(0,s.jsx)(t.td,{children:"Metadata Indexing Include"}),(0,s.jsxs)(t.td,{children:["Input parameter. A list of metadata fields to index if you want to enable ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/hyper-converged-database/1.2/api-reference/collection-indexes.html",children:"selective indexing"})," ",(0,s.jsx)(t.em,{children:"only"})," when creating a collection. Doesn't apply to existing collections. Only one ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameter can be set per collection. If all ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameters are unset, then all fields are indexed (default indexing)."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"metadata_indexing_exclude"}),(0,s.jsx)(t.td,{children:"Metadata Indexing Exclude"}),(0,s.jsxs)(t.td,{children:["Input parameter. A list of metadata fields to exclude from indexing if you want to enable selective indexing ",(0,s.jsx)(t.em,{children:"only"})," when creating a collection. Doesn't apply to existing collections. Only one ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameter can be set per collection. If all ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameters are unset, then all fields are indexed (default indexing)."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"collection_indexing_policy"}),(0,s.jsx)(t.td,{children:"Collection Indexing Policy"}),(0,s.jsxs)(t.td,{children:["Input parameter. A dictionary to define the indexing policy if you want to enable selective indexing ",(0,s.jsx)(t.em,{children:"only"})," when creating a collection. Doesn't apply to existing collections. Only one ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameter can be set per collection. If all ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameters are unset, then all fields are indexed (default indexing). The ",(0,s.jsx)(t.code,{children:"collection_indexing_policy"})," dictionary is used when you need to set indexing on subfields or a complex indexing definition that isn't compatible as a list."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"embedding"}),(0,s.jsx)(t.td,{children:"Embedding or Astra Vectorize"}),(0,s.jsxs)(t.td,{children:["Input parameter. The embedding model to use by attaching an ",(0,s.jsx)(t.strong,{children:"Embedding Model"})," component. This component doesn't support additional vectorize authentication headers, so it isn't possible to use a vectorize integration with this component, even if you have enabled one on an existing HCD collection."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"number_of_results"}),(0,s.jsx)(t.td,{children:"Number of Results"}),(0,s.jsx)(t.td,{children:"Input parameter. Number of search results to return. Default: 4. Only relevant to reads."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_type"}),(0,s.jsx)(t.td,{children:"Search Type"}),(0,s.jsxs)(t.td,{children:["Input parameter. Search type to use, either ",(0,s.jsx)(t.code,{children:"Similarity"})," (default), ",(0,s.jsx)(t.code,{children:"Similarity with score threshold"}),", or ",(0,s.jsx)(t.code,{children:"MMR (Max Marginal Relevance)"}),". Only relevant to reads."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_score_threshold"}),(0,s.jsx)(t.td,{children:"Search Score Threshold"}),(0,s.jsxs)(t.td,{children:["Input parameter. Minimum similarity score threshold for search results if the ",(0,s.jsx)(t.code,{children:"search_type"})," is ",(0,s.jsx)(t.code,{children:"Similarity with score threshold"}),". Default: 0."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_filter"}),(0,s.jsx)(t.td,{children:"Search Metadata Filter"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional dictionary of metadata filters to apply in addition to vector search."})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"other-datastax-components",children:"Other DataStax components"}),"\n",(0,s.jsxs)(t.p,{children:["The following components are also included in the ",(0,s.jsx)(t.strong,{children:"DataStax"})," bundle."]}),"\n",(0,s.jsx)(t.h3,{id:"astra-db-chat-memory",children:"Astra DB Chat Memory"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB Chat Memory"})," component retrieves and stores chat messages using an Astra DB database."]}),"\n",(0,s.jsxs)(t.p,{children:["Chat memories are passed between memory storage components as the ",(0,s.jsx)(t.a,{href:"/data-types#memory",children:(0,s.jsx)(t.code,{children:"Memory"})})," data type.\nSpecifically, the component creates an instance of ",(0,s.jsx)(t.code,{children:"AstraDBChatMessageHistory"}),", which is a LangChain chat message history class that uses Astra DB for storage."]}),"\n",(0,s.jsxs)(t.admonition,{type:"warning",children:[(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB Chat Memory"})," component isn't recommended for most memory storage because memories tend to be long JSON objects or strings, often exceeding the maximum size of a document or object supported by Astra DB."]}),(0,s.jsxs)(t.p,{children:["However, Langflow's ",(0,s.jsx)(t.strong,{children:"Agent"})," component includes built-in chat memory that is enabled by default.\nYour agentic flows don't need an external database to store chat memory.\nFor more information, see ",(0,s.jsx)(t.a,{href:"/memory",children:"Memory management options"}),"."]})]}),"\n",(0,s.jsxs)(t.p,{children:["For more information about using external chat memory in flows, see the ",(0,s.jsxs)(t.a,{href:"/message-history",children:[(0,s.jsx)(t.strong,{children:"Message History"})," component"]}),"."]}),"\n",(0,s.jsx)(t.h4,{id:"astra-db-chat-memory-parameters",children:"Astra DB Chat Memory parameters"}),"\n",(0,s.jsx)(d.Ay,{}),"\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:"collection_name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The name of the Astra DB collection for storing messages. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"token"}),(0,s.jsx)(t.td,{children:"SecretString"}),(0,s.jsx)(t.td,{children:"Input parameter. The authentication token for Astra DB access. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"api_endpoint"}),(0,s.jsx)(t.td,{children:"SecretString"}),(0,s.jsx)(t.td,{children:"Input parameter. The API endpoint URL for the Astra DB service. Required."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"namespace"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The optional namespace within Astra DB for the collection."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"session_id"}),(0,s.jsx)(t.td,{children:"MessageText"}),(0,s.jsx)(t.td,{children:"Input parameter. The unique identifier for the chat session. Uses the current session ID if not provided."})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"legacy-datastax-components",children:"Legacy DataStax components"}),"\n","\n",(0,s.jsx)(x.Ay,{}),"\n",(0,s.jsx)(t.p,{children:"The following DataStax components are in legacy status:"}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Astra DB Tool"}),(0,s.jsxs)(t.p,{children:["Replace the ",(0,s.jsx)(t.strong,{children:"Astra DB Tool"})," component with the ",(0,s.jsxs)(t.a,{href:"#astra-db",children:[(0,s.jsx)(t.strong,{children:"Astra DB"})," component"]}),"."]}),(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB Tool"})," component enables searching data in Astra DB collections, including hybrid search, vector search, and regular filter-based search.\nSpecialized searches require that the collection is pre-configured with the required parameters."]}),(0,s.jsxs)(t.p,{children:["Outputs a list of ",(0,s.jsx)(t.a,{href:"/data-types#data",children:(0,s.jsx)(t.code,{children:"Data"})})," objects containing the query results from Astra DB. Each ",(0,s.jsx)(t.code,{children:"Data"})," object contains the document fields specified by the projection attributes. Limited by the ",(0,s.jsx)(t.code,{children:"number_of_results"})," parameter and the upper limit of the Astra DB Data API, depending on the type of search."]}),(0,s.jsxs)(t.p,{children:["You can use the component to execute queries directly as isolated steps in a flow, or you can connect it as a ",(0,s.jsx)(t.a,{href:"/agents-tools",children:"tool for an agent"})," to allow the agent to query data from Astra DB collections as needed to respond to user queries."]}),(0,s.jsxs)(t.p,{children:["The values for ",(0,s.jsx)(t.strong,{children:"Collection Name"}),", ",(0,s.jsx)(t.strong,{children:"Astra DB Application Token"}),", and ",(0,s.jsx)(t.strong,{children:"Astra DB API Endpoint"})," are found in your Astra DB deployment. For more information, see the ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/create-database.html",children:"Astra DB Serverless documentation"}),"."]}),(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:"Tool Name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The name used to reference the tool in the agent's prompt."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Tool Description"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. A brief description of the tool. This helps the model decide when to use it."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Keyspace Name"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsxs)(t.td,{children:["Input parameter. The name of the keyspace in Astra DB. Default: ",(0,s.jsx)(t.code,{children:"default_keyspace"})]})]}),(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. The name of the Astra DB collection to query."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Token"}),(0,s.jsx)(t.td,{children:"SecretString"}),(0,s.jsx)(t.td,{children:"Input parameter. The authentication token for accessing Astra DB."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"API Endpoint"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsx)(t.td,{children:"Input parameter. The Astra DB API endpoint."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Projection Fields"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsxs)(t.td,{children:["Input parameter. Comma-separated list of attributes to return from matching documents. The default is the default projection, ",(0,s.jsx)(t.code,{children:"*"}),", which returns all attributes except reserved fields like ",(0,s.jsx)(t.code,{children:"$vector"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Tool Parameters"}),(0,s.jsx)(t.td,{children:"Dict"}),(0,s.jsxs)(t.td,{children:["Input parameter. ",(0,s.jsxs)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/document-methods/find-many.html#parameters",children:["Astra DB Data API ",(0,s.jsx)(t.code,{children:"find"})," filters"]})," that become tools for an agent. These Filters ",(0,s.jsx)(t.em,{children:"may"})," be used in a search, if the agent selects them."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Static Filters"}),(0,s.jsx)(t.td,{children:"Dict"}),(0,s.jsxs)(t.td,{children:["Input parameter. Attribute-value pairs used to filter query results. Equivalent to ",(0,s.jsxs)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/document-methods/find-many.html#parameters",children:["Astra DB Data API ",(0,s.jsx)(t.code,{children:"find"})," filters"]}),". ",(0,s.jsx)(t.strong,{children:"Static Filters"})," are included with ",(0,s.jsx)(t.em,{children:"every"})," query. Use ",(0,s.jsx)(t.strong,{children:"Static Filters"})," without semantic search to perform a regular filter search."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Number of Results"}),(0,s.jsx)(t.td,{children:"Int"}),(0,s.jsx)(t.td,{children:"Input parameter. The maximum number of documents to return."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Semantic Search"}),(0,s.jsx)(t.td,{children:"Boolean"}),(0,s.jsxs)(t.td,{children:["Input parameter. Whether to run a similarity search by generating a vector embedding from the chat input and following the ",(0,s.jsx)(t.strong,{children:"Semantic Search Instruction"}),". Default: ",(0,s.jsx)(t.code,{children:"false"}),". If ",(0,s.jsx)(t.code,{children:"true"}),", you must attach an ",(0,s.jsx)(t.a,{href:"/components-embedding-models",children:"embedding model component"})," or have vectorize pre-enabled on your collection."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Use Astra DB Vectorize"}),(0,s.jsx)(t.td,{children:"Boolean"}),(0,s.jsxs)(t.td,{children:["Input parameter. Whether to use the Astra DB vectorize feature for embedding generation when running a semantic search. Default: ",(0,s.jsx)(t.code,{children:"false"}),". If ",(0,s.jsx)(t.code,{children:"true"}),", you must have vectorize pre-enabled on your collection."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Embedding Model"}),(0,s.jsx)(t.td,{children:"Embedding"}),(0,s.jsxs)(t.td,{children:["Input parameter. A port to attach an embedding model component to generate a vector from input text for semantic search. This can be used when ",(0,s.jsx)(t.strong,{children:"Semantic Search"})," is ",(0,s.jsx)(t.code,{children:"true"}),", with or without vectorize. Be sure to use a model that aligns with the dimensions of the embeddings already present in the collection."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"Semantic Search Instruction"}),(0,s.jsx)(t.td,{children:"String"}),(0,s.jsxs)(t.td,{children:["Input parameter. The query to use for similarity search. Default: ",(0,s.jsx)(t.code,{children:'"Find documents similar to the query."'}),". This instruction is used to guide the model in performing semantic search."]})]})]})]})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Astra DB Graph"}),(0,s.jsxs)(t.p,{children:["Replace the ",(0,s.jsx)(t.strong,{children:"Astra DB Graph"})," component with the ",(0,s.jsxs)(t.a,{href:"#graph-rag",children:[(0,s.jsx)(t.strong,{children:"Graph RAG"})," component"]}),"."]}),(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB Graph"})," component uses ",(0,s.jsx)(t.code,{children:"AstraDBGraphVectorStore"}),", an instance of ",(0,s.jsx)(t.a,{href:"https://python.langchain.com/api_reference/community/graph_vectorstores.html",children:"LangChain graph vector store"}),", for graph traversal and graph-based document retrieval in an Astra DB collection. It also supports writing to the vector store.\nFor more information, see ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/tutorials/graph-rag.html",children:"Build a Graph RAG system with LangChain and GraphRetriever"}),"."]}),(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."}),(0,s.jsx)(d.Ay,{}),(0,s.jsx)(c.Ay,{}),(0,s.jsxs)(t.p,{children:["For information about accepted values and functionality, see the ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/index.html",children:"Astra DB Serverless documentation"})," or inspect ",(0,s.jsx)(t.a,{href:"/concepts-components#component-code",children:"component code"}),"."]}),(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:"Display Name"}),(0,s.jsx)(t.th,{children:"Info"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"token"}),(0,s.jsx)(t.td,{children:"Astra DB Application Token"}),(0,s.jsx)(t.td,{children:"Input parameter. An Astra application token with permission to access your vector database. Once the connection is verified, additional fields are populated with your existing databases and collections. If you want to create a database through this component, the application token must have Organization Administrator permissions."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"api_endpoint"}),(0,s.jsx)(t.td,{children:"API Endpoint"}),(0,s.jsx)(t.td,{children:"Input parameter. Your database's API endpoint."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"keyspace"}),(0,s.jsx)(t.td,{children:"Keyspace"}),(0,s.jsxs)(t.td,{children:["Input parameter. The keyspace in your database that contains the collection specified in ",(0,s.jsx)(t.code,{children:"collection_name"}),". Default: ",(0,s.jsx)(t.code,{children:"default_keyspace"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"collection_name"}),(0,s.jsx)(t.td,{children:"Collection"}),(0,s.jsx)(t.td,{children:"Input parameter. The name of the collection that you want to use with this flow. For write operations, if a matching collection doesn't exist, a new one is created."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"metadata_incoming_links_key"}),(0,s.jsx)(t.td,{children:"Metadata Incoming Links Key"}),(0,s.jsx)(t.td,{children:"Input parameter. The metadata key for the incoming links in the vector store."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"ingest_data"}),(0,s.jsx)(t.td,{children:"Ingest Data"}),(0,s.jsx)(t.td,{children:"Input parameter. Records to load into the vector store. Only relevant for writes."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_input"}),(0,s.jsx)(t.td,{children:"Search Query"}),(0,s.jsx)(t.td,{children:"Input parameter. Query string for similarity search. Only relevant to reads."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"cache_vector_store"}),(0,s.jsx)(t.td,{children:"Cache Vector Store"}),(0,s.jsxs)(t.td,{children:["Input parameter. Whether to cache the vector store in Langflow 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_model"}),(0,s.jsx)(t.td,{children:"Embedding Model"}),(0,s.jsxs)(t.td,{children:["Input parameter. Attach an ",(0,s.jsx)(t.a,{href:"/components-embedding-models",children:"embedding model component"})," to generate embeddings. If the collection has a ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/databases/embedding-generation.html",children:"vectorize integration"}),", don't attach an embedding model component."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"metric"}),(0,s.jsx)(t.td,{children:"Metric"}),(0,s.jsxs)(t.td,{children:["Input parameter. The metrics to use for similarity search calculations, either ",(0,s.jsx)(t.code,{children:"cosine"})," (default), ",(0,s.jsx)(t.code,{children:"dot_product"}),", or ",(0,s.jsx)(t.code,{children:"euclidean"}),". This is a collection setting."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"batch_size"}),(0,s.jsx)(t.td,{children:"Batch Size"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional number of records to process in a single batch."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"bulk_insert_batch_concurrency"}),(0,s.jsx)(t.td,{children:"Bulk Insert Batch Concurrency"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional concurrency level for bulk write operations."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"bulk_insert_overwrite_concurrency"}),(0,s.jsx)(t.td,{children:"Bulk Insert Overwrite Concurrency"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional concurrency level for bulk write operations that allow upserts (overwriting existing records)."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"bulk_delete_concurrency"}),(0,s.jsx)(t.td,{children:"Bulk Delete Concurrency"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional concurrency level for bulk delete operations."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"setup_mode"}),(0,s.jsx)(t.td,{children:"Setup Mode"}),(0,s.jsxs)(t.td,{children:["Input parameter. Configuration mode for setting up the vector store, either ",(0,s.jsx)(t.code,{children:"Sync"})," (default) or ",(0,s.jsx)(t.code,{children:"Off"}),"."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"pre_delete_collection"}),(0,s.jsx)(t.td,{children:"Pre Delete Collection"}),(0,s.jsxs)(t.td,{children:["Input parameter. Whether to delete the collection before creating a new one. Default: Disabled (",(0,s.jsx)(t.code,{children:"false"}),")."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"metadata_indexing_include"}),(0,s.jsx)(t.td,{children:"Metadata Indexing Include"}),(0,s.jsxs)(t.td,{children:["Input parameter. A list of metadata fields to index if you want to enable ",(0,s.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/api-reference/collection-indexes.html",children:"selective indexing"})," ",(0,s.jsx)(t.em,{children:"only"})," when creating a collection. Doesn't apply to existing collections. Only one ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameter can be set per collection. If all ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameters are unset, then all fields are indexed (default indexing)."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"metadata_indexing_exclude"}),(0,s.jsx)(t.td,{children:"Metadata Indexing Exclude"}),(0,s.jsxs)(t.td,{children:["Input parameter. A list of metadata fields to exclude from indexing if you want to enable selective indexing ",(0,s.jsx)(t.em,{children:"only"})," when creating a collection. Doesn't apply to existing collections. Only one ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameter can be set per collection. If all ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameters are unset, then all fields are indexed (default indexing)."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"collection_indexing_policy"}),(0,s.jsx)(t.td,{children:"Collection Indexing Policy"}),(0,s.jsxs)(t.td,{children:["Input parameter. A dictionary to define the indexing policy if you want to enable selective indexing ",(0,s.jsx)(t.em,{children:"only"})," when creating a collection. Doesn't apply to existing collections. Only one ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameter can be set per collection. If all ",(0,s.jsx)(t.code,{children:"*_indexing_*"})," parameters are unset, then all fields are indexed (default indexing). The ",(0,s.jsx)(t.code,{children:"collection_indexing_policy"})," dictionary is used when you need to set indexing on subfields or a complex indexing definition that isn't compatible as a list."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"number_of_results"}),(0,s.jsx)(t.td,{children:"Number of Results"}),(0,s.jsx)(t.td,{children:"Input parameter. Number of search results to return. Default: 4. Only relevant to reads."})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_type"}),(0,s.jsx)(t.td,{children:"Search Type"}),(0,s.jsxs)(t.td,{children:["Input parameter. Search type to use, either ",(0,s.jsx)(t.code,{children:"Similarity"}),", ",(0,s.jsx)(t.code,{children:"Similarity with score threshold"}),", or ",(0,s.jsx)(t.code,{children:"MMR (Max Marginal Relevance)"}),", ",(0,s.jsx)(t.code,{children:"Graph Traversal"}),", or ",(0,s.jsx)(t.code,{children:"MMR (Max Marginal Relevance) Graph Traversal"})," (default). Only relevant to reads."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_score_threshold"}),(0,s.jsx)(t.td,{children:"Search Score Threshold"}),(0,s.jsxs)(t.td,{children:["Input parameter. Minimum similarity score threshold for search results if the ",(0,s.jsx)(t.code,{children:"search_type"})," is ",(0,s.jsx)(t.code,{children:"Similarity with score threshold"}),". Default: 0."]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{children:"search_filter"}),(0,s.jsx)(t.td,{children:"Search Metadata Filter"}),(0,s.jsx)(t.td,{children:"Input parameter. Optional dictionary of metadata filters to apply in addition to vector search."})]})]})]})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Assistants API components"}),(0,s.jsx)(t.p,{children:"The following DataStax components were used to create and manage Assistants API functions in a flow:"}),(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"Astra Assistant Agent"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"Create Assistant"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"Create Assistant Thread"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"Get Assistant Name"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"List Assistants"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"Run Assistant"})}),"\n"]}),(0,s.jsx)(t.p,{children:"These components are legacy and should be replaced with Langflow's native agent components."})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Environment variable components"}),(0,s.jsx)(t.p,{children:"The following DataStax components were used to load and retrieve environment variables in a flow:"}),(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Dotenv"}),": Loads environment variables from a ",(0,s.jsx)(t.code,{children:".env"})," file"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Get Environment Variable"}),": Retrieves the value of an environment variable"]}),"\n"]}),(0,s.jsx)(t.p,{children:"These components are legacy. Use Langflow's built-in environment variable support or global variables instead."})]}),"\n",(0,s.jsxs)(r,{children:[(0,s.jsx)("summary",{children:"Astra Vectorize"}),(0,s.jsxs)(t.p,{children:["This component was deprecated in Langflow version 1.1.2.\nReplace it with the ",(0,s.jsxs)(t.a,{href:"#astra-db",children:[(0,s.jsx)(t.strong,{children:"Astra DB"})," component"]}),"."]}),(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Astra DB Vectorize"})," component was used to generate embeddings with Astra DB's vectorize feature in conjunction with an ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component."]}),(0,s.jsxs)(t.p,{children:["The vectorize functionality is now built into the ",(0,s.jsx)(t.strong,{children:"Astra DB"})," component.\nYou no longer need a separate component for vectorize embedding generation."]})]}),"\n",(0,s.jsx)(t.h2,{id:"see-also",children:"See also"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsxs)(t.a,{href:"/bundles-cassandra",children:[(0,s.jsx)(t.strong,{children:"Cassandra"})," bundle"]})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"/chat-with-rag",children:"Create a vector RAG chatbot"})}),"\n"]})]})}function v(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(b,{...e})}):b(e)}function w(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},7685:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/vector-store-document-ingestion-6157311fb4d16e7f944d55254f0cc0e2.png"},27027:(e,t,n)=>{n.d(t,{Ay:()=>d,RM:()=>i});var r=n(74848),s=n(28453),a=n(40619);const i=[];function o(e){const t={a:"a",admonition:"admonition",code:"code",em:"em",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.admonition,{type:"tip",children:(0,r.jsxs)(t.p,{children:["For a tutorial that uses vector data in a flow, see ",(0,r.jsx)(t.a,{href:"/chat-with-rag",children:"Create a vector RAG chatbot"}),"."]})}),"\n",(0,r.jsx)(t.p,{children:"The following example demonstrates how to use vector store components in flows alongside related components like embedding model and language model components.\nThese steps walk through important configuration details, functionality, and best practices for using these components effectively.\nThis is only one example; it isn't a prescriptive guide to all possible use cases or configurations."}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Create a flow with the ",(0,r.jsx)(t.strong,{children:"Vector Store RAG"})," template."]}),"\n",(0,r.jsxs)(t.p,{children:["This template has two subflows.\nThe ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow loads embeddings and content into a vector database, and the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow runs a vector search to retrieve relevant context based on a user's query."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Configure the database connection for both ",(0,r.jsxs)(t.a,{href:"/bundles-datastax#astra-db",children:[(0,r.jsx)(t.strong,{children:"Astra DB"})," components"]}),", or replace them with another pair of vector store components of your choice.\nMake sure the components connect to the same vector store, and that the component in the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow is able to run a similarity search."]}),"\n",(0,r.jsxs)(t.p,{children:["The parameters you set in each vector store component depend on the component's role in your flow.\nIn this example, the ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow ",(0,r.jsx)(t.em,{children:"writes"})," to the vector store, whereas the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow ",(0,r.jsx)(t.em,{children:"reads"})," from the vector store.\nTherefore, search-related parameters are only relevant to the ",(0,r.jsx)(t.strong,{children:"Vector Search"})," component in the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow."]}),"\n",(0,r.jsx)(t.p,{children:"For information about specific parameters, see the documentation for your chosen vector store component."}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:"To configure the embedding model, do one of the following:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Use an OpenAI model"}),": In both ",(0,r.jsx)(t.strong,{children:"OpenAI Embeddings"})," components, enter your OpenAI API key.\nYou can use the default model or select a different OpenAI embedding model."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Use another provider"}),": Replace the ",(0,r.jsx)(t.strong,{children:"OpenAI Embeddings"})," components with another pair of ",(0,r.jsx)(t.a,{href:"/components-embedding-models",children:"embedding model components"})," of your choice, and then configure the parameters and credentials accordingly."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Use Astra DB vectorize"}),": If you are using an Astra DB vector store that has a vectorize integration, you can remove both ",(0,r.jsx)(t.strong,{children:"OpenAI Embeddings"})," components.\nIf you do this, the vectorize integration automatically generates embeddings from the ",(0,r.jsx)(t.strong,{children:"Ingest Data"})," (in the ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow) and ",(0,r.jsx)(t.strong,{children:"Search Query"})," (in the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow)."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.admonition,{type:"tip",children:(0,r.jsx)(t.p,{children:"If your vector store already contains embeddings, make sure your embedding model components use the same model as your previous embeddings.\nMixing embedding models in the same vector store can produce inaccurate search results."})}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Recommended: In the ",(0,r.jsxs)(t.a,{href:"/split-text",children:[(0,r.jsx)(t.strong,{children:"Split Text"})," component"]}),", optimize the chunking settings for your embedding model.\nFor example, if your embedding model has a token limit of 512, then the ",(0,r.jsx)(t.strong,{children:"Chunk Size"})," parameter must not exceed that limit."]}),"\n",(0,r.jsxs)(t.p,{children:["Additionally, because the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow passes the chat input directly to the vector store component for vector search, make sure that your chat input string doesn't exceed your embedding model's limits.\nFor this example, you can enter a query that is within the limits; however, in a production environment, you might need to implement additional checks or preprocessing steps to ensure compliance.\nFor example, use additional components to prepare the chat input before running the vector search, or enforce chat input limits in your application code."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["In the ",(0,r.jsx)(t.strong,{children:"Language Model"})," component, enter your OpenAI API key, or select a different provider and model to use for the chat portion of the flow."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Run the ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow to populate your vector store.\nIn the ",(0,r.jsx)(t.strong,{children:"Read File"})," component, select one or more files, and then click ",(0,r.jsx)(a.A,{name:"Play","aria-hidden":"true"})," ",(0,r.jsx)(t.strong,{children:"Run component"})," on the vector store component in the ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow loads files from your local machine, chunks them, generates embeddings for the chunks, and then stores the chunks and their embeddings in the vector database."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Embedding data into a vector store",src:n(7685).A+"",width:"4000",height:"2512"})}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow is separate from the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow because you probably won't run it every time you use the chat.\nYou can run the ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow as needed to preload or update the data in your vector store.\nThen, your chat interactions only use the components that are necessary for chat."]}),"\n",(0,r.jsxs)(t.p,{children:["If your vector store already contains data that you want to use for vector search, then you don't need to run the ",(0,r.jsx)(t.strong,{children:"Load Data"})," subflow."]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["Open the ",(0,r.jsx)(t.strong,{children:"Playground"})," and start chatting to run the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow."]}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow generates an embedding from chat input, runs a vector search to retrieve similar content from your vector store, parses the search results into supplemental context for the LLM, and then uses the LLM to generate a natural language response to your query.\nThe LLM uses the vector search results along with its internal training data and tools, such as basic web search and datetime information, to produce the response."]}),"\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.img,{alt:"Retrieval from a vector store",src:n(67719).A+"",width:"4000",height:"1324"})}),"\n",(0,r.jsxs)(t.p,{children:["To avoid passing the entire block of raw search results to the LLM, the ",(0,r.jsx)(t.strong,{children:"Parser"})," component extracts ",(0,r.jsx)(t.code,{children:"text"})," strings from the search results ",(0,r.jsx)(t.code,{children:"Data"})," object, and then passes them to the ",(0,r.jsx)(t.strong,{children:"Prompt Template"})," component in ",(0,r.jsx)(t.code,{children:"Message"})," format.\nFrom there, the strings and other template content are compiled into natural language instructions for the LLM."]}),"\n",(0,r.jsxs)(t.p,{children:["You can use other components for this transformation, such as the ",(0,r.jsx)(t.strong,{children:"Data Operations"})," component, depending on how you want to use the search results."]}),"\n",(0,r.jsxs)(t.p,{children:["To view the raw search results, click ",(0,r.jsx)(a.A,{name:"TextSearch","aria-hidden":"true"})," ",(0,r.jsx)(t.strong,{children:"Inspect output"})," on the vector store component after running the ",(0,r.jsx)(t.strong,{children:"Retriever"})," subflow."]}),"\n"]}),"\n"]})]})}function d(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},31929:(e,t,n)=>{n.d(t,{Ay:()=>d,RM:()=>i});var r=n(74848),s=n(28453),a=n(40619);const i=[];function o(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)(a.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 d(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},36813:(e,t,n)=>{n.d(t,{Ay:()=>d,RM:()=>i});var r=n(74848),s=n(28453),a=n(40619);const i=[];function o(e){const t={a:"a",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["Legacy components are longer supported and can be removed in a future release.\nYou can continue to use them in existing flows, but it is recommended that you replace them with supported components as soon as possible.\nSuggested replacements are included in the ",(0,r.jsx)(t.strong,{children:"Legacy"})," banner on components in your flows.\nThey are also given in release notes and Langflow documentation whenever possible."]}),"\n",(0,r.jsxs)(t.p,{children:["If you aren't sure how to replace a legacy component, ",(0,r.jsx)(a.A,{name:"Search","aria-hidden":"true"})," ",(0,r.jsx)(t.strong,{children:"Search"})," for components by provider, service, or component name.\nThe component may have been deprecated in favor of a completely new component, a similar component, or a new version of the same component in a different category."]}),"\n",(0,r.jsxs)(t.p,{children:["If there is no obvious replacement, consider whether another component can be adapted to your use case.\nFor example, many ",(0,r.jsx)(a.A,{name:"Component","aria-hidden":"true"})," ",(0,r.jsx)(t.strong,{children:"Core components"})," provide generic functionality that can support multiple providers and use cases, such as the ",(0,r.jsxs)(t.a,{href:"/api-request",children:[(0,r.jsx)(t.strong,{children:"API Request"})," component"]}),"."]}),"\n",(0,r.jsxs)(t.p,{children:["If neither of these options are viable, you could use the legacy component's code to create your own custom component, or ",(0,r.jsx)(t.a,{href:"/contributing-github-issues",children:"start a discussion"})," about the legacy component."]}),"\n",(0,r.jsxs)(t.p,{children:["To discourage use of legacy components in new flows, these components are hidden by default.\nIn the visual editor, you can click ",(0,r.jsx)(a.A,{name:"SlidersHorizontal","aria-hidden":"true"})," ",(0,r.jsx)(t.strong,{children:"Component settings"})," to toggle the ",(0,r.jsx)(t.strong,{children:"Legacy"})," filter."]})]})}function d(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},42638:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/component-hcd-example-flow-b82057600ce5e9e4a0f7ea0a61dcbf7f.png"},50005:(e,t,n)=>{n.d(t,{Ay:()=>o,RM:()=>a});var r=n(74848),s=n(28453);const a=[];function i(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 o(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(i,{...e})}):i(e)}},67719:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/vector-store-retrieval-af7257d77ff0259ab1a0980641d464ce.png"},80223:(e,t,n)=>{n.d(t,{Ay:()=>o,RM:()=>a});var r=n(74848),s=n(28453);const a=[];function i(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 o(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(i,{...e})}):i(e)}},90465:(e,t,n)=>{n.d(t,{Ay:()=>o,RM:()=>a});var r=n(74848),s=n(28453);const a=[];function i(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 o(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(i,{...e})}):i(e)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.4d748ed7.js b/assets/js/runtime~main.d00c9a2d.js similarity index 98% rename from assets/js/runtime~main.4d748ed7.js rename to assets/js/runtime~main.d00c9a2d.js index 24305bc0aa..2af016ab87 100644 --- a/assets/js/runtime~main.4d748ed7.js +++ b/assets/js/runtime~main.d00c9a2d.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,d,f,b,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=c,r.c=t,e=[],r.O=(a,d,f,b)=>{if(!d){var c=1/0;for(i=0;i=b)&&Object.keys(r.O).every(e=>r.O[e](d[o]))?d.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[d,f,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};a=a||[null,d({}),d([]),d(d)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach(a=>c[a]=()=>e[a]);return c.default=()=>e,r.d(b,c),b},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((a,d)=>(r.f[d](e,a),a),[])),r.u=e=>"assets/js/"+({15:"d803fa53",30:"db8c087e",38:"a99a45c9",44:"e3f369d5",78:"b768a3a5",93:"a3702f61",126:"ae70dfbf",129:"dfa3dc90",253:"bb45d4f9",351:"b9acb8d9",375:"3d81f1cf",446:"a4232cf8",534:"76e36fb0",596:"c2e0ed62",598:"db4f3bbd",600:"ee87c775",681:"ffa0f8b1",750:"33b5ee95",879:"8bee5443",883:"1dfb8d43",889:"08b309e9",956:"03735ec1",957:"c141421f",1006:"47e58a89",1151:"890279ba",1162:"f7e6b9d6",1193:"444a6da6",1303:"41d45d82",1308:"ec030ab7",1345:"fe6d5b4f",1408:"2fc7e024",1446:"c78349fc",1490:"0f761898",1567:"22dd74f7",1703:"ff8bad6c",1861:"8ad67c3b",1876:"5c3b537a",1895:"d375ca1d",1966:"b1582da4",2076:"common",2102:"755d162a",2116:"0f1bef30",2138:"1a4e3797",2272:"ca5faf5d",2278:"c4280da9",2348:"f2da9399",2360:"017d425f",2394:"c2ea283c",2423:"19bcb67f",2457:"46abd5bb",2460:"954b19af",2469:"cd086441",2472:"62f97fbe",2475:"1ab69cbd",2565:"622fd833",2651:"8cd0650d",2741:"43ad9ba4",2752:"e14655eb",2888:"32270e71",2909:"144a43f5",2969:"f0ad3fbb",2990:"1d50b418",3035:"87b7bbd6",3038:"6df123cd",3140:"1a29c454",3147:"c83c70df",3164:"67f2dc6c",3240:"b079b393",3247:"f0b67137",3263:"730da84e",3284:"6398c398",3345:"040305fb",3353:"2b4d41d7",3361:"8f633f11",3368:"efa0f9ee",3387:"3d67876e",3468:"c76bd485",3500:"c3c63498",3536:"2eb731bc",3683:"5a0b74d9",4036:"fbcfc90d",4085:"cb17b4e0",4090:"a8ca941b",4173:"d51059db",4263:"9a5e6f6b",4314:"f6a246db",4341:"e1a0f423",4356:"7b864b08",4384:"622bdc6f",4474:"3db73d6f",4573:"baacc2a1",4612:"6a9eca1a",4614:"e55b8e98",4644:"d3e886ab",4876:"44691977",4907:"86116998",4919:"ce43de4b",4995:"62266e9d",5048:"3c440e04",5110:"e9fe1d10",5144:"944c5f91",5200:"ff7f32ba",5217:"fb0a7a3f",5270:"99931d31",5333:"70909872",5343:"1b10d5ba",5397:"eba86ea4",5412:"a6d50436",5660:"1b208f60",5663:"b1379b2b",5739:"69079906",5742:"aba21aa0",5757:"ad42ff54",5838:"bbb8ec1d",5903:"69d616f2",5985:"e3536031",6108:"2fed9fb3",6224:"ef9aa223",6256:"6888b60e",6289:"45e5859c",6311:"cce672fb",6329:"a7b545c5",6459:"290c78e6",6513:"f13693f0",6538:"719cba95",6559:"7431813e",6601:"81bb6a5c",6801:"acefda8b",6839:"80866714",6999:"d5ec984b",7098:"a7bd4aaa",7118:"7996108c",7243:"5d9d4350",7356:"2ea623f2",7484:"ad01e028",7498:"e4400415",7502:"1a547ad8",7512:"4c09a7b3",7567:"4545d55b",7586:"17856424",7705:"2b91b6ca",7720:"3bfbe7c9",7807:"1a8a0a64",7824:"2b56b65e",7829:"7c27dc91",7859:"593d9d00",7902:"619c7267",7964:"ff35961a",7968:"9b0af131",8090:"6e85978c",8240:"0102a83b",8267:"02f8077b",8268:"a4b6c971",8269:"c7f91cbe",8294:"f2bedfce",8336:"e7fd9095",8392:"20177945",8401:"17896441",8508:"10dd1586",8571:"da1ad91e",8593:"56350599",8607:"681e5335",8611:"0c23d011",8625:"3a9e0e6c",8649:"7de42fc9",8702:"42962acd",8750:"8a484c94",8765:"1a2eaade",8822:"555ae514",8862:"e87b52ac",8963:"56c23a02",8990:"5f1a63c6",9033:"9f55b2fc",9048:"a94703ab",9213:"62d1268c",9227:"7e40e6b3",9264:"c7f32161",9315:"16faf8bf",9331:"ffcd190c",9363:"f3312674",9459:"97254d1d",9482:"a9c1003f",9522:"85dc2a2b",9610:"453ae64a",9640:"3b25a2ae",9647:"5e95c892",9674:"feac1fba",9712:"d8c8efb9",9758:"439d880a",9763:"aece522a",9781:"b796be74",9897:"f0eeb72e",9976:"230d5fdc",9986:"d1f3cfe5"}[e]||e)+"."+{15:"d4103b44",30:"5e412f6d",38:"5c74e1d6",44:"6310a01a",78:"670c02e8",93:"622a1f88",126:"d3c21ad3",129:"a3d7c438",253:"35cb6896",351:"2a1a8be1",375:"44466a25",416:"bba44855",446:"720c59c5",534:"f4a56aad",596:"471fd207",598:"5b1053df",600:"bc28b1d0",681:"26c49a71",750:"4068db8f",879:"655e0843",883:"d44a18cb",889:"df4f3b30",956:"9d5f0507",957:"9350e3d5",1006:"61347995",1151:"4db235b1",1162:"12f31dbe",1193:"d08634fc",1303:"cb77a67a",1308:"19ab43fe",1345:"dd2b7bcf",1408:"5cdd44e5",1446:"bc1d8376",1490:"e5aee754",1567:"aa1955a9",1703:"bb99be98",1861:"f210ffea",1876:"198d048f",1895:"47c5ca9a",1966:"26cfa313",2076:"a147e1aa",2102:"e04c4c2c",2116:"66ba19b7",2138:"b9e35d57",2237:"6bbae924",2272:"0cf63219",2278:"4b2cb97f",2348:"4cb98c8a",2360:"5e727bab",2394:"2541a8c1",2423:"9a704566",2457:"a5d2327d",2460:"b5427fc6",2469:"c18f6bcb",2472:"9b44eed4",2475:"95e18472",2565:"26731c74",2651:"92578320",2693:"380feae7",2741:"1c73b360",2752:"05601a76",2888:"603c895a",2909:"66db384e",2969:"51e6616d",2990:"244599e4",3035:"930378b5",3038:"746b5104",3140:"80d4a164",3147:"b2a4407c",3164:"afb9b764",3240:"759d13b9",3247:"d5683b4f",3263:"da23b2bf",3284:"46083cba",3345:"cd817a66",3353:"f158ad34",3361:"e6042c27",3368:"8c3ea529",3387:"1e3dfa97",3468:"3ae40933",3500:"9efdd30b",3536:"36c717d9",3683:"b0f81b78",4036:"3ba6e711",4085:"e845c52f",4090:"dfdad261",4115:"d645fc23",4173:"bacef605",4263:"bd0de960",4314:"2202791a",4341:"44bf2a73",4356:"450422c1",4384:"1ef5e03e",4474:"2967ccdf",4573:"04372438",4612:"20606c9d",4614:"b129eb58",4644:"a86e3992",4754:"78f469df",4876:"78d44a41",4907:"5ddf17c6",4919:"7a5f58d3",4995:"ece12ff2",5048:"b43aa9f1",5110:"1cd06410",5144:"d825c9b4",5200:"5de1608d",5217:"f332d0d1",5270:"3123c8e7",5333:"d6bdb628",5343:"5fd32b67",5397:"ba97f892",5412:"c8c48fd3",5660:"57b46a92",5663:"8088b191",5739:"2a563c92",5742:"8cdbe811",5757:"9de749fd",5838:"83e91f02",5903:"821f3999",5985:"aafe6790",6108:"365e2569",6224:"af99e84a",6256:"d9ae4c13",6289:"f6e7c945",6311:"af719805",6329:"40158bd3",6459:"2463c0f5",6513:"13baf1e4",6538:"d571e06d",6559:"c4af7bf3",6601:"66f73f50",6801:"6897bd64",6839:"207cc86d",6999:"64627d58",7098:"e566890f",7118:"13f2c6a7",7243:"930b5bd6",7356:"0b394330",7484:"002bb639",7498:"97257edb",7502:"f4acd00b",7512:"27e1103c",7567:"0a1c17c1",7586:"05bd2bee",7705:"1dc17cbb",7720:"9691b150",7807:"9ed7d10f",7824:"48ec5133",7829:"bbdb61d4",7859:"acd80658",7902:"b2c19227",7964:"7ef150a6",7968:"8658e795",8090:"af4cfb50",8240:"d4f52412",8267:"dbfe5354",8268:"7ed10065",8269:"2921c476",8294:"e344768e",8336:"0e5f0157",8392:"0768ab3a",8401:"9b189e06",8508:"d977358d",8571:"c0329697",8593:"42a61cdd",8607:"b96fee6d",8611:"870b467b",8625:"8df7c8bf",8649:"540f0784",8702:"c8d4fac3",8750:"56e811df",8765:"e2c3e49a",8822:"77921987",8862:"2272a76a",8913:"fd271a57",8963:"fca39a90",8990:"1753fc06",9033:"e3a15f6c",9048:"fbe061ed",9213:"7074cfcc",9227:"b79ed718",9264:"a73bd813",9315:"c9a9899a",9331:"fb999fe4",9363:"66313398",9459:"bcd99a3a",9482:"32df5989",9522:"cc51d0fb",9610:"f3b4d314",9640:"8da65214",9647:"a3e58221",9674:"dec60a8d",9712:"f5eaa1ca",9758:"bf4164d1",9763:"05004e42",9781:"fb5ede14",9897:"8be94bd0",9976:"68f5d90c",9986:"87289072"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},b="langflow-docs:",r.l=(e,a,d,c)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach(e=>e(d)),a)return a(d)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={17856424:"7586",17896441:"8401",20177945:"8392",44691977:"4876",56350599:"8593",69079906:"5739",70909872:"5333",80866714:"6839",86116998:"4907",d803fa53:"15",db8c087e:"30",a99a45c9:"38",e3f369d5:"44",b768a3a5:"78",a3702f61:"93",ae70dfbf:"126",dfa3dc90:"129",bb45d4f9:"253",b9acb8d9:"351","3d81f1cf":"375",a4232cf8:"446","76e36fb0":"534",c2e0ed62:"596",db4f3bbd:"598",ee87c775:"600",ffa0f8b1:"681","33b5ee95":"750","8bee5443":"879","1dfb8d43":"883","08b309e9":"889","03735ec1":"956",c141421f:"957","47e58a89":"1006","890279ba":"1151",f7e6b9d6:"1162","444a6da6":"1193","41d45d82":"1303",ec030ab7:"1308",fe6d5b4f:"1345","2fc7e024":"1408",c78349fc:"1446","0f761898":"1490","22dd74f7":"1567",ff8bad6c:"1703","8ad67c3b":"1861","5c3b537a":"1876",d375ca1d:"1895",b1582da4:"1966",common:"2076","755d162a":"2102","0f1bef30":"2116","1a4e3797":"2138",ca5faf5d:"2272",c4280da9:"2278",f2da9399:"2348","017d425f":"2360",c2ea283c:"2394","19bcb67f":"2423","46abd5bb":"2457","954b19af":"2460",cd086441:"2469","62f97fbe":"2472","1ab69cbd":"2475","622fd833":"2565","8cd0650d":"2651","43ad9ba4":"2741",e14655eb:"2752","32270e71":"2888","144a43f5":"2909",f0ad3fbb:"2969","1d50b418":"2990","87b7bbd6":"3035","6df123cd":"3038","1a29c454":"3140",c83c70df:"3147","67f2dc6c":"3164",b079b393:"3240",f0b67137:"3247","730da84e":"3263","6398c398":"3284","040305fb":"3345","2b4d41d7":"3353","8f633f11":"3361",efa0f9ee:"3368","3d67876e":"3387",c76bd485:"3468",c3c63498:"3500","2eb731bc":"3536","5a0b74d9":"3683",fbcfc90d:"4036",cb17b4e0:"4085",a8ca941b:"4090",d51059db:"4173","9a5e6f6b":"4263",f6a246db:"4314",e1a0f423:"4341","7b864b08":"4356","622bdc6f":"4384","3db73d6f":"4474",baacc2a1:"4573","6a9eca1a":"4612",e55b8e98:"4614",d3e886ab:"4644",ce43de4b:"4919","62266e9d":"4995","3c440e04":"5048",e9fe1d10:"5110","944c5f91":"5144",ff7f32ba:"5200",fb0a7a3f:"5217","99931d31":"5270","1b10d5ba":"5343",eba86ea4:"5397",a6d50436:"5412","1b208f60":"5660",b1379b2b:"5663",aba21aa0:"5742",ad42ff54:"5757",bbb8ec1d:"5838","69d616f2":"5903",e3536031:"5985","2fed9fb3":"6108",ef9aa223:"6224","6888b60e":"6256","45e5859c":"6289",cce672fb:"6311",a7b545c5:"6329","290c78e6":"6459",f13693f0:"6513","719cba95":"6538","7431813e":"6559","81bb6a5c":"6601",acefda8b:"6801",d5ec984b:"6999",a7bd4aaa:"7098","7996108c":"7118","5d9d4350":"7243","2ea623f2":"7356",ad01e028:"7484",e4400415:"7498","1a547ad8":"7502","4c09a7b3":"7512","4545d55b":"7567","2b91b6ca":"7705","3bfbe7c9":"7720","1a8a0a64":"7807","2b56b65e":"7824","7c27dc91":"7829","593d9d00":"7859","619c7267":"7902",ff35961a:"7964","9b0af131":"7968","6e85978c":"8090","0102a83b":"8240","02f8077b":"8267",a4b6c971:"8268",c7f91cbe:"8269",f2bedfce:"8294",e7fd9095:"8336","10dd1586":"8508",da1ad91e:"8571","681e5335":"8607","0c23d011":"8611","3a9e0e6c":"8625","7de42fc9":"8649","42962acd":"8702","8a484c94":"8750","1a2eaade":"8765","555ae514":"8822",e87b52ac:"8862","56c23a02":"8963","5f1a63c6":"8990","9f55b2fc":"9033",a94703ab:"9048","62d1268c":"9213","7e40e6b3":"9227",c7f32161:"9264","16faf8bf":"9315",ffcd190c:"9331",f3312674:"9363","97254d1d":"9459",a9c1003f:"9482","85dc2a2b":"9522","453ae64a":"9610","3b25a2ae":"9640","5e95c892":"9647",feac1fba:"9674",d8c8efb9:"9712","439d880a":"9758",aece522a:"9763",b796be74:"9781",f0eeb72e:"9897","230d5fdc":"9976",d1f3cfe5:"9986"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,d)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var b=new Promise((d,b)=>f=e[a]=[d,b]);d.push(f[2]=b);var c=r.p+r.u(a),t=new Error;r.l(c,d=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=d&&("load"===d.type?"missing":d.type),c=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,f[1](t)}},"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var f,b,[c,t,o]=d,n=0;if(c.some(a=>0!==e[a])){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(d);n{"use strict";var e,a,d,f,b,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(d.exports,d,d.exports,r),d.loaded=!0,d.exports}r.m=c,r.c=t,e=[],r.O=(a,d,f,b)=>{if(!d){var c=1/0;for(i=0;i=b)&&Object.keys(r.O).every(e=>r.O[e](d[o]))?d.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[d,f,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};a=a||[null,d({}),d([]),d(d)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach(a=>c[a]=()=>e[a]);return c.default=()=>e,r.d(b,c),b},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((a,d)=>(r.f[d](e,a),a),[])),r.u=e=>"assets/js/"+({15:"d803fa53",30:"db8c087e",38:"a99a45c9",44:"e3f369d5",78:"b768a3a5",93:"a3702f61",126:"ae70dfbf",129:"dfa3dc90",253:"bb45d4f9",351:"b9acb8d9",375:"3d81f1cf",446:"a4232cf8",534:"76e36fb0",596:"c2e0ed62",598:"db4f3bbd",600:"ee87c775",681:"ffa0f8b1",750:"33b5ee95",879:"8bee5443",883:"1dfb8d43",889:"08b309e9",956:"03735ec1",957:"c141421f",1006:"47e58a89",1151:"890279ba",1162:"f7e6b9d6",1193:"444a6da6",1303:"41d45d82",1308:"ec030ab7",1345:"fe6d5b4f",1408:"2fc7e024",1446:"c78349fc",1490:"0f761898",1567:"22dd74f7",1703:"ff8bad6c",1861:"8ad67c3b",1876:"5c3b537a",1895:"d375ca1d",1966:"b1582da4",2076:"common",2102:"755d162a",2116:"0f1bef30",2138:"1a4e3797",2272:"ca5faf5d",2278:"c4280da9",2348:"f2da9399",2360:"017d425f",2394:"c2ea283c",2423:"19bcb67f",2457:"46abd5bb",2460:"954b19af",2469:"cd086441",2472:"62f97fbe",2475:"1ab69cbd",2565:"622fd833",2651:"8cd0650d",2741:"43ad9ba4",2752:"e14655eb",2888:"32270e71",2909:"144a43f5",2969:"f0ad3fbb",2990:"1d50b418",3035:"87b7bbd6",3038:"6df123cd",3140:"1a29c454",3147:"c83c70df",3164:"67f2dc6c",3240:"b079b393",3247:"f0b67137",3263:"730da84e",3284:"6398c398",3345:"040305fb",3353:"2b4d41d7",3361:"8f633f11",3368:"efa0f9ee",3387:"3d67876e",3468:"c76bd485",3500:"c3c63498",3536:"2eb731bc",3683:"5a0b74d9",4036:"fbcfc90d",4085:"cb17b4e0",4090:"a8ca941b",4173:"d51059db",4263:"9a5e6f6b",4314:"f6a246db",4341:"e1a0f423",4356:"7b864b08",4384:"622bdc6f",4474:"3db73d6f",4573:"baacc2a1",4612:"6a9eca1a",4614:"e55b8e98",4644:"d3e886ab",4876:"44691977",4907:"86116998",4919:"ce43de4b",4995:"62266e9d",5048:"3c440e04",5110:"e9fe1d10",5144:"944c5f91",5200:"ff7f32ba",5217:"fb0a7a3f",5270:"99931d31",5333:"70909872",5343:"1b10d5ba",5397:"eba86ea4",5412:"a6d50436",5660:"1b208f60",5663:"b1379b2b",5739:"69079906",5742:"aba21aa0",5757:"ad42ff54",5838:"bbb8ec1d",5903:"69d616f2",5985:"e3536031",6108:"2fed9fb3",6224:"ef9aa223",6256:"6888b60e",6289:"45e5859c",6311:"cce672fb",6329:"a7b545c5",6459:"290c78e6",6513:"f13693f0",6538:"719cba95",6559:"7431813e",6601:"81bb6a5c",6801:"acefda8b",6839:"80866714",6999:"d5ec984b",7098:"a7bd4aaa",7118:"7996108c",7243:"5d9d4350",7356:"2ea623f2",7484:"ad01e028",7498:"e4400415",7502:"1a547ad8",7512:"4c09a7b3",7567:"4545d55b",7586:"17856424",7705:"2b91b6ca",7720:"3bfbe7c9",7807:"1a8a0a64",7824:"2b56b65e",7829:"7c27dc91",7859:"593d9d00",7902:"619c7267",7964:"ff35961a",7968:"9b0af131",8090:"6e85978c",8240:"0102a83b",8267:"02f8077b",8268:"a4b6c971",8269:"c7f91cbe",8294:"f2bedfce",8336:"e7fd9095",8392:"20177945",8401:"17896441",8508:"10dd1586",8571:"da1ad91e",8593:"56350599",8607:"681e5335",8611:"0c23d011",8625:"3a9e0e6c",8649:"7de42fc9",8702:"42962acd",8750:"8a484c94",8765:"1a2eaade",8822:"555ae514",8862:"e87b52ac",8963:"56c23a02",8990:"5f1a63c6",9033:"9f55b2fc",9048:"a94703ab",9213:"62d1268c",9227:"7e40e6b3",9264:"c7f32161",9315:"16faf8bf",9331:"ffcd190c",9363:"f3312674",9459:"97254d1d",9482:"a9c1003f",9522:"85dc2a2b",9610:"453ae64a",9640:"3b25a2ae",9647:"5e95c892",9674:"feac1fba",9712:"d8c8efb9",9758:"439d880a",9763:"aece522a",9781:"b796be74",9897:"f0eeb72e",9976:"230d5fdc",9986:"d1f3cfe5"}[e]||e)+"."+{15:"d4103b44",30:"5e412f6d",38:"5c74e1d6",44:"6310a01a",78:"670c02e8",93:"622a1f88",126:"d3c21ad3",129:"a3d7c438",253:"35cb6896",351:"2a1a8be1",375:"44466a25",416:"bba44855",446:"720c59c5",534:"f4a56aad",596:"471fd207",598:"5b1053df",600:"bc28b1d0",681:"26c49a71",750:"4068db8f",879:"655e0843",883:"d44a18cb",889:"df4f3b30",956:"9d5f0507",957:"9350e3d5",1006:"61347995",1151:"4db235b1",1162:"12f31dbe",1193:"d08634fc",1303:"cb77a67a",1308:"19ab43fe",1345:"dd2b7bcf",1408:"5cdd44e5",1446:"bc1d8376",1490:"e5aee754",1567:"aa1955a9",1703:"bb99be98",1861:"f210ffea",1876:"198d048f",1895:"47c5ca9a",1966:"26cfa313",2076:"a147e1aa",2102:"e04c4c2c",2116:"66ba19b7",2138:"b9e35d57",2237:"6bbae924",2272:"0cf63219",2278:"4b2cb97f",2348:"4cb98c8a",2360:"5e727bab",2394:"2541a8c1",2423:"9a704566",2457:"a5d2327d",2460:"b5427fc6",2469:"c18f6bcb",2472:"9b44eed4",2475:"95e18472",2565:"26731c74",2651:"92578320",2693:"380feae7",2741:"1c73b360",2752:"05601a76",2888:"603c895a",2909:"66db384e",2969:"51e6616d",2990:"244599e4",3035:"930378b5",3038:"746b5104",3140:"80d4a164",3147:"b2a4407c",3164:"afb9b764",3240:"759d13b9",3247:"d5683b4f",3263:"da23b2bf",3284:"46083cba",3345:"cd817a66",3353:"f158ad34",3361:"e6042c27",3368:"8c3ea529",3387:"1e3dfa97",3468:"3ae40933",3500:"9efdd30b",3536:"36c717d9",3683:"b0f81b78",4036:"3ba6e711",4085:"e845c52f",4090:"dfdad261",4115:"d645fc23",4173:"bacef605",4263:"bd0de960",4314:"2202791a",4341:"44bf2a73",4356:"450422c1",4384:"1ef5e03e",4474:"2967ccdf",4573:"04372438",4612:"20606c9d",4614:"b129eb58",4644:"a86e3992",4754:"78f469df",4876:"78d44a41",4907:"5ddf17c6",4919:"7a5f58d3",4995:"ece12ff2",5048:"b43aa9f1",5110:"1cd06410",5144:"d825c9b4",5200:"5de1608d",5217:"f332d0d1",5270:"3123c8e7",5333:"40e07bb0",5343:"5fd32b67",5397:"ba97f892",5412:"c8c48fd3",5660:"57b46a92",5663:"8088b191",5739:"2a563c92",5742:"8cdbe811",5757:"9de749fd",5838:"83e91f02",5903:"821f3999",5985:"aafe6790",6108:"365e2569",6224:"fba9a342",6256:"d9ae4c13",6289:"f6e7c945",6311:"af719805",6329:"40158bd3",6459:"2463c0f5",6513:"13baf1e4",6538:"d571e06d",6559:"c4af7bf3",6601:"66f73f50",6801:"6897bd64",6839:"207cc86d",6999:"64627d58",7098:"e566890f",7118:"13f2c6a7",7243:"930b5bd6",7356:"0b394330",7484:"002bb639",7498:"97257edb",7502:"f4acd00b",7512:"27e1103c",7567:"0a1c17c1",7586:"05bd2bee",7705:"1dc17cbb",7720:"9691b150",7807:"9ed7d10f",7824:"48ec5133",7829:"bbdb61d4",7859:"acd80658",7902:"b2c19227",7964:"7ef150a6",7968:"8658e795",8090:"af4cfb50",8240:"d4f52412",8267:"dbfe5354",8268:"7ed10065",8269:"2921c476",8294:"e344768e",8336:"0e5f0157",8392:"0768ab3a",8401:"9b189e06",8508:"d977358d",8571:"c0329697",8593:"42a61cdd",8607:"b96fee6d",8611:"870b467b",8625:"8df7c8bf",8649:"540f0784",8702:"c8d4fac3",8750:"56e811df",8765:"e2c3e49a",8822:"77921987",8862:"2272a76a",8913:"fd271a57",8963:"fca39a90",8990:"1753fc06",9033:"e3a15f6c",9048:"fbe061ed",9213:"7074cfcc",9227:"b79ed718",9264:"a73bd813",9315:"c9a9899a",9331:"fb999fe4",9363:"66313398",9459:"bcd99a3a",9482:"32df5989",9522:"cc51d0fb",9610:"f3b4d314",9640:"8da65214",9647:"a3e58221",9674:"dec60a8d",9712:"f5eaa1ca",9758:"bf4164d1",9763:"05004e42",9781:"fb5ede14",9897:"8be94bd0",9976:"68f5d90c",9986:"87289072"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},b="langflow-docs:",r.l=(e,a,d,c)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach(e=>e(d)),a)return a(d)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={17856424:"7586",17896441:"8401",20177945:"8392",44691977:"4876",56350599:"8593",69079906:"5739",70909872:"5333",80866714:"6839",86116998:"4907",d803fa53:"15",db8c087e:"30",a99a45c9:"38",e3f369d5:"44",b768a3a5:"78",a3702f61:"93",ae70dfbf:"126",dfa3dc90:"129",bb45d4f9:"253",b9acb8d9:"351","3d81f1cf":"375",a4232cf8:"446","76e36fb0":"534",c2e0ed62:"596",db4f3bbd:"598",ee87c775:"600",ffa0f8b1:"681","33b5ee95":"750","8bee5443":"879","1dfb8d43":"883","08b309e9":"889","03735ec1":"956",c141421f:"957","47e58a89":"1006","890279ba":"1151",f7e6b9d6:"1162","444a6da6":"1193","41d45d82":"1303",ec030ab7:"1308",fe6d5b4f:"1345","2fc7e024":"1408",c78349fc:"1446","0f761898":"1490","22dd74f7":"1567",ff8bad6c:"1703","8ad67c3b":"1861","5c3b537a":"1876",d375ca1d:"1895",b1582da4:"1966",common:"2076","755d162a":"2102","0f1bef30":"2116","1a4e3797":"2138",ca5faf5d:"2272",c4280da9:"2278",f2da9399:"2348","017d425f":"2360",c2ea283c:"2394","19bcb67f":"2423","46abd5bb":"2457","954b19af":"2460",cd086441:"2469","62f97fbe":"2472","1ab69cbd":"2475","622fd833":"2565","8cd0650d":"2651","43ad9ba4":"2741",e14655eb:"2752","32270e71":"2888","144a43f5":"2909",f0ad3fbb:"2969","1d50b418":"2990","87b7bbd6":"3035","6df123cd":"3038","1a29c454":"3140",c83c70df:"3147","67f2dc6c":"3164",b079b393:"3240",f0b67137:"3247","730da84e":"3263","6398c398":"3284","040305fb":"3345","2b4d41d7":"3353","8f633f11":"3361",efa0f9ee:"3368","3d67876e":"3387",c76bd485:"3468",c3c63498:"3500","2eb731bc":"3536","5a0b74d9":"3683",fbcfc90d:"4036",cb17b4e0:"4085",a8ca941b:"4090",d51059db:"4173","9a5e6f6b":"4263",f6a246db:"4314",e1a0f423:"4341","7b864b08":"4356","622bdc6f":"4384","3db73d6f":"4474",baacc2a1:"4573","6a9eca1a":"4612",e55b8e98:"4614",d3e886ab:"4644",ce43de4b:"4919","62266e9d":"4995","3c440e04":"5048",e9fe1d10:"5110","944c5f91":"5144",ff7f32ba:"5200",fb0a7a3f:"5217","99931d31":"5270","1b10d5ba":"5343",eba86ea4:"5397",a6d50436:"5412","1b208f60":"5660",b1379b2b:"5663",aba21aa0:"5742",ad42ff54:"5757",bbb8ec1d:"5838","69d616f2":"5903",e3536031:"5985","2fed9fb3":"6108",ef9aa223:"6224","6888b60e":"6256","45e5859c":"6289",cce672fb:"6311",a7b545c5:"6329","290c78e6":"6459",f13693f0:"6513","719cba95":"6538","7431813e":"6559","81bb6a5c":"6601",acefda8b:"6801",d5ec984b:"6999",a7bd4aaa:"7098","7996108c":"7118","5d9d4350":"7243","2ea623f2":"7356",ad01e028:"7484",e4400415:"7498","1a547ad8":"7502","4c09a7b3":"7512","4545d55b":"7567","2b91b6ca":"7705","3bfbe7c9":"7720","1a8a0a64":"7807","2b56b65e":"7824","7c27dc91":"7829","593d9d00":"7859","619c7267":"7902",ff35961a:"7964","9b0af131":"7968","6e85978c":"8090","0102a83b":"8240","02f8077b":"8267",a4b6c971:"8268",c7f91cbe:"8269",f2bedfce:"8294",e7fd9095:"8336","10dd1586":"8508",da1ad91e:"8571","681e5335":"8607","0c23d011":"8611","3a9e0e6c":"8625","7de42fc9":"8649","42962acd":"8702","8a484c94":"8750","1a2eaade":"8765","555ae514":"8822",e87b52ac:"8862","56c23a02":"8963","5f1a63c6":"8990","9f55b2fc":"9033",a94703ab:"9048","62d1268c":"9213","7e40e6b3":"9227",c7f32161:"9264","16faf8bf":"9315",ffcd190c:"9331",f3312674:"9363","97254d1d":"9459",a9c1003f:"9482","85dc2a2b":"9522","453ae64a":"9610","3b25a2ae":"9640","5e95c892":"9647",feac1fba:"9674",d8c8efb9:"9712","439d880a":"9758",aece522a:"9763",b796be74:"9781",f0eeb72e:"9897","230d5fdc":"9976",d1f3cfe5:"9986"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,d)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var b=new Promise((d,b)=>f=e[a]=[d,b]);d.push(f[2]=b);var c=r.p+r.u(a),t=new Error;r.l(c,d=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var b=d&&("load"===d.type?"missing":d.type),c=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,f[1](t)}},"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var f,b,[c,t,o]=d,n=0;if(c.some(a=>0!==e[a])){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(d);n - + diff --git a/bundles-aiml.html b/bundles-aiml.html index 753f9578e0..2f2ba92430 100644 --- a/bundles-aiml.html +++ b/bundles-aiml.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-altk.html b/bundles-altk.html index 2a3da19106..6963ee2b6e 100644 --- a/bundles-altk.html +++ b/bundles-altk.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-amazon.html b/bundles-amazon.html index 54c6e71678..4e3927b342 100644 --- a/bundles-amazon.html +++ b/bundles-amazon.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-anthropic.html b/bundles-anthropic.html index 53726db6f1..0a3be0fada 100644 --- a/bundles-anthropic.html +++ b/bundles-anthropic.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-apify.html b/bundles-apify.html index 0ae4775aa1..7f84532926 100644 --- a/bundles-apify.html +++ b/bundles-apify.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-arxiv.html b/bundles-arxiv.html index f83ad1a19f..9aa03269b1 100644 --- a/bundles-arxiv.html +++ b/bundles-arxiv.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-assemblyai.html b/bundles-assemblyai.html index da0d3fa2f1..eadea7a653 100644 --- a/bundles-assemblyai.html +++ b/bundles-assemblyai.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-azure.html b/bundles-azure.html index dfe85dc270..61d1510c87 100644 --- a/bundles-azure.html +++ b/bundles-azure.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-baidu.html b/bundles-baidu.html index 7c82acceac..0a28787567 100644 --- a/bundles-baidu.html +++ b/bundles-baidu.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-bing.html b/bundles-bing.html index 777fecc6ba..1ec05209c2 100644 --- a/bundles-bing.html +++ b/bundles-bing.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-cassandra.html b/bundles-cassandra.html index 7086e8106a..ff344e59d7 100644 --- a/bundles-cassandra.html +++ b/bundles-cassandra.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-chroma.html b/bundles-chroma.html index bf38b78fd6..d495e71836 100644 --- a/bundles-chroma.html +++ b/bundles-chroma.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-cleanlab.html b/bundles-cleanlab.html index 39b7cdb62b..07d4f36bb6 100644 --- a/bundles-cleanlab.html +++ b/bundles-cleanlab.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-clickhouse.html b/bundles-clickhouse.html index 70070aa5d9..08f4249128 100644 --- a/bundles-clickhouse.html +++ b/bundles-clickhouse.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-cloudflare.html b/bundles-cloudflare.html index 3ec8a7861f..c34a868d74 100644 --- a/bundles-cloudflare.html +++ b/bundles-cloudflare.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-cohere.html b/bundles-cohere.html index 6f4dfa14be..e5b77c24a3 100644 --- a/bundles-cohere.html +++ b/bundles-cohere.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-cometapi.html b/bundles-cometapi.html index c120f1be83..6e438bc9c7 100644 --- a/bundles-cometapi.html +++ b/bundles-cometapi.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-composio.html b/bundles-composio.html index 4caa328e52..92993eccb6 100644 --- a/bundles-composio.html +++ b/bundles-composio.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-couchbase.html b/bundles-couchbase.html index e54e301484..0f729663d3 100644 --- a/bundles-couchbase.html +++ b/bundles-couchbase.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-cuga.html b/bundles-cuga.html index 9f34b7cb59..2c1be6370a 100644 --- a/bundles-cuga.html +++ b/bundles-cuga.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-datastax.html b/bundles-datastax.html index 7e6fcb606e..c2820c02f5 100644 --- a/bundles-datastax.html +++ b/bundles-datastax.html @@ -24,7 +24,7 @@ - + @@ -69,7 +69,7 @@ You can modify all parameters through the Astra DB Serverless documentation or inspect component code.

-
NameDisplay NameInfo
tokenAstra DB Application TokenInput parameter. An Astra application token with permission to access your vector database. Once the connection is verified, additional fields are populated with your existing databases and collections. If you want to create a database through this component, the application token must have Organization Administrator permissions.
environmentEnvironmentInput parameter. The environment for the Astra DB API endpoint. Typically always prod.
database_nameDatabaseInput parameter. The name of the database that you want this component to connect to. Or, you can select New Database to create a new database, and then wait for the database to initialize before setting the remaining parameters.
endpointAstra DB API EndpointInput parameter. For multi-region databases, select the API endpoint for your nearest datacenter. To get the list of regions for a multi-region database, see List database regions. This field is automatically populated when you select a database, and it defaults to the primary region's endpoint.
keyspaceKeyspaceInput parameter. The keyspace in your database that contains the collection specified in collection_name. Default: default_keyspace.
collection_nameCollectionInput parameter. The name of the collection that you want to use with this flow. Or, select New Collection to create a new collection with limited configuration options. To ensure your collection is configured with the correct embedding provider and search capabilities, it is recommended to create the collection in the Astra Portal or with the Data API before configuring this component. For more information, see Manage collections in Astra DB Serverless.
embedding_modelEmbedding ModelInput parameter. Attach an embedding model component to generate embeddings. Only available if the specified collection doesn't have a vectorize integration. If a vectorize integration exists, the component automatically uses the collection's integrated model.
ingest_dataIngest DataInput parameter. The documents to load into the specified collection. Accepts Data or DataFrame input.
search_querySearch QueryInput parameter. The query string for vector search.
cache_vector_storeCache Vector StoreInput parameter. Whether to cache the vector store in Langflow memory for faster reads. Default: Enabled (true).
search_methodSearch MethodInput parameter. The search methods to use, either Hybrid Search or Vector Search. Your collection must be configured to support the chosen option, and the default depends on what your collection supports. All vector-enabled collections in Astra DB Serverless (Vector) databases support vector search, but hybrid search requires that you set specific collection settings when creating the collection. These options are only available when creating a collection programmatically. For more information, see Ways to find data in Astra DB Serverless and Create a collection that supports hybrid search.
rerankerRerankerInput parameter. The re-ranker model to use for hybrid search, depending on the collection configuration. This parameter is only available for collections that support hybrid search. To determine if a collection supports hybrid search, get collection metadata, and then check that lexical and rerank both have "enabled": true.
lexical_termsLexical TermsInput parameter. A space-separated string of keywords for hybrid search, like features, data, attributes, characteristics. This parameter is only available if the collection supports hybrid search. For more information, see the Hybrid search example.
number_of_resultsNumber of Search ResultsInput parameter. The number of search results to return. Default: 4.
search_typeSearch TypeInput parameter. The search type to use, either Similarity (default), Similarity with score threshold, and MMR (Max Marginal Relevance).
search_score_thresholdSearch Score ThresholdInput parameter. The minimum similarity score threshold for vector search results with the Similarity with score threshold search type. Default: 0.
advanced_search_filterSearch Metadata FilterInput parameter. An optional dictionary of metadata filters to apply in addition to vector or hybrid search.
autodetect_collectionAutodetect CollectionInput parameter. Whether to automatically fetch a list of available collections after providing an application token and API endpoint.
content_fieldContent FieldInput parameter. For writes, this parameter specifies the name of the field in the documents that contains text strings for which you want to generate embeddings.
deletion_fieldDeletion Based On FieldInput parameter. When provided, documents in the target collection with metadata field values matching the input metadata field value are deleted before new records are loaded. Use this setting for writes with upserts (overwrites).
ignore_invalid_documentsIgnore Invalid DocumentsInput parameter. Whether to ignore invalid documents during writes. If disabled (false), then an error is raised for invalid documents. Default: Enabled (true).
astradb_vectorstore_kwargsAstraDBVectorStore ParametersInput parameter. An optional dictionary of additional parameters for the AstraDBVectorStore instance.
+
NameDisplay NameInfo
tokenAstra DB Application TokenInput parameter. An Astra application token with permission to access your vector database. Once the connection is verified, additional fields are populated with your existing databases and collections. If you want to create a database through this component, the application token must have Organization Administrator permissions.
environmentEnvironmentInput parameter. The environment for the Astra DB API endpoint. Typically always prod.
database_nameDatabaseInput parameter. The name of the database that you want this component to connect to. Or, you can select New Database to create a new database, and then wait for the database to initialize before setting the remaining parameters.
endpointAstra DB API EndpointInput parameter. For multi-region databases, select the API endpoint for your nearest datacenter. To get the list of regions for a multi-region database, see List database regions. This field is automatically populated when you select a database, and it defaults to the primary region's endpoint.
keyspaceKeyspaceInput parameter. The keyspace in your database that contains the collection specified in collection_name. Default: default_keyspace.
collection_nameCollectionInput parameter. The name of the collection that you want to use with this flow. Or, select New Collection to create a new collection with limited configuration options. To ensure your collection is configured with the correct embedding provider and search capabilities, it is recommended to create the collection in the Astra Portal or with the Data API before configuring this component. For more information, see Manage collections in Astra DB Serverless.
embedding_modelEmbedding ModelInput parameter. Attach an embedding model component to generate embeddings. Only available if the specified collection doesn't have a vectorize integration. If a vectorize integration exists, the component automatically uses the collection's integrated model.
ingest_dataIngest DataInput parameter. The documents to load into the specified collection. Accepts Data or DataFrame input.
search_querySearch QueryInput parameter. The query string for vector search.
cache_vector_storeCache Vector StoreInput parameter. Whether to cache the vector store in Langflow memory for faster reads. Default: Enabled (true).
search_methodSearch MethodInput parameter. The search methods to use, either Hybrid Search or Vector Search. Your collection must be configured to support the chosen option, and the default depends on what your collection supports. All vector-enabled collections in Astra DB Serverless (vector) databases support vector search, but hybrid search requires that you set specific collection settings when creating the collection. These options are only available when creating a collection programmatically. For more information, see Ways to find data in Astra DB Serverless and Create a collection that supports hybrid search.
rerankerRerankerInput parameter. The re-ranker model to use for hybrid search, depending on the collection configuration. This parameter is only available for collections that support hybrid search. To determine if a collection supports hybrid search, get collection metadata, and then check that lexical and rerank both have "enabled": true.
lexical_termsLexical TermsInput parameter. A space-separated string of keywords for hybrid search, like features, data, attributes, characteristics. This parameter is only available if the collection supports hybrid search. For more information, see the Hybrid search example.
number_of_resultsNumber of Search ResultsInput parameter. The number of search results to return. Default: 4.
search_typeSearch TypeInput parameter. The search type to use, either Similarity (default), Similarity with score threshold, and MMR (Max Marginal Relevance).
search_score_thresholdSearch Score ThresholdInput parameter. The minimum similarity score threshold for vector search results with the Similarity with score threshold search type. Default: 0.
advanced_search_filterSearch Metadata FilterInput parameter. An optional dictionary of metadata filters to apply in addition to vector or hybrid search.
autodetect_collectionAutodetect CollectionInput parameter. Whether to automatically fetch a list of available collections after providing an application token and API endpoint.
content_fieldContent FieldInput parameter. For writes, this parameter specifies the name of the field in the documents that contains text strings for which you want to generate embeddings.
deletion_fieldDeletion Based On FieldInput parameter. When provided, documents in the target collection with metadata field values matching the input metadata field value are deleted before new records are loaded. Use this setting for writes with upserts (overwrites).
ignore_invalid_documentsIgnore Invalid DocumentsInput parameter. Whether to ignore invalid documents during writes. If disabled (false), then an error is raised for invalid documents. Default: Enabled (true).
astradb_vectorstore_kwargsAstraDBVectorStore ParametersInput parameter. An optional dictionary of additional parameters for the AstraDBVectorStore instance.

Astra DB examples​

Example: Vector RAG
tip

For a tutorial that uses vector data in a flow, see Create a vector RAG chatbot.

The following example demonstrates how to use vector store components in flows alongside related components like embedding model and language model components. diff --git a/bundles-deepseek.html b/bundles-deepseek.html index 76a1f5d1f2..480f8090a4 100644 --- a/bundles-deepseek.html +++ b/bundles-deepseek.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-docling.html b/bundles-docling.html index 100a972093..fc19444edc 100644 --- a/bundles-docling.html +++ b/bundles-docling.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-duckduckgo.html b/bundles-duckduckgo.html index 6311f52f8e..8b87ea56b3 100644 --- a/bundles-duckduckgo.html +++ b/bundles-duckduckgo.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-elastic.html b/bundles-elastic.html index 8b935dae21..7bee87ef1f 100644 --- a/bundles-elastic.html +++ b/bundles-elastic.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-exa.html b/bundles-exa.html index 5b171453f6..89375a45a3 100644 --- a/bundles-exa.html +++ b/bundles-exa.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-faiss.html b/bundles-faiss.html index 913aab46f5..d59a51c518 100644 --- a/bundles-faiss.html +++ b/bundles-faiss.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-glean.html b/bundles-glean.html index cbf52dafcd..0683c85793 100644 --- a/bundles-glean.html +++ b/bundles-glean.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-google.html b/bundles-google.html index cf11278d03..9edce073cf 100644 --- a/bundles-google.html +++ b/bundles-google.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-groq.html b/bundles-groq.html index e1010c82be..2d296de71d 100644 --- a/bundles-groq.html +++ b/bundles-groq.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-huggingface.html b/bundles-huggingface.html index bb9faf86f7..84c453f4b8 100644 --- a/bundles-huggingface.html +++ b/bundles-huggingface.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-ibm.html b/bundles-ibm.html index 7b5b740dba..bf01ca44e1 100644 --- a/bundles-ibm.html +++ b/bundles-ibm.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-icosacomputing.html b/bundles-icosacomputing.html index 0fbe69cbd5..1c89d8c348 100644 --- a/bundles-icosacomputing.html +++ b/bundles-icosacomputing.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-langchain.html b/bundles-langchain.html index 5984d92d36..dda4492576 100644 --- a/bundles-langchain.html +++ b/bundles-langchain.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-lmstudio.html b/bundles-lmstudio.html index 0d4484fcc4..9108b1ac64 100644 --- a/bundles-lmstudio.html +++ b/bundles-lmstudio.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-maritalk.html b/bundles-maritalk.html index 02b027450a..4638ba7804 100644 --- a/bundles-maritalk.html +++ b/bundles-maritalk.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-mem0.html b/bundles-mem0.html index 92566412d7..af59c41c08 100644 --- a/bundles-mem0.html +++ b/bundles-mem0.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-milvus.html b/bundles-milvus.html index 9199f698b0..c439ad891e 100644 --- a/bundles-milvus.html +++ b/bundles-milvus.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-mistralai.html b/bundles-mistralai.html index 2da10e350e..b44d30c676 100644 --- a/bundles-mistralai.html +++ b/bundles-mistralai.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-mongodb.html b/bundles-mongodb.html index 927b27aade..97244982de 100644 --- a/bundles-mongodb.html +++ b/bundles-mongodb.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-notion.html b/bundles-notion.html index 2199792d7b..e9aaf87163 100644 --- a/bundles-notion.html +++ b/bundles-notion.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-novita.html b/bundles-novita.html index ed7b2ee929..f41585cf0c 100644 --- a/bundles-novita.html +++ b/bundles-novita.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-nvidia.html b/bundles-nvidia.html index 8f832cbd89..416262a4f5 100644 --- a/bundles-nvidia.html +++ b/bundles-nvidia.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-ollama.html b/bundles-ollama.html index 965df3b655..441cb6332b 100644 --- a/bundles-ollama.html +++ b/bundles-ollama.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-openai.html b/bundles-openai.html index d32ef77015..beafb6d20f 100644 --- a/bundles-openai.html +++ b/bundles-openai.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-openrouter.html b/bundles-openrouter.html index f27a30f20d..715d738152 100644 --- a/bundles-openrouter.html +++ b/bundles-openrouter.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-perplexity.html b/bundles-perplexity.html index a56747fd17..667be50d10 100644 --- a/bundles-perplexity.html +++ b/bundles-perplexity.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-pgvector.html b/bundles-pgvector.html index b58e609202..1ebbc27c2a 100644 --- a/bundles-pgvector.html +++ b/bundles-pgvector.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-pinecone.html b/bundles-pinecone.html index 5035418807..2376c93082 100644 --- a/bundles-pinecone.html +++ b/bundles-pinecone.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-qdrant.html b/bundles-qdrant.html index 7b7aa5d8b0..9579381b09 100644 --- a/bundles-qdrant.html +++ b/bundles-qdrant.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-redis.html b/bundles-redis.html index d1e9da7a53..47eb3bb82c 100644 --- a/bundles-redis.html +++ b/bundles-redis.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-sambanova.html b/bundles-sambanova.html index bccb7046c0..68dcdac344 100644 --- a/bundles-sambanova.html +++ b/bundles-sambanova.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-searchapi.html b/bundles-searchapi.html index 50c1f322f4..f3588b7560 100644 --- a/bundles-searchapi.html +++ b/bundles-searchapi.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-serper.html b/bundles-serper.html index 595ba25d89..b5312bceec 100644 --- a/bundles-serper.html +++ b/bundles-serper.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-supabase.html b/bundles-supabase.html index 46cc353364..f85ccfec2c 100644 --- a/bundles-supabase.html +++ b/bundles-supabase.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-upstash.html b/bundles-upstash.html index 9d0c788b68..bc29453109 100644 --- a/bundles-upstash.html +++ b/bundles-upstash.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-vectara.html b/bundles-vectara.html index 74927ed756..a7fdc60ee7 100644 --- a/bundles-vectara.html +++ b/bundles-vectara.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-vertexai.html b/bundles-vertexai.html index b5c587ddf8..62cd23eb13 100644 --- a/bundles-vertexai.html +++ b/bundles-vertexai.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-vllm.html b/bundles-vllm.html index 95de407efb..f8ce668b71 100644 --- a/bundles-vllm.html +++ b/bundles-vllm.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-weaviate.html b/bundles-weaviate.html index d44659cbca..b832018ede 100644 --- a/bundles-weaviate.html +++ b/bundles-weaviate.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-wikipedia.html b/bundles-wikipedia.html index 0fb97a17e3..c13bfbb492 100644 --- a/bundles-wikipedia.html +++ b/bundles-wikipedia.html @@ -24,7 +24,7 @@ - + diff --git a/bundles-xai.html b/bundles-xai.html index 1577438117..0971c14579 100644 --- a/bundles-xai.html +++ b/bundles-xai.html @@ -24,7 +24,7 @@ - + diff --git a/calculator.html b/calculator.html index 9550649826..fdb5c772a8 100644 --- a/calculator.html +++ b/calculator.html @@ -24,7 +24,7 @@ - + diff --git a/chat-input-and-output.html b/chat-input-and-output.html index 8011448be3..5245ef3abc 100644 --- a/chat-input-and-output.html +++ b/chat-input-and-output.html @@ -24,7 +24,7 @@ - + diff --git a/chat-with-files.html b/chat-with-files.html index f1dae4a7ee..904324f16e 100644 --- a/chat-with-files.html +++ b/chat-with-files.html @@ -24,7 +24,7 @@ - + diff --git a/chat-with-rag.html b/chat-with-rag.html index e7f1545506..44a5564e64 100644 --- a/chat-with-rag.html +++ b/chat-with-rag.html @@ -24,7 +24,7 @@ - + diff --git a/component-webhook.html b/component-webhook.html index 0f62c7d2d4..80f194e87b 100644 --- a/component-webhook.html +++ b/component-webhook.html @@ -24,7 +24,7 @@ - + diff --git a/components-agents.html b/components-agents.html index d0ba6b022b..779bac28b9 100644 --- a/components-agents.html +++ b/components-agents.html @@ -24,7 +24,7 @@ - + diff --git a/components-bundle-components.html b/components-bundle-components.html index e534c47656..7ea287771c 100644 --- a/components-bundle-components.html +++ b/components-bundle-components.html @@ -24,7 +24,7 @@ - + diff --git a/components-custom-components.html b/components-custom-components.html index 6e85090dcd..88d51b0c0e 100644 --- a/components-custom-components.html +++ b/components-custom-components.html @@ -24,7 +24,7 @@ - + diff --git a/components-embedding-models.html b/components-embedding-models.html index 4b138f482a..bed03feb4d 100644 --- a/components-embedding-models.html +++ b/components-embedding-models.html @@ -24,7 +24,7 @@ - + diff --git a/components-models.html b/components-models.html index deab274119..e75688e44f 100644 --- a/components-models.html +++ b/components-models.html @@ -24,7 +24,7 @@ - + diff --git a/components-prompts.html b/components-prompts.html index 7e950c12cf..cce843043f 100644 --- a/components-prompts.html +++ b/components-prompts.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-components.html b/concepts-components.html index 7dab6ad547..b711352fc6 100644 --- a/concepts-components.html +++ b/concepts-components.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-file-management.html b/concepts-file-management.html index 241050707b..033aeb3da9 100644 --- a/concepts-file-management.html +++ b/concepts-file-management.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-flows-import.html b/concepts-flows-import.html index c00dc0729c..bef02a2f31 100644 --- a/concepts-flows-import.html +++ b/concepts-flows-import.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-flows.html b/concepts-flows.html index fc172e03f6..66c52f90cd 100644 --- a/concepts-flows.html +++ b/concepts-flows.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-overview.html b/concepts-overview.html index c5179a4d4e..fe880abce2 100644 --- a/concepts-overview.html +++ b/concepts-overview.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-playground.html b/concepts-playground.html index a9141b3486..8a29f87f8a 100644 --- a/concepts-playground.html +++ b/concepts-playground.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-publish.html b/concepts-publish.html index fd42f68779..3f01b178a4 100644 --- a/concepts-publish.html +++ b/concepts-publish.html @@ -24,7 +24,7 @@ - + diff --git a/concepts-voice-mode.html b/concepts-voice-mode.html index 93346a5d0f..81cc765db1 100644 --- a/concepts-voice-mode.html +++ b/concepts-voice-mode.html @@ -24,7 +24,7 @@ - + diff --git a/configuration-cli.html b/configuration-cli.html index c92df0680b..30d4dd9344 100644 --- a/configuration-cli.html +++ b/configuration-cli.html @@ -24,7 +24,7 @@ - + diff --git a/configuration-custom-database.html b/configuration-custom-database.html index 80575cbb5a..229f79f084 100644 --- a/configuration-custom-database.html +++ b/configuration-custom-database.html @@ -24,7 +24,7 @@ - + diff --git a/configuration-global-variables.html b/configuration-global-variables.html index a63e3b833b..adf34908ed 100644 --- a/configuration-global-variables.html +++ b/configuration-global-variables.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-bundles.html b/contributing-bundles.html index ba66ff29e8..a756cb5191 100644 --- a/contributing-bundles.html +++ b/contributing-bundles.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-community.html b/contributing-community.html index c39a8f4fa0..4ff7554b6c 100644 --- a/contributing-community.html +++ b/contributing-community.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-component-tests.html b/contributing-component-tests.html index 89d9503798..b7dbb7064f 100644 --- a/contributing-component-tests.html +++ b/contributing-component-tests.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-components.html b/contributing-components.html index 53f1896654..139ddb2738 100644 --- a/contributing-components.html +++ b/contributing-components.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-github-issues.html b/contributing-github-issues.html index 83f326fbab..1c66def05d 100644 --- a/contributing-github-issues.html +++ b/contributing-github-issues.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-how-to-contribute.html b/contributing-how-to-contribute.html index a5953f6209..3c95caf2a0 100644 --- a/contributing-how-to-contribute.html +++ b/contributing-how-to-contribute.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-telemetry.html b/contributing-telemetry.html index 5ab2ca7ab5..5e8f0faadf 100644 --- a/contributing-telemetry.html +++ b/contributing-telemetry.html @@ -24,7 +24,7 @@ - + diff --git a/contributing-templates.html b/contributing-templates.html index 6a63cea648..9e99f26cae 100644 --- a/contributing-templates.html +++ b/contributing-templates.html @@ -24,7 +24,7 @@ - + diff --git a/current-date.html b/current-date.html index be975df9dc..b36b93cde9 100644 --- a/current-date.html +++ b/current-date.html @@ -24,7 +24,7 @@ - + diff --git a/data-operations.html b/data-operations.html index 4e62cd8fb0..ecb997cb8e 100644 --- a/data-operations.html +++ b/data-operations.html @@ -24,7 +24,7 @@ - + diff --git a/data-types.html b/data-types.html index 5a9c5d4869..187bfe79cd 100644 --- a/data-types.html +++ b/data-types.html @@ -24,7 +24,7 @@ - + diff --git a/dataframe-operations.html b/dataframe-operations.html index 2c6753f9d0..9e45fce8ab 100644 --- a/dataframe-operations.html +++ b/dataframe-operations.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-architecture.html b/deployment-architecture.html index 192a366b8c..54deff40fd 100644 --- a/deployment-architecture.html +++ b/deployment-architecture.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-caddyfile.html b/deployment-caddyfile.html index f4dbd45c75..197ddedcb9 100644 --- a/deployment-caddyfile.html +++ b/deployment-caddyfile.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-docker.html b/deployment-docker.html index 9dc2784f37..addd3362ac 100644 --- a/deployment-docker.html +++ b/deployment-docker.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-gcp.html b/deployment-gcp.html index 8866c820f9..d5425d4bb6 100644 --- a/deployment-gcp.html +++ b/deployment-gcp.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-hugging-face-spaces.html b/deployment-hugging-face-spaces.html index 9c6ac38e98..376560205c 100644 --- a/deployment-hugging-face-spaces.html +++ b/deployment-hugging-face-spaces.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-kubernetes-dev.html b/deployment-kubernetes-dev.html index 6a2b7077f1..f0903fc030 100644 --- a/deployment-kubernetes-dev.html +++ b/deployment-kubernetes-dev.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-kubernetes-prod.html b/deployment-kubernetes-prod.html index 055d8fe863..a87769c04d 100644 --- a/deployment-kubernetes-prod.html +++ b/deployment-kubernetes-prod.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-nginx-ssl.html b/deployment-nginx-ssl.html index 881458b220..459444ec79 100644 --- a/deployment-nginx-ssl.html +++ b/deployment-nginx-ssl.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-overview.html b/deployment-overview.html index 54f8947942..0fb9b325a2 100644 --- a/deployment-overview.html +++ b/deployment-overview.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-prod-best-practices.html b/deployment-prod-best-practices.html index ed257fc5fb..c94ef85a95 100644 --- a/deployment-prod-best-practices.html +++ b/deployment-prod-best-practices.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-public-server.html b/deployment-public-server.html index b6203a13bf..b3f52305ee 100644 --- a/deployment-public-server.html +++ b/deployment-public-server.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-railway.html b/deployment-railway.html index 2deaffad39..d5e187da96 100644 --- a/deployment-railway.html +++ b/deployment-railway.html @@ -24,7 +24,7 @@ - + diff --git a/deployment-render.html b/deployment-render.html index 7a9ed771a3..7c89202171 100644 --- a/deployment-render.html +++ b/deployment-render.html @@ -24,7 +24,7 @@ - + diff --git a/develop-application.html b/develop-application.html index 7540171bd0..f823e79e0f 100644 --- a/develop-application.html +++ b/develop-application.html @@ -24,7 +24,7 @@ - + diff --git a/directory.html b/directory.html index 7716ec8c7e..63ea251d91 100644 --- a/directory.html +++ b/directory.html @@ -24,7 +24,7 @@ - + diff --git a/dynamic-create-data.html b/dynamic-create-data.html index 38bd756967..1f833b539b 100644 --- a/dynamic-create-data.html +++ b/dynamic-create-data.html @@ -24,7 +24,7 @@ - + diff --git a/enterprise-database-guide.html b/enterprise-database-guide.html index cfa0afc293..7dec1f170c 100644 --- a/enterprise-database-guide.html +++ b/enterprise-database-guide.html @@ -24,7 +24,7 @@ - + diff --git a/environment-variables.html b/environment-variables.html index 932e904596..bd7bb9eae5 100644 --- a/environment-variables.html +++ b/environment-variables.html @@ -24,7 +24,7 @@ - + diff --git a/get-started-installation.html b/get-started-installation.html index bff32edefc..3bc0fe2ba3 100644 --- a/get-started-installation.html +++ b/get-started-installation.html @@ -24,7 +24,7 @@ - + diff --git a/get-started-quickstart.html b/get-started-quickstart.html index 557ab41454..9436dee5cd 100644 --- a/get-started-quickstart.html +++ b/get-started-quickstart.html @@ -24,7 +24,7 @@ - + diff --git a/if-else.html b/if-else.html index 982dce5db3..400a5c19a7 100644 --- a/if-else.html +++ b/if-else.html @@ -24,7 +24,7 @@ - + diff --git a/index.html b/index.html index 4617c3066f..db7498d03d 100644 --- a/index.html +++ b/index.html @@ -24,7 +24,7 @@ - + diff --git a/install-custom-dependencies.html b/install-custom-dependencies.html index 97256c09ce..b0099b3ca8 100644 --- a/install-custom-dependencies.html +++ b/install-custom-dependencies.html @@ -24,7 +24,7 @@ - + diff --git a/integrations-arize.html b/integrations-arize.html index 155835de96..be85322c89 100644 --- a/integrations-arize.html +++ b/integrations-arize.html @@ -24,7 +24,7 @@ - + diff --git a/integrations-instana-traceloop.html b/integrations-instana-traceloop.html index f153cd5cd0..f423319312 100644 --- a/integrations-instana-traceloop.html +++ b/integrations-instana-traceloop.html @@ -24,7 +24,7 @@ - + diff --git a/integrations-langfuse.html b/integrations-langfuse.html index 214e292102..f33b2b4fc5 100644 --- a/integrations-langfuse.html +++ b/integrations-langfuse.html @@ -24,7 +24,7 @@ - + diff --git a/integrations-langsmith.html b/integrations-langsmith.html index 05739ef623..b4b2b45536 100644 --- a/integrations-langsmith.html +++ b/integrations-langsmith.html @@ -24,7 +24,7 @@ - + diff --git a/integrations-langwatch.html b/integrations-langwatch.html index b0a1ca3da5..305700f35d 100644 --- a/integrations-langwatch.html +++ b/integrations-langwatch.html @@ -24,7 +24,7 @@ - + diff --git a/integrations-opik.html b/integrations-opik.html index 8eaec90356..b655b69c2f 100644 --- a/integrations-opik.html +++ b/integrations-opik.html @@ -24,7 +24,7 @@ - + diff --git a/legacy-core-components.html b/legacy-core-components.html index 99402fded2..56db554138 100644 --- a/legacy-core-components.html +++ b/legacy-core-components.html @@ -24,7 +24,7 @@ - + diff --git a/llm-selector.html b/llm-selector.html index e7e3e7443d..fcf73593a7 100644 --- a/llm-selector.html +++ b/llm-selector.html @@ -24,7 +24,7 @@ - + diff --git a/logging.html b/logging.html index f2fcede0ce..80dda2b5a0 100644 --- a/logging.html +++ b/logging.html @@ -24,7 +24,7 @@ - + diff --git a/loop.html b/loop.html index 5bfbd381ca..8c3d629314 100644 --- a/loop.html +++ b/loop.html @@ -24,7 +24,7 @@ - + diff --git a/luna-for-langflow.html b/luna-for-langflow.html index 1eb32fb8b5..a604523c30 100644 --- a/luna-for-langflow.html +++ b/luna-for-langflow.html @@ -24,7 +24,7 @@ - + diff --git a/mcp-client.html b/mcp-client.html index 8bc32173a3..0c9642835c 100644 --- a/mcp-client.html +++ b/mcp-client.html @@ -24,7 +24,7 @@ - + diff --git a/mcp-component-astra.html b/mcp-component-astra.html index 84630b3b50..5876b82a28 100644 --- a/mcp-component-astra.html +++ b/mcp-component-astra.html @@ -24,7 +24,7 @@ - + @@ -60,7 +60,7 @@

Create an OpenAI API key.

  • -

    Create an Astra DB Serverless (Vector) database, if you don't already have one.

    +

    Create an Astra DB Serverless (vector) database, if you don't already have one.

  • Get your database's Astra DB API endpoint and an Astra application token with the Database Administrator role. For more information, see Generate an application token for a database.

    diff --git a/mcp-server.html b/mcp-server.html index ba76f2e663..9034d9ce85 100644 --- a/mcp-server.html +++ b/mcp-server.html @@ -24,7 +24,7 @@ - + diff --git a/mcp-tools.html b/mcp-tools.html index 2ebeb600a4..d225c68620 100644 --- a/mcp-tools.html +++ b/mcp-tools.html @@ -24,7 +24,7 @@ - + diff --git a/mcp-tutorial.html b/mcp-tutorial.html index c2d9991451..8d099ee2c5 100644 --- a/mcp-tutorial.html +++ b/mcp-tutorial.html @@ -24,7 +24,7 @@ - + diff --git a/memory.html b/memory.html index 9de595651d..462c6edf75 100644 --- a/memory.html +++ b/memory.html @@ -24,7 +24,7 @@ - + diff --git a/message-history.html b/message-history.html index 4dff9bc1c7..38d4ca9994 100644 --- a/message-history.html +++ b/message-history.html @@ -24,7 +24,7 @@ - + diff --git a/mock-data.html b/mock-data.html index 582df3e0d4..f7e46aca1f 100644 --- a/mock-data.html +++ b/mock-data.html @@ -24,7 +24,7 @@ - + diff --git a/notify-and-listen.html b/notify-and-listen.html index c626a1ca48..9e6cc74155 100644 --- a/notify-and-listen.html +++ b/notify-and-listen.html @@ -24,7 +24,7 @@ - + diff --git a/parser.html b/parser.html index ad888f6d17..d3e7bc0040 100644 --- a/parser.html +++ b/parser.html @@ -24,7 +24,7 @@ - + diff --git a/python-interpreter.html b/python-interpreter.html index 00cd5580e1..3aa5fb09c0 100644 --- a/python-interpreter.html +++ b/python-interpreter.html @@ -24,7 +24,7 @@ - + diff --git a/read-file.html b/read-file.html index 2b3975422b..13c58d8ea5 100644 --- a/read-file.html +++ b/read-file.html @@ -24,7 +24,7 @@ - + diff --git a/release-notes.html b/release-notes.html index 59b263e7bb..64cfb30d21 100644 --- a/release-notes.html +++ b/release-notes.html @@ -24,7 +24,7 @@ - + diff --git a/run-flow.html b/run-flow.html index dc3f478073..33e81ef148 100644 --- a/run-flow.html +++ b/run-flow.html @@ -24,7 +24,7 @@ - + diff --git a/search.html b/search.html index 5545a74365..e2a40c6018 100644 --- a/search.html +++ b/search.html @@ -24,7 +24,7 @@ - + diff --git a/security.html b/security.html index 9eab879f74..84dffc87f7 100644 --- a/security.html +++ b/security.html @@ -24,7 +24,7 @@ - + diff --git a/session-id.html b/session-id.html index 7a06f30927..425d25ede9 100644 --- a/session-id.html +++ b/session-id.html @@ -24,7 +24,7 @@ - + diff --git a/sitemap.xml b/sitemap.xml index 0405e8b80a..de806e3649 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://docs.langflow.org/apihttps://docs.langflow.org/api/openapi.jsonhttps://docs.langflow.org/api/openapi.yamlhttps://docs.langflow.org/searchhttps://docs.langflow.org/agent-tutorial2026-01-22T22:45:58.000Zhttps://docs.langflow.org/agents2026-01-22T22:45:58.000Zhttps://docs.langflow.org/agents-tools2026-01-22T22:45:58.000Zhttps://docs.langflow.org/api-build2026-01-22T22:45:58.000Zhttps://docs.langflow.org/api-files2026-01-22T22:45:58.000Zhttps://docs.langflow.org/api-flows2026-01-22T22:45:58.000Zhttps://docs.langflow.org/api-flows-run2026-01-22T22:45:58.000Zhttps://docs.langflow.org/api-keys-and-authentication2026-01-22T22:45:58.000Zhttps://docs.langflow.org/api-logs2026-01-22T22:45:58.000Zhttps://docs.langflow.org/api-monitor2026-01-22T22:45:58.000Zhttps://docs.langflow.org/api-openai-responses2026-01-22T22:45:58.000Zhttps://docs.langflow.org/api-projects2026-01-22T22:45:58.000Zhttps://docs.langflow.org/api-reference-api-examples2026-01-22T22:45:58.000Zhttps://docs.langflow.org/api-request2026-01-22T22:45:58.000Zhttps://docs.langflow.org/api-users2026-01-22T22:45:58.000Zhttps://docs.langflow.org/batch-run2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-aiml2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-altk2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-amazon2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-anthropic2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-apify2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-arxiv2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-assemblyai2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-azure2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-baidu2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-bing2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-cassandra2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-chroma2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-cleanlab2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-clickhouse2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-cloudflare2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-cohere2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-cometapi2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-composio2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-couchbase2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-cuga2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-datastax2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-deepseek2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-docling2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-duckduckgo2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-elastic2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-exa2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-faiss2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-glean2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-google2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-groq2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-huggingface2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-ibm2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-icosacomputing2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-langchain2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-lmstudio2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-maritalk2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-mem02026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-milvus2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-mistralai2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-mongodb2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-notion2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-novita2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-nvidia2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-ollama2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-openai2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-openrouter2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-perplexity2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-pgvector2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-pinecone2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-qdrant2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-redis2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-sambanova2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-searchapi2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-serper2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-supabase2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-upstash2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-vectara2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-vertexai2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-vllm2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-weaviate2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-wikipedia2026-01-22T22:45:58.000Zhttps://docs.langflow.org/bundles-xai2026-01-22T22:45:58.000Zhttps://docs.langflow.org/calculator2026-01-22T22:45:58.000Zhttps://docs.langflow.org/chat-input-and-output2026-01-22T22:45:58.000Zhttps://docs.langflow.org/chat-with-files2026-01-22T22:45:58.000Zhttps://docs.langflow.org/chat-with-rag2026-01-22T22:45:58.000Zhttps://docs.langflow.org/component-webhook2026-01-22T22:45:58.000Zhttps://docs.langflow.org/components-agents2026-01-22T22:45:58.000Zhttps://docs.langflow.org/components-bundle-components2026-01-22T22:45:58.000Zhttps://docs.langflow.org/components-custom-components2026-01-22T22:45:58.000Zhttps://docs.langflow.org/components-embedding-models2026-01-22T22:45:58.000Zhttps://docs.langflow.org/components-models2026-01-22T22:45:58.000Zhttps://docs.langflow.org/components-prompts2026-01-22T22:45:58.000Zhttps://docs.langflow.org/concepts-components2026-01-22T22:45:58.000Zhttps://docs.langflow.org/concepts-file-management2026-01-22T22:45:58.000Zhttps://docs.langflow.org/concepts-flows2026-01-22T22:45:58.000Zhttps://docs.langflow.org/concepts-flows-import2026-01-22T22:45:58.000Zhttps://docs.langflow.org/concepts-overview2026-01-22T22:45:58.000Zhttps://docs.langflow.org/concepts-playground2026-01-22T22:45:58.000Zhttps://docs.langflow.org/concepts-publish2026-01-22T22:45:58.000Zhttps://docs.langflow.org/concepts-voice-mode2026-01-22T22:45:58.000Zhttps://docs.langflow.org/configuration-cli2026-01-22T22:45:58.000Zhttps://docs.langflow.org/configuration-custom-database2026-01-22T22:45:58.000Zhttps://docs.langflow.org/configuration-global-variables2026-01-22T22:45:58.000Zhttps://docs.langflow.org/contributing-bundles2026-01-22T22:45:58.000Zhttps://docs.langflow.org/contributing-community2026-01-22T22:45:58.000Zhttps://docs.langflow.org/contributing-component-tests2026-01-22T22:45:58.000Zhttps://docs.langflow.org/contributing-components2026-01-22T22:45:58.000Zhttps://docs.langflow.org/contributing-github-issues2026-01-22T22:45:58.000Zhttps://docs.langflow.org/contributing-how-to-contribute2026-01-22T22:45:58.000Zhttps://docs.langflow.org/contributing-telemetry2026-01-22T22:45:58.000Zhttps://docs.langflow.org/contributing-templates2026-01-22T22:45:58.000Zhttps://docs.langflow.org/current-date2026-01-22T22:45:58.000Zhttps://docs.langflow.org/data-operations2026-01-22T22:45:58.000Zhttps://docs.langflow.org/data-types2026-01-22T22:45:58.000Zhttps://docs.langflow.org/dataframe-operations2026-01-22T22:45:58.000Zhttps://docs.langflow.org/deployment-architecture2026-01-22T22:45:58.000Zhttps://docs.langflow.org/deployment-caddyfile2026-01-22T22:45:58.000Zhttps://docs.langflow.org/deployment-docker2026-01-22T22:45:58.000Zhttps://docs.langflow.org/deployment-gcp2026-01-22T22:45:58.000Zhttps://docs.langflow.org/deployment-hugging-face-spaces2026-01-22T22:45:58.000Zhttps://docs.langflow.org/deployment-kubernetes-dev2026-01-22T22:45:58.000Zhttps://docs.langflow.org/deployment-kubernetes-prod2026-01-22T22:45:58.000Zhttps://docs.langflow.org/deployment-nginx-ssl2026-01-22T22:45:58.000Zhttps://docs.langflow.org/deployment-overview2026-01-22T22:45:58.000Zhttps://docs.langflow.org/deployment-prod-best-practices2026-01-22T22:45:58.000Zhttps://docs.langflow.org/deployment-public-server2026-01-22T22:45:58.000Zhttps://docs.langflow.org/deployment-railway2026-01-22T22:45:58.000Zhttps://docs.langflow.org/deployment-render2026-01-22T22:45:58.000Zhttps://docs.langflow.org/develop-application2026-01-22T22:45:58.000Zhttps://docs.langflow.org/directory2026-01-22T22:45:58.000Zhttps://docs.langflow.org/dynamic-create-data2026-01-22T22:45:58.000Zhttps://docs.langflow.org/enterprise-database-guide2026-01-22T22:45:58.000Zhttps://docs.langflow.org/environment-variables2026-01-22T22:45:58.000Zhttps://docs.langflow.org/get-started-installation2026-01-22T22:45:58.000Zhttps://docs.langflow.org/get-started-quickstart2026-01-22T22:45:58.000Zhttps://docs.langflow.org/if-else2026-01-22T22:45:58.000Zhttps://docs.langflow.org/install-custom-dependencies2026-01-22T22:45:58.000Zhttps://docs.langflow.org/integrations-arize2026-01-22T22:45:58.000Zhttps://docs.langflow.org/integrations-instana-traceloop2026-01-22T22:45:58.000Zhttps://docs.langflow.org/integrations-langfuse2026-01-22T22:45:58.000Zhttps://docs.langflow.org/integrations-langsmith2026-01-22T22:45:58.000Zhttps://docs.langflow.org/integrations-langwatch2026-01-22T22:45:58.000Zhttps://docs.langflow.org/integrations-opik2026-01-22T22:45:58.000Zhttps://docs.langflow.org/legacy-core-components2026-01-22T22:45:58.000Zhttps://docs.langflow.org/llm-selector2026-01-22T22:45:58.000Zhttps://docs.langflow.org/logging2026-01-22T22:45:58.000Zhttps://docs.langflow.org/loop2026-01-22T22:45:58.000Zhttps://docs.langflow.org/luna-for-langflow2026-01-22T22:45:58.000Zhttps://docs.langflow.org/mcp-client2026-01-22T22:45:58.000Zhttps://docs.langflow.org/mcp-component-astra2026-01-22T22:45:58.000Zhttps://docs.langflow.org/mcp-server2026-01-22T22:45:58.000Zhttps://docs.langflow.org/mcp-tools2026-01-22T22:45:58.000Zhttps://docs.langflow.org/mcp-tutorial2026-01-22T22:45:58.000Zhttps://docs.langflow.org/memory2026-01-22T22:45:58.000Zhttps://docs.langflow.org/message-history2026-01-22T22:45:58.000Zhttps://docs.langflow.org/mock-data2026-01-22T22:45:58.000Zhttps://docs.langflow.org/notify-and-listen2026-01-22T22:45:58.000Zhttps://docs.langflow.org/parser2026-01-22T22:45:58.000Zhttps://docs.langflow.org/python-interpreter2026-01-22T22:45:58.000Zhttps://docs.langflow.org/read-file2026-01-22T22:45:58.000Zhttps://docs.langflow.org/release-notes2026-01-22T22:45:58.000Zhttps://docs.langflow.org/run-flow2026-01-22T22:45:58.000Zhttps://docs.langflow.org/security2026-01-22T22:45:58.000Zhttps://docs.langflow.org/session-id2026-01-22T22:45:58.000Zhttps://docs.langflow.org/smart-router2026-01-22T22:45:58.000Zhttps://docs.langflow.org/smart-transform2026-01-22T22:45:58.000Zhttps://docs.langflow.org/split-text2026-01-22T22:45:58.000Zhttps://docs.langflow.org/sql-database2026-01-22T22:45:58.000Zhttps://docs.langflow.org/structured-output2026-01-22T22:45:58.000Zhttps://docs.langflow.org/text-input-and-output2026-01-22T22:45:58.000Zhttps://docs.langflow.org/troubleshoot2026-01-22T22:45:58.000Zhttps://docs.langflow.org/type-convert2026-01-22T22:45:58.000Zhttps://docs.langflow.org/typescript-client2026-01-22T22:45:58.000Zhttps://docs.langflow.org/url2026-01-22T22:45:58.000Zhttps://docs.langflow.org/web-search2026-01-22T22:45:58.000Zhttps://docs.langflow.org/webhook2026-01-22T22:45:58.000Zhttps://docs.langflow.org/write-file2026-01-22T22:45:58.000Zhttps://docs.langflow.org/2026-01-22T22:45:58.000Z \ No newline at end of file +https://docs.langflow.org/apihttps://docs.langflow.org/api/openapi.jsonhttps://docs.langflow.org/api/openapi.yamlhttps://docs.langflow.org/searchhttps://docs.langflow.org/agent-tutorial2026-01-23T21:51:49.000Zhttps://docs.langflow.org/agents2026-01-23T21:51:49.000Zhttps://docs.langflow.org/agents-tools2026-01-23T21:51:49.000Zhttps://docs.langflow.org/api-build2026-01-23T21:51:49.000Zhttps://docs.langflow.org/api-files2026-01-23T21:51:49.000Zhttps://docs.langflow.org/api-flows2026-01-23T21:51:49.000Zhttps://docs.langflow.org/api-flows-run2026-01-23T21:51:49.000Zhttps://docs.langflow.org/api-keys-and-authentication2026-01-23T21:51:49.000Zhttps://docs.langflow.org/api-logs2026-01-23T21:51:49.000Zhttps://docs.langflow.org/api-monitor2026-01-23T21:51:49.000Zhttps://docs.langflow.org/api-openai-responses2026-01-23T21:51:49.000Zhttps://docs.langflow.org/api-projects2026-01-23T21:51:49.000Zhttps://docs.langflow.org/api-reference-api-examples2026-01-23T21:51:49.000Zhttps://docs.langflow.org/api-request2026-01-23T21:51:49.000Zhttps://docs.langflow.org/api-users2026-01-23T21:51:49.000Zhttps://docs.langflow.org/batch-run2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-aiml2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-altk2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-amazon2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-anthropic2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-apify2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-arxiv2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-assemblyai2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-azure2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-baidu2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-bing2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-cassandra2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-chroma2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-cleanlab2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-clickhouse2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-cloudflare2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-cohere2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-cometapi2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-composio2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-couchbase2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-cuga2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-datastax2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-deepseek2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-docling2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-duckduckgo2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-elastic2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-exa2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-faiss2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-glean2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-google2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-groq2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-huggingface2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-ibm2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-icosacomputing2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-langchain2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-lmstudio2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-maritalk2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-mem02026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-milvus2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-mistralai2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-mongodb2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-notion2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-novita2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-nvidia2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-ollama2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-openai2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-openrouter2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-perplexity2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-pgvector2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-pinecone2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-qdrant2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-redis2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-sambanova2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-searchapi2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-serper2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-supabase2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-upstash2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-vectara2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-vertexai2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-vllm2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-weaviate2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-wikipedia2026-01-23T21:51:49.000Zhttps://docs.langflow.org/bundles-xai2026-01-23T21:51:49.000Zhttps://docs.langflow.org/calculator2026-01-23T21:51:49.000Zhttps://docs.langflow.org/chat-input-and-output2026-01-23T21:51:49.000Zhttps://docs.langflow.org/chat-with-files2026-01-23T21:51:49.000Zhttps://docs.langflow.org/chat-with-rag2026-01-23T21:51:49.000Zhttps://docs.langflow.org/component-webhook2026-01-23T21:51:49.000Zhttps://docs.langflow.org/components-agents2026-01-23T21:51:49.000Zhttps://docs.langflow.org/components-bundle-components2026-01-23T21:51:49.000Zhttps://docs.langflow.org/components-custom-components2026-01-23T21:51:49.000Zhttps://docs.langflow.org/components-embedding-models2026-01-23T21:51:49.000Zhttps://docs.langflow.org/components-models2026-01-23T21:51:49.000Zhttps://docs.langflow.org/components-prompts2026-01-23T21:51:49.000Zhttps://docs.langflow.org/concepts-components2026-01-23T21:51:49.000Zhttps://docs.langflow.org/concepts-file-management2026-01-23T21:51:49.000Zhttps://docs.langflow.org/concepts-flows2026-01-23T21:51:49.000Zhttps://docs.langflow.org/concepts-flows-import2026-01-23T21:51:49.000Zhttps://docs.langflow.org/concepts-overview2026-01-23T21:51:49.000Zhttps://docs.langflow.org/concepts-playground2026-01-23T21:51:49.000Zhttps://docs.langflow.org/concepts-publish2026-01-23T21:51:49.000Zhttps://docs.langflow.org/concepts-voice-mode2026-01-23T21:51:49.000Zhttps://docs.langflow.org/configuration-cli2026-01-23T21:51:49.000Zhttps://docs.langflow.org/configuration-custom-database2026-01-23T21:51:49.000Zhttps://docs.langflow.org/configuration-global-variables2026-01-23T21:51:49.000Zhttps://docs.langflow.org/contributing-bundles2026-01-23T21:51:49.000Zhttps://docs.langflow.org/contributing-community2026-01-23T21:51:49.000Zhttps://docs.langflow.org/contributing-component-tests2026-01-23T21:51:49.000Zhttps://docs.langflow.org/contributing-components2026-01-23T21:51:49.000Zhttps://docs.langflow.org/contributing-github-issues2026-01-23T21:51:49.000Zhttps://docs.langflow.org/contributing-how-to-contribute2026-01-23T21:51:49.000Zhttps://docs.langflow.org/contributing-telemetry2026-01-23T21:51:49.000Zhttps://docs.langflow.org/contributing-templates2026-01-23T21:51:49.000Zhttps://docs.langflow.org/current-date2026-01-23T21:51:49.000Zhttps://docs.langflow.org/data-operations2026-01-23T21:51:49.000Zhttps://docs.langflow.org/data-types2026-01-23T21:51:49.000Zhttps://docs.langflow.org/dataframe-operations2026-01-23T21:51:49.000Zhttps://docs.langflow.org/deployment-architecture2026-01-23T21:51:49.000Zhttps://docs.langflow.org/deployment-caddyfile2026-01-23T21:51:49.000Zhttps://docs.langflow.org/deployment-docker2026-01-23T21:51:49.000Zhttps://docs.langflow.org/deployment-gcp2026-01-23T21:51:49.000Zhttps://docs.langflow.org/deployment-hugging-face-spaces2026-01-23T21:51:49.000Zhttps://docs.langflow.org/deployment-kubernetes-dev2026-01-23T21:51:49.000Zhttps://docs.langflow.org/deployment-kubernetes-prod2026-01-23T21:51:49.000Zhttps://docs.langflow.org/deployment-nginx-ssl2026-01-23T21:51:49.000Zhttps://docs.langflow.org/deployment-overview2026-01-23T21:51:49.000Zhttps://docs.langflow.org/deployment-prod-best-practices2026-01-23T21:51:49.000Zhttps://docs.langflow.org/deployment-public-server2026-01-23T21:51:49.000Zhttps://docs.langflow.org/deployment-railway2026-01-23T21:51:49.000Zhttps://docs.langflow.org/deployment-render2026-01-23T21:51:49.000Zhttps://docs.langflow.org/develop-application2026-01-23T21:51:49.000Zhttps://docs.langflow.org/directory2026-01-23T21:51:49.000Zhttps://docs.langflow.org/dynamic-create-data2026-01-23T21:51:49.000Zhttps://docs.langflow.org/enterprise-database-guide2026-01-23T21:51:49.000Zhttps://docs.langflow.org/environment-variables2026-01-23T21:51:49.000Zhttps://docs.langflow.org/get-started-installation2026-01-23T21:51:49.000Zhttps://docs.langflow.org/get-started-quickstart2026-01-23T21:51:49.000Zhttps://docs.langflow.org/if-else2026-01-23T21:51:49.000Zhttps://docs.langflow.org/install-custom-dependencies2026-01-23T21:51:49.000Zhttps://docs.langflow.org/integrations-arize2026-01-23T21:51:49.000Zhttps://docs.langflow.org/integrations-instana-traceloop2026-01-23T21:51:49.000Zhttps://docs.langflow.org/integrations-langfuse2026-01-23T21:51:49.000Zhttps://docs.langflow.org/integrations-langsmith2026-01-23T21:51:49.000Zhttps://docs.langflow.org/integrations-langwatch2026-01-23T21:51:49.000Zhttps://docs.langflow.org/integrations-opik2026-01-23T21:51:49.000Zhttps://docs.langflow.org/legacy-core-components2026-01-23T21:51:49.000Zhttps://docs.langflow.org/llm-selector2026-01-23T21:51:49.000Zhttps://docs.langflow.org/logging2026-01-23T21:51:49.000Zhttps://docs.langflow.org/loop2026-01-23T21:51:49.000Zhttps://docs.langflow.org/luna-for-langflow2026-01-23T21:51:49.000Zhttps://docs.langflow.org/mcp-client2026-01-23T21:51:49.000Zhttps://docs.langflow.org/mcp-component-astra2026-01-23T21:51:49.000Zhttps://docs.langflow.org/mcp-server2026-01-23T21:51:49.000Zhttps://docs.langflow.org/mcp-tools2026-01-23T21:51:49.000Zhttps://docs.langflow.org/mcp-tutorial2026-01-23T21:51:49.000Zhttps://docs.langflow.org/memory2026-01-23T21:51:49.000Zhttps://docs.langflow.org/message-history2026-01-23T21:51:49.000Zhttps://docs.langflow.org/mock-data2026-01-23T21:51:49.000Zhttps://docs.langflow.org/notify-and-listen2026-01-23T21:51:49.000Zhttps://docs.langflow.org/parser2026-01-23T21:51:49.000Zhttps://docs.langflow.org/python-interpreter2026-01-23T21:51:49.000Zhttps://docs.langflow.org/read-file2026-01-23T21:51:49.000Zhttps://docs.langflow.org/release-notes2026-01-23T21:51:49.000Zhttps://docs.langflow.org/run-flow2026-01-23T21:51:49.000Zhttps://docs.langflow.org/security2026-01-23T21:51:49.000Zhttps://docs.langflow.org/session-id2026-01-23T21:51:49.000Zhttps://docs.langflow.org/smart-router2026-01-23T21:51:49.000Zhttps://docs.langflow.org/smart-transform2026-01-23T21:51:49.000Zhttps://docs.langflow.org/split-text2026-01-23T21:51:49.000Zhttps://docs.langflow.org/sql-database2026-01-23T21:51:49.000Zhttps://docs.langflow.org/structured-output2026-01-23T21:51:49.000Zhttps://docs.langflow.org/text-input-and-output2026-01-23T21:51:49.000Zhttps://docs.langflow.org/troubleshoot2026-01-23T21:51:49.000Zhttps://docs.langflow.org/type-convert2026-01-23T21:51:49.000Zhttps://docs.langflow.org/typescript-client2026-01-23T21:51:49.000Zhttps://docs.langflow.org/url2026-01-23T21:51:49.000Zhttps://docs.langflow.org/web-search2026-01-23T21:51:49.000Zhttps://docs.langflow.org/webhook2026-01-23T21:51:49.000Zhttps://docs.langflow.org/write-file2026-01-23T21:51:49.000Zhttps://docs.langflow.org/2026-01-23T21:51:49.000Z \ No newline at end of file diff --git a/smart-router.html b/smart-router.html index f2b926e952..b1fff67072 100644 --- a/smart-router.html +++ b/smart-router.html @@ -24,7 +24,7 @@ - + diff --git a/smart-transform.html b/smart-transform.html index 4ae93c87f6..8a9fc08ebb 100644 --- a/smart-transform.html +++ b/smart-transform.html @@ -24,7 +24,7 @@ - + diff --git a/split-text.html b/split-text.html index 0ed1f2128b..e90a452889 100644 --- a/split-text.html +++ b/split-text.html @@ -24,7 +24,7 @@ - + diff --git a/sql-database.html b/sql-database.html index b6f09d0783..127f983f3c 100644 --- a/sql-database.html +++ b/sql-database.html @@ -24,7 +24,7 @@ - + diff --git a/structured-output.html b/structured-output.html index 201fbff79b..cb377790c1 100644 --- a/structured-output.html +++ b/structured-output.html @@ -24,7 +24,7 @@ - + diff --git a/text-input-and-output.html b/text-input-and-output.html index ef01a3c496..3538cdefee 100644 --- a/text-input-and-output.html +++ b/text-input-and-output.html @@ -24,7 +24,7 @@ - + diff --git a/troubleshoot.html b/troubleshoot.html index 704cfad31f..24f2ff71a6 100644 --- a/troubleshoot.html +++ b/troubleshoot.html @@ -24,7 +24,7 @@ - + diff --git a/type-convert.html b/type-convert.html index 7eaf7ac9ae..c55d138122 100644 --- a/type-convert.html +++ b/type-convert.html @@ -24,7 +24,7 @@ - + diff --git a/typescript-client.html b/typescript-client.html index dcd27ae762..8e0b109cdc 100644 --- a/typescript-client.html +++ b/typescript-client.html @@ -24,7 +24,7 @@ - + diff --git a/url.html b/url.html index 8f2b8a6f06..029ed85244 100644 --- a/url.html +++ b/url.html @@ -24,7 +24,7 @@ - + diff --git a/web-search.html b/web-search.html index a492e2f5ce..4402e0995a 100644 --- a/web-search.html +++ b/web-search.html @@ -24,7 +24,7 @@ - + diff --git a/webhook.html b/webhook.html index a621ae9552..d4bf62d557 100644 --- a/webhook.html +++ b/webhook.html @@ -24,7 +24,7 @@ - + diff --git a/write-file.html b/write-file.html index 798433cd84..d848e517cc 100644 --- a/write-file.html +++ b/write-file.html @@ -24,7 +24,7 @@ - +