diff --git a/404.html b/404.html index 17fed6f5d2..151ac5f401 100644 --- a/404.html +++ b/404.html @@ -25,7 +25,7 @@ - + diff --git a/agent-tutorial.html b/agent-tutorial.html index 8b45cc7616..00f78453f6 100644 --- a/agent-tutorial.html +++ b/agent-tutorial.html @@ -25,7 +25,7 @@ - + diff --git a/agents-tools.html b/agents-tools.html index 3867aa2720..a0d78550ec 100644 --- a/agents-tools.html +++ b/agents-tools.html @@ -25,7 +25,7 @@ - + diff --git a/agents.html b/agents.html index ea0aee94ee..5988ab76d9 100644 --- a/agents.html +++ b/agents.html @@ -25,7 +25,7 @@ - + diff --git a/api-build.html b/api-build.html index 2af3b8efda..76aa09ec07 100644 --- a/api-build.html +++ b/api-build.html @@ -25,7 +25,7 @@ - + diff --git a/api-files.html b/api-files.html index 4dd09f3b8d..1872fd4522 100644 --- a/api-files.html +++ b/api-files.html @@ -25,7 +25,7 @@ - + diff --git a/api-flows-run.html b/api-flows-run.html index 0503f6e852..2aef77a31a 100644 --- a/api-flows-run.html +++ b/api-flows-run.html @@ -25,7 +25,7 @@ - + diff --git a/api-flows.html b/api-flows.html index 0e3a83d856..793b3e59e1 100644 --- a/api-flows.html +++ b/api-flows.html @@ -25,7 +25,7 @@ - + diff --git a/api-keys-and-authentication.html b/api-keys-and-authentication.html index cd6838b930..32f4faac1d 100644 --- a/api-keys-and-authentication.html +++ b/api-keys-and-authentication.html @@ -25,7 +25,7 @@ - + diff --git a/api-logs.html b/api-logs.html index d203e060a9..bc87771bba 100644 --- a/api-logs.html +++ b/api-logs.html @@ -25,7 +25,7 @@ - + diff --git a/api-monitor.html b/api-monitor.html index 09df435170..ae6cea7db3 100644 --- a/api-monitor.html +++ b/api-monitor.html @@ -25,7 +25,7 @@ - + diff --git a/api-openai-responses.html b/api-openai-responses.html index a6080cc71d..1edf0770c8 100644 --- a/api-openai-responses.html +++ b/api-openai-responses.html @@ -25,7 +25,7 @@ - + diff --git a/api-projects.html b/api-projects.html index bee9334ae6..07bbd1ff0b 100644 --- a/api-projects.html +++ b/api-projects.html @@ -25,7 +25,7 @@ - + diff --git a/api-reference-api-examples.html b/api-reference-api-examples.html index 06fed497f8..68f3d57551 100644 --- a/api-reference-api-examples.html +++ b/api-reference-api-examples.html @@ -25,7 +25,7 @@ - + diff --git a/api-request.html b/api-request.html index d3065b5ee3..ccd42b33be 100644 --- a/api-request.html +++ b/api-request.html @@ -25,7 +25,7 @@ - + diff --git a/api-users.html b/api-users.html index c766108840..bf586e66fa 100644 --- a/api-users.html +++ b/api-users.html @@ -25,7 +25,7 @@ - + diff --git a/api.html b/api.html index 178ee52fd9..1af063af64 100644 --- a/api.html +++ b/api.html @@ -25,7 +25,7 @@ - + diff --git a/api/openapi.json.html b/api/openapi.json.html index 6fe2f42b43..cee28518f4 100644 --- a/api/openapi.json.html +++ b/api/openapi.json.html @@ -25,7 +25,7 @@ - + diff --git a/api/workflow.html b/api/workflow.html index 75df056913..80ee1ab89d 100644 --- a/api/workflow.html +++ b/api/workflow.html @@ -25,7 +25,7 @@ - + diff --git a/assets/js/db8c087e.5e412f6d.js b/assets/js/db8c087e.5e412f6d.js deleted file mode 100644 index dfcce4b1bc..0000000000 --- a/assets/js/db8c087e.5e412f6d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(globalThis.webpackChunklangflow_docs=globalThis.webpackChunklangflow_docs||[]).push([[30],{11470:(e,n,o)=>{o.d(n,{A:()=>j});var t=o(96540),s=o(18215),r=o(17559),l=o(23104),a=o(56347),i=o(205),c=o(57485),d=o(31682),u=o(70679);function p(e){return t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){const{values:n,children:o}=e;return(0,t.useMemo)(()=>{const e=n??function(e){return p(e).map(({props:{value:e,label:n,attributes:o,default:t}})=>({value:e,label:n,attributes:o,default:t}))}(o);return function(e){const n=(0,d.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[n,o])}function f({value:e,tabValues:n}){return n.some(n=>n.value===e)}function g({queryString:e=!1,groupId:n}){const o=(0,a.W6)(),s=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,c.aZ)(s),(0,t.useCallback)(e=>{if(!s)return;const n=new URLSearchParams(o.location.search);n.set(s,e),o.replace({...o.location,search:n.toString()})},[s,o])]}function m(e){const{defaultValue:n,queryString:o=!1,groupId:s}=e,r=h(e),[l,a]=(0,t.useState)(()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!f({value:e,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const o=n.find(e=>e.default)??n[0];if(!o)throw new Error("Unexpected error: 0 tabValues");return o.value}({defaultValue:n,tabValues:r})),[c,d]=g({queryString:o,groupId:s}),[p,m]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[o,s]=(0,u.Dv)(n);return[o,(0,t.useCallback)(e=>{n&&s.set(e)},[n,s])]}({groupId:s}),y=(()=>{const e=c??p;return f({value:e,tabValues:r})?e:null})();(0,i.A)(()=>{y&&a(y)},[y]);return{selectedValue:l,selectValue:(0,t.useCallback)(e=>{if(!f({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);a(e),d(e),m(e)},[d,m,r]),tabValues:r}}var y=o(92303);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var v=o(74848);function x({className:e,block:n,selectedValue:o,selectValue:t,tabValues:r}){const a=[],{blockElementScrollPositionUntilNextRender:i}=(0,l.a_)(),c=e=>{const n=e.currentTarget,s=a.indexOf(n),l=r[s].value;l!==o&&(i(n),t(l))},d=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const o=a.indexOf(e.currentTarget)+1;n=a[o]??a[0];break}case"ArrowLeft":{const o=a.indexOf(e.currentTarget)-1;n=a[o]??a[a.length-1];break}}n?.focus()};return(0,v.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},e),children:r.map(({value:e,label:n,attributes:t})=>(0,v.jsx)("li",{role:"tab",tabIndex:o===e?0:-1,"aria-selected":o===e,ref:e=>{a.push(e)},onKeyDown:d,onClick:c,...t,className:(0,s.A)("tabs__item",b.tabItem,t?.className,{"tabs__item--active":o===e}),children:n??e},e))})}function w({lazy:e,children:n,selectedValue:o}){const r=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=r.find(e=>e.props.value===o);return e?(0,t.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,v.jsx)("div",{className:"margin-top--md",children:r.map((e,n)=>(0,t.cloneElement)(e,{key:n,hidden:e.props.value!==o}))})}function k(e){const n=m(e);return(0,v.jsxs)("div",{className:(0,s.A)(r.G.tabs.container,"tabs-container",b.tabList),children:[(0,v.jsx)(x,{...n,...e}),(0,v.jsx)(w,{...n,...e})]})}function j(e){const n=(0,y.A)();return(0,v.jsx)(k,{...e,children:p(e.children)},String(n))}},11598:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>p,assets:()=>u,chCodeConfig:()=>h,contentTitle:()=>d,default:()=>m,frontMatter:()=>c,metadata:()=>t,toc:()=>f});const t=JSON.parse('{"id":"Develop/integrations-langfuse","title":"Langfuse","description":"Langfuse is an open-source platform for LLM observability. It provides tracing and monitoring capabilities for AI applications, helping developers debug, analyze, and optimize their AI systems. Langfuse integrates with various tools and frameworks, including workflow builders and runtimes like Langflow.","source":"@site/docs/Develop/integrations-langfuse.mdx","sourceDirName":"Develop","slug":"/integrations-langfuse","permalink":"/integrations-langfuse","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Langfuse","slug":"/integrations-langfuse"},"sidebar":"docs","previous":{"title":"Arize","permalink":"/integrations-arize"},"next":{"title":"LangSmith","permalink":"/integrations-langsmith"}}');var s=o(74848),r=o(28453),l=o(24754),a=o(11470),i=o(19365);const c={title:"Langfuse",slug:"/integrations-langfuse"},d=void 0,u={},p={annotations:l.hk,Code:l.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},f=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Set Langfuse credentials as environment variables",id:"langfuse-credentials",level:2},{value:"Start Langflow and view traces in Langfuse",id:"start-langflow-and-view-traces-in-langfuse",level:2},{value:"Disable Langfuse tracing",id:"disable-langfuse-tracing",level:2},{value:"Run Langfuse and Langflow with Docker Compose",id:"run-langfuse-and-langflow-with-docker-compose",level:2},{value:"See also",id:"see-also",level:2}];function g(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...e.components};return p||y("CH",!1),p.Code||y("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:[(0,s.jsx)(n.a,{href:"https://langfuse.com",children:"Langfuse"})," is an open-source platform for LLM observability. It provides tracing and monitoring capabilities for AI applications, helping developers debug, analyze, and optimize their AI systems. Langfuse integrates with various tools and frameworks, including workflow builders and runtimes like Langflow."]}),"\n",(0,s.jsxs)(n.p,{children:["This guide explains how to configure Langflow to collect ",(0,s.jsx)(n.a,{href:"https://langfuse.com/docs/tracing",children:"tracing"})," data about your flow executions and automatically send the data to Langfuse."]}),"\n",(0,s.jsx)("iframe",{width:"760",height:"415",src:"https://www.youtube.com/embed/SA9gGbzwNGU?si=eDKvdtvhb3fJCSbl",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerpolicy:"strict-origin-when-cross-origin",allowfullscreen:!0}),"\n",(0,s.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["An account in a ",(0,s.jsx)(n.a,{href:"https://cloud.langfuse.com",children:"Langfuse Cloud"})," or ",(0,s.jsx)(n.a,{href:"https://langfuse.com/self-hosting",children:"Langfuse self-hosted"})," instance"]}),"\n",(0,s.jsxs)(n.li,{children:["A ",(0,s.jsx)(n.a,{href:"/get-started-installation",children:"running Langflow server"})," with a ",(0,s.jsx)(n.a,{href:"/concepts-flows",children:"flow"})," that you want to trace"]}),"\n"]}),"\n",(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["If you need a flow to test the Langfuse integration, see the ",(0,s.jsx)(n.a,{href:"/get-started-quickstart",children:"Langflow quickstart"}),"."]})}),"\n",(0,s.jsx)(n.h2,{id:"langfuse-credentials",children:"Set Langfuse credentials as environment variables"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Create a set of ",(0,s.jsx)(n.a,{href:"https://langfuse.com/faq/all/where-are-langfuse-api-keys",children:"Langfuse API keys"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Copy the following API key information:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Secret Key"}),"\n",(0,s.jsx)(n.li,{children:"Public Key"}),"\n",(0,s.jsx)(n.li,{children:"Host URL"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Set your Langfuse project credentials as environment variables in the same environment where you run Langflow."}),"\n",(0,s.jsxs)(n.p,{children:["In the following examples, replace ",(0,s.jsx)(n.code,{children:"SECRET_KEY"}),", ",(0,s.jsx)(n.code,{children:"PUBLIC_KEY"}),", and ",(0,s.jsx)(n.code,{children:"HOST_URL"})," with your API key details from Langfuse."]}),"\n",(0,s.jsxs)(a.A,{children:[(0,s.jsxs)(i.A,{value:"linux-macos",label:"Linux or macOS",default:!0,children:[(0,s.jsx)(n.p,{children:"These commands set the environment variables in a Linux or macOS terminal session:"}),(0,s.jsx)(p.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export LANGFUSE_SECRET_KEY=SECRET_KEY",props:{}}]},{tokens:[{content:"export LANGFUSE_PUBLIC_KEY=PUBLIC_KEY",props:{}}]},{tokens:[{content:"export LANGFUSE_HOST=HOST_URL",props:{}}]}],lang:"text"},annotations:[]}]})]}),(0,s.jsxs)(i.A,{value:"windows",label:"Windows",children:[(0,s.jsx)(n.p,{children:"These commands set the environment variables in a Windows command prompt session:"}),(0,s.jsx)(p.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"set LANGFUSE_SECRET_KEY=SECRET_KEY",props:{}}]},{tokens:[{content:"set LANGFUSE_PUBLIC_KEY=PUBLIC_KEY",props:{}}]},{tokens:[{content:"set LANGFUSE_HOST=HOST_URL",props:{}}]}],lang:"text"},annotations:[]}]})]})]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"start-langflow-and-view-traces-in-langfuse",children:"Start Langflow and view traces in Langfuse"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Start Langflow in the same environment where you set the Langfuse environment variables:"}),"\n",(0,s.jsx)(p.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"run langflow run",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Run a flow."}),"\n",(0,s.jsx)(n.p,{children:"Langflow automatically collects and sends tracing data about the flow execution to Langfuse."}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["View the collected data in your ",(0,s.jsx)(n.a,{href:"https://langfuse.com/docs/analytics/overview",children:"Langfuse dashboard"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Langfuse also provides a ",(0,s.jsx)(n.a,{href:"https://cloud.langfuse.com/project/cm0nywmaa005c3ol2msoisiho/traces/f016ae6d-4527-43f5-93ba-9d78388cd3d9",children:"public live trace example dashboard"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"disable-langfuse-tracing",children:"Disable Langfuse tracing"}),"\n",(0,s.jsxs)(n.p,{children:["To disable the Langfuse integration, remove the ",(0,s.jsx)(n.a,{href:"#langfuse-credentials",children:"Langfuse environment variables"}),", and then restart Langflow."]}),"\n",(0,s.jsx)(n.h2,{id:"run-langfuse-and-langflow-with-docker-compose",children:"Run Langfuse and Langflow with Docker Compose"}),"\n",(0,s.jsx)(n.p,{children:"As an alternative to the previous setup, particularly for self-hosted Langfuse, you can run both services with Docker Compose."}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Create a set of ",(0,s.jsx)(n.a,{href:"https://langfuse.com/faq/all/where-are-langfuse-api-keys",children:"Langfuse API keys"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Copy the following API key information:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Secret Key"}),"\n",(0,s.jsx)(n.li,{children:"Public Key"}),"\n",(0,s.jsx)(n.li,{children:"Host URL"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Add your Langflow credentials to your Langflow ",(0,s.jsx)(n.code,{children:"docker-compose.yml"})," file in the ",(0,s.jsx)(n.code,{children:"environment"})," section."]}),"\n",(0,s.jsxs)(n.p,{children:["The following example is based on the ",(0,s.jsxs)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/main/docker_example/docker-compose.yml",children:["example ",(0,s.jsx)(n.code,{children:"docker-compose.yml"})]}),"."]}),"\n",(0,s.jsx)(p.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"services",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"langflowai/langflow:latest ",props:{style:{color:"#A5D6FF"}}},{content:"# or another version tag on https://hub.docker.com/r/langflowai/langflow",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" pull_policy",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"always ",props:{style:{color:"#A5D6FF"}}},{content:"# set to 'always' when using 'latest' image",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" ports",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:'"7860:7860"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" depends_on",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"postgres",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" environment",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_DATABASE_URL=postgresql://langflow:langflow@postgres:5432/langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" # This variable defines where the logs, file storage, monitor data and secret keys are stored.",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_CONFIG_DIR=app/langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFUSE_SECRET_KEY=sk-...",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFUSE_PUBLIC_KEY=pk-...",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFUSE_HOST=https://us.cloud.langfuse.com",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" volumes",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"langflow-data:/app/langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" postgres",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"postgres:16",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" environment",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" POSTGRES_USER",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" POSTGRES_PASSWORD",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" POSTGRES_DB",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ports",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:'"5432:5432"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" volumes",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"langflow-postgres:/var/lib/postgresql/data",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"volumes",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow-postgres",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow-data",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]}],lang:"yml"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"Start the Docker container:"}),"\n",(0,s.jsx)(p.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker-compose up",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"To confirm Langfuse is connected to your Langflow container, run the following command:"}),"\n",(0,s.jsx)(p.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"compose exec langflow python ",props:{style:{color:"#A5D6FF"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"import requests, os; addr = os.environ.get('LANGFUSE_HOST'); print(addr); res = requests.get(addr, timeout=5); print(res.status_code)\"",props:{style:{color:"#A5D6FF"}}}]}],lang:"sh"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["If there is an error, make sure you have set the ",(0,s.jsx)(n.code,{children:"LANGFUSE_HOST"})," environment variable in your terminal session."]}),"\n",(0,s.jsx)(n.p,{children:"Output similar to the following indicates success:"}),"\n",(0,s.jsx)(p.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"https://us.cloud.langfuse.com",props:{}}]},{tokens:[{content:"200",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"see-also",children:"See also"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://github.com/langfuse/langfuse",children:"Langfuse GitHub repository"})}),"\n"]})]})}function m(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(g,{...e})}):g(e)}function y(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},19365:(e,n,o)=>{o.d(n,{A:()=>l});o(96540);var t=o(18215);const s={tabItem:"tabItem_Ymn6"};var r=o(74848);function l({children:e,hidden:n,className:o}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,t.A)(s.tabItem,o),hidden:n,children:e})}}}]); \ No newline at end of file diff --git a/assets/js/db8c087e.d5f6d415.js b/assets/js/db8c087e.d5f6d415.js new file mode 100644 index 0000000000..52d4b03c3a --- /dev/null +++ b/assets/js/db8c087e.d5f6d415.js @@ -0,0 +1 @@ +"use strict";(globalThis.webpackChunklangflow_docs=globalThis.webpackChunklangflow_docs||[]).push([[30],{11470:(e,o,n)=>{n.d(o,{A:()=>D});var t=n(96540),s=n(18215),r=n(17559),l=n(23104),a=n(56347),c=n(205),i=n(57485),d=n(31682),u=n(70679);function p(e){return t.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,t.isValidElement)(e)&&function(e){const{props:o}=e;return!!o&&"object"==typeof o&&"value"in o}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)})?.filter(Boolean)??[]}function h(e){const{values:o,children:n}=e;return(0,t.useMemo)(()=>{const e=o??function(e){return p(e).map(({props:{value:e,label:o,attributes:n,default:t}})=>({value:e,label:o,attributes:n,default:t}))}(n);return function(e){const o=(0,d.XI)(e,(e,o)=>e.value===o.value);if(o.length>0)throw new Error(`Docusaurus error: Duplicate values "${o.map(e=>e.value).join(", ")}" found in . Every value needs to be unique.`)}(e),e},[o,n])}function f({value:e,tabValues:o}){return o.some(o=>o.value===e)}function g({queryString:e=!1,groupId:o}){const n=(0,a.W6)(),s=function({queryString:e=!1,groupId:o}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!o)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return o??null}({queryString:e,groupId:o});return[(0,i.aZ)(s),(0,t.useCallback)(e=>{if(!s)return;const o=new URLSearchParams(n.location.search);o.set(s,e),n.replace({...n.location,search:o.toString()})},[s,n])]}function y(e){const{defaultValue:o,queryString:n=!1,groupId:s}=e,r=h(e),[l,a]=(0,t.useState)(()=>function({defaultValue:e,tabValues:o}){if(0===o.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!f({value:e,tabValues:o}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${o.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const n=o.find(e=>e.default)??o[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:o,tabValues:r})),[i,d]=g({queryString:n,groupId:s}),[p,y]=function({groupId:e}){const o=function(e){return e?`docusaurus.tab.${e}`:null}(e),[n,s]=(0,u.Dv)(o);return[n,(0,t.useCallback)(e=>{o&&s.set(e)},[o,s])]}({groupId:s}),m=(()=>{const e=i??p;return f({value:e,tabValues:r})?e:null})();(0,c.A)(()=>{m&&a(m)},[m]);return{selectedValue:l,selectValue:(0,t.useCallback)(e=>{if(!f({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);a(e),d(e),y(e)},[d,y,r]),tabValues:r}}var m=n(92303);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var v=n(74848);function x({className:e,block:o,selectedValue:n,selectValue:t,tabValues:r}){const a=[],{blockElementScrollPositionUntilNextRender:c}=(0,l.a_)(),i=e=>{const o=e.currentTarget,s=a.indexOf(o),l=r[s].value;l!==n&&(c(o),t(l))},d=e=>{let o=null;switch(e.key){case"Enter":i(e);break;case"ArrowRight":{const n=a.indexOf(e.currentTarget)+1;o=a[n]??a[0];break}case"ArrowLeft":{const n=a.indexOf(e.currentTarget)-1;o=a[n]??a[a.length-1];break}}o?.focus()};return(0,v.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":o},e),children:r.map(({value:e,label:o,attributes:t})=>(0,v.jsx)("li",{role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:e=>{a.push(e)},onKeyDown:d,onClick:i,...t,className:(0,s.A)("tabs__item",b.tabItem,t?.className,{"tabs__item--active":n===e}),children:o??e},e))})}function w({lazy:e,children:o,selectedValue:n}){const r=(Array.isArray(o)?o:[o]).filter(Boolean);if(e){const e=r.find(e=>e.props.value===n);return e?(0,t.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,v.jsx)("div",{className:"margin-top--md",children:r.map((e,o)=>(0,t.cloneElement)(e,{key:o,hidden:e.props.value!==n}))})}function k(e){const o=y(e);return(0,v.jsxs)("div",{className:(0,s.A)(r.G.tabs.container,"tabs-container",b.tabList),children:[(0,v.jsx)(x,{...o,...e}),(0,v.jsx)(w,{...o,...e})]})}function D(e){const o=(0,m.A)();return(0,v.jsx)(k,{...e,children:p(e.children)},String(o))}},11598:(e,o,n)=>{n.r(o),n.d(o,{CH:()=>d,assets:()=>i,chCodeConfig:()=>u,contentTitle:()=>c,default:()=>f,frontMatter:()=>a,metadata:()=>t,toc:()=>p});const t=JSON.parse('{"id":"Develop/integrations-langfuse","title":"Langfuse","description":"Langfuse is an open-source platform for LLM observability. It provides tracing and monitoring capabilities for AI applications, helping developers debug, analyze, and optimize their AI systems. Langfuse integrates with various tools and frameworks, including workflow builders and runtimes like Langflow.","source":"@site/docs/Develop/integrations-langfuse.mdx","sourceDirName":"Develop","slug":"/integrations-langfuse","permalink":"/integrations-langfuse","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Langfuse","slug":"/integrations-langfuse"},"sidebar":"docs","previous":{"title":"Arize","permalink":"/integrations-arize"},"next":{"title":"LangSmith","permalink":"/integrations-langsmith"}}');var s=n(74848),r=n(28453),l=n(24754);n(11470),n(19365);const a={title:"Langfuse",slug:"/integrations-langfuse"},c=void 0,i={},d={annotations:l.hk,Code:l.Cy},u={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Set Langfuse credentials as environment variables",id:"langfuse-credentials",level:2},{value:"Disable Langfuse tracing",id:"disable-langfuse-tracing",level:2},{value:"Run Langfuse and Langflow with Docker Compose",id:"run-langfuse-and-langflow-with-docker-compose",level:2},{value:"See also",id:"see-also",level:2}];function h(e){const o={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...e.components};return d||g("CH",!1),d.Code||g("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)(o.p,{children:[(0,s.jsx)(o.a,{href:"https://langfuse.com",children:"Langfuse"})," is an open-source platform for LLM observability. It provides tracing and monitoring capabilities for AI applications, helping developers debug, analyze, and optimize their AI systems. Langfuse integrates with various tools and frameworks, including workflow builders and runtimes like Langflow."]}),"\n",(0,s.jsxs)(o.p,{children:["This guide explains how to configure Langflow to collect ",(0,s.jsx)(o.a,{href:"https://langfuse.com/docs/tracing",children:"tracing"})," data about your flow executions and automatically send the data to Langfuse."]}),"\n",(0,s.jsx)("iframe",{width:"760",height:"415",src:"https://www.youtube.com/embed/SA9gGbzwNGU?si=eDKvdtvhb3fJCSbl",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerpolicy:"strict-origin-when-cross-origin",allowfullscreen:!0}),"\n",(0,s.jsx)(o.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsxs)(o.li,{children:["An account in a ",(0,s.jsx)(o.a,{href:"https://cloud.langfuse.com",children:"Langfuse Cloud"})," or ",(0,s.jsx)(o.a,{href:"https://langfuse.com/self-hosting",children:"Langfuse self-hosted"})," instance"]}),"\n",(0,s.jsxs)(o.li,{children:["A ",(0,s.jsx)(o.a,{href:"/get-started-installation",children:"running Langflow server"})," with a ",(0,s.jsx)(o.a,{href:"/concepts-flows",children:"flow"})," that you want to trace"]}),"\n"]}),"\n",(0,s.jsx)(o.admonition,{type:"tip",children:(0,s.jsxs)(o.p,{children:["If you need a flow to test the Langfuse integration, see the ",(0,s.jsx)(o.a,{href:"/get-started-quickstart",children:"Langflow quickstart"}),"."]})}),"\n",(0,s.jsx)(o.h2,{id:"langfuse-credentials",children:"Set Langfuse credentials as environment variables"}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Create a set of ",(0,s.jsx)(o.a,{href:"https://langfuse.com/faq/all/where-are-langfuse-api-keys",children:"Langfuse API keys"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"Copy the following API key information:"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsx)(o.li,{children:"Secret key"}),"\n",(0,s.jsx)(o.li,{children:"Public key"}),"\n",(0,s.jsx)(o.li,{children:"Base URL"}),"\n"]}),"\n",(0,s.jsx)(o.admonition,{type:"tip",children:(0,s.jsxs)(o.p,{children:["Langflow previously used ",(0,s.jsx)(o.code,{children:"LANGFUSE_HOST"})," as the variable for the Langfuse base URL.\nThis is still supported for backward compatibility, but ",(0,s.jsx)(o.code,{children:"LANGFUSE_BASE_URL"})," is now the preferred environment variable and will be used if both values are set."]})}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"Set your Langfuse project credentials as environment variables."}),"\n",(0,s.jsxs)(o.p,{children:["In the following examples, replace ",(0,s.jsx)(o.code,{children:"SECRET_KEY"}),", ",(0,s.jsx)(o.code,{children:"PUBLIC_KEY"}),", and ",(0,s.jsx)(o.code,{children:"LANGFUSE_BASE_URL"})," with your API key details from Langfuse.\nAdd the following entries to your ",(0,s.jsx)(o.code,{children:".env"})," file:"]}),"\n",(0,s.jsx)(d.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGFUSE_SECRET_KEY",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"sk-...",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"LANGFUSE_PUBLIC_KEY",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"pk-...",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"LANGFUSE_BASE_URL",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"https://us.cloud.langfuse.com",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Start Langflow with the configuration in the ",(0,s.jsx)(o.code,{children:".env"})," file:"]}),"\n",(0,s.jsx)(d.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"uv ",props:{style:{color:"#FFA657"}}},{content:"run langflow run ",props:{style:{color:"#A5D6FF"}}},{content:"--env-file ",props:{style:{color:"#79C0FF"}}},{content:".env",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"Run a flow."}),"\n",(0,s.jsx)(o.p,{children:"Langflow automatically collects and sends tracing data about the flow execution to Langfuse."}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["View the collected data in your ",(0,s.jsx)(o.a,{href:"https://langfuse.com/docs/analytics/overview",children:"Langfuse dashboard"}),"."]}),"\n",(0,s.jsxs)(o.p,{children:["Langfuse also provides a ",(0,s.jsx)(o.a,{href:"https://cloud.langfuse.com/project/cm0nywmaa005c3ol2msoisiho/traces/f016ae6d-4527-43f5-93ba-9d78388cd3d9",children:"public live trace example dashboard"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(o.h2,{id:"disable-langfuse-tracing",children:"Disable Langfuse tracing"}),"\n",(0,s.jsxs)(o.p,{children:["To disable the Langfuse integration, remove the ",(0,s.jsx)(o.a,{href:"#langfuse-credentials",children:"Langfuse environment variables"}),", and then restart Langflow."]}),"\n",(0,s.jsx)(o.h2,{id:"run-langfuse-and-langflow-with-docker-compose",children:"Run Langfuse and Langflow with Docker Compose"}),"\n",(0,s.jsx)(o.p,{children:"As an alternative to the previous setup, particularly for self-hosted Langfuse, you can run both services with Docker Compose."}),"\n",(0,s.jsxs)(o.ol,{children:["\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Create a set of ",(0,s.jsx)(o.a,{href:"https://langfuse.com/faq/all/where-are-langfuse-api-keys",children:"Langfuse API keys"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"Copy the following API key information:"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsx)(o.li,{children:"Secret key"}),"\n",(0,s.jsx)(o.li,{children:"Public key"}),"\n",(0,s.jsx)(o.li,{children:"Base URL"}),"\n"]}),"\n",(0,s.jsx)(o.admonition,{type:"tip",children:(0,s.jsxs)(o.p,{children:["Langflow previously used ",(0,s.jsx)(o.code,{children:"LANGFUSE_HOST"})," as the variable for the Langfuse base URL.\n",(0,s.jsx)(o.code,{children:"LANGFUSE_HOST"})," is still supported for backward compatibility, but ",(0,s.jsx)(o.code,{children:"LANGFUSE_BASE_URL"})," is the preferred environment variable.\nIf both values are set, then ",(0,s.jsx)(o.code,{children:"LANGFLOW_BASE_URL"})," is used."]})}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsxs)(o.p,{children:["Add your Langflow credentials to your Langflow ",(0,s.jsx)(o.code,{children:"docker-compose.yml"})," file in the ",(0,s.jsx)(o.code,{children:"environment"})," section."]}),"\n",(0,s.jsxs)(o.p,{children:["The following example is based on the ",(0,s.jsxs)(o.a,{href:"https://github.com/langflow-ai/langflow/blob/main/docker_example/docker-compose.yml",children:["example ",(0,s.jsx)(o.code,{children:"docker-compose.yml"})]}),"."]}),"\n",(0,s.jsx)(d.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"services",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"langflowai/langflow:latest ",props:{style:{color:"#A5D6FF"}}},{content:"# or another version tag on https://hub.docker.com/r/langflowai/langflow",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" pull_policy",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"always ",props:{style:{color:"#A5D6FF"}}},{content:"# set to 'always' when using 'latest' image",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" ports",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:'"7860:7860"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" depends_on",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"postgres",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" environment",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_DATABASE_URL=postgresql://langflow:langflow@postgres:5432/langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" # This variable defines where the logs, file storage, monitor data and secret keys are stored.",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_CONFIG_DIR=app/langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFUSE_SECRET_KEY=sk-...",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFUSE_PUBLIC_KEY=pk-...",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFUSE_BASE_URL=https://us.cloud.langfuse.com",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" volumes",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"langflow-data:/app/langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" postgres",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"postgres:16",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" environment",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" POSTGRES_USER",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" POSTGRES_PASSWORD",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" POSTGRES_DB",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" ports",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:'"5432:5432"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" volumes",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"langflow-postgres:/var/lib/postgresql/data",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"volumes",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow-postgres",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" langflow-data",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]}],lang:"yml"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"Start the Docker container:"}),"\n",(0,s.jsx)(d.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker-compose up",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n",(0,s.jsxs)(o.li,{children:["\n",(0,s.jsx)(o.p,{children:"To confirm Langfuse is connected to your Langflow container, run the following command:"}),"\n",(0,s.jsx)(d.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"compose exec langflow python ",props:{style:{color:"#A5D6FF"}}},{content:"-c ",props:{style:{color:"#79C0FF"}}},{content:"\"import requests, os; addr = os.environ.get('LANGFUSE_BASE_URL'); print(addr); res = requests.get(addr, timeout=5); print(res.status_code)\"",props:{style:{color:"#A5D6FF"}}}]}],lang:"sh"},annotations:[]}]}),"\n",(0,s.jsxs)(o.p,{children:["If there is an error, make sure you have set the ",(0,s.jsx)(o.code,{children:"LANGFUSE_BASE_URL"})," environment variable in your ",(0,s.jsx)(o.code,{children:"docker-compose.yml"})," file."]}),"\n",(0,s.jsx)(o.p,{children:"Output similar to the following indicates success:"}),"\n",(0,s.jsx)(d.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"https://us.cloud.langfuse.com",props:{}}]},{tokens:[{content:"200",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(o.h2,{id:"see-also",children:"See also"}),"\n",(0,s.jsxs)(o.ul,{children:["\n",(0,s.jsx)(o.li,{children:(0,s.jsx)(o.a,{href:"https://github.com/langfuse/langfuse",children:"Langfuse GitHub repository"})}),"\n"]})]})}function f(e={}){const{wrapper:o}={...(0,r.R)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}function g(e,o){throw new Error("Expected "+(o?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},19365:(e,o,n)=>{n.d(o,{A:()=>l});n(96540);var t=n(18215);const s={tabItem:"tabItem_Ymn6"};var r=n(74848);function l({children:e,hidden:o,className:n}){return(0,r.jsx)("div",{role:"tabpanel",className:(0,t.A)(s.tabItem,n),hidden:o,children:e})}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.de456ad1.js b/assets/js/runtime~main.a1651604.js similarity index 99% rename from assets/js/runtime~main.de456ad1.js rename to assets/js/runtime~main.a1651604.js index cb9857844c..1d72ac14d1 100644 --- a/assets/js/runtime~main.de456ad1.js +++ b/assets/js/runtime~main.a1651604.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,f,d,b,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=c,r.c=t,e=[],r.O=(a,f,d,b)=>{if(!f){var c=1/0;for(i=0;i=b)&&Object.keys(r.O).every(e=>r.O[e](f[o]))?f.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[f,d,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};a=a||[null,f({}),f([]),f(f)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=f(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 f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((a,f)=>(r.f[f](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",360:"e4dcfb14",375:"3d81f1cf",446:"a4232cf8",534:"76e36fb0",596:"c2e0ed62",598:"db4f3bbd",600:"ee87c775",676:"7631f8d2",681:"ffa0f8b1",750:"33b5ee95",879:"8bee5443",883:"1dfb8d43",889:"08b309e9",953:"bd7e5f4a",956:"03735ec1",957:"c141421f",1006:"47e58a89",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",3359:"6d032186",3361:"8f633f11",3368:"efa0f9ee",3387:"3d67876e",3468:"c76bd485",3500:"c3c63498",3536:"2eb731bc",3683:"5a0b74d9",3992:"18dc6e4d",4036:"fbcfc90d",4085:"cb17b4e0",4090:"a8ca941b",4173:"d51059db",4263:"9a5e6f6b",4314:"f6a246db",4341:"e1a0f423",4351:"13786dcf",4356:"7b864b08",4384:"622bdc6f",4474:"3db73d6f",4573:"baacc2a1",4612:"6a9eca1a",4614:"e55b8e98",4644:"d3e886ab",4876:"44691977",4907:"86116998",4919:"ce43de4b",4995:"62266e9d",5045:"f2ec4536",5048:"3c440e04",5110:"e9fe1d10",5144:"944c5f91",5200:"ff7f32ba",5217:"fb0a7a3f",5270:"99931d31",5281:"eeeaec82",5333:"70909872",5343:"1b10d5ba",5397:"eba86ea4",5412:"a6d50436",5627:"e27c2ac1",5660:"1b208f60",5663:"b1379b2b",5734:"cef46d81",5739:"69079906",5742:"aba21aa0",5757:"ad42ff54",5838:"bbb8ec1d",5903:"69d616f2",5985:"e3536031",6108:"2fed9fb3",6224:"ef9aa223",6256:"6888b60e",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",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",8381:"147f5874",8392:"20177945",8401:"17896441",8508:"10dd1586",8571:"da1ad91e",8593:"56350599",8607:"681e5335",8611:"0c23d011",8625:"3a9e0e6c",8649:"7de42fc9",8702:"42962acd",8750:"8a484c94",8765:"1a2eaade",8786:"614cb771",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:"3a4fac77",44:"6310a01a",78:"670c02e8",93:"622a1f88",126:"b234a8d7",129:"df86eec6",253:"35cb6896",351:"2a1a8be1",360:"d17e0b29",375:"b2953002",416:"bba44855",446:"c334deef",534:"795dab19",596:"7c1db8af",598:"5b1053df",600:"2a163757",676:"d9ff9a6d",681:"26c49a71",750:"aa0a84ad",879:"a07813c0",883:"a54ab8cd",889:"df4f3b30",953:"628fe802",956:"657667b5",957:"9350e3d5",1006:"7f9a6238",1083:"38f76bcf",1162:"12f31dbe",1193:"e8a52c78",1303:"cb77a67a",1308:"19ab43fe",1345:"66bea9d5",1408:"88a7766e",1446:"bc1d8376",1490:"7a3af458",1567:"8327ab0e",1703:"81ffc5c2",1861:"080fa5c2",1876:"198d048f",1895:"47c5ca9a",1966:"529c371f",2076:"a147e1aa",2102:"e04c4c2c",2116:"66ba19b7",2138:"b9e35d57",2237:"6bbae924",2272:"fe4b9a67",2278:"dc2f3640",2348:"4cb98c8a",2360:"b8419a64",2394:"2541a8c1",2423:"9a704566",2457:"473c611f",2460:"2ac05431",2469:"0c7b3f7c",2472:"dc63bd2c",2475:"95e18472",2565:"10b561f1",2651:"92578320",2693:"380feae7",2741:"5b07a55d",2752:"9575b8a2",2888:"603c895a",2909:"1e643600",2969:"51e6616d",2990:"244599e4",3035:"b2adcd04",3038:"746b5104",3140:"80d4a164",3147:"80f96c59",3164:"afb9b764",3240:"759d13b9",3247:"d418a16f",3263:"3d0f082d",3284:"36307cad",3345:"5569535b",3353:"f158ad34",3359:"7ff07aa0",3361:"e6042c27",3368:"ae419940",3387:"1e3dfa97",3468:"8ce253e7",3500:"efe030c8",3536:"6c16d55f",3683:"34100144",3992:"73fbda8d",4036:"15898141",4085:"0fd46b78",4090:"62a13c39",4115:"d07268e6",4173:"cff8d83a",4263:"a16a248b",4314:"2202791a",4341:"cf603161",4351:"0d5905f3",4356:"5405f198",4384:"727a5b43",4474:"d742b4c0",4573:"04372438",4612:"195892fa",4614:"e7c5fca9",4644:"75273c72",4754:"78f469df",4876:"227e7868",4907:"5ddf17c6",4919:"e665854e",4995:"ece12ff2",5045:"cca37a20",5048:"b43aa9f1",5110:"456d4c24",5144:"d825c9b4",5200:"dff043ce",5217:"393cf74c",5270:"cd08b649",5281:"4b19c528",5333:"f53e44bc",5343:"5c5f5f29",5397:"a8e80b52",5412:"0694303a",5480:"127c0842",5627:"8aad549c",5660:"57b46a92",5663:"c98a5d9f",5734:"89eb55f3",5739:"2a563c92",5742:"8cdbe811",5757:"c7a308e1",5838:"0993f6d4",5903:"3900f4c5",5985:"bc98da4a",6108:"365e2569",6224:"b8bf79da",6256:"a846f457",6311:"690fa063",6329:"a5b86d52",6459:"2463c0f5",6513:"13baf1e4",6538:"207e3a0a",6559:"91875c22",6601:"66f73f50",6801:"6897bd64",6839:"9c7bfd1a",6990:"2d009052",6999:"64627d58",7098:"e566890f",7118:"204687e4",7243:"930b5bd6",7356:"dc4b5e2f",7484:"87f5d367",7498:"bc1d0911",7502:"f4acd00b",7512:"33f7eed4",7567:"eddb6d25",7705:"16858a84",7720:"24a92496",7807:"9ed7d10f",7824:"20952bb6",7829:"5bfdb1e8",7859:"acd80658",7902:"b293db8d",7964:"b889e714",7968:"8658e795",8090:"3e91a2e5",8240:"d4f52412",8267:"53fed409",8268:"7ed10065",8269:"c3b18741",8287:"7f586667",8294:"e344768e",8336:"4c5df02d",8381:"cdc18a0f",8392:"32fde553",8401:"9b189e06",8508:"e9d8e178",8571:"e11e0da7",8593:"e0584060",8607:"3c24e2c5",8611:"03e3ae2a",8625:"d22660bd",8649:"540f0784",8702:"046f5c3a",8750:"56e811df",8765:"c381c5fb",8786:"f1e32c3e",8822:"77921987",8862:"2272a76a",8913:"fd271a57",8963:"66693d3f",8990:"9bb3ef07",9033:"11737f6f",9048:"fbe061ed",9213:"7dd93294",9227:"a58d07fa",9264:"924f1a5d",9315:"167ce0df",9331:"b33d24ee",9363:"66313398",9459:"bcd99a3a",9482:"d79e999d",9522:"9a97e8c5",9610:"1ecfdc0a",9640:"8da65214",9647:"a3e58221",9674:"078d3e13",9712:"f5eaa1ca",9758:"5f1367ed",9763:"8017d111",9781:"c9db232c",9897:"cb0ce060",9976:"32ddde62",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),d={},b="langflow-docs:",r.l=(e,a,f,c)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach(e=>e(f)),a)return a(f)},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={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",e4dcfb14:"360","3d81f1cf":"375",a4232cf8:"446","76e36fb0":"534",c2e0ed62:"596",db4f3bbd:"598",ee87c775:"600","7631f8d2":"676",ffa0f8b1:"681","33b5ee95":"750","8bee5443":"879","1dfb8d43":"883","08b309e9":"889",bd7e5f4a:"953","03735ec1":"956",c141421f:"957","47e58a89":"1006",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","6d032186":"3359","8f633f11":"3361",efa0f9ee:"3368","3d67876e":"3387",c76bd485:"3468",c3c63498:"3500","2eb731bc":"3536","5a0b74d9":"3683","18dc6e4d":"3992",fbcfc90d:"4036",cb17b4e0:"4085",a8ca941b:"4090",d51059db:"4173","9a5e6f6b":"4263",f6a246db:"4314",e1a0f423:"4341","13786dcf":"4351","7b864b08":"4356","622bdc6f":"4384","3db73d6f":"4474",baacc2a1:"4573","6a9eca1a":"4612",e55b8e98:"4614",d3e886ab:"4644",ce43de4b:"4919","62266e9d":"4995",f2ec4536:"5045","3c440e04":"5048",e9fe1d10:"5110","944c5f91":"5144",ff7f32ba:"5200",fb0a7a3f:"5217","99931d31":"5270",eeeaec82:"5281","1b10d5ba":"5343",eba86ea4:"5397",a6d50436:"5412",e27c2ac1:"5627","1b208f60":"5660",b1379b2b:"5663",cef46d81:"5734",aba21aa0:"5742",ad42ff54:"5757",bbb8ec1d:"5838","69d616f2":"5903",e3536031:"5985","2fed9fb3":"6108",ef9aa223:"6224","6888b60e":"6256",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","147f5874":"8381","10dd1586":"8508",da1ad91e:"8571","681e5335":"8607","0c23d011":"8611","3a9e0e6c":"8625","7de42fc9":"8649","42962acd":"8702","8a484c94":"8750","1a2eaade":"8765","614cb771":"8786","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,f)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)f.push(d[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var b=new Promise((f,b)=>d=e[a]=[f,b]);f.push(d[2]=b);var c=r.p+r.u(a),t=new Error;r.l(c,f=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var b=f&&("load"===f.type?"missing":f.type),c=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,d[1](t)}},"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var d,b,[c,t,o]=f,n=0;if(c.some(a=>0!==e[a])){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(f);n{"use strict";var e,a,f,d,b,c={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return c[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=c,r.c=t,e=[],r.O=(a,f,d,b)=>{if(!f){var c=1/0;for(i=0;i=b)&&Object.keys(r.O).every(e=>r.O[e](f[o]))?f.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[f,d,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var c={};a=a||[null,f({}),f([]),f(f)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=f(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 f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((a,f)=>(r.f[f](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",360:"e4dcfb14",375:"3d81f1cf",446:"a4232cf8",534:"76e36fb0",596:"c2e0ed62",598:"db4f3bbd",600:"ee87c775",676:"7631f8d2",681:"ffa0f8b1",750:"33b5ee95",879:"8bee5443",883:"1dfb8d43",889:"08b309e9",953:"bd7e5f4a",956:"03735ec1",957:"c141421f",1006:"47e58a89",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",3359:"6d032186",3361:"8f633f11",3368:"efa0f9ee",3387:"3d67876e",3468:"c76bd485",3500:"c3c63498",3536:"2eb731bc",3683:"5a0b74d9",3992:"18dc6e4d",4036:"fbcfc90d",4085:"cb17b4e0",4090:"a8ca941b",4173:"d51059db",4263:"9a5e6f6b",4314:"f6a246db",4341:"e1a0f423",4351:"13786dcf",4356:"7b864b08",4384:"622bdc6f",4474:"3db73d6f",4573:"baacc2a1",4612:"6a9eca1a",4614:"e55b8e98",4644:"d3e886ab",4876:"44691977",4907:"86116998",4919:"ce43de4b",4995:"62266e9d",5045:"f2ec4536",5048:"3c440e04",5110:"e9fe1d10",5144:"944c5f91",5200:"ff7f32ba",5217:"fb0a7a3f",5270:"99931d31",5281:"eeeaec82",5333:"70909872",5343:"1b10d5ba",5397:"eba86ea4",5412:"a6d50436",5627:"e27c2ac1",5660:"1b208f60",5663:"b1379b2b",5734:"cef46d81",5739:"69079906",5742:"aba21aa0",5757:"ad42ff54",5838:"bbb8ec1d",5903:"69d616f2",5985:"e3536031",6108:"2fed9fb3",6224:"ef9aa223",6256:"6888b60e",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",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",8381:"147f5874",8392:"20177945",8401:"17896441",8508:"10dd1586",8571:"da1ad91e",8593:"56350599",8607:"681e5335",8611:"0c23d011",8625:"3a9e0e6c",8649:"7de42fc9",8702:"42962acd",8750:"8a484c94",8765:"1a2eaade",8786:"614cb771",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:"d5f6d415",38:"3a4fac77",44:"6310a01a",78:"670c02e8",93:"622a1f88",126:"b234a8d7",129:"df86eec6",253:"35cb6896",351:"2a1a8be1",360:"d17e0b29",375:"b2953002",416:"bba44855",446:"c334deef",534:"795dab19",596:"7c1db8af",598:"5b1053df",600:"2a163757",676:"d9ff9a6d",681:"26c49a71",750:"aa0a84ad",879:"a07813c0",883:"a54ab8cd",889:"df4f3b30",953:"628fe802",956:"657667b5",957:"9350e3d5",1006:"7f9a6238",1083:"38f76bcf",1162:"12f31dbe",1193:"e8a52c78",1303:"cb77a67a",1308:"19ab43fe",1345:"66bea9d5",1408:"88a7766e",1446:"bc1d8376",1490:"7a3af458",1567:"8327ab0e",1703:"81ffc5c2",1861:"080fa5c2",1876:"198d048f",1895:"47c5ca9a",1966:"529c371f",2076:"a147e1aa",2102:"e04c4c2c",2116:"66ba19b7",2138:"b9e35d57",2237:"6bbae924",2272:"fe4b9a67",2278:"dc2f3640",2348:"4cb98c8a",2360:"b8419a64",2394:"2541a8c1",2423:"9a704566",2457:"473c611f",2460:"2ac05431",2469:"0c7b3f7c",2472:"dc63bd2c",2475:"95e18472",2565:"10b561f1",2651:"92578320",2693:"380feae7",2741:"5b07a55d",2752:"9575b8a2",2888:"603c895a",2909:"1e643600",2969:"51e6616d",2990:"244599e4",3035:"b2adcd04",3038:"746b5104",3140:"80d4a164",3147:"80f96c59",3164:"afb9b764",3240:"759d13b9",3247:"d418a16f",3263:"3d0f082d",3284:"36307cad",3345:"5569535b",3353:"f158ad34",3359:"7ff07aa0",3361:"e6042c27",3368:"ae419940",3387:"1e3dfa97",3468:"8ce253e7",3500:"efe030c8",3536:"6c16d55f",3683:"34100144",3992:"73fbda8d",4036:"15898141",4085:"0fd46b78",4090:"62a13c39",4115:"d07268e6",4173:"cff8d83a",4263:"a16a248b",4314:"2202791a",4341:"cf603161",4351:"0d5905f3",4356:"5405f198",4384:"727a5b43",4474:"d742b4c0",4573:"04372438",4612:"195892fa",4614:"e7c5fca9",4644:"75273c72",4754:"78f469df",4876:"227e7868",4907:"5ddf17c6",4919:"e665854e",4995:"ece12ff2",5045:"cca37a20",5048:"b43aa9f1",5110:"456d4c24",5144:"d825c9b4",5200:"dff043ce",5217:"393cf74c",5270:"cd08b649",5281:"4b19c528",5333:"f53e44bc",5343:"5c5f5f29",5397:"a8e80b52",5412:"0694303a",5480:"127c0842",5627:"8aad549c",5660:"57b46a92",5663:"c98a5d9f",5734:"89eb55f3",5739:"2a563c92",5742:"8cdbe811",5757:"c7a308e1",5838:"0993f6d4",5903:"3900f4c5",5985:"bc98da4a",6108:"365e2569",6224:"b8bf79da",6256:"a846f457",6311:"690fa063",6329:"a5b86d52",6459:"2463c0f5",6513:"13baf1e4",6538:"207e3a0a",6559:"91875c22",6601:"66f73f50",6801:"6897bd64",6839:"9c7bfd1a",6990:"2d009052",6999:"64627d58",7098:"e566890f",7118:"204687e4",7243:"930b5bd6",7356:"dc4b5e2f",7484:"87f5d367",7498:"bc1d0911",7502:"f4acd00b",7512:"33f7eed4",7567:"eddb6d25",7705:"16858a84",7720:"24a92496",7807:"9ed7d10f",7824:"20952bb6",7829:"5bfdb1e8",7859:"acd80658",7902:"b293db8d",7964:"b889e714",7968:"8658e795",8090:"3e91a2e5",8240:"d4f52412",8267:"53fed409",8268:"7ed10065",8269:"c3b18741",8287:"7f586667",8294:"e344768e",8336:"4c5df02d",8381:"cdc18a0f",8392:"32fde553",8401:"9b189e06",8508:"e9d8e178",8571:"e11e0da7",8593:"e0584060",8607:"3c24e2c5",8611:"03e3ae2a",8625:"d22660bd",8649:"540f0784",8702:"046f5c3a",8750:"56e811df",8765:"c381c5fb",8786:"f1e32c3e",8822:"77921987",8862:"2272a76a",8913:"fd271a57",8963:"66693d3f",8990:"9bb3ef07",9033:"11737f6f",9048:"fbe061ed",9213:"7dd93294",9227:"a58d07fa",9264:"924f1a5d",9315:"167ce0df",9331:"b33d24ee",9363:"66313398",9459:"bcd99a3a",9482:"d79e999d",9522:"9a97e8c5",9610:"1ecfdc0a",9640:"8da65214",9647:"a3e58221",9674:"078d3e13",9712:"f5eaa1ca",9758:"5f1367ed",9763:"8017d111",9781:"c9db232c",9897:"cb0ce060",9976:"32ddde62",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),d={},b="langflow-docs:",r.l=(e,a,f,c)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach(e=>e(f)),a)return a(f)},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={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",e4dcfb14:"360","3d81f1cf":"375",a4232cf8:"446","76e36fb0":"534",c2e0ed62:"596",db4f3bbd:"598",ee87c775:"600","7631f8d2":"676",ffa0f8b1:"681","33b5ee95":"750","8bee5443":"879","1dfb8d43":"883","08b309e9":"889",bd7e5f4a:"953","03735ec1":"956",c141421f:"957","47e58a89":"1006",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","6d032186":"3359","8f633f11":"3361",efa0f9ee:"3368","3d67876e":"3387",c76bd485:"3468",c3c63498:"3500","2eb731bc":"3536","5a0b74d9":"3683","18dc6e4d":"3992",fbcfc90d:"4036",cb17b4e0:"4085",a8ca941b:"4090",d51059db:"4173","9a5e6f6b":"4263",f6a246db:"4314",e1a0f423:"4341","13786dcf":"4351","7b864b08":"4356","622bdc6f":"4384","3db73d6f":"4474",baacc2a1:"4573","6a9eca1a":"4612",e55b8e98:"4614",d3e886ab:"4644",ce43de4b:"4919","62266e9d":"4995",f2ec4536:"5045","3c440e04":"5048",e9fe1d10:"5110","944c5f91":"5144",ff7f32ba:"5200",fb0a7a3f:"5217","99931d31":"5270",eeeaec82:"5281","1b10d5ba":"5343",eba86ea4:"5397",a6d50436:"5412",e27c2ac1:"5627","1b208f60":"5660",b1379b2b:"5663",cef46d81:"5734",aba21aa0:"5742",ad42ff54:"5757",bbb8ec1d:"5838","69d616f2":"5903",e3536031:"5985","2fed9fb3":"6108",ef9aa223:"6224","6888b60e":"6256",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","147f5874":"8381","10dd1586":"8508",da1ad91e:"8571","681e5335":"8607","0c23d011":"8611","3a9e0e6c":"8625","7de42fc9":"8649","42962acd":"8702","8a484c94":"8750","1a2eaade":"8765","614cb771":"8786","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,f)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)f.push(d[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var b=new Promise((f,b)=>d=e[a]=[f,b]);f.push(d[2]=b);var c=r.p+r.u(a),t=new Error;r.l(c,f=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var b=f&&("load"===f.type?"missing":f.type),c=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+c+")",t.name="ChunkLoadError",t.type=b,t.request=c,d[1](t)}},"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var d,b,[c,t,o]=f,n=0;if(c.some(a=>0!==e[a])){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(f);n - + diff --git a/bundles-agentics.html b/bundles-agentics.html index 59fb7fb373..d2d148a4c9 100644 --- a/bundles-agentics.html +++ b/bundles-agentics.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-aiml.html b/bundles-aiml.html index f86c51ae66..2bc7bd014d 100644 --- a/bundles-aiml.html +++ b/bundles-aiml.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-altk.html b/bundles-altk.html index 8600d2fbca..32e5c64a2d 100644 --- a/bundles-altk.html +++ b/bundles-altk.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-amazon.html b/bundles-amazon.html index e47c05fe27..af0637f22d 100644 --- a/bundles-amazon.html +++ b/bundles-amazon.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-anthropic.html b/bundles-anthropic.html index 3eba56f382..23f498ef32 100644 --- a/bundles-anthropic.html +++ b/bundles-anthropic.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-apify.html b/bundles-apify.html index d54017fae5..f73b6328f7 100644 --- a/bundles-apify.html +++ b/bundles-apify.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-arxiv.html b/bundles-arxiv.html index 9a36b6b473..f6ff583bc5 100644 --- a/bundles-arxiv.html +++ b/bundles-arxiv.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-assemblyai.html b/bundles-assemblyai.html index 34f4feab88..7cb93fd56f 100644 --- a/bundles-assemblyai.html +++ b/bundles-assemblyai.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-azure.html b/bundles-azure.html index 0afc4a98a3..0d6d61b6b3 100644 --- a/bundles-azure.html +++ b/bundles-azure.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-baidu.html b/bundles-baidu.html index 49d0f0c9bd..dd53e8d5cb 100644 --- a/bundles-baidu.html +++ b/bundles-baidu.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-bing.html b/bundles-bing.html index 2605469823..aa6960ee47 100644 --- a/bundles-bing.html +++ b/bundles-bing.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-cassandra.html b/bundles-cassandra.html index 441a4bf061..2359bfb073 100644 --- a/bundles-cassandra.html +++ b/bundles-cassandra.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-chroma.html b/bundles-chroma.html index 6f17d9d8fc..722b9bb821 100644 --- a/bundles-chroma.html +++ b/bundles-chroma.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-cleanlab.html b/bundles-cleanlab.html index 14fb5dbf34..21a40feb16 100644 --- a/bundles-cleanlab.html +++ b/bundles-cleanlab.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-clickhouse.html b/bundles-clickhouse.html index 07c20a94b5..7b8e8ff3a9 100644 --- a/bundles-clickhouse.html +++ b/bundles-clickhouse.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-cloudflare.html b/bundles-cloudflare.html index f174a0f7c2..09abe9d7cb 100644 --- a/bundles-cloudflare.html +++ b/bundles-cloudflare.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-cohere.html b/bundles-cohere.html index 16b5f45796..0bfc8d167e 100644 --- a/bundles-cohere.html +++ b/bundles-cohere.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-cometapi.html b/bundles-cometapi.html index 9ca2cb393f..d01f8b69f8 100644 --- a/bundles-cometapi.html +++ b/bundles-cometapi.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-composio.html b/bundles-composio.html index 1b083bb9bf..6a2d272d21 100644 --- a/bundles-composio.html +++ b/bundles-composio.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-couchbase.html b/bundles-couchbase.html index 0e76db384a..fb8df8d7b2 100644 --- a/bundles-couchbase.html +++ b/bundles-couchbase.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-cuga.html b/bundles-cuga.html index 51337dd085..563cdfaefe 100644 --- a/bundles-cuga.html +++ b/bundles-cuga.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-datastax.html b/bundles-datastax.html index 4a311839ce..da78ce0ec0 100644 --- a/bundles-datastax.html +++ b/bundles-datastax.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-deepseek.html b/bundles-deepseek.html index 868016b6c5..ff65e874b1 100644 --- a/bundles-deepseek.html +++ b/bundles-deepseek.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-docling.html b/bundles-docling.html index 98f7b9944a..48ae9465bb 100644 --- a/bundles-docling.html +++ b/bundles-docling.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-duckduckgo.html b/bundles-duckduckgo.html index 8b0ab914ed..7c4ec19974 100644 --- a/bundles-duckduckgo.html +++ b/bundles-duckduckgo.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-elastic.html b/bundles-elastic.html index f5ecd10cdd..7ef4de7519 100644 --- a/bundles-elastic.html +++ b/bundles-elastic.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-exa.html b/bundles-exa.html index d1d2621d8c..9930bedc80 100644 --- a/bundles-exa.html +++ b/bundles-exa.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-faiss.html b/bundles-faiss.html index 081e970af2..c3c9061672 100644 --- a/bundles-faiss.html +++ b/bundles-faiss.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-glean.html b/bundles-glean.html index 6ed8c23d0f..295edafcc8 100644 --- a/bundles-glean.html +++ b/bundles-glean.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-google.html b/bundles-google.html index b4d052e68e..53588f9e30 100644 --- a/bundles-google.html +++ b/bundles-google.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-groq.html b/bundles-groq.html index 08e03d321d..3c978a9297 100644 --- a/bundles-groq.html +++ b/bundles-groq.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-huggingface.html b/bundles-huggingface.html index 26d3e01d77..830ed2bf8d 100644 --- a/bundles-huggingface.html +++ b/bundles-huggingface.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-ibm.html b/bundles-ibm.html index 31d475d84a..713b28bbbe 100644 --- a/bundles-ibm.html +++ b/bundles-ibm.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-icosacomputing.html b/bundles-icosacomputing.html index 02ee14b19f..5ae8d77c86 100644 --- a/bundles-icosacomputing.html +++ b/bundles-icosacomputing.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-langchain.html b/bundles-langchain.html index 9b50e600b8..bd420b3a9d 100644 --- a/bundles-langchain.html +++ b/bundles-langchain.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-lite-llm.html b/bundles-lite-llm.html index 080b16a113..f046f4b071 100644 --- a/bundles-lite-llm.html +++ b/bundles-lite-llm.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-lmstudio.html b/bundles-lmstudio.html index 66a6b9848c..fa40e3aaa9 100644 --- a/bundles-lmstudio.html +++ b/bundles-lmstudio.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-maritalk.html b/bundles-maritalk.html index 1736f60e02..016021d2ee 100644 --- a/bundles-maritalk.html +++ b/bundles-maritalk.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-mem0.html b/bundles-mem0.html index a412991c6e..ad7e2c8471 100644 --- a/bundles-mem0.html +++ b/bundles-mem0.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-milvus.html b/bundles-milvus.html index 77c46e5da8..43f02a95ee 100644 --- a/bundles-milvus.html +++ b/bundles-milvus.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-mistralai.html b/bundles-mistralai.html index c7e933356c..ee84fd7c3a 100644 --- a/bundles-mistralai.html +++ b/bundles-mistralai.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-mongodb.html b/bundles-mongodb.html index 00c888c2c5..ecf030f706 100644 --- a/bundles-mongodb.html +++ b/bundles-mongodb.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-notion.html b/bundles-notion.html index a908e4e895..ce75f721f8 100644 --- a/bundles-notion.html +++ b/bundles-notion.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-novita.html b/bundles-novita.html index e7e8d106a1..f9aa501385 100644 --- a/bundles-novita.html +++ b/bundles-novita.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-nvidia.html b/bundles-nvidia.html index d1ea4f1056..06759eff46 100644 --- a/bundles-nvidia.html +++ b/bundles-nvidia.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-ollama.html b/bundles-ollama.html index 9910874add..a5f925d194 100644 --- a/bundles-ollama.html +++ b/bundles-ollama.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-openai.html b/bundles-openai.html index 8763b6cd50..a4c619667e 100644 --- a/bundles-openai.html +++ b/bundles-openai.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-openrouter.html b/bundles-openrouter.html index 3096321153..86842573de 100644 --- a/bundles-openrouter.html +++ b/bundles-openrouter.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-perplexity.html b/bundles-perplexity.html index 85d9d27573..aba8734018 100644 --- a/bundles-perplexity.html +++ b/bundles-perplexity.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-pgvector.html b/bundles-pgvector.html index cd2d3f677b..7a578c51d1 100644 --- a/bundles-pgvector.html +++ b/bundles-pgvector.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-pinecone.html b/bundles-pinecone.html index a3a4f9c26b..2fee402ec8 100644 --- a/bundles-pinecone.html +++ b/bundles-pinecone.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-qdrant.html b/bundles-qdrant.html index f8c01a7cf3..329191a31e 100644 --- a/bundles-qdrant.html +++ b/bundles-qdrant.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-redis.html b/bundles-redis.html index 4df3975c7e..908eb37ecb 100644 --- a/bundles-redis.html +++ b/bundles-redis.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-sambanova.html b/bundles-sambanova.html index d16009b514..9548f3bb6a 100644 --- a/bundles-sambanova.html +++ b/bundles-sambanova.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-searchapi.html b/bundles-searchapi.html index 1109fed61c..c98e8b72eb 100644 --- a/bundles-searchapi.html +++ b/bundles-searchapi.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-serper.html b/bundles-serper.html index b8fc9a7681..f4378da801 100644 --- a/bundles-serper.html +++ b/bundles-serper.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-supabase.html b/bundles-supabase.html index 940b793cf8..3b8ad34f00 100644 --- a/bundles-supabase.html +++ b/bundles-supabase.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-upstash.html b/bundles-upstash.html index 0161583018..526eee5f5a 100644 --- a/bundles-upstash.html +++ b/bundles-upstash.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-vectara.html b/bundles-vectara.html index 8614b68398..66b0d6fd9e 100644 --- a/bundles-vectara.html +++ b/bundles-vectara.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-vertexai.html b/bundles-vertexai.html index 041d373794..965d9dc294 100644 --- a/bundles-vertexai.html +++ b/bundles-vertexai.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-vllm.html b/bundles-vllm.html index 33b23a43eb..349798c827 100644 --- a/bundles-vllm.html +++ b/bundles-vllm.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-weaviate.html b/bundles-weaviate.html index bc241dd585..bba3145182 100644 --- a/bundles-weaviate.html +++ b/bundles-weaviate.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-wikipedia.html b/bundles-wikipedia.html index 96dd73e937..f15a81fd1d 100644 --- a/bundles-wikipedia.html +++ b/bundles-wikipedia.html @@ -25,7 +25,7 @@ - + diff --git a/bundles-xai.html b/bundles-xai.html index c90e8937f5..6cfa44484c 100644 --- a/bundles-xai.html +++ b/bundles-xai.html @@ -25,7 +25,7 @@ - + diff --git a/calculator.html b/calculator.html index 3813ef498b..9e949874fa 100644 --- a/calculator.html +++ b/calculator.html @@ -25,7 +25,7 @@ - + diff --git a/chat-input-and-output.html b/chat-input-and-output.html index 55061cc49b..e242ffc099 100644 --- a/chat-input-and-output.html +++ b/chat-input-and-output.html @@ -25,7 +25,7 @@ - + diff --git a/chat-with-files.html b/chat-with-files.html index 12c54449d0..1e3f18107c 100644 --- a/chat-with-files.html +++ b/chat-with-files.html @@ -25,7 +25,7 @@ - + diff --git a/chat-with-rag.html b/chat-with-rag.html index 66c7b34097..cdf8f30bdf 100644 --- a/chat-with-rag.html +++ b/chat-with-rag.html @@ -25,7 +25,7 @@ - + diff --git a/component-webhook.html b/component-webhook.html index 7ee2b97d3d..f78d4080b8 100644 --- a/component-webhook.html +++ b/component-webhook.html @@ -25,7 +25,7 @@ - + diff --git a/components-agents.html b/components-agents.html index 2832e982c3..5bfabaeafd 100644 --- a/components-agents.html +++ b/components-agents.html @@ -25,7 +25,7 @@ - + diff --git a/components-bundle-components.html b/components-bundle-components.html index 51928fd4f5..d5f676e3c4 100644 --- a/components-bundle-components.html +++ b/components-bundle-components.html @@ -25,7 +25,7 @@ - + diff --git a/components-custom-components.html b/components-custom-components.html index 4bde91b8aa..3a7ad0682b 100644 --- a/components-custom-components.html +++ b/components-custom-components.html @@ -25,7 +25,7 @@ - + diff --git a/components-embedding-models.html b/components-embedding-models.html index e276aa72b8..5360735ad5 100644 --- a/components-embedding-models.html +++ b/components-embedding-models.html @@ -25,7 +25,7 @@ - + diff --git a/components-models.html b/components-models.html index 2712c31dc4..32ae6c6f3b 100644 --- a/components-models.html +++ b/components-models.html @@ -25,7 +25,7 @@ - + diff --git a/components-prompts.html b/components-prompts.html index 109e033e86..62dc7bf8c0 100644 --- a/components-prompts.html +++ b/components-prompts.html @@ -25,7 +25,7 @@ - + diff --git a/concepts-components.html b/concepts-components.html index 637263317f..680c5b0eee 100644 --- a/concepts-components.html +++ b/concepts-components.html @@ -25,7 +25,7 @@ - + diff --git a/concepts-file-management.html b/concepts-file-management.html index 117f179826..0fc41ba66d 100644 --- a/concepts-file-management.html +++ b/concepts-file-management.html @@ -25,7 +25,7 @@ - + diff --git a/concepts-flows-import.html b/concepts-flows-import.html index d41dd3a78d..748724ae24 100644 --- a/concepts-flows-import.html +++ b/concepts-flows-import.html @@ -25,7 +25,7 @@ - + diff --git a/concepts-flows.html b/concepts-flows.html index c6490253e7..8dc25d5b58 100644 --- a/concepts-flows.html +++ b/concepts-flows.html @@ -25,7 +25,7 @@ - + diff --git a/concepts-overview.html b/concepts-overview.html index 7365c36f39..a77a17f014 100644 --- a/concepts-overview.html +++ b/concepts-overview.html @@ -25,7 +25,7 @@ - + diff --git a/concepts-playground.html b/concepts-playground.html index a2494a35de..43e7ee3a6f 100644 --- a/concepts-playground.html +++ b/concepts-playground.html @@ -25,7 +25,7 @@ - + diff --git a/concepts-publish.html b/concepts-publish.html index d63dfb8a64..ad882e7fe1 100644 --- a/concepts-publish.html +++ b/concepts-publish.html @@ -25,7 +25,7 @@ - + diff --git a/concepts-voice-mode.html b/concepts-voice-mode.html index 97022420f1..3bf142fbbc 100644 --- a/concepts-voice-mode.html +++ b/concepts-voice-mode.html @@ -25,7 +25,7 @@ - + diff --git a/configuration-cli.html b/configuration-cli.html index f6c3c38c9d..ba464bd9d7 100644 --- a/configuration-cli.html +++ b/configuration-cli.html @@ -25,7 +25,7 @@ - + diff --git a/configuration-custom-database.html b/configuration-custom-database.html index f074acd3bb..d171037540 100644 --- a/configuration-custom-database.html +++ b/configuration-custom-database.html @@ -25,7 +25,7 @@ - + diff --git a/configuration-global-variables.html b/configuration-global-variables.html index 48395ba1f4..e09851dc3d 100644 --- a/configuration-global-variables.html +++ b/configuration-global-variables.html @@ -25,7 +25,7 @@ - + diff --git a/contributing-bundles.html b/contributing-bundles.html index d742c58bb3..b33722ad6d 100644 --- a/contributing-bundles.html +++ b/contributing-bundles.html @@ -25,7 +25,7 @@ - + diff --git a/contributing-community.html b/contributing-community.html index a7f9cb145e..201771bb15 100644 --- a/contributing-community.html +++ b/contributing-community.html @@ -25,7 +25,7 @@ - + diff --git a/contributing-component-tests.html b/contributing-component-tests.html index 793a33cbec..999bdeb368 100644 --- a/contributing-component-tests.html +++ b/contributing-component-tests.html @@ -25,7 +25,7 @@ - + diff --git a/contributing-components.html b/contributing-components.html index 18f90d0cae..7c7514f50b 100644 --- a/contributing-components.html +++ b/contributing-components.html @@ -25,7 +25,7 @@ - + diff --git a/contributing-github-issues.html b/contributing-github-issues.html index 2572280a5b..9af1384e47 100644 --- a/contributing-github-issues.html +++ b/contributing-github-issues.html @@ -25,7 +25,7 @@ - + diff --git a/contributing-how-to-contribute.html b/contributing-how-to-contribute.html index a5dbe71347..9c4fa2aee0 100644 --- a/contributing-how-to-contribute.html +++ b/contributing-how-to-contribute.html @@ -25,7 +25,7 @@ - + diff --git a/contributing-telemetry.html b/contributing-telemetry.html index dd48de40fe..213da437ae 100644 --- a/contributing-telemetry.html +++ b/contributing-telemetry.html @@ -25,7 +25,7 @@ - + diff --git a/contributing-templates.html b/contributing-templates.html index 1d7c468d0e..ed7868dcde 100644 --- a/contributing-templates.html +++ b/contributing-templates.html @@ -25,7 +25,7 @@ - + diff --git a/current-date.html b/current-date.html index 5b53200321..d467148f5b 100644 --- a/current-date.html +++ b/current-date.html @@ -25,7 +25,7 @@ - + diff --git a/data-operations.html b/data-operations.html index 655dc548a1..b294f656a7 100644 --- a/data-operations.html +++ b/data-operations.html @@ -25,7 +25,7 @@ - + diff --git a/data-types.html b/data-types.html index 8697f474b3..2ec5354b58 100644 --- a/data-types.html +++ b/data-types.html @@ -25,7 +25,7 @@ - + diff --git a/dataframe-operations.html b/dataframe-operations.html index ecaa92a436..daa9bed9ec 100644 --- a/dataframe-operations.html +++ b/dataframe-operations.html @@ -25,7 +25,7 @@ - + diff --git a/deployment-architecture.html b/deployment-architecture.html index 465d8f1097..55fb60d845 100644 --- a/deployment-architecture.html +++ b/deployment-architecture.html @@ -25,7 +25,7 @@ - + diff --git a/deployment-caddyfile.html b/deployment-caddyfile.html index f190f8b003..a906e7da86 100644 --- a/deployment-caddyfile.html +++ b/deployment-caddyfile.html @@ -25,7 +25,7 @@ - + diff --git a/deployment-docker.html b/deployment-docker.html index 576fe7ad81..a9669fa339 100644 --- a/deployment-docker.html +++ b/deployment-docker.html @@ -25,7 +25,7 @@ - + diff --git a/deployment-gcp.html b/deployment-gcp.html index 07c82c5f73..088ec7ffe4 100644 --- a/deployment-gcp.html +++ b/deployment-gcp.html @@ -25,7 +25,7 @@ - + diff --git a/deployment-hugging-face-spaces.html b/deployment-hugging-face-spaces.html index 81343f972c..bede0c8ab0 100644 --- a/deployment-hugging-face-spaces.html +++ b/deployment-hugging-face-spaces.html @@ -25,7 +25,7 @@ - + diff --git a/deployment-kubernetes-dev.html b/deployment-kubernetes-dev.html index dc7ac18ad9..febcf35021 100644 --- a/deployment-kubernetes-dev.html +++ b/deployment-kubernetes-dev.html @@ -25,7 +25,7 @@ - + diff --git a/deployment-kubernetes-prod.html b/deployment-kubernetes-prod.html index 621f8c5408..457eb20d02 100644 --- a/deployment-kubernetes-prod.html +++ b/deployment-kubernetes-prod.html @@ -25,7 +25,7 @@ - + diff --git a/deployment-nginx-ssl.html b/deployment-nginx-ssl.html index 085de78593..31b43263ca 100644 --- a/deployment-nginx-ssl.html +++ b/deployment-nginx-ssl.html @@ -25,7 +25,7 @@ - + diff --git a/deployment-overview.html b/deployment-overview.html index ad15acbee2..345409e6d9 100644 --- a/deployment-overview.html +++ b/deployment-overview.html @@ -25,7 +25,7 @@ - + diff --git a/deployment-prod-best-practices.html b/deployment-prod-best-practices.html index 1a340df5e8..a64d467501 100644 --- a/deployment-prod-best-practices.html +++ b/deployment-prod-best-practices.html @@ -25,7 +25,7 @@ - + diff --git a/deployment-public-server.html b/deployment-public-server.html index ef7233b567..fcb7906185 100644 --- a/deployment-public-server.html +++ b/deployment-public-server.html @@ -25,7 +25,7 @@ - + diff --git a/deployment-railway.html b/deployment-railway.html index a4abcf22db..4bdd682dea 100644 --- a/deployment-railway.html +++ b/deployment-railway.html @@ -25,7 +25,7 @@ - + diff --git a/deployment-render.html b/deployment-render.html index ee29462dc7..6cd96bc7b8 100644 --- a/deployment-render.html +++ b/deployment-render.html @@ -25,7 +25,7 @@ - + diff --git a/develop-application.html b/develop-application.html index cad5d06af3..177d58c938 100644 --- a/develop-application.html +++ b/develop-application.html @@ -25,7 +25,7 @@ - + diff --git a/directory.html b/directory.html index 3d227ec626..e3ae30e41a 100644 --- a/directory.html +++ b/directory.html @@ -25,7 +25,7 @@ - + diff --git a/dynamic-create-data.html b/dynamic-create-data.html index 88b5b53685..f23afe1328 100644 --- a/dynamic-create-data.html +++ b/dynamic-create-data.html @@ -25,7 +25,7 @@ - + diff --git a/enterprise-database-guide.html b/enterprise-database-guide.html index c20db0639e..020ab0a701 100644 --- a/enterprise-database-guide.html +++ b/enterprise-database-guide.html @@ -25,7 +25,7 @@ - + diff --git a/environment-variables.html b/environment-variables.html index b24e2eff55..eb6b18148e 100644 --- a/environment-variables.html +++ b/environment-variables.html @@ -25,7 +25,7 @@ - + diff --git a/get-started-installation.html b/get-started-installation.html index 2503dd54d7..ae883669fc 100644 --- a/get-started-installation.html +++ b/get-started-installation.html @@ -25,7 +25,7 @@ - + diff --git a/get-started-quickstart.html b/get-started-quickstart.html index ea50d965c7..c4b2987697 100644 --- a/get-started-quickstart.html +++ b/get-started-quickstart.html @@ -25,7 +25,7 @@ - + diff --git a/guardrails.html b/guardrails.html index 00415b701f..a49b78d1b9 100644 --- a/guardrails.html +++ b/guardrails.html @@ -25,7 +25,7 @@ - + diff --git a/if-else.html b/if-else.html index 65b2196dd0..19ecec55a1 100644 --- a/if-else.html +++ b/if-else.html @@ -25,7 +25,7 @@ - + diff --git a/img/langflow-icon-black-transparent.svg b/img/langflow-icon-black-transparent.svg new file mode 100644 index 0000000000..1c7b36c4dd --- /dev/null +++ b/img/langflow-icon-black-transparent.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/index.html b/index.html index f2eaf07792..91a09ba921 100644 --- a/index.html +++ b/index.html @@ -25,7 +25,7 @@ - + diff --git a/install-custom-dependencies.html b/install-custom-dependencies.html index c35fccf434..c67f777d91 100644 --- a/install-custom-dependencies.html +++ b/install-custom-dependencies.html @@ -25,7 +25,7 @@ - + diff --git a/integrations-arize.html b/integrations-arize.html index 011bcb7593..42f3551317 100644 --- a/integrations-arize.html +++ b/integrations-arize.html @@ -25,7 +25,7 @@ - + diff --git a/integrations-instana-traceloop.html b/integrations-instana-traceloop.html index d7d6aba7ec..6414fa6bb3 100644 --- a/integrations-instana-traceloop.html +++ b/integrations-instana-traceloop.html @@ -25,7 +25,7 @@ - + diff --git a/integrations-langfuse.html b/integrations-langfuse.html index 91a89ff4be..c6e893a157 100644 --- a/integrations-langfuse.html +++ b/integrations-langfuse.html @@ -25,7 +25,7 @@ - + @@ -68,22 +68,22 @@
  • Copy the following API key information:

      -
    • Secret Key
    • -
    • Public Key
    • -
    • Host URL
    • +
    • Secret key
    • +
    • Public key
    • +
    • Base URL
    +
    tip

    Langflow previously used LANGFUSE_HOST as the variable for the Langfuse base URL. +This is still supported for backward compatibility, but LANGFUSE_BASE_URL is now the preferred environment variable and will be used if both values are set.

  • -

    Set your Langfuse project credentials as environment variables in the same environment where you run Langflow.

    -

    In the following examples, replace SECRET_KEY, PUBLIC_KEY, and HOST_URL with your API key details from Langfuse.

    -

    These commands set the environment variables in a Linux or macOS terminal session:


    _10
    export LANGFUSE_SECRET_KEY=SECRET_KEY
    _10
    export LANGFUSE_PUBLIC_KEY=PUBLIC_KEY
    _10
    export LANGFUSE_HOST=HOST_URL

    +

    Set your Langfuse project credentials as environment variables.

    +

    In the following examples, replace SECRET_KEY, PUBLIC_KEY, and LANGFUSE_BASE_URL with your API key details from Langfuse. +Add the following entries to your .env file:

    +

    _10
    LANGFUSE_SECRET_KEY=sk-...
    _10
    LANGFUSE_PUBLIC_KEY=pk-...
    _10
    LANGFUSE_BASE_URL=https://us.cloud.langfuse.com

  • - -

    Start Langflow and view traces in Langfuse​

    -
    1. -

      Start Langflow in the same environment where you set the Langfuse environment variables:

      -

      _10
      uv run langflow run

      +

      Start Langflow with the configuration in the .env file:

      +

      _10
      uv run langflow run --env-file .env

    2. Run a flow.

      @@ -105,15 +105,18 @@
    3. Copy the following API key information:

        -
      • Secret Key
      • -
      • Public Key
      • -
      • Host URL
      • +
      • Secret key
      • +
      • Public key
      • +
      • Base URL
      +
      tip

      Langflow previously used LANGFUSE_HOST as the variable for the Langfuse base URL. +LANGFUSE_HOST is still supported for backward compatibility, but LANGFUSE_BASE_URL is the preferred environment variable. +If both values are set, then LANGFLOW_BASE_URL is used.

    4. Add your Langflow credentials to your Langflow docker-compose.yml file in the environment section.

      The following example is based on the example docker-compose.yml.

      -

      _32
      services:
      _32
      langflow:
      _32
      image: langflowai/langflow:latest # or another version tag on https://hub.docker.com/r/langflowai/langflow
      _32
      pull_policy: always # set to 'always' when using 'latest' image
      _32
      ports:
      _32
      - "7860:7860"
      _32
      depends_on:
      _32
      - postgres
      _32
      environment:
      _32
      - LANGFLOW_DATABASE_URL=postgresql://langflow:langflow@postgres:5432/langflow
      _32
      # This variable defines where the logs, file storage, monitor data and secret keys are stored.
      _32
      - LANGFLOW_CONFIG_DIR=app/langflow
      _32
      - LANGFUSE_SECRET_KEY=sk-...
      _32
      - LANGFUSE_PUBLIC_KEY=pk-...
      _32
      - LANGFUSE_HOST=https://us.cloud.langfuse.com
      _32
      volumes:
      _32
      - langflow-data:/app/langflow
      _32
      _32
      postgres:
      _32
      image: postgres:16
      _32
      environment:
      _32
      POSTGRES_USER: langflow
      _32
      POSTGRES_PASSWORD: langflow
      _32
      POSTGRES_DB: langflow
      _32
      ports:
      _32
      - "5432:5432"
      _32
      volumes:
      _32
      - langflow-postgres:/var/lib/postgresql/data
      _32
      _32
      volumes:
      _32
      langflow-postgres:
      _32
      langflow-data:

      +

      _32
      services:
      _32
      langflow:
      _32
      image: langflowai/langflow:latest # or another version tag on https://hub.docker.com/r/langflowai/langflow
      _32
      pull_policy: always # set to 'always' when using 'latest' image
      _32
      ports:
      _32
      - "7860:7860"
      _32
      depends_on:
      _32
      - postgres
      _32
      environment:
      _32
      - LANGFLOW_DATABASE_URL=postgresql://langflow:langflow@postgres:5432/langflow
      _32
      # This variable defines where the logs, file storage, monitor data and secret keys are stored.
      _32
      - LANGFLOW_CONFIG_DIR=app/langflow
      _32
      - LANGFUSE_SECRET_KEY=sk-...
      _32
      - LANGFUSE_PUBLIC_KEY=pk-...
      _32
      - LANGFUSE_BASE_URL=https://us.cloud.langfuse.com
      _32
      volumes:
      _32
      - langflow-data:/app/langflow
      _32
      _32
      postgres:
      _32
      image: postgres:16
      _32
      environment:
      _32
      POSTGRES_USER: langflow
      _32
      POSTGRES_PASSWORD: langflow
      _32
      POSTGRES_DB: langflow
      _32
      ports:
      _32
      - "5432:5432"
      _32
      volumes:
      _32
      - langflow-postgres:/var/lib/postgresql/data
      _32
      _32
      volumes:
      _32
      langflow-postgres:
      _32
      langflow-data:

    5. Start the Docker container:

      @@ -121,8 +124,8 @@
    6. To confirm Langfuse is connected to your Langflow container, run the following command:

      -

      _10
      docker compose exec langflow python -c "import requests, os; addr = os.environ.get('LANGFUSE_HOST'); print(addr); res = requests.get(addr, timeout=5); print(res.status_code)"

      -

      If there is an error, make sure you have set the LANGFUSE_HOST environment variable in your terminal session.

      +

      _10
      docker compose exec langflow python -c "import requests, os; addr = os.environ.get('LANGFUSE_BASE_URL'); print(addr); res = requests.get(addr, timeout=5); print(res.status_code)"

      +

      If there is an error, make sure you have set the LANGFUSE_BASE_URL environment variable in your docker-compose.yml file.

      Output similar to the following indicates success:


      _10
      https://us.cloud.langfuse.com
      _10
      200

    7. @@ -130,7 +133,7 @@

      See also​