Settings
diff --git a/assets/js/04da809a.88d061fb.js b/assets/js/04da809a.88d061fb.js
new file mode 100644
index 0000000000..4a92c33fd9
--- /dev/null
+++ b/assets/js/04da809a.88d061fb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1968],{4273:(o,e,t)=>{t.r(e),t.d(e,{CH:()=>d,assets:()=>p,chCodeConfig:()=>h,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>a,toc:()=>i});t(6540);var n=t(4848),l=t(8453),s=t(4754);const r={},c="Kubernetes",a={id:"deployment/kubernetes",title:"Kubernetes",description:"This guide will help you get LangFlow up and running in Kubernetes cluster, including the following steps:",source:"@site/docs/deployment/kubernetes.md",sourceDirName:"deployment",slug:"/deployment/kubernetes",permalink:"/deployment/kubernetes",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Backend-only",permalink:"/deployment/backend-only"},next:{title:"Deploy on Google Cloud Platform",permalink:"/deployment/gcp-deployment"}},p={},i=[{value:"LangFlow (IDE)",id:"langflow-ide",level:2},{value:"Prerequisites",id:"prerequisites",level:3},{value:"Step 0. Prepare a Kubernetes cluster",id:"step-0-prepare-a-kubernetes-cluster",level:3},{value:"Step 1. Install the LangFlow Helm chart",id:"step-1-install-the-langflow-helm-chart",level:3},{value:"Step 2. Access LangFlow",id:"step-2-access-langflow",level:3},{value:"LangFlow version",id:"langflow-version",level:3},{value:"Storage",id:"storage",level:3},{value:"Scaling",id:"scaling",level:3},{value:"Deploy on AWS EKS, Google GKE, or Azure AKS and other examples",id:"deploy-on-aws-eks-google-gke-or-azure-aks-and-other-examples",level:3},{value:"LangFlow (Runtime)",id:"langflow-runtime",level:2},{value:"Import a flow",id:"import-a-flow",level:2},{value:"Prerequisites",id:"prerequisites-1",level:3},{value:"Step 0. Prepare a Kubernetes cluster",id:"step-0-prepare-a-kubernetes-cluster-1",level:3},{value:"Step 1. Install the LangFlow runtime Helm chart",id:"step-1-install-the-langflow-runtime-helm-chart",level:3},{value:"Step 2. Access the LangFlow app API",id:"step-2-access-the-langflow-app-api",level:3},{value:"Storage",id:"storage-1",level:3},{value:"Log level and LangFlow configurations",id:"log-level-and-langflow-configurations",level:3},{value:"Configure secrets and variables",id:"configure-secrets-and-variables",level:3},{value:"Scaling",id:"scaling-1",level:3},{value:"Other examples",id:"other-examples",level:3}],d={annotations:s.hk,Code:s.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"};function y(o){const e=Object.assign({h1:"h1",p:"p",ul:"ul",li:"li",a:"a",h2:"h2",h3:"h3",ol:"ol",code:"code",strong:"strong"},(0,l.RP)(),o.components);return d||g("CH",!1),d.Code||g("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n",(0,n.jsx)(e.h1,{id:"kubernetes",children:"Kubernetes"}),"\n",(0,n.jsx)(e.p,{children:"This guide will help you get LangFlow up and running in Kubernetes cluster, including the following steps:"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsxs)(e.li,{children:["Install ",(0,n.jsx)(e.a,{href:"#langflow-ide",children:"LangFlow as IDE"})," in a Kubernetes cluster (for development)"]}),"\n",(0,n.jsxs)(e.li,{children:["Install ",(0,n.jsx)(e.a,{href:"#langflow-runtime",children:"LangFlow as a standalone application"})," in a Kubernetes cluster (for production runtime workloads)"]}),"\n"]}),"\n",(0,n.jsx)(e.h2,{id:"langflow-ide",children:"LangFlow (IDE)"}),"\n",(0,n.jsx)(e.p,{children:"This solution is designed to provide a complete environment for developers to create, test, and debug their flows. It includes both the API and the UI."}),"\n",(0,n.jsx)(e.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Kubernetes server"}),"\n",(0,n.jsx)(e.li,{children:"kubectl"}),"\n",(0,n.jsx)(e.li,{children:"Helm"}),"\n"]}),"\n",(0,n.jsx)(e.h3,{id:"step-0-prepare-a-kubernetes-cluster",children:"Step 0. Prepare a Kubernetes cluster"}),"\n",(0,n.jsxs)(e.p,{children:["We use ",(0,n.jsx)(e.a,{href:"https://minikube.sigs.k8s.io/docs/start/",children:"Minikube"})," for this example, but you can use any Kubernetes cluster."]}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["Create a Kubernetes cluster on Minikube.","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"minikube ",props:{style:{color:"#FFA657"}}},{content:"start",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["Set ",(0,n.jsx)(e.code,{children:"kubectl"})," to use Minikube.","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"kubectl ",props:{style:{color:"#FFA657"}}},{content:"config use-context minikube",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(e.h3,{id:"step-1-install-the-langflow-helm-chart",children:"Step 1. Install the LangFlow Helm chart"}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["Add the repository to Helm.","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"helm ",props:{style:{color:"#FFA657"}}},{content:"repo add langflow https://langflow-ai.github.io/langflow-helm-charts",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"helm ",props:{style:{color:"#FFA657"}}},{content:"repo update",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["Install LangFlow with the default options in the ",(0,n.jsx)(e.code,{children:"langflow"})," namespace.","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"helm ",props:{style:{color:"#FFA657"}}},{content:"install langflow-ide langflow/langflow-ide ",props:{style:{color:"#A5D6FF"}}},{content:"-n ",props:{style:{color:"#79C0FF"}}},{content:"langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--create-namespace",props:{style:{color:"#79C0FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["Check the status of the pods","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"kubectl ",props:{style:{color:"#FFA657"}}},{content:"get pods ",props:{style:{color:"#A5D6FF"}}},{content:"-n ",props:{style:{color:"#79C0FF"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"NAME READY STATUS RESTARTS AGE",props:{}}]},{tokens:[{content:"langflow-0 1/1 Running 0 33s",props:{}}]},{tokens:[{content:"langflow-frontend-5d9c558dbb-g7tc9 1/1 Running 0 38s",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(e.h3,{id:"step-2-access-langflow",children:"Step 2. Access LangFlow"}),"\n",(0,n.jsx)(e.p,{children:"Enable local port forwarding to access LangFlow from your local machine."}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"kubectl ",props:{style:{color:"#FFA657"}}},{content:"port-forward ",props:{style:{color:"#A5D6FF"}}},{content:"-n ",props:{style:{color:"#79C0FF"}}},{content:"langflow svc/langflow-langflow-runtime 7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860",props:{style:{color:"#79C0FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,n.jsxs)(e.p,{children:["Now you can access LangFlow at ",(0,n.jsx)(e.a,{href:"http://localhost:7860/",children:"http://localhost:7860/"}),"."]}),"\n",(0,n.jsx)(e.h3,{id:"langflow-version",children:"LangFlow version"}),"\n",(0,n.jsxs)(e.p,{children:["To specify a different LangFlow version, you can set the ",(0,n.jsx)(e.code,{children:"langflow.backend.image.tag"})," and ",(0,n.jsx)(e.code,{children:"langflow.frontend.image.tag"})," values in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" backend",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tag",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1.0.0a59"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" frontend",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tag",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1.0.0a59"',props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.h3,{id:"storage",children:"Storage"}),"\n",(0,n.jsxs)(e.p,{children:["By default, the chart will use a SQLLite database stored in a local persistent disk.\nIf you want to use an external PostgreSQL database, you can set the ",(0,n.jsx)(e.code,{children:"langflow.database"})," values in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Deploy postgresql. You can skip this section if you have an existing postgresql database.",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"postgresql",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" enabled",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" fullnameOverride",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow-ide-postgresql-service"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" auth",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" username",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" password",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow-postgres"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" database",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow-db"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"langflow",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" backend",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" externalDatabase",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" enabled",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" driver",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"postgresql"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" host",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow-ide-postgresql-service"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" port",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"5432"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" database",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow-db"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" user",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" password",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" valueFrom",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" secretKeyRef",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" key",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"password"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" name",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow-ide-postgresql-service"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" sqlite",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" enabled",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.h3,{id:"scaling",children:"Scaling"}),"\n",(0,n.jsxs)(e.p,{children:["You can scale the number of replicas for the LangFlow backend and frontend services by changing the ",(0,n.jsx)(e.code,{children:"replicaCount"})," value in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" backend",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" replicaCount",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"3",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" frontend",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" replicaCount",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"3",props:{style:{color:"#79C0FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.p,{children:"You can scale frontend and backend services independently."}),"\n",(0,n.jsxs)(e.p,{children:["To scale vertically (increase the resources for the pods), you can set the ",(0,n.jsx)(e.code,{children:"resources"})," values in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" backend",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" resources",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" requests",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" memory",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2Gi"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" cpu",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1000m"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" frontend",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" resources",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" requests",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" memory",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1Gi"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" cpu",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1000m"',props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.h3,{id:"deploy-on-aws-eks-google-gke-or-azure-aks-and-other-examples",children:"Deploy on AWS EKS, Google GKE, or Azure AKS and other examples"}),"\n",(0,n.jsxs)(e.p,{children:["Visit the ",(0,n.jsx)(e.a,{href:"https://github.com/langflow-ai/langflow-helm-charts",children:"LangFlow Helm Charts repository"})," for more examples and configurations."]}),"\n",(0,n.jsxs)(e.p,{children:["Use the ",(0,n.jsx)(e.a,{href:"https://github.com/langflow-ai/langflow-helm-charts/blob/main/charts/langflow-ide/values.yaml",children:"default values file"})," as reference for all the options available."]}),"\n",(0,n.jsxs)(e.p,{children:["Visit the ",(0,n.jsx)(e.a,{href:"https://github.com/langflow-ai/langflow-helm-charts/tree/main/examples/langflow-ide",children:"examples directory"})," to learn more about different deployment options."]}),"\n",(0,n.jsx)(e.h2,{id:"langflow-runtime",children:"LangFlow (Runtime)"}),"\n",(0,n.jsx)(e.p,{children:"The runtime chart is tailored for deploying applications in a production environment. It is focused on stability, performance, isolation and security to ensure that applications run reliably and efficiently."}),"\n",(0,n.jsx)(e.p,{children:"Using a dedicated deployment for a set of flows is fundamental in production environments in order to have a granular resource control."}),"\n",(0,n.jsx)(e.h2,{id:"import-a-flow",children:"Import a flow"}),"\n",(0,n.jsx)(e.p,{children:"There are two ways to import a flow (or multiple flows) and deploy it with the LangFlow runtime Helm chart:"}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"From a remote location"}),": You can reference a flow stored in a remote location, such as a URL or a Git repository by customizing the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file in the section ",(0,n.jsx)(e.code,{children:"downloadFlows"}),":"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"downloadFlows",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" flows",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"url",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"https://raw.githubusercontent.com/langflow-ai/langflow/dev/src/backend/base/langflow/initial_setup/starter_projects/Basic%20Prompting%20(Hello%2C%20world!).json",props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsxs)(e.p,{children:["When the LangFlow runtime starts, it will download the flow from the specified URL and run it.\nThe flow UUID to use to call the API endpoints is the same as the one in the JSON file under the ",(0,n.jsx)(e.code,{children:"id"})," field.\nYou can also specify a ",(0,n.jsx)(e.code,{children:"endpoint_name"})," field to give a friendly name to the flow."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"Packaging the flow as docker image"}),": You can add a flow from to a docker image based on Langflow runtime and refer to it in the chart."]}),"\n",(0,n.jsx)(e.p,{children:"First you need a base Dockerfile to get the langflow image and add your local flows:"}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:" FROM langflowai/langflow-backend:latest",props:{}}]},{tokens:[{content:" RUN mkdir /app/flows",props:{}}]},{tokens:[{content:" COPY ./*json /app/flows/.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,n.jsx)(e.p,{children:"Then you can build the image and push it to DockerHub (or any registry you prefer):"}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Create the Dockerfile",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"echo ",props:{style:{color:"#79C0FF"}}},{content:'"""FROM langflowai/langflow-backend:latest',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"RUN mkdir /app/flows",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"ENV LANGFLOW_LOAD_FLOWS_PATH=/app/flows",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:'COPY ./*json /app/flows/.""" ',props:{style:{color:"#A5D6FF"}}},{content:"> ",props:{style:{color:"#FF7B72"}}},{content:"Dockerfile",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# Download the flows",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"wget ",props:{style:{color:"#FFA657"}}},{content:"https://raw.githubusercontent.com/langflow-ai/langflow/dev/src/backend/base/langflow/initial_setup/starter_projects/Basic%20Prompting%",props:{style:{color:"#A5D6FF"}}},{content:"20",props:{style:{color:"#79C0FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"Hello%2C%20world!",props:{style:{color:"#FFA657"}}},{content:")",props:{style:{color:"#C9D1D9"}}},{content:".json",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# Build the docker image locally",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"build ",props:{style:{color:"#A5D6FF"}}},{content:"-t ",props:{style:{color:"#79C0FF"}}},{content:"myuser/langflow-just-chat:",props:{style:{color:"#A5D6FF"}}},{content:"1.0.0 -f ",props:{style:{color:"#79C0FF"}}},{content:"Dockerfile .",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# Push the image to DockerHub",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"push myuser/langflow-just-chat:",props:{style:{color:"#A5D6FF"}}},{content:"1.0.0",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(e.h3,{id:"prerequisites-1",children:"Prerequisites"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Kubernetes server"}),"\n",(0,n.jsx)(e.li,{children:"kubectl"}),"\n",(0,n.jsx)(e.li,{children:"Helm"}),"\n"]}),"\n",(0,n.jsx)(e.h3,{id:"step-0-prepare-a-kubernetes-cluster-1",children:"Step 0. Prepare a Kubernetes cluster"}),"\n",(0,n.jsx)(e.p,{children:"Follow the same steps as for the LangFlow IDE."}),"\n",(0,n.jsx)(e.h3,{id:"step-1-install-the-langflow-runtime-helm-chart",children:"Step 1. Install the LangFlow runtime Helm chart"}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["Add the repository to Helm.","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"helm ",props:{style:{color:"#FFA657"}}},{content:"repo add langflow https://langflow-ai.github.io/langflow-helm-charts",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"helm ",props:{style:{color:"#FFA657"}}},{content:"repo update",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["Install the LangFlow app with the default options in the ",(0,n.jsx)(e.code,{children:"langflow"})," namespace.\nIf you bundled the flow in a docker image, you can specify the image name in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file or with the ",(0,n.jsx)(e.code,{children:"--set"})," flag:","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"helm ",props:{style:{color:"#FFA657"}}},{content:"install my-langflow-app langflow/langflow-runtime ",props:{style:{color:"#A5D6FF"}}},{content:"-n ",props:{style:{color:"#79C0FF"}}},{content:"langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--create-namespace --set ",props:{style:{color:"#79C0FF"}}},{content:"image.repository=myuser/langflow-just-chat ",props:{style:{color:"#A5D6FF"}}},{content:"--set ",props:{style:{color:"#79C0FF"}}},{content:"image.tag=",props:{style:{color:"#A5D6FF"}}},{content:"1.0.0",props:{style:{color:"#79C0FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n","If you want to download the flow from a remote location, you can specify the URL in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file or with the ",(0,n.jsx)(e.code,{children:"--set"})," flag:","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"helm ",props:{style:{color:"#FFA657"}}},{content:"install my-langflow-app langflow/langflow-runtime ",props:{style:{color:"#A5D6FF"}}},{content:"-n ",props:{style:{color:"#79C0FF"}}},{content:"langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--create-namespace --set ",props:{style:{color:"#79C0FF"}}},{content:"downloadFlows.flows[0].url=https://raw.githubusercontent.com/langflow-ai/langflow/dev/src/backend/base/langflow/initial_setup/starter_projects/Basic%20Prompting%",props:{style:{color:"#A5D6FF"}}},{content:"20",props:{style:{color:"#79C0FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"Hello%2C%20world!",props:{style:{color:"#FFA657"}}},{content:")",props:{style:{color:"#C9D1D9"}}},{content:".json",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,n.jsxs)(e.ol,{start:"3",children:["\n",(0,n.jsx)(e.li,{children:"Check the status of the pods"}),"\n"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"kubectl ",props:{style:{color:"#FFA657"}}},{content:"get pods ",props:{style:{color:"#A5D6FF"}}},{content:"-n ",props:{style:{color:"#79C0FF"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(e.h3,{id:"step-2-access-the-langflow-app-api",children:"Step 2. Access the LangFlow app API"}),"\n",(0,n.jsx)(e.p,{children:"Enable local port forwarding to access LangFlow from your local machine."}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"kubectl ",props:{style:{color:"#FFA657"}}},{content:"port-forward ",props:{style:{color:"#A5D6FF"}}},{content:"-n ",props:{style:{color:"#79C0FF"}}},{content:"langflow svc/langflow-my-langflow-app 7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860",props:{style:{color:"#79C0FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,n.jsxs)(e.p,{children:["Now you can access the API at ",(0,n.jsx)(e.a,{href:"http://localhost:7860/api/v1/flows",children:"http://localhost:7860/api/v1/flows"})," and execute the flow:"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"id",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"$(",props:{style:{color:"#A5D6FF"}}},{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-s",props:{style:{color:"#79C0FF"}}},{content:" http://localhost:7860/api/v1/flows ",props:{style:{color:"#A5D6FF"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"jq ",props:{style:{color:"#FFA657"}}},{content:"-r",props:{style:{color:"#79C0FF"}}},{content:" '.flows[0].id')",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://localhost:7860/api/v1/run/',props:{style:{color:"#A5D6FF"}}},{content:"$id",props:{style:{color:"#C9D1D9"}}},{content:'?stream=false" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json'",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "Hello!",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_type": "chat"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsx)(e.h3,{id:"storage-1",children:"Storage"}),"\n",(0,n.jsx)(e.p,{children:"In this case, the storage is not needed as our deployment is stateless."}),"\n",(0,n.jsx)(e.h3,{id:"log-level-and-langflow-configurations",children:"Log level and LangFlow configurations"}),"\n",(0,n.jsxs)(e.p,{children:["You can set the log level and other LangFlow configurations in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"env",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_LOG_LEVEL",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" value",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"INFO"',props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.h3,{id:"configure-secrets-and-variables",children:"Configure secrets and variables"}),"\n",(0,n.jsxs)(e.p,{children:["In order to inject secrets and LangFlow global variables, you can use the ",(0,n.jsx)(e.code,{children:"secrets"})," and ",(0,n.jsx)(e.code,{children:"env"})," sections in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsxs)(e.p,{children:["Let's say your flow uses a global variable which is a secret; when you export the flow as JSON, it's recommended to not include it.\nWhen importing the flow in the LangFlow runtime, you can set the global variable using the ",(0,n.jsx)(e.code,{children:"env"})," section in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file.\nAssuming you have a global variable called ",(0,n.jsx)(e.code,{children:"openai_key_var"}),", you can read it directly from a secret:"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"env",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"openai_key_var",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" valueFrom",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" secretKeyRef",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"openai-key",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" key",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"openai-key",props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.p,{children:"or directly from the values file (not recommended for secret values!):"}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"env",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"openai_key_var",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" value",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"sk-...."',props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.h3,{id:"scaling-1",children:"Scaling"}),"\n",(0,n.jsxs)(e.p,{children:["You can scale the number of replicas for the LangFlow app by changing the ",(0,n.jsx)(e.code,{children:"replicaCount"})," value in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"replicaCount",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"3",props:{style:{color:"#79C0FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsxs)(e.p,{children:["To scale vertically (increase the resources for the pods), you can set the ",(0,n.jsx)(e.code,{children:"resources"})," values in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"resources",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" requests",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" memory",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2Gi"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" cpu",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1000m"',props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.h3,{id:"other-examples",children:"Other examples"}),"\n",(0,n.jsxs)(e.p,{children:["Visit the ",(0,n.jsx)(e.a,{href:"https://github.com/langflow-ai/langflow-helm-charts",children:"LangFlow Helm Charts repository"})," for more examples and configurations."]}),"\n",(0,n.jsxs)(e.p,{children:["Use the ",(0,n.jsx)(e.a,{href:"https://github.com/langflow-ai/langflow-helm-charts/blob/main/charts/langflow-runtime/values.yaml",children:"default values file"})," as reference for all the options available."]}),"\n",(0,n.jsxs)(e.p,{children:["Visit the ",(0,n.jsx)(e.a,{href:"https://github.com/langflow-ai/langflow-helm-charts/tree/main/examples/langflow-runtime",children:"examples directory"})," to learn more about different deployment options."]})]})}const u=function(o={}){const{wrapper:e}=Object.assign({},(0,l.RP)(),o.components);return e?(0,n.jsx)(e,Object.assign({},o,{children:(0,n.jsx)(y,o)})):y(o)};function g(o,e){throw new Error("Expected "+(e?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/0b76dbbf.092ef555.js b/assets/js/0b76dbbf.092ef555.js
new file mode 100644
index 0000000000..1e4a5a982a
--- /dev/null
+++ b/assets/js/0b76dbbf.092ef555.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[448],{7293:(e,t,n)=>{n.d(t,{A:()=>B});var o=n(6540),i=n(4848);function a(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=o.Children.toArray(e),n=t.find((e=>o.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n)),s=n?.props.children;return{mdxAdmonitionTitle:s,rest:a.length>0?(0,i.jsx)(i.Fragment,{children:a}):null}}(e.children),a=e.title??t;return{...e,...a&&{title:a},children:n}}var s=n(8215),c=n(1312),r=n(7559);const d={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function l(e){let{type:t,className:n,children:o}=e;return(0,i.jsx)("div",{className:(0,s.A)(r.G.common.admonition,r.G.common.admonitionType(t),d.admonition,n),children:o})}function h(e){let{icon:t,title:n}=e;return(0,i.jsxs)("div",{className:d.admonitionHeading,children:[(0,i.jsx)("span",{className:d.admonitionIcon,children:t}),n]})}function u(e){let{children:t}=e;return t?(0,i.jsx)("div",{className:d.admonitionContent,children:t}):null}function p(e){const{type:t,icon:n,title:o,children:a,className:s}=e;return(0,i.jsxs)(l,{type:t,className:s,children:[o||n?(0,i.jsx)(h,{title:o,icon:n}):null,(0,i.jsx)(u,{children:a})]})}function m(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const x={icon:(0,i.jsx)(m,{}),title:(0,i.jsx)(c.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function f(e){return(0,i.jsx)(p,{...x,...e,className:(0,s.A)("alert alert--secondary",e.className),children:e.children})}function g(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const j={icon:(0,i.jsx)(g,{}),title:(0,i.jsx)(c.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(e){return(0,i.jsx)(p,{...j,...e,className:(0,s.A)("alert alert--success",e.className),children:e.children})}function y(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,i.jsx)(y,{}),title:(0,i.jsx)(c.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function D(e){return(0,i.jsx)(p,{...w,...e,className:(0,s.A)("alert alert--info",e.className),children:e.children})}function k(e){return(0,i.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const b={icon:(0,i.jsx)(k,{}),title:(0,i.jsx)(c.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function C(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const T={icon:(0,i.jsx)(C,{}),title:(0,i.jsx)(c.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const A={icon:(0,i.jsx)(k,{}),title:(0,i.jsx)(c.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const N={...{note:f,tip:v,info:D,warning:function(e){return(0,i.jsx)(p,{...b,...e,className:(0,s.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,i.jsx)(p,{...T,...e,className:(0,s.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,i.jsx)(f,{title:"secondary",...e}),important:e=>(0,i.jsx)(D,{title:"important",...e}),success:e=>(0,i.jsx)(v,{title:"success",...e}),caution:function(e){return(0,i.jsx)(p,{...A,...e,className:(0,s.A)("alert alert--warning",e.className),children:e.children})}}};var H=n(6763);function B(e){const t=a(e),n=(o=t.type,N[o]||(H.warn(`No admonition component found for admonition type "${o}". Using Info as fallback.`),N.info));var o;return(0,i.jsx)(n,{...t})}},4871:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>h,assets:()=>l,chCodeConfig:()=>u,contentTitle:()=>r,default:()=>x,frontMatter:()=>c,metadata:()=>d,toc:()=>p});n(6540);var o=n(4848),i=n(8453),a=n(4754),s=n(7293);const c={},r="Text and Data",d={id:"components/text-and-record",title:"Text and Data",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/components/text-and-record.mdx",sourceDirName:"components",slug:"/components/text-and-record",permalink:"/components/text-and-record",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Inputs and Outputs",permalink:"/components/inputs-and-outputs"},next:{title:"Data",permalink:"/components/data"}},l={},h={annotations:a.hk,Code:a.Cy,InlineCode:a.R0},u={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Data To Text",id:"data-to-text",level:2},{value:"Create Data",id:"create-data",level:2},{value:"Documents To Data",id:"documents-to-data",level:2},{value:"Why is this useful?",id:"why-is-this-useful",level:2},{value:"What's next?",id:"whats-next",level:2}];function m(e){const t=Object.assign({h1:"h1",p:"p",code:"code",h2:"h2"},(0,i.RP)(),e.components);return h||f("CH",!1),h.Code||f("CH.Code",!0),h.InlineCode||f("CH.InlineCode",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.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","\n",(0,o.jsx)(t.h1,{id:"text-and-data",children:"Text and Data"}),"\n",(0,o.jsx)(s.A,{type:"warning",title:"warning",children:(0,o.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,o.jsxs)(t.p,{children:["There are two main input and output types: ",(0,o.jsx)(t.code,{children:"Text"})," and ",(0,o.jsx)(t.code,{children:"Data"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.code,{children:"Text"})," is a simple string input and output type, while ",(0,o.jsx)(t.code,{children:"Data"})," is a structure very similar to a dictionary in Python. It is a key-value pair data structure."]}),"\n",(0,o.jsx)(t.p,{children:"We've created a few components to help you work with these types. Let's see how a few of them work."}),"\n",(0,o.jsx)(t.h2,{id:"data-to-text",children:"Data To Text"}),"\n",(0,o.jsxs)(t.p,{children:["This is a component that takes in Data and outputs a ",(0,o.jsx)(t.code,{children:"Text"}),". It does this using a template string and concatenating the values of the ",(0,o.jsx)(t.code,{children:"Data"}),", one per line."]}),"\n",(0,o.jsx)(t.p,{children:"If we have the following Data:"}),"\n",(0,o.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Alice"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello!"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"John"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hi!"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,o.jsxs)(t.p,{children:["And the template string is: ",(0,o.jsx)(h.InlineCode,{codeConfig:u,code:{lines:[{tokens:[{content:"{sender_name}: {message}",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"{sender_name}: {message}"})]}),"\n",(0,o.jsx)(t.p,{children:"The output is:"}),"\n",(0,o.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Alice: Hello!",props:{}}]},{tokens:[{content:"John: Hi!",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,o.jsx)(t.h2,{id:"create-data",children:"Create Data"}),"\n",(0,o.jsxs)(t.p,{children:["This component allows you to create a ",(0,o.jsx)(t.code,{children:"Data"})," from a number of inputs. You can add as many key-value pairs as you want (as long as it is less than 15). Once you've picked that number you'll need to write the name of the Key and can pass ",(0,o.jsx)(t.code,{children:"Text"})," values from other components to it."]}),"\n",(0,o.jsx)(t.h2,{id:"documents-to-data",children:"Documents To Data"}),"\n",(0,o.jsxs)(t.p,{children:["This component takes in a LangChain ",(0,o.jsx)(t.code,{children:"Document"})," and outputs a ",(0,o.jsx)(t.code,{children:"Data"}),". It does this by extracting the ",(0,o.jsx)(t.code,{children:"page_content"})," and the ",(0,o.jsx)(t.code,{children:"metadata"})," from the ",(0,o.jsx)(t.code,{children:"Document"})," and adding them to the ",(0,o.jsx)(t.code,{children:"Data"})," as text and data respectively."]}),"\n",(0,o.jsx)(t.h2,{id:"why-is-this-useful",children:"Why is this useful?"}),"\n",(0,o.jsx)(t.p,{children:"The idea was to create a unified way to work with complex data in Langflow and to make it easier to work with data that is not just a simple string. This way you can create more complex workflows and use the data in more ways."}),"\n",(0,o.jsx)(t.h2,{id:"whats-next",children:"What's next?"}),"\n",(0,o.jsx)(t.p,{children:"We are planning to integrate an array of modalities to Langflow, such as images, audio, and video. This will allow you to create even more complex workflows and use cases. Stay tuned for more updates! \ud83d\ude80"})]})}const x=function(e={}){const{wrapper:t}=Object.assign({},(0,i.RP)(),e.components);return t?(0,o.jsx)(t,Object.assign({},e,{children:(0,o.jsx)(m,e)})):m(e)};function f(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/0b76dbbf.4b599a5b.js b/assets/js/0b76dbbf.4b599a5b.js
deleted file mode 100644
index ad693efe2a..0000000000
--- a/assets/js/0b76dbbf.4b599a5b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[448],{4871:(e,t,o)=>{o.r(t),o.d(t,{CH:()=>h,assets:()=>l,chCodeConfig:()=>p,contentTitle:()=>d,default:()=>g,frontMatter:()=>c,metadata:()=>i,toc:()=>u});o(6540);var n=o(4848),a=o(8453),s=o(4754),r=o(7293);const c={},d="Text and Data",i={id:"components/text-and-record",title:"Text and Data",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/components/text-and-record.mdx",sourceDirName:"components",slug:"/components/text-and-record",permalink:"/components/text-and-record",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Inputs and Outputs",permalink:"/components/inputs-and-outputs"},next:{title:"Data",permalink:"/components/data"}},l={},h={annotations:s.hk,Code:s.Cy,InlineCode:s.R0},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Data To Text",id:"data-to-text",level:2},{value:"Create Data",id:"create-data",level:2},{value:"Documents To Data",id:"documents-to-data",level:2},{value:"Why is this useful?",id:"why-is-this-useful",level:2},{value:"What's next?",id:"whats-next",level:2}];function m(e){const t=Object.assign({h1:"h1",p:"p",code:"code",h2:"h2"},(0,a.RP)(),e.components);return h||x("CH",!1),h.Code||x("CH.Code",!0),h.InlineCode||x("CH.InlineCode",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"text-and-data",children:"Text and Data"}),"\n",(0,n.jsx)(r.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(t.p,{children:["There are two main input and output types: ",(0,n.jsx)(t.code,{children:"Text"})," and ",(0,n.jsx)(t.code,{children:"Data"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.code,{children:"Text"})," is a simple string input and output type, while ",(0,n.jsx)(t.code,{children:"Data"})," is a structure very similar to a dictionary in Python. It is a key-value pair data structure."]}),"\n",(0,n.jsx)(t.p,{children:"We've created a few components to help you work with these types. Let's see how a few of them work."}),"\n",(0,n.jsx)(t.h2,{id:"data-to-text",children:"Data To Text"}),"\n",(0,n.jsxs)(t.p,{children:["This is a component that takes in Data and outputs a ",(0,n.jsx)(t.code,{children:"Text"}),". It does this using a template string and concatenating the values of the ",(0,n.jsx)(t.code,{children:"Data"}),", one per line."]}),"\n",(0,n.jsx)(t.p,{children:"If we have the following Data:"}),"\n",(0,n.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Alice"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hello!"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sender_name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"John"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "message"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Hi!"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:["And the template string is: ",(0,n.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"{sender_name}: {message}",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"{sender_name}: {message}"})]}),"\n",(0,n.jsx)(t.p,{children:"The output is:"}),"\n",(0,n.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Alice: Hello!",props:{}}]},{tokens:[{content:"John: Hi!",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"create-data",children:"Create Data"}),"\n",(0,n.jsxs)(t.p,{children:["This component allows you to create a ",(0,n.jsx)(t.code,{children:"Data"})," from a number of inputs. You can add as many key-value pairs as you want (as long as it is less than 15). Once you've picked that number you'll need to write the name of the Key and can pass ",(0,n.jsx)(t.code,{children:"Text"})," values from other components to it."]}),"\n",(0,n.jsx)(t.h2,{id:"documents-to-data",children:"Documents To Data"}),"\n",(0,n.jsxs)(t.p,{children:["This component takes in a LangChain ",(0,n.jsx)(t.code,{children:"Document"})," and outputs a ",(0,n.jsx)(t.code,{children:"Data"}),". It does this by extracting the ",(0,n.jsx)(t.code,{children:"page_content"})," and the ",(0,n.jsx)(t.code,{children:"metadata"})," from the ",(0,n.jsx)(t.code,{children:"Document"})," and adding them to the ",(0,n.jsx)(t.code,{children:"Data"})," as text and data respectively."]}),"\n",(0,n.jsx)(t.h2,{id:"why-is-this-useful",children:"Why is this useful?"}),"\n",(0,n.jsx)(t.p,{children:"The idea was to create a unified way to work with complex data in Langflow and to make it easier to work with data that is not just a simple string. This way you can create more complex workflows and use the data in more ways."}),"\n",(0,n.jsx)(t.h2,{id:"whats-next",children:"What's next?"}),"\n",(0,n.jsx)(t.p,{children:"We are planning to integrate an array of modalities to Langflow, such as images, audio, and video. This will allow you to create even more complex workflows and use cases. Stay tuned for more updates! \ud83d\ude80"})]})}const g=function(e={}){const{wrapper:t}=Object.assign({},(0,a.RP)(),e.components);return t?(0,n.jsx)(t,Object.assign({},e,{children:(0,n.jsx)(m,e)})):m(e)};function x(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/0c5f9a85.3b47808c.js b/assets/js/0c5f9a85.3b47808c.js
new file mode 100644
index 0000000000..a508fad1c0
--- /dev/null
+++ b/assets/js/0c5f9a85.3b47808c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[9366],{7293:(e,n,o)=>{o.d(n,{A:()=>w});var s=o(6540),t=o(4848);function l(e){const{mdxAdmonitionTitle:n,rest:o}=function(e){const n=s.Children.toArray(e),o=n.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),l=n.filter((e=>e!==o)),i=o?.props.children;return{mdxAdmonitionTitle:i,rest:l.length>0?(0,t.jsx)(t.Fragment,{children:l}):null}}(e.children),l=e.title??n;return{...e,...l&&{title:l},children:o}}var i=o(8215),r=o(1312),c=o(7559);const d={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function a(e){let{type:n,className:o,children:s}=e;return(0,t.jsx)("div",{className:(0,i.A)(c.G.common.admonition,c.G.common.admonitionType(n),d.admonition,o),children:s})}function h(e){let{icon:n,title:o}=e;return(0,t.jsxs)("div",{className:d.admonitionHeading,children:[(0,t.jsx)("span",{className:d.admonitionIcon,children:n}),o]})}function p(e){let{children:n}=e;return n?(0,t.jsx)("div",{className:d.admonitionContent,children:n}):null}function x(e){const{type:n,icon:o,title:s,children:l,className:i}=e;return(0,t.jsxs)(a,{type:n,className:i,children:[s||o?(0,t.jsx)(h,{title:s,icon:o}):null,(0,t.jsx)(p,{children:l})]})}function j(e){return(0,t.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const g={icon:(0,t.jsx)(j,{}),title:(0,t.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function u(e){return(0,t.jsx)(x,{...g,...e,className:(0,i.A)("alert alert--secondary",e.className),children:e.children})}function m(e){return(0,t.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const f={icon:(0,t.jsx)(m,{}),title:(0,t.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function C(e){return(0,t.jsx)(x,{...f,...e,className:(0,i.A)("alert alert--success",e.className),children:e.children})}function F(e){return(0,t.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const y={icon:(0,t.jsx)(F,{}),title:(0,t.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function A(e){return(0,t.jsx)(x,{...y,...e,className:(0,i.A)("alert alert--info",e.className),children:e.children})}function I(e){return(0,t.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const k={icon:(0,t.jsx)(I,{}),title:(0,t.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function D(e){return(0,t.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const v={icon:(0,t.jsx)(D,{}),title:(0,t.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const b={icon:(0,t.jsx)(I,{}),title:(0,t.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const T={...{note:u,tip:C,info:A,warning:function(e){return(0,t.jsx)(x,{...k,...e,className:(0,i.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,t.jsx)(x,{...v,...e,className:(0,i.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,t.jsx)(u,{title:"secondary",...e}),important:e=>(0,t.jsx)(A,{title:"important",...e}),success:e=>(0,t.jsx)(C,{title:"success",...e}),caution:function(e){return(0,t.jsx)(x,{...b,...e,className:(0,i.A)("alert alert--warning",e.className),children:e.children})}}};var O=o(6763);function w(e){const n=l(e),o=(s=n.type,T[s]||(O.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),T.info));var s;return(0,t.jsx)(o,{...n})}},6462:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>h,assets:()=>a,chCodeConfig:()=>p,contentTitle:()=>c,default:()=>g,frontMatter:()=>r,metadata:()=>d,toc:()=>x});o(6540);var s=o(4848),t=o(8453),l=o(4754),i=o(7293);const r={},c="Models",d={id:"components/models",title:"Models",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/components/models.mdx",sourceDirName:"components",slug:"/components/models",permalink:"/components/models",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Data",permalink:"/components/data"},next:{title:"Helpers",permalink:"/components/helpers"}},a={},h={annotations:l.hk,InlineCode:l.R0},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Amazon Bedrock",id:"amazon-bedrock",level:2},{value:"Anthropic",id:"anthropic",level:2},{value:"Azure OpenAI",id:"azure-openai",level:2},{value:"Cohere",id:"cohere",level:2},{value:"Google Generative AI",id:"google-generative-ai",level:2},{value:"Hugging Face API",id:"hugging-face-api",level:2},{value:"LiteLLM Model",id:"litellm-model",level:2},{value:"Ollama",id:"ollama",level:2},{value:"OpenAI",id:"openai",level:2},{value:"Qianfan",id:"qianfan",level:2},{value:"Vertex AI",id:"vertex-ai",level:2}];function j(e){const n=Object.assign({h1:"h1",p:"p",h2:"h2",strong:"strong",ul:"ul",li:"li",hr:"hr",a:"a",code:"code"},(0,t.RP)(),e.components);return h||u("CH",!1),h.InlineCode||u("CH.InlineCode",!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","\n",(0,s.jsx)(n.h1,{id:"models",children:"Models"}),"\n",(0,s.jsx)(i.A,{type:"warning",title:"warning",children:(0,s.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,s.jsx)(n.h2,{id:"amazon-bedrock",children:"Amazon Bedrock"}),"\n",(0,s.jsx)(n.p,{children:"This component facilitates the generation of text using the LLM (Large Language Model) model from Amazon Bedrock."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," Specifies the input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," A system message to pass to the model."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model ID (Optional):"})," Specifies the model ID to be used for text generation. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"anthropic.claude-instant-v1"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"anthropic.claude-instant-v1"'}),". Available options include:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ai21.j2-grande-instruct"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ai21.j2-grande-instruct"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ai21.j2-jumbo-instruct"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ai21.j2-jumbo-instruct"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ai21.j2-mid"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ai21.j2-mid"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ai21.j2-mid-v1"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ai21.j2-mid-v1"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ai21.j2-ultra"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ai21.j2-ultra"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ai21.j2-ultra-v1"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ai21.j2-ultra-v1"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"anthropic.claude-instant-v1"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"anthropic.claude-instant-v1"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"anthropic.claude-v1"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"anthropic.claude-v1"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"anthropic.claude-v2"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"anthropic.claude-v2"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"cohere.command-text-v14"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"cohere.command-text-v14"'})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Credentials Profile Name (Optional):"})," Specifies the name of the credentials profile."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Region Name (Optional):"})," Specifies the region name."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Kwargs (Optional):"})," Additional keyword arguments for the model."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Endpoint URL (Optional):"})," Specifies the endpoint URL."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Streaming (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Cache (Optional):"})," Specifies whether to cache the response."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.A,{type:"note",title:"Note",children:(0,s.jsx)("p",{children:(0,s.jsx)(n.p,{children:"Ensure that necessary credentials are provided to connect to the Amazon\nBedrock API. If connection fails, a ValueError will be raised."})})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"anthropic",children:"Anthropic"}),"\n",(0,s.jsx)(n.p,{children:"This component allows the generation of text using Anthropic Chat&Completion large language models."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Name:"})," Specifies the name of the Anthropic model to be used for text generation. Available options include:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"claude-2.1"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"claude-2.1"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"claude-2.0"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"claude-2.0"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"claude-instant-1.2"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"claude-instant-1.2"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"claude-instant-1"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"claude-instant-1"'})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Anthropic API Key:"})," Your Anthropic API key."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Max Tokens (Optional):"})," Specifies the maximum number of tokens to generate. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"256",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"256"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Temperature (Optional):"})," Specifies the sampling temperature. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.7",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.7"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"API Endpoint (Optional):"})," Specifies the endpoint of the Anthropic API. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"https://api.anthropic.com"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"https://api.anthropic.com"'})," if not specified."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," Specifies the input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," A system message to pass to the model."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["For detailed documentation and integration guides, please refer to the ",(0,s.jsx)(n.a,{href:"https://python.langchain.com/docs/integrations/chat/anthropic",children:"Anthropic Component Documentation"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"azure-openai",children:"Azure OpenAI"}),"\n",(0,s.jsx)(n.p,{children:"This component allows the generation of text using the LLM (Large Language Model) model from Azure OpenAI."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Name:"})," Specifies the name of the Azure OpenAI model to be used for text generation. Available options include:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gpt-35-turbo"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gpt-35-turbo"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gpt-35-turbo-16k"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gpt-35-turbo-16k"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gpt-35-turbo-instruct"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gpt-35-turbo-instruct"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gpt-4"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gpt-4"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gpt-4-32k"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gpt-4-32k"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gpt-4-vision"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gpt-4-vision"'})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Azure Endpoint:"})," Your Azure endpoint, including the resource. Example: ",(0,s.jsx)(n.code,{children:"https://example-resource.azure.openai.com/"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Deployment Name:"})," Specifies the name of the deployment."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"API Version:"})," Specifies the version of the Azure OpenAI API to be used. Available options include:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"2023-03-15-preview"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"2023-03-15-preview"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"2023-05-15"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"2023-05-15"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"2023-06-01-preview"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"2023-06-01-preview"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"2023-07-01-preview"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"2023-07-01-preview"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"2023-08-01-preview"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"2023-08-01-preview"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"2023-09-01-preview"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"2023-09-01-preview"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"2023-12-01-preview"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"2023-12-01-preview"'})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"API Key:"})," Your Azure OpenAI API key."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Temperature (Optional):"})," Specifies the sampling temperature. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.7",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.7"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Max Tokens (Optional):"})," Specifies the maximum number of tokens to generate. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"1000",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"1000"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," Specifies the input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," A system message to pass to the model."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["For detailed documentation and integration guides, please refer to the ",(0,s.jsx)(n.a,{href:"https://python.langchain.com/docs/integrations/llms/azure_openai",children:"Azure OpenAI Component Documentation"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"cohere",children:"Cohere"}),"\n",(0,s.jsx)(n.p,{children:"This component enables text generation using Cohere large language models."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Cohere API Key:"})," Your Cohere API key."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Max Tokens (Optional):"})," Specifies the maximum number of tokens to generate. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"256",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"256"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Temperature (Optional):"})," Specifies the sampling temperature. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.75",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.75"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," Specifies the input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," A system message to pass to the model."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"google-generative-ai",children:"Google Generative AI"}),"\n",(0,s.jsx)(n.p,{children:"This component enables text generation using Google Generative AI."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Google API Key:"})," Your Google API key to use for the Google Generative AI."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model:"})," The name of the model to use. Supported examples are ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gemini-pro"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gemini-pro"'})," and ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gemini-pro-vision"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gemini-pro-vision"'}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Max Output Tokens (Optional):"})," The maximum number of tokens to generate."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Temperature:"})," Run inference with this temperature. Must be in the closed interval [0.0, 1.0]."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Top K (Optional):"})," Decode using top-k sampling: consider the set of top_k most probable tokens. Must be positive."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Top P (Optional):"})," The maximum cumulative probability of tokens to consider when sampling."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"N (Optional):"})," Number of chat completions to generate for each prompt. Note that the API may not return the full n completions if duplicates are generated."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," The input to the model."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," A system message to pass to the model."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"hugging-face-api",children:"Hugging Face API"}),"\n",(0,s.jsx)(n.p,{children:"This component facilitates text generation using LLM models from the Hugging Face Inference API."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Endpoint URL:"})," The URL of the Hugging Face Inference API endpoint. Should be provided along with necessary authentication credentials."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Task:"})," Specifies the task for text generation. Options include ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"text2text-generation"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"text2text-generation"'}),", ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"text-generation"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"text-generation"'}),", and ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"summarization"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"summarization"'}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"API Token:"})," The API token required for authentication with the Hugging Face Hub."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Keyword Arguments (Optional):"})," Additional keyword arguments for the model. Should be provided as a Python dictionary."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," The input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," A system message to pass to the model."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"litellm-model",children:"LiteLLM Model"}),"\n",(0,s.jsxs)(n.p,{children:["Generates text using the ",(0,s.jsx)(n.code,{children:"LiteLLM"})," collection of large language models."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Parameters"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Model name:"})," The name of the model to use. For example, ",(0,s.jsx)(n.code,{children:"gpt-3.5-turbo"}),". (Type: str)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"API key:"})," The API key to use for accessing the provider's API. (Type: str, Optional)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Provider:"}),' The provider of the API key. (Type: str, Choices: "OpenAI", "Azure", "Anthropic", "Replicate", "Cohere", "OpenRouter")']}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Temperature:"})," Controls the randomness of the text generation. (Type: float, Default: 0.7)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Model kwargs:"})," Additional keyword arguments for the model. (Type: Dict, Optional)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Top p:"})," Filter responses to keep the cumulative probability within the top p tokens. (Type: float, Optional)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Top k:"})," Filter responses to only include the top k tokens. (Type: int, Optional)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"N:"})," Number of chat completions to generate for each prompt. (Type: int, Default: 1)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Max tokens:"})," The maximum number of tokens to generate for each chat completion. (Type: int, Default: 256)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Max retries:"})," Maximum number of retries for failed requests. (Type: int, Default: 6)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Verbose:"})," Whether to print verbose output. (Type: bool, Default: False)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Input:"})," The input prompt for text generation. (Type: str)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Stream:"})," Whether to stream the output. (Type: bool, Default: False)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"System message:"})," System message to pass to the model. (Type: str, Optional)"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"ollama",children:"Ollama"}),"\n",(0,s.jsx)(n.p,{children:"Generate text using Ollama Local LLMs."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Parameters"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Base URL:"})," Endpoint of the Ollama API. Defaults to '",(0,s.jsx)(n.a,{href:"http://localhost:11434",children:"http://localhost:11434"}),"' if not specified."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Model Name:"})," The model name to use. Refer to ",(0,s.jsx)(n.a,{href:"https://ollama.ai/library",children:"Ollama Library"})," for more models."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Temperature:"})," Controls the creativity of model responses. (Default: 0.8)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Cache:"})," Enable or disable caching. (Default: False)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Format:"})," Specify the format of the output (e.g., json). (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Metadata:"})," Metadata to add to the run trace. (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Mirostat:"})," Enable/disable Mirostat sampling for controlling perplexity. (Default: Disabled)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Mirostat Eta:"})," Learning rate for Mirostat algorithm. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Mirostat Tau:"})," Controls the balance between coherence and diversity of the output. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Context Window Size:"})," Size of the context window for generating tokens. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Number of GPUs:"})," Number of GPUs to use for computation. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Number of Threads:"})," Number of threads to use during computation. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Repeat Last N:"})," How far back the model looks to prevent repetition. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Repeat Penalty:"})," Penalty for repetitions in generated text. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"TFS Z:"})," Tail free sampling value. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Timeout:"})," Timeout for the request stream. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Top K:"})," Limits token selection to top K. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Top P:"})," Works together with top-k. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Verbose:"})," Whether to print out response text."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Tags:"})," Tags to add to the run trace. (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Stop Tokens:"})," List of tokens to signal the model to stop generating text. (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"System:"})," System to use for generating text. (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Template:"})," Template to use for generating text. (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Input:"})," The input text."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Stream:"})," Whether to stream the response."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"System Message:"})," System message to pass to the model. (Advanced)"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"openai",children:"OpenAI"}),"\n",(0,s.jsx)(n.p,{children:"This component facilitates text generation using OpenAI's models."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," The input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Max Tokens (Optional):"})," The maximum number of tokens to generate. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"256",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"256"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Kwargs (Optional):"})," Additional keyword arguments for the model. Should be provided as a nested dictionary."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Name (Optional):"})," The name of the model to use. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"gpt",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"4",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"1106",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"preview",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"gpt-4-1106-preview"}),". Supported options include: ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"gpt",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"4",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"turbo",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"preview",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"gpt-4-turbo-preview"}),", ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"gpt",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"4",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"0125",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"preview",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"gpt-4-0125-preview"}),", ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"gpt",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"4",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"1106",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"preview",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"gpt-4-1106-preview"}),", ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"gpt",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"4",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"vision",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"preview",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"gpt-4-vision-preview"}),", ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"gpt",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"3.5",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"turbo",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"0125",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"gpt-3.5-turbo-0125"}),", ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"gpt",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"3.5",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"turbo",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"1106",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"gpt-3.5-turbo-1106"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"OpenAI API Base (Optional):"})," The base URL of the OpenAI API. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"https",props:{style:{color:"#FFA657"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:"//api.openai.com/v1",props:{style:{color:"#8B949E"}}}]}],lang:"jsx"},children:"https://api.openai.com/v1"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"OpenAI API Key (Optional):"})," The API key for accessing the OpenAI API."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Temperature:"})," Controls the creativity of model responses. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.7",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.7"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," System message to pass to the model."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"qianfan",children:"Qianfan"}),"\n",(0,s.jsx)(n.p,{children:"This component facilitates the generation of text using Baidu Qianfan chat models."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Name:"})," Specifies the name of the Qianfan chat model to be used for text generation. Available options include:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ERNIE-Bot"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ERNIE-Bot"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ERNIE-Bot-turbo"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ERNIE-Bot-turbo"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"BLOOMZ-7B"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"BLOOMZ-7B"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"Llama-2-7b-chat"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"Llama-2-7b-chat"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"Llama-2-13b-chat"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"Llama-2-13b-chat"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"Llama-2-70b-chat"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"Llama-2-70b-chat"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"Qianfan-BLOOMZ-7B-compressed"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"Qianfan-BLOOMZ-7B-compressed"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"Qianfan-Chinese-Llama-2-7B"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"Qianfan-Chinese-Llama-2-7B"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ChatGLM2-6B-32K"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ChatGLM2-6B-32K"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"AquilaChat-7B"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"AquilaChat-7B"'})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Qianfan Ak:"})," Your Baidu Qianfan access key, obtainable from ",(0,s.jsx)(n.a,{href:"https://cloud.baidu.com/product/wenxinworkshop",children:"here"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Qianfan Sk:"})," Your Baidu Qianfan secret key, obtainable from ",(0,s.jsx)(n.a,{href:"https://cloud.baidu.com/product/wenxinworkshop",children:"here"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Top p (Optional):"})," Model parameter. Specifies the top-p value. Only supported in ERNIE-Bot and ERNIE-Bot-turbo models. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.8",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.8"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Temperature (Optional):"})," Model parameter. Specifies the sampling temperature. Only supported in ERNIE-Bot and ERNIE-Bot-turbo models. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.95",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.95"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Penalty Score (Optional):"})," Model parameter. Specifies the penalty score. Only supported in ERNIE-Bot and ERNIE-Bot-turbo models. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"1.0",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"1.0"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Endpoint (Optional):"})," Endpoint of the Qianfan LLM, required if custom model is used."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," Specifies the input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," A system message to pass to the model."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"vertex-ai",children:"Vertex AI"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"ChatVertexAI"})," is a component for generating text using Vertex AI Chat large language models API."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Credentials:"})," The JSON file containing the credentials for accessing the Vertex AI Chat API."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Project:"})," The name of the project associated with the Vertex AI Chat API."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Examples (Optional):"})," List of examples to provide context for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Location:"})," The location of the Vertex AI Chat API service. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"us",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"central1",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"us-central1"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Max Output Tokens:"})," The maximum number of tokens to generate. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"128",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"128"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Name:"})," The name of the model to use. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"chat",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"bison",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"chat-bison"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Temperature:"})," Controls the creativity of model responses. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.0",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.0"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," The input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Top K:"})," Limits token selection to top K. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"40",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"40"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Top P:"})," Works together with top-k. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.95",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.95"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Verbose:"})," Whether to print out response text. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," System message to pass to the model."]}),"\n"]}),"\n"]})]})}const g=function(e={}){const{wrapper:n}=Object.assign({},(0,t.RP)(),e.components);return n?(0,s.jsx)(n,Object.assign({},e,{children:(0,s.jsx)(j,e)})):j(e)};function u(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/0c5f9a85.f3a25246.js b/assets/js/0c5f9a85.f3a25246.js
deleted file mode 100644
index 85512acd0e..0000000000
--- a/assets/js/0c5f9a85.f3a25246.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[9366],{6462:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>h,assets:()=>a,chCodeConfig:()=>p,contentTitle:()=>c,default:()=>g,frontMatter:()=>r,metadata:()=>d,toc:()=>x});o(6540);var s=o(4848),t=o(8453),l=o(4754),i=o(7293);const r={},c="Models",d={id:"components/models",title:"Models",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/components/models.mdx",sourceDirName:"components",slug:"/components/models",permalink:"/components/models",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Data",permalink:"/components/data"},next:{title:"Helpers",permalink:"/components/helpers"}},a={},h={annotations:l.hk,InlineCode:l.R0},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Amazon Bedrock",id:"amazon-bedrock",level:2},{value:"Anthropic",id:"anthropic",level:2},{value:"Azure OpenAI",id:"azure-openai",level:2},{value:"Cohere",id:"cohere",level:2},{value:"Google Generative AI",id:"google-generative-ai",level:2},{value:"Hugging Face API",id:"hugging-face-api",level:2},{value:"LiteLLM Model",id:"litellm-model",level:2},{value:"Ollama",id:"ollama",level:2},{value:"OpenAI",id:"openai",level:2},{value:"Qianfan",id:"qianfan",level:2},{value:"Vertex AI",id:"vertex-ai",level:2}];function j(e){const n=Object.assign({h1:"h1",p:"p",h2:"h2",strong:"strong",ul:"ul",li:"li",hr:"hr",a:"a",code:"code"},(0,t.RP)(),e.components);return h||u("CH",!1),h.InlineCode||u("CH.InlineCode",!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","\n",(0,s.jsx)(n.h1,{id:"models",children:"Models"}),"\n",(0,s.jsx)(i.A,{type:"warning",title:"warning",children:(0,s.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,s.jsx)(n.h2,{id:"amazon-bedrock",children:"Amazon Bedrock"}),"\n",(0,s.jsx)(n.p,{children:"This component facilitates the generation of text using the LLM (Large Language Model) model from Amazon Bedrock."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," Specifies the input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," A system message to pass to the model."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model ID (Optional):"})," Specifies the model ID to be used for text generation. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"anthropic.claude-instant-v1"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"anthropic.claude-instant-v1"'}),". Available options include:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ai21.j2-grande-instruct"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ai21.j2-grande-instruct"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ai21.j2-jumbo-instruct"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ai21.j2-jumbo-instruct"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ai21.j2-mid"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ai21.j2-mid"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ai21.j2-mid-v1"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ai21.j2-mid-v1"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ai21.j2-ultra"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ai21.j2-ultra"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ai21.j2-ultra-v1"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ai21.j2-ultra-v1"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"anthropic.claude-instant-v1"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"anthropic.claude-instant-v1"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"anthropic.claude-v1"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"anthropic.claude-v1"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"anthropic.claude-v2"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"anthropic.claude-v2"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"cohere.command-text-v14"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"cohere.command-text-v14"'})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Credentials Profile Name (Optional):"})," Specifies the name of the credentials profile."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Region Name (Optional):"})," Specifies the region name."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Kwargs (Optional):"})," Additional keyword arguments for the model."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Endpoint URL (Optional):"})," Specifies the endpoint URL."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Streaming (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Cache (Optional):"})," Specifies whether to cache the response."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.A,{type:"note",title:"Note",children:(0,s.jsx)("p",{children:(0,s.jsx)(n.p,{children:"Ensure that necessary credentials are provided to connect to the Amazon\nBedrock API. If connection fails, a ValueError will be raised."})})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"anthropic",children:"Anthropic"}),"\n",(0,s.jsx)(n.p,{children:"This component allows the generation of text using Anthropic Chat&Completion large language models."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Name:"})," Specifies the name of the Anthropic model to be used for text generation. Available options include:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"claude-2.1"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"claude-2.1"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"claude-2.0"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"claude-2.0"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"claude-instant-1.2"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"claude-instant-1.2"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"claude-instant-1"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"claude-instant-1"'})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Anthropic API Key:"})," Your Anthropic API key."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Max Tokens (Optional):"})," Specifies the maximum number of tokens to generate. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"256",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"256"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Temperature (Optional):"})," Specifies the sampling temperature. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.7",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.7"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"API Endpoint (Optional):"})," Specifies the endpoint of the Anthropic API. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"https://api.anthropic.com"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"https://api.anthropic.com"'})," if not specified."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," Specifies the input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," A system message to pass to the model."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["For detailed documentation and integration guides, please refer to the ",(0,s.jsx)(n.a,{href:"https://python.langchain.com/docs/integrations/chat/anthropic",children:"Anthropic Component Documentation"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"azure-openai",children:"Azure OpenAI"}),"\n",(0,s.jsx)(n.p,{children:"This component allows the generation of text using the LLM (Large Language Model) model from Azure OpenAI."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Name:"})," Specifies the name of the Azure OpenAI model to be used for text generation. Available options include:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gpt-35-turbo"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gpt-35-turbo"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gpt-35-turbo-16k"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gpt-35-turbo-16k"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gpt-35-turbo-instruct"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gpt-35-turbo-instruct"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gpt-4"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gpt-4"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gpt-4-32k"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gpt-4-32k"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gpt-4-vision"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gpt-4-vision"'})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Azure Endpoint:"})," Your Azure endpoint, including the resource. Example: ",(0,s.jsx)(n.code,{children:"https://example-resource.azure.openai.com/"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Deployment Name:"})," Specifies the name of the deployment."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"API Version:"})," Specifies the version of the Azure OpenAI API to be used. Available options include:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"2023-03-15-preview"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"2023-03-15-preview"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"2023-05-15"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"2023-05-15"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"2023-06-01-preview"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"2023-06-01-preview"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"2023-07-01-preview"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"2023-07-01-preview"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"2023-08-01-preview"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"2023-08-01-preview"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"2023-09-01-preview"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"2023-09-01-preview"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"2023-12-01-preview"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"2023-12-01-preview"'})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"API Key:"})," Your Azure OpenAI API key."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Temperature (Optional):"})," Specifies the sampling temperature. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.7",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.7"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Max Tokens (Optional):"})," Specifies the maximum number of tokens to generate. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"1000",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"1000"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," Specifies the input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," A system message to pass to the model."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["For detailed documentation and integration guides, please refer to the ",(0,s.jsx)(n.a,{href:"https://python.langchain.com/docs/integrations/llms/azure_openai",children:"Azure OpenAI Component Documentation"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"cohere",children:"Cohere"}),"\n",(0,s.jsx)(n.p,{children:"This component enables text generation using Cohere large language models."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Cohere API Key:"})," Your Cohere API key."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Max Tokens (Optional):"})," Specifies the maximum number of tokens to generate. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"256",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"256"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Temperature (Optional):"})," Specifies the sampling temperature. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.75",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.75"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," Specifies the input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," A system message to pass to the model."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"google-generative-ai",children:"Google Generative AI"}),"\n",(0,s.jsx)(n.p,{children:"This component enables text generation using Google Generative AI."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Google API Key:"})," Your Google API key to use for the Google Generative AI."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model:"})," The name of the model to use. Supported examples are ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gemini-pro"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gemini-pro"'})," and ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"gemini-pro-vision"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"gemini-pro-vision"'}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Max Output Tokens (Optional):"})," The maximum number of tokens to generate."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Temperature:"})," Run inference with this temperature. Must be in the closed interval [0.0, 1.0]."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Top K (Optional):"})," Decode using top-k sampling: consider the set of top_k most probable tokens. Must be positive."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Top P (Optional):"})," The maximum cumulative probability of tokens to consider when sampling."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"N (Optional):"})," Number of chat completions to generate for each prompt. Note that the API may not return the full n completions if duplicates are generated."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," The input to the model."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," A system message to pass to the model."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"hugging-face-api",children:"Hugging Face API"}),"\n",(0,s.jsx)(n.p,{children:"This component facilitates text generation using LLM models from the Hugging Face Inference API."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Endpoint URL:"})," The URL of the Hugging Face Inference API endpoint. Should be provided along with necessary authentication credentials."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Task:"})," Specifies the task for text generation. Options include ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"text2text-generation"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"text2text-generation"'}),", ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"text-generation"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"text-generation"'}),", and ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"summarization"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"summarization"'}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"API Token:"})," The API token required for authentication with the Hugging Face Hub."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Keyword Arguments (Optional):"})," Additional keyword arguments for the model. Should be provided as a Python dictionary."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," The input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," A system message to pass to the model."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"litellm-model",children:"LiteLLM Model"}),"\n",(0,s.jsxs)(n.p,{children:["Generates text using the ",(0,s.jsx)(n.code,{children:"LiteLLM"})," collection of large language models."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Parameters"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Model name:"})," The name of the model to use. For example, ",(0,s.jsx)(n.code,{children:"gpt-3.5-turbo"}),". (Type: str)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"API key:"})," The API key to use for accessing the provider's API. (Type: str, Optional)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Provider:"}),' The provider of the API key. (Type: str, Choices: "OpenAI", "Azure", "Anthropic", "Replicate", "Cohere", "OpenRouter")']}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Temperature:"})," Controls the randomness of the text generation. (Type: float, Default: 0.7)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Model kwargs:"})," Additional keyword arguments for the model. (Type: Dict, Optional)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Top p:"})," Filter responses to keep the cumulative probability within the top p tokens. (Type: float, Optional)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Top k:"})," Filter responses to only include the top k tokens. (Type: int, Optional)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"N:"})," Number of chat completions to generate for each prompt. (Type: int, Default: 1)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Max tokens:"})," The maximum number of tokens to generate for each chat completion. (Type: int, Default: 256)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Max retries:"})," Maximum number of retries for failed requests. (Type: int, Default: 6)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Verbose:"})," Whether to print verbose output. (Type: bool, Default: False)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Input:"})," The input prompt for text generation. (Type: str)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Stream:"})," Whether to stream the output. (Type: bool, Default: False)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"System message:"})," System message to pass to the model. (Type: str, Optional)"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"ollama",children:"Ollama"}),"\n",(0,s.jsx)(n.p,{children:"Generate text using Ollama Local LLMs."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Parameters"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Base URL:"})," Endpoint of the Ollama API. Defaults to '",(0,s.jsx)(n.a,{href:"http://localhost:11434",children:"http://localhost:11434"}),"' if not specified."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Model Name:"})," The model name to use. Refer to ",(0,s.jsx)(n.a,{href:"https://ollama.ai/library",children:"Ollama Library"})," for more models."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Temperature:"})," Controls the creativity of model responses. (Default: 0.8)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Cache:"})," Enable or disable caching. (Default: False)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Format:"})," Specify the format of the output (e.g., json). (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Metadata:"})," Metadata to add to the run trace. (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Mirostat:"})," Enable/disable Mirostat sampling for controlling perplexity. (Default: Disabled)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Mirostat Eta:"})," Learning rate for Mirostat algorithm. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Mirostat Tau:"})," Controls the balance between coherence and diversity of the output. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Context Window Size:"})," Size of the context window for generating tokens. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Number of GPUs:"})," Number of GPUs to use for computation. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Number of Threads:"})," Number of threads to use during computation. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Repeat Last N:"})," How far back the model looks to prevent repetition. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Repeat Penalty:"})," Penalty for repetitions in generated text. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"TFS Z:"})," Tail free sampling value. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Timeout:"})," Timeout for the request stream. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Top K:"})," Limits token selection to top K. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Top P:"})," Works together with top-k. (Default: None) (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Verbose:"})," Whether to print out response text."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Tags:"})," Tags to add to the run trace. (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Stop Tokens:"})," List of tokens to signal the model to stop generating text. (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"System:"})," System to use for generating text. (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Template:"})," Template to use for generating text. (Advanced)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Input:"})," The input text."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Stream:"})," Whether to stream the response."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"System Message:"})," System message to pass to the model. (Advanced)"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"openai",children:"OpenAI"}),"\n",(0,s.jsx)(n.p,{children:"This component facilitates text generation using OpenAI's models."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," The input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Max Tokens (Optional):"})," The maximum number of tokens to generate. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"256",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"256"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Kwargs (Optional):"})," Additional keyword arguments for the model. Should be provided as a nested dictionary."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Name (Optional):"})," The name of the model to use. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"gpt",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"4",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"1106",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"preview",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"gpt-4-1106-preview"}),". Supported options include: ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"gpt",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"4",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"turbo",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"preview",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"gpt-4-turbo-preview"}),", ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"gpt",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"4",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"0125",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"preview",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"gpt-4-0125-preview"}),", ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"gpt",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"4",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"1106",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"preview",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"gpt-4-1106-preview"}),", ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"gpt",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"4",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"vision",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"preview",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"gpt-4-vision-preview"}),", ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"gpt",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"3.5",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"turbo",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"0125",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"gpt-3.5-turbo-0125"}),", ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"gpt",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"3.5",props:{style:{color:"#79C0FF"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"turbo",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"1106",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"gpt-3.5-turbo-1106"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"OpenAI API Base (Optional):"})," The base URL of the OpenAI API. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"https",props:{style:{color:"#FFA657"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:"//api.openai.com/v1",props:{style:{color:"#8B949E"}}}]}],lang:"jsx"},children:"https://api.openai.com/v1"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"OpenAI API Key (Optional):"})," The API key for accessing the OpenAI API."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Temperature:"})," Controls the creativity of model responses. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.7",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.7"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," System message to pass to the model."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"qianfan",children:"Qianfan"}),"\n",(0,s.jsx)(n.p,{children:"This component facilitates the generation of text using Baidu Qianfan chat models."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Name:"})," Specifies the name of the Qianfan chat model to be used for text generation. Available options include:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ERNIE-Bot"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ERNIE-Bot"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ERNIE-Bot-turbo"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ERNIE-Bot-turbo"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"BLOOMZ-7B"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"BLOOMZ-7B"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"Llama-2-7b-chat"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"Llama-2-7b-chat"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"Llama-2-13b-chat"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"Llama-2-13b-chat"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"Llama-2-70b-chat"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"Llama-2-70b-chat"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"Qianfan-BLOOMZ-7B-compressed"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"Qianfan-BLOOMZ-7B-compressed"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"Qianfan-Chinese-Llama-2-7B"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"Qianfan-Chinese-Llama-2-7B"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"ChatGLM2-6B-32K"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"ChatGLM2-6B-32K"'})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:'"AquilaChat-7B"',props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:'"AquilaChat-7B"'})}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Qianfan Ak:"})," Your Baidu Qianfan access key, obtainable from ",(0,s.jsx)(n.a,{href:"https://cloud.baidu.com/product/wenxinworkshop",children:"here"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Qianfan Sk:"})," Your Baidu Qianfan secret key, obtainable from ",(0,s.jsx)(n.a,{href:"https://cloud.baidu.com/product/wenxinworkshop",children:"here"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Top p (Optional):"})," Model parameter. Specifies the top-p value. Only supported in ERNIE-Bot and ERNIE-Bot-turbo models. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.8",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.8"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Temperature (Optional):"})," Model parameter. Specifies the sampling temperature. Only supported in ERNIE-Bot and ERNIE-Bot-turbo models. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.95",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.95"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Penalty Score (Optional):"})," Model parameter. Specifies the penalty score. Only supported in ERNIE-Bot and ERNIE-Bot-turbo models. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"1.0",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"1.0"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Endpoint (Optional):"})," Endpoint of the Qianfan LLM, required if custom model is used."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," Specifies the input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," A system message to pass to the model."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.h2,{id:"vertex-ai",children:"Vertex AI"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"ChatVertexAI"})," is a component for generating text using Vertex AI Chat large language models API."]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.strong,{children:"Params"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Credentials:"})," The JSON file containing the credentials for accessing the Vertex AI Chat API."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Project:"})," The name of the project associated with the Vertex AI Chat API."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Examples (Optional):"})," List of examples to provide context for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Location:"})," The location of the Vertex AI Chat API service. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"us",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"central1",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"us-central1"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Max Output Tokens:"})," The maximum number of tokens to generate. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"128",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"128"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Model Name:"})," The name of the model to use. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"chat",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"bison",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"chat-bison"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Temperature:"})," Controls the creativity of model responses. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.0",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.0"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Input Value:"})," The input text for text generation."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Top K:"})," Limits token selection to top K. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"40",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"40"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Top P:"})," Works together with top-k. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"0.95",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"0.95"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Verbose:"})," Whether to print out response text. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Stream (Optional):"})," Specifies whether to stream the response from the model. Defaults to ",(0,s.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"System Message (Optional):"})," System message to pass to the model."]}),"\n"]}),"\n"]})]})}const g=function(e={}){const{wrapper:n}=Object.assign({},(0,t.RP)(),e.components);return n?(0,s.jsx)(n,Object.assign({},e,{children:(0,s.jsx)(j,e)})):j(e)};function u(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/10dc9ad3.57406d74.js b/assets/js/10dc9ad3.57406d74.js
deleted file mode 100644
index 87d3ee938b..0000000000
--- a/assets/js/10dc9ad3.57406d74.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[9414],{7533:(e,n,o)=>{o.d(n,{A:()=>l});var s=o(6540),t=o(1122),i=o(6025),r=o(4848);const l=e=>{let{alt:n,sources:o,style:l}=e;const[a,c]=(0,s.useState)(!1),d=e=>{"Escape"===e.key&&c(!1)};(0,s.useEffect)((()=>(a?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[a]);return(0,r.jsx)("div",{className:"zoomable-image "+(a?"fullscreen":""),onClick:()=>{c(!a)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,r.jsx)(t.A,{className:"zoomable-image-inner",alt:n,sources:{light:(0,i.Ay)(o.light),dark:(0,i.Ay)(o.dark)}})})}},791:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>g,assets:()=>u,chCodeConfig:()=>p,contentTitle:()=>d,default:()=>x,frontMatter:()=>c,metadata:()=>h,toc:()=>f});o(6540);var s=o(4848),t=o(8453),i=o(4754),r=(o(1122),o(6025)),l=o(7533),a=o(7293);const c={},d="Sign Up and Sign In",h={id:"administration/login",title:"Sign Up and Sign In",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/administration/login.mdx",sourceDirName:"administration",slug:"/administration/login",permalink:"/administration/login",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"API Keys",permalink:"/administration/api"},next:{title:"Command Line Interface (CLI)",permalink:"/administration/cli"}},u={},g={annotations:i.hk,InlineCode:i.R0,Code:i.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},f=[{value:"Environment variables",id:"environment-variables",level:2},{value:"LANGFLOW_AUTO_LOGIN",id:"langflow_auto_login",level:3},{value:"LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD",id:"langflow_superuser-and-langflow_superuser_password",level:3},{value:"LANGFLOW_SECRET_KEY",id:"langflow_secret_key",level:3},{value:"LANGFLOW_NEW_USER_IS_ACTIVE",id:"langflow_new_user_is_active",level:3},{value:"Manage superusers with the CLI",id:"manage-superusers-with-the-cli",level:2},{value:"Sign in",id:"sign-in",level:2},{value:"Profile settings",id:"profile-settings",level:2}];function m(e){const n=Object.assign({h1:"h1",p:"p",h2:"h2",ul:"ul",li:"li",code:"code",h3:"h3",strong:"strong"},(0,t.RP)(),e.components);return g||y("CH",!1),g.Code||y("CH.Code",!0),g.InlineCode||y("CH.InlineCode",!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","\n",(0,s.jsx)(n.h1,{id:"sign-up-and-sign-in",children:"Sign Up and Sign In"}),"\n",(0,s.jsx)(a.A,{type:"warning",title:"warning",children:(0,s.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,s.jsx)(n.p,{children:"The login functionality in Langflow serves to authenticate users and protect sensitive routes in the application. Starting from version 0.5, Langflow introduces an enhanced login mechanism that is governed by a few environment variables. This allows new secure features."}),"\n",(0,s.jsx)(n.h2,{id:"environment-variables",children:"Environment variables"}),"\n",(0,s.jsx)(n.p,{children:"The following environment variables are crucial in configuring the login settings:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(g.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"LANGFLOW_AUTO_LOGIN",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_AUTO_LOGIN"}),": Determines whether Langflow should automatically log users in. Default is ",(0,s.jsx)(n.code,{children:"True"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(g.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"LANGFLOW_SUPERUSER",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_SUPERUSER"}),": The username of the superuser."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(g.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_SUPERUSER_PASSWORD"}),": The password for the superuser."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(g.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"LANGFLOW_SECRET_KEY",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_SECRET_KEY"}),": A key used for encrypting the superuser's password."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(g.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"LANGFLOW_NEW_USER_IS_ACTIVE",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_NEW_USER_IS_ACTIVE"}),": Determines whether new users are automatically activated. Default is ",(0,s.jsx)(n.code,{children:"False"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["All of these variables can be passed to the CLI command ",(0,s.jsx)(g.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"langflow run",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"langflow run"})," through the ",(0,s.jsx)(g.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"--",props:{style:{color:"#FF7B72"}}},{content:"env",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"file",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"--env-file"})," option. For example:"]}),"\n",(0,s.jsx)(g.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"--env-file ",props:{style:{color:"#79C0FF"}}},{content:".env",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(a.A,{type:"info",children:(0,s.jsx)(n.p,{children:"It is critical not to expose these environment variables in your code\nrepository. Always set them securely in your deployment environment, for\nexample, using Docker secrets, Kubernetes ConfigMaps/Secrets, or dedicated\nsecure environment configuration systems like AWS Secrets Manager."})}),"\n",(0,s.jsx)(n.h3,{id:"langflow_auto_login",children:(0,s.jsx)(g.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"LANGFLOW_AUTO_LOGIN",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_AUTO_LOGIN"})}),"\n",(0,s.jsxs)(n.p,{children:["By default, this variable is set to ",(0,s.jsx)(n.code,{children:"True"}),". When enabled (",(0,s.jsx)(n.code,{children:"True"}),"), Langflow operates as it did in versions prior to 0.5\u2014automatic login without requiring explicit user authentication."]}),"\n",(0,s.jsx)(n.p,{children:"To disable automatic login and enforce user authentication:"}),"\n",(0,s.jsx)(g.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_AUTO_LOGIN",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"False",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(n.h3,{id:"langflow_superuser-and-langflow_superuser_password",children:[(0,s.jsx)(g.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"LANGFLOW_SUPERUSER",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_SUPERUSER"})," and ",(0,s.jsx)(g.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_SUPERUSER_PASSWORD"})]}),"\n",(0,s.jsxs)(n.p,{children:["These environment variables are only relevant when ",(0,s.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," is set to ",(0,s.jsx)(n.code,{children:"False"}),". They specify the username and password for the superuser, which is essential for administrative tasks."]}),"\n",(0,s.jsx)(n.p,{children:"To create a superuser manually:"}),"\n",(0,s.jsx)(g.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_SUPERUSER",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"admin",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_SUPERUSER_PASSWORD",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"securepassword",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsxs)(n.p,{children:["You can also use the CLI command ",(0,s.jsx)(n.code,{children:"langflow superuser"})," to set up a superuser interactively."]}),"\n",(0,s.jsx)(n.h3,{id:"langflow_secret_key",children:(0,s.jsx)(g.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"LANGFLOW_SECRET_KEY",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_SECRET_KEY"})}),"\n",(0,s.jsx)(n.p,{children:"This environment variable holds a secret key used for encrypting the superuser's password. Make sure to set this to a secure, randomly generated string."}),"\n",(0,s.jsx)(g.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_SECRET_KEY",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"randomly_generated_secure_key",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(n.h3,{id:"langflow_new_user_is_active",children:(0,s.jsx)(g.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"LANGFLOW_NEW_USER_IS_ACTIVE",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_NEW_USER_IS_ACTIVE"})}),"\n",(0,s.jsxs)(n.p,{children:["By default, this variable is set to ",(0,s.jsx)(n.code,{children:"False"}),". When enabled (",(0,s.jsx)(n.code,{children:"True"}),"), new users are automatically activated and can log in without requiring explicit activation by the superuser."]}),"\n",(0,s.jsx)(n.h2,{id:"manage-superusers-with-the-cli",children:"Manage superusers with the CLI"}),"\n",(0,s.jsx)(n.p,{children:"Langflow provides a command-line utility for managing superusers:"}),"\n",(0,s.jsx)(g.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"superuser",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,s.jsx)(n.p,{children:"This command prompts you to enter the username and password for the superuser, unless they are already set using environment variables."}),"\n",(0,s.jsx)(n.h2,{id:"sign-in",children:"Sign in"}),"\n",(0,s.jsxs)(n.p,{children:["With ",(0,s.jsx)(g.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"LANGFLOW_AUTO_LOGIN",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_AUTO_LOGIN"})," set to ",(0,s.jsx)(g.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),", Langflow requires users to sign up before they can log in. The sign-up page is the default landing page when a user visits Langflow for the first time."]}),"\n",(0,s.jsx)(l.A,{alt:"Docusaurus themed image",sources:{light:(0,r.Ay)("img/sign-up.png"),dark:(0,r.Ay)("img/sign-up.png")},style:{width:"40%",margin:"20px auto"}}),"\n",(0,s.jsx)(n.h2,{id:"profile-settings",children:"Profile settings"}),"\n",(0,s.jsx)(n.p,{children:"Once signed in, you can change your profile settings by clicking on the profile icon in the top right corner of the Langflow dashboard. This opens a dropdown menu with the following options:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Admin Page"}),": Opens the admin page, which is only accessible to the superuser."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Profile Settings"}),": Opens the profile settings page."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Sign Out"}),": Logs the user out."]}),"\n"]}),"\n",(0,s.jsx)(l.A,{alt:"Docusaurus themed image",sources:{light:(0,r.Ay)("img/my-account.png"),dark:(0,r.Ay)("img/my-account.png")},style:{maxWidth:"600px",margin:"20px auto"}}),"\n",(0,s.jsxs)(n.p,{children:["Select ",(0,s.jsx)(n.strong,{children:"Profile Settings"})," to change your password and your profile picture."]}),"\n",(0,s.jsx)(l.A,{alt:"Docusaurus themed image",sources:{light:(0,r.Ay)("img/profile-settings.png"),dark:(0,r.Ay)("img/profile-settings.png")},style:{maxWidth:"600px",margin:"20px auto"}}),"\n",(0,s.jsxs)(n.p,{children:["Select ",(0,s.jsx)(n.strong,{children:"Admin Page"})," to manage users and groups as the superuser."]}),"\n",(0,s.jsx)(l.A,{alt:"Docusaurus themed image",sources:{light:(0,r.Ay)("img/admin-page.png"),dark:(0,r.Ay)("img/admin-page.png")},style:{maxWidth:"600px",margin:"0 auto"}})]})}const x=function(e={}){const{wrapper:n}=Object.assign({},(0,t.RP)(),e.components);return n?(0,s.jsx)(n,Object.assign({},e,{children:(0,s.jsx)(m,e)})):m(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.")}}}]);
\ No newline at end of file
diff --git a/assets/js/10dc9ad3.ad35d776.js b/assets/js/10dc9ad3.ad35d776.js
new file mode 100644
index 0000000000..1622351b0b
--- /dev/null
+++ b/assets/js/10dc9ad3.ad35d776.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[9414],{7293:(e,n,o)=>{o.d(n,{A:()=>k});var t=o(6540),i=o(4848);function s(e){const{mdxAdmonitionTitle:n,rest:o}=function(e){const n=t.Children.toArray(e),o=n.find((e=>t.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),s=n.filter((e=>e!==o)),r=o?.props.children;return{mdxAdmonitionTitle:r,rest:s.length>0?(0,i.jsx)(i.Fragment,{children:s}):null}}(e.children),s=e.title??n;return{...e,...s&&{title:s},children:o}}var r=o(8215),l=o(1312),a=o(7559);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:o,children:t}=e;return(0,i.jsx)("div",{className:(0,r.A)(a.G.common.admonition,a.G.common.admonitionType(n),c.admonition,o),children:t})}function h(e){let{icon:n,title:o}=e;return(0,i.jsxs)("div",{className:c.admonitionHeading,children:[(0,i.jsx)("span",{className:c.admonitionIcon,children:n}),o]})}function u(e){let{children:n}=e;return n?(0,i.jsx)("div",{className:c.admonitionContent,children:n}):null}function p(e){const{type:n,icon:o,title:t,children:s,className:r}=e;return(0,i.jsxs)(d,{type:n,className:r,children:[t||o?(0,i.jsx)(h,{title:t,icon:o}):null,(0,i.jsx)(u,{children:s})]})}function g(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const m={icon:(0,i.jsx)(g,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function f(e){return(0,i.jsx)(p,{...m,...e,className:(0,r.A)("alert alert--secondary",e.className),children:e.children})}function x(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const j={icon:(0,i.jsx)(x,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function y(e){return(0,i.jsx)(p,{...j,...e,className:(0,r.A)("alert alert--success",e.className),children:e.children})}function v(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const F={icon:(0,i.jsx)(v,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function A(e){return(0,i.jsx)(p,{...F,...e,className:(0,r.A)("alert alert--info",e.className),children:e.children})}function C(e){return(0,i.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const _={icon:(0,i.jsx)(C,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function L(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const w={icon:(0,i.jsx)(L,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const b={icon:(0,i.jsx)(C,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const S={...{note:f,tip:y,info:A,warning:function(e){return(0,i.jsx)(p,{..._,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,i.jsx)(p,{...w,...e,className:(0,r.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,i.jsx)(f,{title:"secondary",...e}),important:e=>(0,i.jsx)(A,{title:"important",...e}),success:e=>(0,i.jsx)(y,{title:"success",...e}),caution:function(e){return(0,i.jsx)(p,{...b,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})}}};var N=o(6763);function k(e){const n=s(e),o=(t=n.type,S[t]||(N.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),S.info));var t;return(0,i.jsx)(o,{...n})}},7533:(e,n,o)=>{o.d(n,{A:()=>l});var t=o(6540),i=o(1122),s=o(6025),r=o(4848);const l=e=>{let{alt:n,sources:o,style:l}=e;const[a,c]=(0,t.useState)(!1),d=e=>{"Escape"===e.key&&c(!1)};(0,t.useEffect)((()=>(a?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[a]);return(0,r.jsx)("div",{className:"zoomable-image "+(a?"fullscreen":""),onClick:()=>{c(!a)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,r.jsx)(i.A,{className:"zoomable-image-inner",alt:n,sources:{light:(0,s.Ay)(o.light),dark:(0,s.Ay)(o.dark)}})})}},791:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>p,assets:()=>u,chCodeConfig:()=>g,contentTitle:()=>d,default:()=>x,frontMatter:()=>c,metadata:()=>h,toc:()=>m});o(6540);var t=o(4848),i=o(8453),s=o(4754),r=(o(1122),o(6025)),l=o(7533),a=o(7293);const c={},d="Sign Up and Sign In",h={id:"administration/login",title:"Sign Up and Sign In",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/administration/login.mdx",sourceDirName:"administration",slug:"/administration/login",permalink:"/administration/login",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"API Keys",permalink:"/administration/api"},next:{title:"Command Line Interface (CLI)",permalink:"/administration/cli"}},u={},p={annotations:s.hk,InlineCode:s.R0,Code:s.Cy},g={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},m=[{value:"Environment variables",id:"environment-variables",level:2},{value:"LANGFLOW_AUTO_LOGIN",id:"langflow_auto_login",level:3},{value:"LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD",id:"langflow_superuser-and-langflow_superuser_password",level:3},{value:"LANGFLOW_SECRET_KEY",id:"langflow_secret_key",level:3},{value:"LANGFLOW_NEW_USER_IS_ACTIVE",id:"langflow_new_user_is_active",level:3},{value:"Manage superusers with the CLI",id:"manage-superusers-with-the-cli",level:2},{value:"Sign in",id:"sign-in",level:2},{value:"Profile settings",id:"profile-settings",level:2}];function f(e){const n=Object.assign({h1:"h1",p:"p",h2:"h2",ul:"ul",li:"li",code:"code",h3:"h3",strong:"strong"},(0,i.RP)(),e.components);return p||j("CH",!1),p.Code||j("CH.Code",!0),p.InlineCode||j("CH.InlineCode",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.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","\n",(0,t.jsx)(n.h1,{id:"sign-up-and-sign-in",children:"Sign Up and Sign In"}),"\n",(0,t.jsx)(a.A,{type:"warning",title:"warning",children:(0,t.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,t.jsx)(n.p,{children:"The login functionality in Langflow serves to authenticate users and protect sensitive routes in the application. Starting from version 0.5, Langflow introduces an enhanced login mechanism that is governed by a few environment variables. This allows new secure features."}),"\n",(0,t.jsx)(n.h2,{id:"environment-variables",children:"Environment variables"}),"\n",(0,t.jsx)(n.p,{children:"The following environment variables are crucial in configuring the login settings:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(p.InlineCode,{codeConfig:g,code:{lines:[{tokens:[{content:"LANGFLOW_AUTO_LOGIN",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_AUTO_LOGIN"}),": Determines whether Langflow should automatically log users in. Default is ",(0,t.jsx)(n.code,{children:"True"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(p.InlineCode,{codeConfig:g,code:{lines:[{tokens:[{content:"LANGFLOW_SUPERUSER",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_SUPERUSER"}),": The username of the superuser."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(p.InlineCode,{codeConfig:g,code:{lines:[{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_SUPERUSER_PASSWORD"}),": The password for the superuser."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(p.InlineCode,{codeConfig:g,code:{lines:[{tokens:[{content:"LANGFLOW_SECRET_KEY",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_SECRET_KEY"}),": A key used for encrypting the superuser's password."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(p.InlineCode,{codeConfig:g,code:{lines:[{tokens:[{content:"LANGFLOW_NEW_USER_IS_ACTIVE",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_NEW_USER_IS_ACTIVE"}),": Determines whether new users are automatically activated. Default is ",(0,t.jsx)(n.code,{children:"False"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["All of these variables can be passed to the CLI command ",(0,t.jsx)(p.InlineCode,{codeConfig:g,code:{lines:[{tokens:[{content:"langflow run",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"langflow run"})," through the ",(0,t.jsx)(p.InlineCode,{codeConfig:g,code:{lines:[{tokens:[{content:"--",props:{style:{color:"#FF7B72"}}},{content:"env",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"file",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"--env-file"})," option. For example:"]}),"\n",(0,t.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"--env-file ",props:{style:{color:"#79C0FF"}}},{content:".env",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,t.jsx)(a.A,{type:"info",children:(0,t.jsx)(n.p,{children:"It is critical not to expose these environment variables in your code\nrepository. Always set them securely in your deployment environment, for\nexample, using Docker secrets, Kubernetes ConfigMaps/Secrets, or dedicated\nsecure environment configuration systems like AWS Secrets Manager."})}),"\n",(0,t.jsx)(n.h3,{id:"langflow_auto_login",children:(0,t.jsx)(p.InlineCode,{codeConfig:g,code:{lines:[{tokens:[{content:"LANGFLOW_AUTO_LOGIN",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_AUTO_LOGIN"})}),"\n",(0,t.jsxs)(n.p,{children:["By default, this variable is set to ",(0,t.jsx)(n.code,{children:"True"}),". When enabled (",(0,t.jsx)(n.code,{children:"True"}),"), Langflow operates as it did in versions prior to 0.5\u2014automatic login without requiring explicit user authentication."]}),"\n",(0,t.jsx)(n.p,{children:"To disable automatic login and enforce user authentication:"}),"\n",(0,t.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_AUTO_LOGIN",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"False",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,t.jsxs)(n.h3,{id:"langflow_superuser-and-langflow_superuser_password",children:[(0,t.jsx)(p.InlineCode,{codeConfig:g,code:{lines:[{tokens:[{content:"LANGFLOW_SUPERUSER",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_SUPERUSER"})," and ",(0,t.jsx)(p.InlineCode,{codeConfig:g,code:{lines:[{tokens:[{content:"LANGFLOW_SUPERUSER_PASSWORD",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_SUPERUSER_PASSWORD"})]}),"\n",(0,t.jsxs)(n.p,{children:["These environment variables are only relevant when ",(0,t.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," is set to ",(0,t.jsx)(n.code,{children:"False"}),". They specify the username and password for the superuser, which is essential for administrative tasks."]}),"\n",(0,t.jsx)(n.p,{children:"To create a superuser manually:"}),"\n",(0,t.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_SUPERUSER",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"admin",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_SUPERUSER_PASSWORD",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"securepassword",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,t.jsxs)(n.p,{children:["You can also use the CLI command ",(0,t.jsx)(n.code,{children:"langflow superuser"})," to set up a superuser interactively."]}),"\n",(0,t.jsx)(n.h3,{id:"langflow_secret_key",children:(0,t.jsx)(p.InlineCode,{codeConfig:g,code:{lines:[{tokens:[{content:"LANGFLOW_SECRET_KEY",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_SECRET_KEY"})}),"\n",(0,t.jsx)(n.p,{children:"This environment variable holds a secret key used for encrypting the superuser's password. Make sure to set this to a secure, randomly generated string."}),"\n",(0,t.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_SECRET_KEY",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"randomly_generated_secure_key",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,t.jsx)(n.h3,{id:"langflow_new_user_is_active",children:(0,t.jsx)(p.InlineCode,{codeConfig:g,code:{lines:[{tokens:[{content:"LANGFLOW_NEW_USER_IS_ACTIVE",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_NEW_USER_IS_ACTIVE"})}),"\n",(0,t.jsxs)(n.p,{children:["By default, this variable is set to ",(0,t.jsx)(n.code,{children:"False"}),". When enabled (",(0,t.jsx)(n.code,{children:"True"}),"), new users are automatically activated and can log in without requiring explicit activation by the superuser."]}),"\n",(0,t.jsx)(n.h2,{id:"manage-superusers-with-the-cli",children:"Manage superusers with the CLI"}),"\n",(0,t.jsx)(n.p,{children:"Langflow provides a command-line utility for managing superusers:"}),"\n",(0,t.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"superuser",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,t.jsx)(n.p,{children:"This command prompts you to enter the username and password for the superuser, unless they are already set using environment variables."}),"\n",(0,t.jsx)(n.h2,{id:"sign-in",children:"Sign in"}),"\n",(0,t.jsxs)(n.p,{children:["With ",(0,t.jsx)(p.InlineCode,{codeConfig:g,code:{lines:[{tokens:[{content:"LANGFLOW_AUTO_LOGIN",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_AUTO_LOGIN"})," set to ",(0,t.jsx)(p.InlineCode,{codeConfig:g,code:{lines:[{tokens:[{content:"False",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"False"}),", Langflow requires users to sign up before they can log in. The sign-up page is the default landing page when a user visits Langflow for the first time."]}),"\n",(0,t.jsx)(l.A,{alt:"Docusaurus themed image",sources:{light:(0,r.Ay)("img/sign-up.png"),dark:(0,r.Ay)("img/sign-up.png")},style:{width:"40%",margin:"20px auto"}}),"\n",(0,t.jsx)(n.h2,{id:"profile-settings",children:"Profile settings"}),"\n",(0,t.jsx)(n.p,{children:"Once signed in, you can change your profile settings by clicking on the profile icon in the top right corner of the Langflow dashboard. This opens a dropdown menu with the following options:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Admin Page"}),": Opens the admin page, which is only accessible to the superuser."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Profile Settings"}),": Opens the profile settings page."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Sign Out"}),": Logs the user out."]}),"\n"]}),"\n",(0,t.jsx)(l.A,{alt:"Docusaurus themed image",sources:{light:(0,r.Ay)("img/my-account.png"),dark:(0,r.Ay)("img/my-account.png")},style:{maxWidth:"600px",margin:"20px auto"}}),"\n",(0,t.jsxs)(n.p,{children:["Select ",(0,t.jsx)(n.strong,{children:"Profile Settings"})," to change your password and your profile picture."]}),"\n",(0,t.jsx)(l.A,{alt:"Docusaurus themed image",sources:{light:(0,r.Ay)("img/profile-settings.png"),dark:(0,r.Ay)("img/profile-settings.png")},style:{maxWidth:"600px",margin:"20px auto"}}),"\n",(0,t.jsxs)(n.p,{children:["Select ",(0,t.jsx)(n.strong,{children:"Admin Page"})," to manage users and groups as the superuser."]}),"\n",(0,t.jsx)(l.A,{alt:"Docusaurus themed image",sources:{light:(0,r.Ay)("img/admin-page.png"),dark:(0,r.Ay)("img/admin-page.png")},style:{maxWidth:"600px",margin:"0 auto"}})]})}const x=function(e={}){const{wrapper:n}=Object.assign({},(0,i.RP)(),e.components);return n?(0,t.jsx)(n,Object.assign({},e,{children:(0,t.jsx)(f,e)})):f(e)};function j(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/1220ddb3.913c83e6.js b/assets/js/1220ddb3.913c83e6.js
deleted file mode 100644
index 3705937d76..0000000000
--- a/assets/js/1220ddb3.913c83e6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[541],{7533:(o,t,e)=>{e.d(t,{A:()=>c});var n=e(6540),s=e(1122),r=e(6025),l=e(4848);const c=o=>{let{alt:t,sources:e,style:c}=o;const[p,a]=(0,n.useState)(!1),i=o=>{"Escape"===o.key&&a(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",i):document.removeEventListener("keydown",i),()=>{document.removeEventListener("keydown",i)})),[p]);return(0,l.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{a(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...c},children:(0,l.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},8600:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>d,assets:()=>F,chCodeConfig:()=>D,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>y,toc:()=>h});e(6540);var n=e(4848),s=e(8453),r=e(4754),l=e(6025),c=e(7533),p=e(7293);const a={},i="API Keys",y={id:"administration/api",title:"API Keys",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/administration/api.mdx",sourceDirName:"administration",slug:"/administration/api",permalink:"/administration/api",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Vector Store RAG",permalink:"/starter-projects/vector-store-rag"},next:{title:"Sign Up and Sign In",permalink:"/administration/login"}},F={},d={annotations:r.hk,Code:r.Cy},D={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"Generate an API key",id:"generate-an-api-key",level:2},{value:"Generate an API key with the Langflow UI",id:"generate-an-api-key-with-the-langflow-ui",level:3},{value:"Generate an API key with the Langflow CLI",id:"generate-an-api-key-with-the-langflow-cli",level:3},{value:"Use the Langflow API key",id:"use-the-langflow-api-key",level:2},{value:"Use the
x-api-key header",id:"use-the-x-api-key-header",level:3},{value:"Use the query parameter",id:"use-the-query-parameter",level:3},{value:"Security Considerations",id:"security-considerations",level:2},{value:"Custom API endpoint",id:"custom-api-endpoint",level:2},{value:"Revoke an API Key",id:"revoke-an-api-key",level:2}];function k(o){const t=Object.assign({h1:"h1",p:"p",code:"code",h2:"h2",h3:"h3",ol:"ol",li:"li",ul:"ul",strong:"strong"},(0,s.RP)(),o.components);return d||C("CH",!1),d.Code||C("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"api-keys",children:"API Keys"}),"\n",(0,n.jsx)(p.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsx)(t.p,{children:"Langflow provides an API key functionality that allows users to access their individual components and flows without traditional login authentication. The API key is a user-specific token that can be included in the request header or query parameter to authenticate API calls. This documentation outlines how to generate, use, and manage API keys in Langflow."}),"\n",(0,n.jsxs)(p.A,{type:"warning",children:[(0,n.jsx)(t.p,{children:"The default user and password are set using the LANGFLOW_SUPERUSER and\nLANGFLOW_SUPERUSER_PASSWORD environment variables."}),(0,n.jsxs)(t.p,{children:["The default values are ",(0,n.jsx)(t.code,{children:"langflow"})," and ",(0,n.jsx)(t.code,{children:"langflow"}),", respectively."]})]}),"\n",(0,n.jsx)(t.h2,{id:"generate-an-api-key",children:"Generate an API key"}),"\n",(0,n.jsx)(t.p,{children:"Generate a user-specific token to use with Langflow."}),"\n",(0,n.jsx)(t.h3,{id:"generate-an-api-key-with-the-langflow-ui",children:"Generate an API key with the Langflow UI"}),"\n",(0,n.jsx)(c.A,{alt:"Docusaurus themed image",sources:{light:(0,l.Ay)("img/api-key.png"),dark:(0,l.Ay)("img/api-key.png")},style:{width:"50%",maxWidth:"600px",margin:"0 auto"}}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:'Click on the "API Key" icon.'}),"\n",(0,n.jsx)(t.li,{children:'Click on "Create new secret key".'}),"\n",(0,n.jsx)(t.li,{children:"Give it an optional name."}),"\n",(0,n.jsx)(t.li,{children:'Click on "Create secret key".'}),"\n",(0,n.jsx)(t.li,{children:"Copy the API key and store it in a secure location."}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"generate-an-api-key-with-the-langflow-cli",children:"Generate an API key with the Langflow CLI"}),"\n",(0,n.jsx)(d.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"api-key",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow api-key",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"API Key Created Successfully: \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"sk-O0elzoWID1izAH8RUKrnnvyyMwIzHi2Wk-uXWoNJ2Ro \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"This is the only time the API key will be displayed. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"Make sure to store it in a secure location. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"The API key has been copied to your clipboard. Cmd + V to paste it. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",props:{style:{color:"#FFA657"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"use-the-langflow-api-key",children:"Use the Langflow API key"}),"\n",(0,n.jsx)(t.p,{children:"Include your API key in API requests to authenticate requests to Langflow."}),"\n",(0,n.jsxs)(t.h3,{id:"use-the-x-api-key-header",children:["Use the ",(0,n.jsx)(t.code,{children:"x-api-key"})," header"]}),"\n",(0,n.jsxs)(t.p,{children:["Include the ",(0,n.jsx)(t.code,{children:"x-api-key"})," in the HTTP header when making API requests:"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" http://localhost:3000/api/v1/run/",props:{style:{color:"#A5D6FF"}}},{content:"<",props:{style:{color:"#FF7B72"}}},{content:"your_flow_i",props:{style:{color:"#A5D6FF"}}},{content:"d",props:{style:{color:"#C9D1D9"}}},{content:"> ",props:{style:{color:"#FF7B72"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json'",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'x-api-key:
'",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"inputs": {"text":""}, "tweaks": {}}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:["With Python using ",(0,n.jsx)(t.code,{children:"requests"}),":"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Optional",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"BASE_API_URL ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"http://localhost:3001/api/v1/process"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"FLOW_ID ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"4441b773-0724-434e-9cee-19d995d8f2df"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# You can tweak the flow by adding a tweaks dictionary",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:'# e.g {"OpenAI-XXXXX": {"model_name": "gpt-4"}}',props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"TWEAKS ",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"def ",props:{style:{color:"#FF7B72"}}},{content:"run_flow",props:{style:{color:"#D2A8FF"}}},{content:"(inputs: ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" flow_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tweaks: Optional[",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" apiKey: Optional[",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}},{content:") -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' """',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" Run a flow with a given message and optional tweaks.",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param message: The message to send to the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param flow_id: The ID of the flow to run",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param tweaks: Optional tweaks to customize the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :return: The JSON response from the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' """',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" api_url ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"{BASE_API_URL}",props:{style:{color:"#79C0FF"}}},{content:"/",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"flow_id",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" payload ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}},{content:'"inputs"',props:{style:{color:"#A5D6FF"}}},{content:": inputs}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" tweaks:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" payload[",props:{style:{color:"#C9D1D9"}}},{content:'"tweaks"',props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" tweaks",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" apiKey:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}},{content:'"x-api-key"',props:{style:{color:"#A5D6FF"}}},{content:": apiKey}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.post(api_url, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"payload, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Setup any tweaks you want to apply to the flow",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"api_key ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'""',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(run_flow(inputs, ",props:{style:{color:"#C9D1D9"}}},{content:"flow_id",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"FLOW_ID",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"tweaks",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"TWEAKS",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"apiKey",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"api_key))",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h3,{id:"use-the-query-parameter",children:"Use the query parameter"}),"\n",(0,n.jsx)(t.p,{children:"Include the API key as a query parameter in the URL:"}),"\n",(0,n.jsx)(d.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" http://localhost:3000/api/v1/process/",props:{style:{color:"#A5D6FF"}}},{content:"<",props:{style:{color:"#FF7B72"}}},{content:"your_flow_i",props:{style:{color:"#A5D6FF"}}},{content:"d",props:{style:{color:"#C9D1D9"}}},{content:">",props:{style:{color:"#FF7B72"}}},{content:"?x-api-key=",props:{style:{color:"#A5D6FF"}}},{content:"<",props:{style:{color:"#FF7B72"}}},{content:"your_api_ke",props:{style:{color:"#A5D6FF"}}},{content:"y",props:{style:{color:"#C9D1D9"}}},{content:"> ",props:{style:{color:"#FF7B72"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json'",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"inputs": {"text":""}, "tweaks": {}}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:["With Python using ",(0,n.jsx)(t.code,{children:"requests"}),":"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"BASE_API_URL ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"http://localhost:3001/api/v1/process"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"FLOW_ID ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"4441b773-0724-434e-9cee-19d995d8f2df"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# You can tweak the flow by adding a tweaks dictionary",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:'# e.g {"OpenAI-XXXXX": {"model_name": "gpt-4"}}',props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"TWEAKS ",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"def ",props:{style:{color:"#FF7B72"}}},{content:"run_flow",props:{style:{color:"#D2A8FF"}}},{content:"(inputs: ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" flow_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tweaks: Optional[",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" apiKey: Optional[",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}},{content:") -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' """',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" Run a flow with a given message and optional tweaks.",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param message: The message to send to the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param flow_id: The ID of the flow to run",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param tweaks: Optional tweaks to customize the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :return: The JSON response from the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' """',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" api_url ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"{BASE_API_URL}",props:{style:{color:"#79C0FF"}}},{content:"/",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"flow_id",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" payload ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}},{content:'"inputs"',props:{style:{color:"#A5D6FF"}}},{content:": inputs}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" tweaks:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" payload[",props:{style:{color:"#C9D1D9"}}},{content:'"tweaks"',props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" tweaks",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" apiKey:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" api_url ",props:{style:{color:"#C9D1D9"}}},{content:"+= f",props:{style:{color:"#FF7B72"}}},{content:'"?x-api-key=',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"apiKey",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.post(api_url, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"payload, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Setup any tweaks you want to apply to the flow",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"api_key ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'""',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(run_flow(inputs, ",props:{style:{color:"#C9D1D9"}}},{content:"flow_id",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"FLOW_ID",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"tweaks",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"TWEAKS",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"apiKey",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"api_key))",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"security-considerations",children:"Security Considerations"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Visibility"}),": For security reasons, the API key cannot be retrieved again through the UI."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Scope"}),": The key allows access only to the flows and components of the specific user to whom it was issued."]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"custom-api-endpoint",children:"Custom API endpoint"}),"\n",(0,n.jsxs)(t.p,{children:["Under ",(0,n.jsx)(t.strong,{children:"Project Settings"})," > ",(0,n.jsx)(t.strong,{children:"Endpoint Name"}),", you can pick a custom name for the endpoint used to call your flow from the API."]}),"\n",(0,n.jsx)(t.h2,{id:"revoke-an-api-key",children:"Revoke an API Key"}),"\n",(0,n.jsx)(t.p,{children:"To revoke an API key, delete it from the UI. This action immediately invalidates the key and prevents it from being used again."})]})}const u=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(k,o)})):k(o)};function C(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/1220ddb3.ea2573ce.js b/assets/js/1220ddb3.ea2573ce.js
new file mode 100644
index 0000000000..566eb1fb94
--- /dev/null
+++ b/assets/js/1220ddb3.ea2573ce.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[541],{7293:(o,t,e)=>{e.d(t,{A:()=>_});var n=e(6540),s=e(4848);function r(o){const{mdxAdmonitionTitle:t,rest:e}=function(o){const t=n.Children.toArray(o),e=t.find((o=>n.isValidElement(o)&&"mdxAdmonitionTitle"===o.type)),r=t.filter((o=>o!==e)),l=e?.props.children;return{mdxAdmonitionTitle:l,rest:r.length>0?(0,s.jsx)(s.Fragment,{children:r}):null}}(o.children),r=o.title??t;return{...o,...r&&{title:r},children:e}}var l=e(8215),c=e(1312),p=e(7559);const i={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function a(o){let{type:t,className:e,children:n}=o;return(0,s.jsx)("div",{className:(0,l.A)(p.G.common.admonition,p.G.common.admonitionType(t),i.admonition,e),children:n})}function y(o){let{icon:t,title:e}=o;return(0,s.jsxs)("div",{className:i.admonitionHeading,children:[(0,s.jsx)("span",{className:i.admonitionIcon,children:t}),e]})}function d(o){let{children:t}=o;return t?(0,s.jsx)("div",{className:i.admonitionContent,children:t}):null}function F(o){const{type:t,icon:e,title:n,children:r,className:l}=o;return(0,s.jsxs)(a,{type:t,className:l,children:[n||e?(0,s.jsx)(y,{title:n,icon:e}):null,(0,s.jsx)(d,{children:r})]})}function h(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const u={icon:(0,s.jsx)(h,{}),title:(0,s.jsx)(c.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function D(o){return(0,s.jsx)(F,{...u,...o,className:(0,l.A)("alert alert--secondary",o.className),children:o.children})}function k(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const C={icon:(0,s.jsx)(k,{}),title:(0,s.jsx)(c.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function f(o){return(0,s.jsx)(F,{...C,...o,className:(0,l.A)("alert alert--success",o.className),children:o.children})}function m(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const A={icon:(0,s.jsx)(m,{}),title:(0,s.jsx)(c.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function g(o){return(0,s.jsx)(F,{...A,...o,className:(0,l.A)("alert alert--info",o.className),children:o.children})}function w(o){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const x={icon:(0,s.jsx)(w,{}),title:(0,s.jsx)(c.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function j(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const v={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(c.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const B={icon:(0,s.jsx)(w,{}),title:(0,s.jsx)(c.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const b={...{note:D,tip:f,info:g,warning:function(o){return(0,s.jsx)(F,{...x,...o,className:(0,l.A)("alert alert--warning",o.className),children:o.children})},danger:function(o){return(0,s.jsx)(F,{...v,...o,className:(0,l.A)("alert alert--danger",o.className),children:o.children})}},...{secondary:o=>(0,s.jsx)(D,{title:"secondary",...o}),important:o=>(0,s.jsx)(g,{title:"important",...o}),success:o=>(0,s.jsx)(f,{title:"success",...o}),caution:function(o){return(0,s.jsx)(F,{...B,...o,className:(0,l.A)("alert alert--warning",o.className),children:o.children})}}};var I=e(6763);function _(o){const t=r(o),e=(n=t.type,b[n]||(I.warn(`No admonition component found for admonition type "${n}". Using Info as fallback.`),b.info));var n;return(0,s.jsx)(e,{...t})}},7533:(o,t,e)=>{e.d(t,{A:()=>c});var n=e(6540),s=e(1122),r=e(6025),l=e(4848);const c=o=>{let{alt:t,sources:e,style:c}=o;const[p,i]=(0,n.useState)(!1),a=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[p]);return(0,l.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...c},children:(0,l.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},8600:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>F,assets:()=>d,chCodeConfig:()=>h,contentTitle:()=>a,default:()=>k,frontMatter:()=>i,metadata:()=>y,toc:()=>u});e(6540);var n=e(4848),s=e(8453),r=e(4754),l=e(6025),c=e(7533),p=e(7293);const i={},a="API Keys",y={id:"administration/api",title:"API Keys",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/administration/api.mdx",sourceDirName:"administration",slug:"/administration/api",permalink:"/administration/api",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Vector Store RAG",permalink:"/starter-projects/vector-store-rag"},next:{title:"Sign Up and Sign In",permalink:"/administration/login"}},d={},F={annotations:r.hk,Code:r.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Generate an API key",id:"generate-an-api-key",level:2},{value:"Generate an API key with the Langflow UI",id:"generate-an-api-key-with-the-langflow-ui",level:3},{value:"Generate an API key with the Langflow CLI",id:"generate-an-api-key-with-the-langflow-cli",level:3},{value:"Use the Langflow API key",id:"use-the-langflow-api-key",level:2},{value:"Use the x-api-key header",id:"use-the-x-api-key-header",level:3},{value:"Use the query parameter",id:"use-the-query-parameter",level:3},{value:"Security Considerations",id:"security-considerations",level:2},{value:"Custom API endpoint",id:"custom-api-endpoint",level:2},{value:"Revoke an API Key",id:"revoke-an-api-key",level:2}];function D(o){const t=Object.assign({h1:"h1",p:"p",code:"code",h2:"h2",h3:"h3",ol:"ol",li:"li",ul:"ul",strong:"strong"},(0,s.RP)(),o.components);return F||C("CH",!1),F.Code||C("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"api-keys",children:"API Keys"}),"\n",(0,n.jsx)(p.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsx)(t.p,{children:"Langflow provides an API key functionality that allows users to access their individual components and flows without traditional login authentication. The API key is a user-specific token that can be included in the request header or query parameter to authenticate API calls. This documentation outlines how to generate, use, and manage API keys in Langflow."}),"\n",(0,n.jsxs)(p.A,{type:"warning",children:[(0,n.jsx)(t.p,{children:"The default user and password are set using the LANGFLOW_SUPERUSER and\nLANGFLOW_SUPERUSER_PASSWORD environment variables."}),(0,n.jsxs)(t.p,{children:["The default values are ",(0,n.jsx)(t.code,{children:"langflow"})," and ",(0,n.jsx)(t.code,{children:"langflow"}),", respectively."]})]}),"\n",(0,n.jsx)(t.h2,{id:"generate-an-api-key",children:"Generate an API key"}),"\n",(0,n.jsx)(t.p,{children:"Generate a user-specific token to use with Langflow."}),"\n",(0,n.jsx)(t.h3,{id:"generate-an-api-key-with-the-langflow-ui",children:"Generate an API key with the Langflow UI"}),"\n",(0,n.jsx)(c.A,{alt:"Docusaurus themed image",sources:{light:(0,l.Ay)("img/api-key.png"),dark:(0,l.Ay)("img/api-key.png")},style:{width:"50%",maxWidth:"600px",margin:"0 auto"}}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:'Click on the "API Key" icon.'}),"\n",(0,n.jsx)(t.li,{children:'Click on "Create new secret key".'}),"\n",(0,n.jsx)(t.li,{children:"Give it an optional name."}),"\n",(0,n.jsx)(t.li,{children:'Click on "Create secret key".'}),"\n",(0,n.jsx)(t.li,{children:"Copy the API key and store it in a secure location."}),"\n"]}),"\n",(0,n.jsx)(t.h3,{id:"generate-an-api-key-with-the-langflow-cli",children:"Generate an API key with the Langflow CLI"}),"\n",(0,n.jsx)(F.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"api-key",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow api-key",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"API Key Created Successfully: \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"sk-O0elzoWID1izAH8RUKrnnvyyMwIzHi2Wk-uXWoNJ2Ro \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"This is the only time the API key will be displayed. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"Make sure to store it in a secure location. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"The API key has been copied to your clipboard. Cmd + V to paste it. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",props:{style:{color:"#FFA657"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"use-the-langflow-api-key",children:"Use the Langflow API key"}),"\n",(0,n.jsx)(t.p,{children:"Include your API key in API requests to authenticate requests to Langflow."}),"\n",(0,n.jsxs)(t.h3,{id:"use-the-x-api-key-header",children:["Use the ",(0,n.jsx)(t.code,{children:"x-api-key"})," header"]}),"\n",(0,n.jsxs)(t.p,{children:["Include the ",(0,n.jsx)(t.code,{children:"x-api-key"})," in the HTTP header when making API requests:"]}),"\n",(0,n.jsx)(F.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" http://localhost:3000/api/v1/run/",props:{style:{color:"#A5D6FF"}}},{content:"<",props:{style:{color:"#FF7B72"}}},{content:"your_flow_i",props:{style:{color:"#A5D6FF"}}},{content:"d",props:{style:{color:"#C9D1D9"}}},{content:"> ",props:{style:{color:"#FF7B72"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json'",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'x-api-key: '",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"inputs": {"text":""}, "tweaks": {}}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:["With Python using ",(0,n.jsx)(t.code,{children:"requests"}),":"]}),"\n",(0,n.jsx)(F.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Optional",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"BASE_API_URL ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"http://localhost:3001/api/v1/process"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"FLOW_ID ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"4441b773-0724-434e-9cee-19d995d8f2df"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# You can tweak the flow by adding a tweaks dictionary",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:'# e.g {"OpenAI-XXXXX": {"model_name": "gpt-4"}}',props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"TWEAKS ",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"def ",props:{style:{color:"#FF7B72"}}},{content:"run_flow",props:{style:{color:"#D2A8FF"}}},{content:"(inputs: ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" flow_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tweaks: Optional[",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" apiKey: Optional[",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}},{content:") -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' """',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" Run a flow with a given message and optional tweaks.",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param message: The message to send to the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param flow_id: The ID of the flow to run",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param tweaks: Optional tweaks to customize the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :return: The JSON response from the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' """',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" api_url ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"{BASE_API_URL}",props:{style:{color:"#79C0FF"}}},{content:"/",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"flow_id",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" payload ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}},{content:'"inputs"',props:{style:{color:"#A5D6FF"}}},{content:": inputs}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" tweaks:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" payload[",props:{style:{color:"#C9D1D9"}}},{content:'"tweaks"',props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" tweaks",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" apiKey:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}},{content:'"x-api-key"',props:{style:{color:"#A5D6FF"}}},{content:": apiKey}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.post(api_url, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"payload, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Setup any tweaks you want to apply to the flow",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"api_key ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'""',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(run_flow(inputs, ",props:{style:{color:"#C9D1D9"}}},{content:"flow_id",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"FLOW_ID",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"tweaks",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"TWEAKS",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"apiKey",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"api_key))",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h3,{id:"use-the-query-parameter",children:"Use the query parameter"}),"\n",(0,n.jsx)(t.p,{children:"Include the API key as a query parameter in the URL:"}),"\n",(0,n.jsx)(F.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" http://localhost:3000/api/v1/process/",props:{style:{color:"#A5D6FF"}}},{content:"<",props:{style:{color:"#FF7B72"}}},{content:"your_flow_i",props:{style:{color:"#A5D6FF"}}},{content:"d",props:{style:{color:"#C9D1D9"}}},{content:">",props:{style:{color:"#FF7B72"}}},{content:"?x-api-key=",props:{style:{color:"#A5D6FF"}}},{content:"<",props:{style:{color:"#FF7B72"}}},{content:"your_api_ke",props:{style:{color:"#A5D6FF"}}},{content:"y",props:{style:{color:"#C9D1D9"}}},{content:"> ",props:{style:{color:"#FF7B72"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json'",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:'\'{"inputs": {"text":""}, "tweaks": {}}\'',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:["With Python using ",(0,n.jsx)(t.code,{children:"requests"}),":"]}),"\n",(0,n.jsx)(F.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"BASE_API_URL ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"http://localhost:3001/api/v1/process"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"FLOW_ID ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"4441b773-0724-434e-9cee-19d995d8f2df"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# You can tweak the flow by adding a tweaks dictionary",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:'# e.g {"OpenAI-XXXXX": {"model_name": "gpt-4"}}',props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"TWEAKS ",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"def ",props:{style:{color:"#FF7B72"}}},{content:"run_flow",props:{style:{color:"#D2A8FF"}}},{content:"(inputs: ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" flow_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tweaks: Optional[",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" apiKey: Optional[",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}},{content:") -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' """',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" Run a flow with a given message and optional tweaks.",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param message: The message to send to the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param flow_id: The ID of the flow to run",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param tweaks: Optional tweaks to customize the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :return: The JSON response from the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' """',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" api_url ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"{BASE_API_URL}",props:{style:{color:"#79C0FF"}}},{content:"/",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"flow_id",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" payload ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}},{content:'"inputs"',props:{style:{color:"#A5D6FF"}}},{content:": inputs}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" tweaks:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" payload[",props:{style:{color:"#C9D1D9"}}},{content:'"tweaks"',props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" tweaks",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" apiKey:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" api_url ",props:{style:{color:"#C9D1D9"}}},{content:"+= f",props:{style:{color:"#FF7B72"}}},{content:'"?x-api-key=',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"apiKey",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.post(api_url, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"payload, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Setup any tweaks you want to apply to the flow",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}},{content:'"text"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"api_key ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'""',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(run_flow(inputs, ",props:{style:{color:"#C9D1D9"}}},{content:"flow_id",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"FLOW_ID",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"tweaks",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"TWEAKS",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"apiKey",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"api_key))",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"security-considerations",children:"Security Considerations"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Visibility"}),": For security reasons, the API key cannot be retrieved again through the UI."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Scope"}),": The key allows access only to the flows and components of the specific user to whom it was issued."]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"custom-api-endpoint",children:"Custom API endpoint"}),"\n",(0,n.jsxs)(t.p,{children:["Under ",(0,n.jsx)(t.strong,{children:"Project Settings"})," > ",(0,n.jsx)(t.strong,{children:"Endpoint Name"}),", you can pick a custom name for the endpoint used to call your flow from the API."]}),"\n",(0,n.jsx)(t.h2,{id:"revoke-an-api-key",children:"Revoke an API Key"}),"\n",(0,n.jsx)(t.p,{children:"To revoke an API key, delete it from the UI. This action immediately invalidates the key and prevents it from being used again."})]})}const k=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(D,o)})):D(o)};function C(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/155c6abe.773876c9.js b/assets/js/155c6abe.773876c9.js
deleted file mode 100644
index e2737e3ad7..0000000000
--- a/assets/js/155c6abe.773876c9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3837],{7533:(o,t,e)=>{e.d(t,{A:()=>l});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const l=o=>{let{alt:t,sources:e,style:l}=o;const[p,i]=(0,n.useState)(!1),D=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",D):document.removeEventListener("keydown",D),()=>{document.removeEventListener("keydown",D)})),[p]);return(0,c.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},7647:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>a,assets:()=>y,chCodeConfig:()=>F,contentTitle:()=>i,default:()=>C,frontMatter:()=>p,metadata:()=>D,toc:()=>d});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=e(7293),l=(e(1122),e(6025),e(7533));const p={},i="Notion Search",D={id:"integrations/notion/search",title:"Notion Search",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/search.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/search",permalink:"/integrations/notion/search",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Setting up a Notion App",permalink:"/integrations/notion/setup"},next:{title:"Database Properties",permalink:"/integrations/notion/list-database-properties"}},y={},a={annotations:r.hk,Code:r.Cy},F={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},d=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python Code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function h(o){const t=Object.assign({h1:"h1",p:"p",code:"code",a:"a",ul:"ul",li:"li",h2:"h2",ol:"ol",strong:"strong"},(0,s.RP)(),o.components);return a||u("CH",!1),a.Code||u("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"notion-search",children:"Notion Search"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component is designed to search all pages and databases that have been shared with an integration in Notion. It provides a convenient way to integrate Notion search capabilities into your Langflow workflows."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://developers.notion.com/reference/search",children:"Notion Reference"})}),"\n",(0,n.jsxs)(c.A,{type:"tip",title:"Component Functionality",children:[(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component enables you to:"]}),(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Search for pages and databases in Notion that have been shared with an integration"}),"\n",(0,n.jsx)(t.li,{children:"Filter the search results based on object type (pages or databases)"}),"\n",(0,n.jsx)(t.li,{children:"Sort the search results in ascending or descending order based on the last edited time"}),"\n"]})]}),"\n",(0,n.jsx)(t.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(t.p,{children:["To use the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component in a Langflow flow, follow these steps:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsxs)(t.strong,{children:["Add the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component to your flow."]})}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Configure the component by providing the required parameters:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"notion_secret"}),": The Notion integration token for authentication."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"query"}),": The text to search for in page and database titles."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"filter_value"}),": The type of objects to include in the search results (pages or databases)."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"sort_direction"}),": The direction to sort the search results (ascending or descending)."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsxs)(t.strong,{children:["Connect the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component to other components in your flow as needed."]})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-python-code",children:"Component Python Code"}),"\n",(0,n.jsx)(a.Code,{codeConfig:F,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Dict, Any, List",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionSearch",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Search Notion"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" (",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Searches all pages and databases that have been shared with an integration."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" )",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/search"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" field_order ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "query"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "filter_value"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sort_direction"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "query"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Search Query"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The text that the API compares page and database titles against."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "filter_value"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Filter Type"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Limits the results to either only pages or only databases."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "options"',props:{style:{color:"#A5D6FF"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"page"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"database"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "default_value"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"page"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sort_direction"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Sort Direction"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The direction to sort the results."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "options"',props:{style:{color:"#A5D6FF"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"ascending"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"descending"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "default_value"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"descending"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" query: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" filter_value: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"page"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sort_direction: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"descending"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> List[Data]:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" try",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" url ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://api.notion.com/v1/search"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Content-Type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"application/json"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "query"',props:{style:{color:"#A5D6FF"}}},{content:": query,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "filter"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "value"',props:{style:{color:"#A5D6FF"}}},{content:": filter_value,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "property"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sort"',props:{style:{color:"#A5D6FF"}}},{content:":{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "direction"',props:{style:{color:"#A5D6FF"}}},{content:": sort_direction,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"last_edited_time"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.post(url, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"data)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response.raise_for_status()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" results ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" combined_text ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Results found: ',props:{style:{color:"#A5D6FF"}}},{content:"{len",props:{style:{color:"#79C0FF"}}},{content:"(results[",props:{style:{color:"#C9D1D9"}}},{content:"'results'",props:{style:{color:"#A5D6FF"}}},{content:"])",props:{style:{color:"#C9D1D9"}}},{content:"}\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" for",props:{style:{color:"#FF7B72"}}},{content:" result ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" results[",props:{style:{color:"#C9D1D9"}}},{content:"'results'",props:{style:{color:"#A5D6FF"}}},{content:"]:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" result_data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'id'",props:{style:{color:"#A5D6FF"}}},{content:": result[",props:{style:{color:"#C9D1D9"}}},{content:"'id'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'type'",props:{style:{color:"#A5D6FF"}}},{content:": result[",props:{style:{color:"#C9D1D9"}}},{content:"'object'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'last_edited_time'",props:{style:{color:"#A5D6FF"}}},{content:": result[",props:{style:{color:"#C9D1D9"}}},{content:"'last_edited_time'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" result[",props:{style:{color:"#C9D1D9"}}},{content:"'object'",props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:"'page'",props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" result_data[",props:{style:{color:"#C9D1D9"}}},{content:"'title_or_url'",props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" result[",props:{style:{color:"#C9D1D9"}}},{content:"'url'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"id: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"result[",props:{style:{color:"#C9D1D9"}}},{content:"'id'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:"title_or_url: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"result[",props:{style:{color:"#C9D1D9"}}},{content:"'url'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" result[",props:{style:{color:"#C9D1D9"}}},{content:"'object'",props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:"'database'",props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if ",props:{style:{color:"#FF7B72"}}},{content:"'title' ",props:{style:{color:"#A5D6FF"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" result ",props:{style:{color:"#C9D1D9"}}},{content:"and ",props:{style:{color:"#FF7B72"}}},{content:"isinstance",props:{style:{color:"#79C0FF"}}},{content:"(result[",props:{style:{color:"#C9D1D9"}}},{content:"'title'",props:{style:{color:"#A5D6FF"}}},{content:"], ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:") ",props:{style:{color:"#C9D1D9"}}},{content:"and ",props:{style:{color:"#FF7B72"}}},{content:"len",props:{style:{color:"#79C0FF"}}},{content:"(result[",props:{style:{color:"#C9D1D9"}}},{content:"'title'",props:{style:{color:"#A5D6FF"}}},{content:"]) ",props:{style:{color:"#C9D1D9"}}},{content:"> ",props:{style:{color:"#FF7B72"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" result_data[",props:{style:{color:"#C9D1D9"}}},{content:"'title_or_url'",props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" result[",props:{style:{color:"#C9D1D9"}}},{content:"'title'",props:{style:{color:"#A5D6FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:"'plain_text'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"id: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"result[",props:{style:{color:"#C9D1D9"}}},{content:"'id'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:"title_or_url: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"result[",props:{style:{color:"#C9D1D9"}}},{content:"'title'",props:{style:{color:"#A5D6FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:"'plain_text'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" else",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" result_data[",props:{style:{color:"#C9D1D9"}}},{content:"'title_or_url'",props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"N/A"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"id: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"result[",props:{style:{color:"#C9D1D9"}}},{content:"'id'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:"title_or_url: N/A",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"+= f",props:{style:{color:"#FF7B72"}}},{content:'"type: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"result[",props:{style:{color:"#C9D1D9"}}},{content:"'object'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:"last_edited_time: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"result[",props:{style:{color:"#C9D1D9"}}},{content:"'last_edited_time'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" combined_text ",props:{style:{color:"#C9D1D9"}}},{content:"+=",props:{style:{color:"#FF7B72"}}},{content:" text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data.append(Data(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"text, ",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"result_data))",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" combined_text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" except ",props:{style:{color:"#FF7B72"}}},{content:"Exception ",props:{style:{color:"#79C0FF"}}},{content:"as",props:{style:{color:"#FF7B72"}}},{content:" e:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"An error occurred: ',props:{style:{color:"#A5D6FF"}}},{content:"{str",props:{style:{color:"#79C0FF"}}},{content:"(e)",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" [Data(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".status, ",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[])]",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(c.A,{type:"info",title:"Example Usage",children:[(0,n.jsxs)(t.p,{children:["Here's an example of how you can use the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component in a Langflow flow:"]}),(0,n.jsx)(l.A,{alt:"NotionSearch Flow Example",sources:{light:"img/notion/NotionSearch_flow_example.png",dark:"img/notion/NotionSearch_flow_example_dark.png"},style:{width:"100%",margin:"20px 0"}}),(0,n.jsxs)(t.p,{children:["In this example, the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component is used to search for pages and databases in Notion based on the provided query and filter criteria. The retrieved data can then be processed further in the subsequent components of the flow."]})]}),"\n",(0,n.jsx)(t.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(t.p,{children:["When using the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component, consider these best practices:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Ensure you have a valid Notion integration token with the necessary permissions to search for pages and databases."}),"\n",(0,n.jsx)(t.li,{children:"Provide a meaningful search query to narrow down the results to the desired pages or databases."}),"\n",(0,n.jsxs)(t.li,{children:["Choose the appropriate filter type (",(0,n.jsx)(t.code,{children:"page"})," or ",(0,n.jsx)(t.code,{children:"database"}),") based on your search requirements."]}),"\n",(0,n.jsxs)(t.li,{children:["Consider the sorting direction (",(0,n.jsx)(t.code,{children:"ascending"})," or ",(0,n.jsx)(t.code,{children:"descending"}),") to organize the search results effectively."]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component provides a powerful way to integrate Notion search capabilities into your Langflow workflows. By leveraging this component, you can easily search for pages and databases in Notion based on custom queries and filters, enabling you to build more dynamic and data-driven flows."]}),"\n",(0,n.jsxs)(t.p,{children:["We encourage you to explore the capabilities of the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component further and experiment with different search scenarios to unlock the full potential of integrating Notion search into your Langflow workflows."]}),"\n",(0,n.jsx)(t.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(t.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component, consider the following:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Double-check that the ",(0,n.jsx)(t.code,{children:"notion_secret"})," is correct and valid."]}),"\n",(0,n.jsx)(t.li,{children:"Verify that the Notion integration has the necessary permissions to access the desired pages and databases."}),"\n",(0,n.jsx)(t.li,{children:"Check the Notion API documentation for any updates or changes that may affect the component's functionality."}),"\n"]})]})}const C=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(h,o)})):h(o)};function u(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/155c6abe.78ca7063.js b/assets/js/155c6abe.78ca7063.js
new file mode 100644
index 0000000000..49d88d7c27
--- /dev/null
+++ b/assets/js/155c6abe.78ca7063.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3837],{7293:(o,t,e)=>{e.d(t,{A:()=>N});var n=e(6540),s=e(4848);function r(o){const{mdxAdmonitionTitle:t,rest:e}=function(o){const t=n.Children.toArray(o),e=t.find((o=>n.isValidElement(o)&&"mdxAdmonitionTitle"===o.type)),r=t.filter((o=>o!==e)),c=e?.props.children;return{mdxAdmonitionTitle:c,rest:r.length>0?(0,s.jsx)(s.Fragment,{children:r}):null}}(o.children),r=o.title??t;return{...o,...r&&{title:r},children:e}}var c=e(8215),l=e(1312),p=e(7559);const i={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function a(o){let{type:t,className:e,children:n}=o;return(0,s.jsx)("div",{className:(0,c.A)(p.G.common.admonition,p.G.common.admonitionType(t),i.admonition,e),children:n})}function D(o){let{icon:t,title:e}=o;return(0,s.jsxs)("div",{className:i.admonitionHeading,children:[(0,s.jsx)("span",{className:i.admonitionIcon,children:t}),e]})}function d(o){let{children:t}=o;return t?(0,s.jsx)("div",{className:i.admonitionContent,children:t}):null}function y(o){const{type:t,icon:e,title:n,children:r,className:c}=o;return(0,s.jsxs)(a,{type:t,className:c,children:[n||e?(0,s.jsx)(D,{title:n,icon:e}):null,(0,s.jsx)(d,{children:r})]})}function F(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const h={icon:(0,s.jsx)(F,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function u(o){return(0,s.jsx)(y,{...h,...o,className:(0,c.A)("alert alert--secondary",o.className),children:o.children})}function C(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const m={icon:(0,s.jsx)(C,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function f(o){return(0,s.jsx)(y,{...m,...o,className:(0,c.A)("alert alert--success",o.className),children:o.children})}function g(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const x={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function A(o){return(0,s.jsx)(y,{...x,...o,className:(0,c.A)("alert alert--info",o.className),children:o.children})}function k(o){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const j={icon:(0,s.jsx)(k,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function b(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const v={icon:(0,s.jsx)(b,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const B={icon:(0,s.jsx)(k,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const _={...{note:u,tip:f,info:A,warning:function(o){return(0,s.jsx)(y,{...j,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})},danger:function(o){return(0,s.jsx)(y,{...v,...o,className:(0,c.A)("alert alert--danger",o.className),children:o.children})}},...{secondary:o=>(0,s.jsx)(u,{title:"secondary",...o}),important:o=>(0,s.jsx)(A,{title:"important",...o}),success:o=>(0,s.jsx)(f,{title:"success",...o}),caution:function(o){return(0,s.jsx)(y,{...B,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})}}};var w=e(6763);function N(o){const t=r(o),e=(n=t.type,_[n]||(w.warn(`No admonition component found for admonition type "${n}". Using Info as fallback.`),_.info));var n;return(0,s.jsx)(e,{...t})}},7533:(o,t,e)=>{e.d(t,{A:()=>l});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const l=o=>{let{alt:t,sources:e,style:l}=o;const[p,i]=(0,n.useState)(!1),a=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[p]);return(0,c.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},7647:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>d,assets:()=>D,chCodeConfig:()=>y,contentTitle:()=>i,default:()=>u,frontMatter:()=>p,metadata:()=>a,toc:()=>F});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=e(7293),l=(e(1122),e(6025),e(7533));const p={},i="Notion Search",a={id:"integrations/notion/search",title:"Notion Search",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/search.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/search",permalink:"/integrations/notion/search",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Setting up a Notion App",permalink:"/integrations/notion/setup"},next:{title:"Database Properties",permalink:"/integrations/notion/list-database-properties"}},D={},d={annotations:r.hk,Code:r.Cy},y={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},F=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python Code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function h(o){const t=Object.assign({h1:"h1",p:"p",code:"code",a:"a",ul:"ul",li:"li",h2:"h2",ol:"ol",strong:"strong"},(0,s.RP)(),o.components);return d||C("CH",!1),d.Code||C("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"notion-search",children:"Notion Search"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component is designed to search all pages and databases that have been shared with an integration in Notion. It provides a convenient way to integrate Notion search capabilities into your Langflow workflows."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://developers.notion.com/reference/search",children:"Notion Reference"})}),"\n",(0,n.jsxs)(c.A,{type:"tip",title:"Component Functionality",children:[(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component enables you to:"]}),(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Search for pages and databases in Notion that have been shared with an integration"}),"\n",(0,n.jsx)(t.li,{children:"Filter the search results based on object type (pages or databases)"}),"\n",(0,n.jsx)(t.li,{children:"Sort the search results in ascending or descending order based on the last edited time"}),"\n"]})]}),"\n",(0,n.jsx)(t.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(t.p,{children:["To use the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component in a Langflow flow, follow these steps:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsxs)(t.strong,{children:["Add the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component to your flow."]})}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Configure the component by providing the required parameters:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"notion_secret"}),": The Notion integration token for authentication."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"query"}),": The text to search for in page and database titles."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"filter_value"}),": The type of objects to include in the search results (pages or databases)."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"sort_direction"}),": The direction to sort the search results (ascending or descending)."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsxs)(t.strong,{children:["Connect the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component to other components in your flow as needed."]})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-python-code",children:"Component Python Code"}),"\n",(0,n.jsx)(d.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Dict, Any, List",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionSearch",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Search Notion"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" (",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Searches all pages and databases that have been shared with an integration."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" )",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/search"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" field_order ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "query"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "filter_value"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sort_direction"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "query"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Search Query"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The text that the API compares page and database titles against."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "filter_value"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Filter Type"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Limits the results to either only pages or only databases."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "options"',props:{style:{color:"#A5D6FF"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"page"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"database"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "default_value"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"page"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sort_direction"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Sort Direction"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The direction to sort the results."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "options"',props:{style:{color:"#A5D6FF"}}},{content:": [",props:{style:{color:"#C9D1D9"}}},{content:'"ascending"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"descending"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "default_value"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"descending"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" query: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'""',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" filter_value: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"page"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sort_direction: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"descending"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> List[Data]:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" try",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" url ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://api.notion.com/v1/search"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Content-Type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"application/json"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "query"',props:{style:{color:"#A5D6FF"}}},{content:": query,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "filter"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "value"',props:{style:{color:"#A5D6FF"}}},{content:": filter_value,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "property"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"object"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sort"',props:{style:{color:"#A5D6FF"}}},{content:":{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "direction"',props:{style:{color:"#A5D6FF"}}},{content:": sort_direction,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "timestamp"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"last_edited_time"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.post(url, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"data)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response.raise_for_status()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" results ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" combined_text ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Results found: ',props:{style:{color:"#A5D6FF"}}},{content:"{len",props:{style:{color:"#79C0FF"}}},{content:"(results[",props:{style:{color:"#C9D1D9"}}},{content:"'results'",props:{style:{color:"#A5D6FF"}}},{content:"])",props:{style:{color:"#C9D1D9"}}},{content:"}\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" for",props:{style:{color:"#FF7B72"}}},{content:" result ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" results[",props:{style:{color:"#C9D1D9"}}},{content:"'results'",props:{style:{color:"#A5D6FF"}}},{content:"]:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" result_data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'id'",props:{style:{color:"#A5D6FF"}}},{content:": result[",props:{style:{color:"#C9D1D9"}}},{content:"'id'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'type'",props:{style:{color:"#A5D6FF"}}},{content:": result[",props:{style:{color:"#C9D1D9"}}},{content:"'object'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'last_edited_time'",props:{style:{color:"#A5D6FF"}}},{content:": result[",props:{style:{color:"#C9D1D9"}}},{content:"'last_edited_time'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" result[",props:{style:{color:"#C9D1D9"}}},{content:"'object'",props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:"'page'",props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" result_data[",props:{style:{color:"#C9D1D9"}}},{content:"'title_or_url'",props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" result[",props:{style:{color:"#C9D1D9"}}},{content:"'url'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"id: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"result[",props:{style:{color:"#C9D1D9"}}},{content:"'id'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:"title_or_url: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"result[",props:{style:{color:"#C9D1D9"}}},{content:"'url'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" result[",props:{style:{color:"#C9D1D9"}}},{content:"'object'",props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:"'database'",props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if ",props:{style:{color:"#FF7B72"}}},{content:"'title' ",props:{style:{color:"#A5D6FF"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" result ",props:{style:{color:"#C9D1D9"}}},{content:"and ",props:{style:{color:"#FF7B72"}}},{content:"isinstance",props:{style:{color:"#79C0FF"}}},{content:"(result[",props:{style:{color:"#C9D1D9"}}},{content:"'title'",props:{style:{color:"#A5D6FF"}}},{content:"], ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:") ",props:{style:{color:"#C9D1D9"}}},{content:"and ",props:{style:{color:"#FF7B72"}}},{content:"len",props:{style:{color:"#79C0FF"}}},{content:"(result[",props:{style:{color:"#C9D1D9"}}},{content:"'title'",props:{style:{color:"#A5D6FF"}}},{content:"]) ",props:{style:{color:"#C9D1D9"}}},{content:"> ",props:{style:{color:"#FF7B72"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" result_data[",props:{style:{color:"#C9D1D9"}}},{content:"'title_or_url'",props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" result[",props:{style:{color:"#C9D1D9"}}},{content:"'title'",props:{style:{color:"#A5D6FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:"'plain_text'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"id: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"result[",props:{style:{color:"#C9D1D9"}}},{content:"'id'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:"title_or_url: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"result[",props:{style:{color:"#C9D1D9"}}},{content:"'title'",props:{style:{color:"#A5D6FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:"'plain_text'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" else",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" result_data[",props:{style:{color:"#C9D1D9"}}},{content:"'title_or_url'",props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"N/A"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"id: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"result[",props:{style:{color:"#C9D1D9"}}},{content:"'id'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:"title_or_url: N/A",props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"+= f",props:{style:{color:"#FF7B72"}}},{content:'"type: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"result[",props:{style:{color:"#C9D1D9"}}},{content:"'object'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:"last_edited_time: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"result[",props:{style:{color:"#C9D1D9"}}},{content:"'last_edited_time'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" combined_text ",props:{style:{color:"#C9D1D9"}}},{content:"+=",props:{style:{color:"#FF7B72"}}},{content:" text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data.append(Data(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"text, ",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"result_data))",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" combined_text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" except ",props:{style:{color:"#FF7B72"}}},{content:"Exception ",props:{style:{color:"#79C0FF"}}},{content:"as",props:{style:{color:"#FF7B72"}}},{content:" e:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"An error occurred: ',props:{style:{color:"#A5D6FF"}}},{content:"{str",props:{style:{color:"#79C0FF"}}},{content:"(e)",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" [Data(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".status, ",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[])]",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(c.A,{type:"info",title:"Example Usage",children:[(0,n.jsxs)(t.p,{children:["Here's an example of how you can use the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component in a Langflow flow:"]}),(0,n.jsx)(l.A,{alt:"NotionSearch Flow Example",sources:{light:"img/notion/NotionSearch_flow_example.png",dark:"img/notion/NotionSearch_flow_example_dark.png"},style:{width:"100%",margin:"20px 0"}}),(0,n.jsxs)(t.p,{children:["In this example, the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component is used to search for pages and databases in Notion based on the provided query and filter criteria. The retrieved data can then be processed further in the subsequent components of the flow."]})]}),"\n",(0,n.jsx)(t.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(t.p,{children:["When using the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component, consider these best practices:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Ensure you have a valid Notion integration token with the necessary permissions to search for pages and databases."}),"\n",(0,n.jsx)(t.li,{children:"Provide a meaningful search query to narrow down the results to the desired pages or databases."}),"\n",(0,n.jsxs)(t.li,{children:["Choose the appropriate filter type (",(0,n.jsx)(t.code,{children:"page"})," or ",(0,n.jsx)(t.code,{children:"database"}),") based on your search requirements."]}),"\n",(0,n.jsxs)(t.li,{children:["Consider the sorting direction (",(0,n.jsx)(t.code,{children:"ascending"})," or ",(0,n.jsx)(t.code,{children:"descending"}),") to organize the search results effectively."]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component provides a powerful way to integrate Notion search capabilities into your Langflow workflows. By leveraging this component, you can easily search for pages and databases in Notion based on custom queries and filters, enabling you to build more dynamic and data-driven flows."]}),"\n",(0,n.jsxs)(t.p,{children:["We encourage you to explore the capabilities of the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component further and experiment with different search scenarios to unlock the full potential of integrating Notion search into your Langflow workflows."]}),"\n",(0,n.jsx)(t.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(t.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(t.code,{children:"NotionSearch"})," component, consider the following:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Double-check that the ",(0,n.jsx)(t.code,{children:"notion_secret"})," is correct and valid."]}),"\n",(0,n.jsx)(t.li,{children:"Verify that the Notion integration has the necessary permissions to access the desired pages and databases."}),"\n",(0,n.jsx)(t.li,{children:"Check the Notion API documentation for any updates or changes that may affect the component's functionality."}),"\n"]})]})}const u=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(h,o)})):h(o)};function C(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/16cb8a22.10e360a7.js b/assets/js/16cb8a22.10e360a7.js
deleted file mode 100644
index aafeaf734f..0000000000
--- a/assets/js/16cb8a22.10e360a7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2584],{7533:(o,t,e)=>{e.d(t,{A:()=>l});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const l=o=>{let{alt:t,sources:e,style:l}=o;const[p,i]=(0,n.useState)(!1),a=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[p]);return(0,c.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},5105:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>y,assets:()=>d,chCodeConfig:()=>D,contentTitle:()=>i,default:()=>C,frontMatter:()=>p,metadata:()=>a,toc:()=>F});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=e(7293),l=(e(1122),e(6025),e(7533));const p={},i="Page Create",a={id:"integrations/notion/page-create",title:"Page Create",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/page-create.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/page-create",permalink:"/integrations/notion/page-create",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"User List",permalink:"/integrations/notion/list-users"},next:{title:"Add Content To Page",permalink:"/integrations/notion/add-content-to-page"}},d={},y={annotations:r.hk,Code:r.Cy},D={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},F=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python Code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function h(o){const t=Object.assign({h1:"h1",p:"p",code:"code",a:"a",ul:"ul",li:"li",h2:"h2",ol:"ol"},(0,s.RP)(),o.components);return y||g("CH",!1),y.Code||g("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"page-create",children:"Page Create"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component creates pages in a Notion database. It provides a convenient way to integrate Notion page creation into your Langflow workflows."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://developers.notion.com/reference/patch-block-children",children:"Notion Reference"})}),"\n",(0,n.jsxs)(c.A,{type:"tip",title:"Component Functionality",children:[(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component enables you to:"]}),(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Create new pages in a specified Notion database"}),"\n",(0,n.jsx)(t.li,{children:"Set custom properties for the created pages"}),"\n",(0,n.jsx)(t.li,{children:"Retrieve the ID and URL of the newly created pages"}),"\n"]})]}),"\n",(0,n.jsx)(t.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(t.p,{children:["To use the ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component in a Langflow flow, follow these steps:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["Add the ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component to your flow."]}),"\n",(0,n.jsxs)(t.li,{children:["Configure the component by providing the required inputs:","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"database_id"}),": The ID of the Notion database where the pages will be created."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"notion_secret"}),": The Notion integration token for authentication."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"properties"}),": The properties of the new page, specified as a JSON string."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.li,{children:"Connect the component to other components in your flow as needed."}),"\n",(0,n.jsx)(t.li,{children:"Run the flow to create Notion pages based on the configured inputs."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-python-code",children:"Component Python Code"}),"\n",(0,n.jsx)(y.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" json",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Optional",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionPageCreator",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Create Page [Notion]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"A component for creating Notion pages."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/page-create"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "database_id"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Database ID"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The ID of the Notion database."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Properties"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"The properties of the new page. Depending on your database setup, this can change. E.G: {'Task name': {'id': 'title', 'type': 'title', 'title': [{'type': 'text', 'text': {'content': 'Send Notion Components to LF', 'link': null",props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" database_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" properties: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'\'{"Task name": {"id": "title", "type": "title", "title": [{"type": "text", "text": {"content": "Send Notion Components to LF", "link": null',props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:"'",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if not",props:{style:{color:"#FF7B72"}}},{content:" database_id ",props:{style:{color:"#C9D1D9"}}},{content:"or not",props:{style:{color:"#FF7B72"}}},{content:" properties:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" raise ",props:{style:{color:"#FF7B72"}}},{content:"ValueError",props:{style:{color:"#79C0FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"\"Invalid input. Please provide 'database_id' and 'properties'.\"",props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Content-Type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"application/json"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "parent"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"database_id"',props:{style:{color:"#A5D6FF"}}},{content:": database_id},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#A5D6FF"}}},{content:": json.loads(properties),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.post(",props:{style:{color:"#C9D1D9"}}},{content:'"https://api.notion.com/v1/pages"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"data)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" response.status_code ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:"200",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_id ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" response.json()[",props:{style:{color:"#C9D1D9"}}},{content:'"id"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Successfully created Notion page with ID: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_id",props:{style:{color:"#C9D1D9"}}},{content:"}\\n {str",props:{style:{color:"#79C0FF"}}},{content:"(response.json())",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" else",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" error_message ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Failed to create Notion page. Status code: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"response.status_code",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", Error: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"response.text",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" error_message",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" raise ",props:{style:{color:"#FF7B72"}}},{content:"Exception",props:{style:{color:"#79C0FF"}}},{content:"(error_message)",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(c.A,{type:"info",title:"Example Usage",children:[(0,n.jsxs)(t.p,{children:["Here's an example of how to use the ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component in a Langflow flow:"]}),(0,n.jsx)(l.A,{alt:"NotionPageCreator Flow Example",sources:{light:"img/notion/NotionPageCreator_flow_example.png",dark:"img/notion/NotionPageCreator_flow_example_dark.png"},style:{width:"100%",margin:"20px 0"}})]}),"\n",(0,n.jsx)(t.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(t.p,{children:["When using the ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component, consider the following best practices:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Ensure that you have a valid Notion integration token with the necessary permissions to create pages in the specified database."}),"\n",(0,n.jsxs)(t.li,{children:["Properly format the ",(0,n.jsx)(t.code,{children:"properties"})," input as a JSON string, matching the structure and field types of your Notion database."]}),"\n",(0,n.jsx)(t.li,{children:"Handle any errors or exceptions that may occur during the page creation process and provide appropriate error messages."}),"\n",(0,n.jsx)(t.li,{children:"To avoid the hassle of messing with JSON, we recommend using the LLM to create the JSON for you as input."}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component simplifies the process of creating pages in a Notion database directly from your Langflow workflows. By leveraging this component, you can seamlessly integrate Notion page creation functionality into your automated processes, saving time and effort. Feel free to explore the capabilities of the ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component and adapt it to suit your specific requirements."]}),"\n",(0,n.jsx)(t.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(t.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component, consider the following:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Double-check that the ",(0,n.jsx)(t.code,{children:"database_id"})," and ",(0,n.jsx)(t.code,{children:"notion_secret"})," inputs are correct and valid."]}),"\n",(0,n.jsxs)(t.li,{children:["Verify that the ",(0,n.jsx)(t.code,{children:"properties"})," input is properly formatted as a JSON string and matches the structure of your Notion database."]}),"\n",(0,n.jsx)(t.li,{children:"Check the Notion API documentation for any updates or changes that may affect the component's functionality."}),"\n"]})]})}const C=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(h,o)})):h(o)};function g(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/16cb8a22.a94ecb87.js b/assets/js/16cb8a22.a94ecb87.js
new file mode 100644
index 0000000000..233bcbe6a8
--- /dev/null
+++ b/assets/js/16cb8a22.a94ecb87.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2584],{7293:(o,t,e)=>{e.d(t,{A:()=>_});var n=e(6540),s=e(4848);function r(o){const{mdxAdmonitionTitle:t,rest:e}=function(o){const t=n.Children.toArray(o),e=t.find((o=>n.isValidElement(o)&&"mdxAdmonitionTitle"===o.type)),r=t.filter((o=>o!==e)),c=e?.props.children;return{mdxAdmonitionTitle:c,rest:r.length>0?(0,s.jsx)(s.Fragment,{children:r}):null}}(o.children),r=o.title??t;return{...o,...r&&{title:r},children:e}}var c=e(8215),l=e(1312),i=e(7559);const p={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function a(o){let{type:t,className:e,children:n}=o;return(0,s.jsx)("div",{className:(0,c.A)(i.G.common.admonition,i.G.common.admonitionType(t),p.admonition,e),children:n})}function d(o){let{icon:t,title:e}=o;return(0,s.jsxs)("div",{className:p.admonitionHeading,children:[(0,s.jsx)("span",{className:p.admonitionIcon,children:t}),e]})}function y(o){let{children:t}=o;return t?(0,s.jsx)("div",{className:p.admonitionContent,children:t}):null}function h(o){const{type:t,icon:e,title:n,children:r,className:c}=o;return(0,s.jsxs)(a,{type:t,className:c,children:[n||e?(0,s.jsx)(d,{title:n,icon:e}):null,(0,s.jsx)(y,{children:r})]})}function D(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const F={icon:(0,s.jsx)(D,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function u(o){return(0,s.jsx)(h,{...F,...o,className:(0,c.A)("alert alert--secondary",o.className),children:o.children})}function g(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const m={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function C(o){return(0,s.jsx)(h,{...m,...o,className:(0,c.A)("alert alert--success",o.className),children:o.children})}function f(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const x={icon:(0,s.jsx)(f,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function j(o){return(0,s.jsx)(h,{...x,...o,className:(0,c.A)("alert alert--info",o.className),children:o.children})}function k(o){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const A={icon:(0,s.jsx)(k,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function b(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const v={icon:(0,s.jsx)(b,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const N={icon:(0,s.jsx)(k,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const w={...{note:u,tip:C,info:j,warning:function(o){return(0,s.jsx)(h,{...A,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})},danger:function(o){return(0,s.jsx)(h,{...v,...o,className:(0,c.A)("alert alert--danger",o.className),children:o.children})}},...{secondary:o=>(0,s.jsx)(u,{title:"secondary",...o}),important:o=>(0,s.jsx)(j,{title:"important",...o}),success:o=>(0,s.jsx)(C,{title:"success",...o}),caution:function(o){return(0,s.jsx)(h,{...N,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})}}};var B=e(6763);function _(o){const t=r(o),e=(n=t.type,w[n]||(B.warn(`No admonition component found for admonition type "${n}". Using Info as fallback.`),w.info));var n;return(0,s.jsx)(e,{...t})}},7533:(o,t,e)=>{e.d(t,{A:()=>l});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const l=o=>{let{alt:t,sources:e,style:l}=o;const[i,p]=(0,n.useState)(!1),a=o=>{"Escape"===o.key&&p(!1)};(0,n.useEffect)((()=>(i?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[i]);return(0,c.jsx)("div",{className:"zoomable-image "+(i?"fullscreen":""),onClick:()=>{p(!i)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},5105:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>y,assets:()=>d,chCodeConfig:()=>h,contentTitle:()=>p,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>D});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=e(7293),l=(e(1122),e(6025),e(7533));const i={},p="Page Create",a={id:"integrations/notion/page-create",title:"Page Create",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/page-create.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/page-create",permalink:"/integrations/notion/page-create",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"User List",permalink:"/integrations/notion/list-users"},next:{title:"Add Content To Page",permalink:"/integrations/notion/add-content-to-page"}},d={},y={annotations:r.hk,Code:r.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},D=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python Code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function F(o){const t=Object.assign({h1:"h1",p:"p",code:"code",a:"a",ul:"ul",li:"li",h2:"h2",ol:"ol"},(0,s.RP)(),o.components);return y||g("CH",!1),y.Code||g("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"page-create",children:"Page Create"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component creates pages in a Notion database. It provides a convenient way to integrate Notion page creation into your Langflow workflows."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://developers.notion.com/reference/patch-block-children",children:"Notion Reference"})}),"\n",(0,n.jsxs)(c.A,{type:"tip",title:"Component Functionality",children:[(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component enables you to:"]}),(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Create new pages in a specified Notion database"}),"\n",(0,n.jsx)(t.li,{children:"Set custom properties for the created pages"}),"\n",(0,n.jsx)(t.li,{children:"Retrieve the ID and URL of the newly created pages"}),"\n"]})]}),"\n",(0,n.jsx)(t.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(t.p,{children:["To use the ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component in a Langflow flow, follow these steps:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["Add the ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component to your flow."]}),"\n",(0,n.jsxs)(t.li,{children:["Configure the component by providing the required inputs:","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"database_id"}),": The ID of the Notion database where the pages will be created."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"notion_secret"}),": The Notion integration token for authentication."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"properties"}),": The properties of the new page, specified as a JSON string."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.li,{children:"Connect the component to other components in your flow as needed."}),"\n",(0,n.jsx)(t.li,{children:"Run the flow to create Notion pages based on the configured inputs."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-python-code",children:"Component Python Code"}),"\n",(0,n.jsx)(y.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" json",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Optional",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionPageCreator",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Create Page [Notion]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"A component for creating Notion pages."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/page-create"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "database_id"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Database ID"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The ID of the Notion database."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Properties"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"The properties of the new page. Depending on your database setup, this can change. E.G: {'Task name': {'id': 'title', 'type': 'title', 'title': [{'type': 'text', 'text': {'content': 'Send Notion Components to LF', 'link': null",props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" database_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" properties: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'\'{"Task name": {"id": "title", "type": "title", "title": [{"type": "text", "text": {"content": "Send Notion Components to LF", "link": null',props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:"'",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if not",props:{style:{color:"#FF7B72"}}},{content:" database_id ",props:{style:{color:"#C9D1D9"}}},{content:"or not",props:{style:{color:"#FF7B72"}}},{content:" properties:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" raise ",props:{style:{color:"#FF7B72"}}},{content:"ValueError",props:{style:{color:"#79C0FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"\"Invalid input. Please provide 'database_id' and 'properties'.\"",props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Content-Type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"application/json"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "parent"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"database_id"',props:{style:{color:"#A5D6FF"}}},{content:": database_id},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#A5D6FF"}}},{content:": json.loads(properties),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.post(",props:{style:{color:"#C9D1D9"}}},{content:'"https://api.notion.com/v1/pages"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"data)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" response.status_code ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:"200",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_id ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" response.json()[",props:{style:{color:"#C9D1D9"}}},{content:'"id"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Successfully created Notion page with ID: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_id",props:{style:{color:"#C9D1D9"}}},{content:"}\\n {str",props:{style:{color:"#79C0FF"}}},{content:"(response.json())",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" else",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" error_message ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Failed to create Notion page. Status code: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"response.status_code",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", Error: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"response.text",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" error_message",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" raise ",props:{style:{color:"#FF7B72"}}},{content:"Exception",props:{style:{color:"#79C0FF"}}},{content:"(error_message)",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(c.A,{type:"info",title:"Example Usage",children:[(0,n.jsxs)(t.p,{children:["Here's an example of how to use the ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component in a Langflow flow:"]}),(0,n.jsx)(l.A,{alt:"NotionPageCreator Flow Example",sources:{light:"img/notion/NotionPageCreator_flow_example.png",dark:"img/notion/NotionPageCreator_flow_example_dark.png"},style:{width:"100%",margin:"20px 0"}})]}),"\n",(0,n.jsx)(t.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(t.p,{children:["When using the ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component, consider the following best practices:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Ensure that you have a valid Notion integration token with the necessary permissions to create pages in the specified database."}),"\n",(0,n.jsxs)(t.li,{children:["Properly format the ",(0,n.jsx)(t.code,{children:"properties"})," input as a JSON string, matching the structure and field types of your Notion database."]}),"\n",(0,n.jsx)(t.li,{children:"Handle any errors or exceptions that may occur during the page creation process and provide appropriate error messages."}),"\n",(0,n.jsx)(t.li,{children:"To avoid the hassle of messing with JSON, we recommend using the LLM to create the JSON for you as input."}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component simplifies the process of creating pages in a Notion database directly from your Langflow workflows. By leveraging this component, you can seamlessly integrate Notion page creation functionality into your automated processes, saving time and effort. Feel free to explore the capabilities of the ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component and adapt it to suit your specific requirements."]}),"\n",(0,n.jsx)(t.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(t.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(t.code,{children:"NotionPageCreator"})," component, consider the following:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Double-check that the ",(0,n.jsx)(t.code,{children:"database_id"})," and ",(0,n.jsx)(t.code,{children:"notion_secret"})," inputs are correct and valid."]}),"\n",(0,n.jsxs)(t.li,{children:["Verify that the ",(0,n.jsx)(t.code,{children:"properties"})," input is properly formatted as a JSON string and matches the structure of your Notion database."]}),"\n",(0,n.jsx)(t.li,{children:"Check the Notion API documentation for any updates or changes that may affect the component's functionality."}),"\n"]})]})}const u=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(F,o)})):F(o)};function g(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/22dd74f7.b9b240f1.js b/assets/js/22dd74f7.323c8cb4.js
similarity index 68%
rename from assets/js/22dd74f7.b9b240f1.js
rename to assets/js/22dd74f7.323c8cb4.js
index 51412415aa..2f466a7a6b 100644
--- a/assets/js/22dd74f7.b9b240f1.js
+++ b/assets/js/22dd74f7.323c8cb4.js
@@ -1 +1 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1567],{5226:t=>{t.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"category","label":"What\'s New?","collapsed":false,"items":[{"type":"link","label":"1.0 - A new chapter for Langflow","href":"/whats-new/a-new-chapter-langflow","docId":"whats-new/a-new-chapter-langflow","unlisted":false}],"collapsible":true},{"type":"category","label":"Getting Started","collapsed":false,"items":[{"type":"link","label":"\ud83d\udc4b Welcome to Langflow","href":"/","docId":"index","unlisted":false},{"type":"link","label":"\ud83d\udce6 Install Langflow","href":"/getting-started/install-langflow","docId":"getting-started/install-langflow","unlisted":false},{"type":"link","label":"\u26a1\ufe0f Quickstart","href":"/getting-started/quickstart","docId":"getting-started/quickstart","unlisted":false},{"type":"link","label":"\ud83c\udfa8 Langflow Workspace","href":"/getting-started/workspace","docId":"getting-started/workspace","unlisted":false},{"type":"link","label":"\u2757\ufe0f Common Installation Issues","href":"/getting-started/possible-installation-issues","docId":"getting-started/possible-installation-issues","unlisted":false},{"type":"link","label":"\ud83d\udcda New to LLMs?","href":"/getting-started/new-to-llms","docId":"getting-started/new-to-llms","unlisted":false}],"collapsible":true},{"type":"category","label":"Starter Projects","collapsed":false,"items":[{"type":"link","label":"Basic Prompting","href":"/starter-projects/basic-prompting","docId":"starter-projects/basic-prompting","unlisted":false},{"type":"link","label":"Blog Writer","href":"/starter-projects/blog-writer","docId":"starter-projects/blog-writer","unlisted":false},{"type":"link","label":"Document QA","href":"/starter-projects/document-qa","docId":"starter-projects/document-qa","unlisted":false},{"type":"link","label":"Memory Chatbot","href":"/starter-projects/memory-chatbot","docId":"starter-projects/memory-chatbot","unlisted":false},{"type":"link","label":"Vector Store RAG","href":"/starter-projects/vector-store-rag","docId":"starter-projects/vector-store-rag","unlisted":false}],"collapsible":true},{"type":"category","label":"Administration","collapsed":false,"items":[{"type":"link","label":"API Keys","href":"/administration/api","docId":"administration/api","unlisted":false},{"type":"link","label":"Sign Up and Sign In","href":"/administration/login","docId":"administration/login","unlisted":false},{"type":"link","label":"Command Line Interface (CLI)","href":"/administration/cli","docId":"administration/cli","unlisted":false},{"type":"link","label":"Playground","href":"/administration/playground","docId":"administration/playground","unlisted":false},{"type":"link","label":"Chat Memory","href":"/administration/memories","docId":"administration/memories","unlisted":false},{"type":"link","label":"Logs","href":"/administration/logs","docId":"administration/logs","unlisted":false},{"type":"link","label":"Collections and Projects","href":"/administration/collections-projects","docId":"administration/collections-projects","unlisted":false},{"type":"link","label":"Settings","href":"/administration/settings","docId":"administration/settings","unlisted":false},{"type":"link","label":"Global Variables","href":"/administration/global-env","docId":"administration/global-env","unlisted":false},{"type":"link","label":"Chat Widget","href":"/administration/chat-widget","docId":"administration/chat-widget","unlisted":false}],"collapsible":true},{"type":"category","label":"Components","collapsed":false,"items":[{"type":"link","label":"Inputs and Outputs","href":"/components/inputs-and-outputs","docId":"components/inputs-and-outputs","unlisted":false},{"type":"link","label":"Text and Data","href":"/components/text-and-record","docId":"components/text-and-record","unlisted":false},{"type":"link","label":"Data","href":"/components/data","docId":"components/data","unlisted":false},{"type":"link","label":"Models","href":"/components/models","docId":"components/models","unlisted":false},{"type":"link","label":"Helpers","href":"/components/helpers","docId":"components/helpers","unlisted":false},{"type":"link","label":"Vector Stores","href":"/components/vector-stores","docId":"components/vector-stores","unlisted":false},{"type":"link","label":"Embeddings","href":"/components/embeddings","docId":"components/embeddings","unlisted":false},{"type":"link","label":"Custom Components","href":"/components/custom","docId":"components/custom","unlisted":false}],"collapsible":true},{"type":"category","label":"Tutorials","collapsed":true,"items":[{"type":"link","label":"Build Chatbots with the System Message Component","href":"/tutorials/chatprompttemplate_guide","docId":"tutorials/chatprompttemplate_guide","unlisted":false},{"type":"link","label":"Custom Components","href":"/tutorials/custom_components","docId":"tutorials/custom_components","unlisted":false},{"type":"link","label":"Integrate Documents with Prompt Variables","href":"/tutorials/loading_document","docId":"tutorials/loading_document","unlisted":false},{"type":"link","label":"\ud83c\udf1f RAG with Astra DB","href":"/tutorials/rag-with-astradb","docId":"tutorials/rag-with-astradb","unlisted":false}],"collapsible":true},{"type":"category","label":"Deployment","collapsed":true,"items":[{"type":"link","label":"Docker","href":"/deployment/docker","docId":"deployment/docker","unlisted":false},{"type":"link","label":"Backend-only","href":"/deployment/backend-only","docId":"deployment/backend-only","unlisted":false},{"type":"link","label":"Kubernetes","href":"/deployment/kubernetes","docId":"deployment/kubernetes","unlisted":false},{"type":"link","label":"Deploy on Google Cloud Platform","href":"/deployment/gcp-deployment","docId":"deployment/gcp-deployment","unlisted":false}],"collapsible":true},{"type":"category","label":"Contributing","collapsed":false,"items":[{"type":"link","label":"Telemetry","href":"/contributing/telemetry","docId":"contributing/telemetry","unlisted":false},{"type":"link","label":"How to Contribute?","href":"/contributing/how-contribute","docId":"contributing/how-contribute","unlisted":false},{"type":"link","label":"GitHub Issues","href":"/contributing/github-issues","docId":"contributing/github-issues","unlisted":false},{"type":"link","label":"Community","href":"/contributing/community","docId":"contributing/community","unlisted":false},{"type":"link","label":"How to Contribute Components?","href":"/contributing/contribute-component","docId":"contributing/contribute-component","unlisted":false}],"collapsible":true},{"type":"category","label":"Integrations","collapsed":false,"items":[{"type":"link","label":"LangSmith","href":"/integrations/langsmith/intro","docId":"integrations/langsmith/intro","unlisted":false},{"type":"category","label":"Notion","items":[{"type":"link","label":"Introduction to Notion in Langflow","href":"/integrations/notion/intro","docId":"integrations/notion/intro","unlisted":false},{"type":"link","label":"Setting up a Notion App","href":"/integrations/notion/setup","docId":"integrations/notion/setup","unlisted":false},{"type":"link","label":"Notion Search","href":"/integrations/notion/search","docId":"integrations/notion/search","unlisted":false},{"type":"link","label":"Database Properties","href":"/integrations/notion/list-database-properties","docId":"integrations/notion/list-database-properties","unlisted":false},{"type":"link","label":"List Pages","href":"/integrations/notion/list-pages","docId":"integrations/notion/list-pages","unlisted":false},{"type":"link","label":"User List","href":"/integrations/notion/list-users","docId":"integrations/notion/list-users","unlisted":false},{"type":"link","label":"Page Create","href":"/integrations/notion/page-create","docId":"integrations/notion/page-create","unlisted":false},{"type":"link","label":"Add Content To Page","href":"/integrations/notion/add-content-to-page","docId":"integrations/notion/add-content-to-page","unlisted":false},{"type":"link","label":"Page Update","href":"/integrations/notion/page-update","docId":"integrations/notion/page-update","unlisted":false},{"type":"link","label":"Page Content","href":"/integrations/notion/page-content-viewer","docId":"integrations/notion/page-content-viewer","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsible":true}]},"docs":{"administration/api":{"id":"administration/api","title":"API Keys","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/chat-widget":{"id":"administration/chat-widget","title":"Chat Widget","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/cli":{"id":"administration/cli","title":"Command Line Interface (CLI)","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/collections-projects":{"id":"administration/collections-projects","title":"Collections and Projects","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/global-env":{"id":"administration/global-env","title":"Global Variables","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/login":{"id":"administration/login","title":"Sign Up and Sign In","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/logs":{"id":"administration/logs","title":"Logs","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/memories":{"id":"administration/memories","title":"Chat Memory","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/playground":{"id":"administration/playground","title":"Playground","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/prompt-customization":{"id":"administration/prompt-customization","title":"Prompt Customization","description":"This page may contain outdated information. It will be updated as soon as possible."},"administration/settings":{"id":"administration/settings","title":"Settings","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/agents":{"id":"components/agents","title":"Agents","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/chains":{"id":"components/chains","title":"Chains","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/custom":{"id":"components/custom","title":"Custom Components","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/data":{"id":"components/data","title":"Data","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/embeddings":{"id":"components/embeddings","title":"Embeddings","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/experimental":{"id":"components/experimental","title":"Experimental","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/helpers":{"id":"components/helpers","title":"Helpers","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/inputs-and-outputs":{"id":"components/inputs-and-outputs","title":"Inputs and Outputs","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/loaders":{"id":"components/loaders","title":"Loaders","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/memories":{"id":"components/memories","title":"Memories","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/model_specs":{"id":"components/model_specs","title":"Large Language Models (LLMs)","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/models":{"id":"components/models","title":"Models","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/retrievers":{"id":"components/retrievers","title":"Retrievers","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/text-and-record":{"id":"components/text-and-record","title":"Text and Data","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/text-splitters":{"id":"components/text-splitters","title":"Text Splitters","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/toolkits":{"id":"components/toolkits","title":"Toolkits","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/tools":{"id":"components/tools","title":"Tools","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/utilities":{"id":"components/utilities","title":"Utilities","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/vector-stores":{"id":"components/vector-stores","title":"Vector Stores","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"contributing/community":{"id":"contributing/community","title":"Community","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"contributing/contribute-component":{"id":"contributing/contribute-component","title":"How to Contribute Components?","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"contributing/github-issues":{"id":"contributing/github-issues","title":"GitHub Issues","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"contributing/how-contribute":{"id":"contributing/how-contribute","title":"How to Contribute?","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"contributing/telemetry":{"id":"contributing/telemetry","title":"Telemetry","description":"Our system uses anonymous telemetry to collect essential usage statistics to enhance functionality and user experience. This data helps us identify commonly used features and areas needing improvement, ensuring our development efforts align with what you need.","sidebar":"docs"},"deployment/backend-only":{"id":"deployment/backend-only","title":"Backend-only","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"deployment/docker":{"id":"deployment/docker","title":"Docker","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"deployment/gcp-deployment":{"id":"deployment/gcp-deployment","title":"Deploy on Google Cloud Platform","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"deployment/kubernetes":{"id":"deployment/kubernetes","title":"Kubernetes","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"examples/chat-memory":{"id":"examples/chat-memory","title":"Chat Memory","description":"This page may contain outdated information. It will be updated as soon as possible."},"examples/combine-text":{"id":"examples/combine-text","title":"Combine Text","description":"This page may contain outdated information. It will be updated as soon as possible."},"examples/create-record":{"id":"examples/create-record","title":"Create Data","description":"This page may contain outdated information. It will be updated as soon as possible."},"examples/pass":{"id":"examples/pass","title":"Pass","description":"This page may contain outdated information. It will be updated as soon as possible."},"examples/store-message":{"id":"examples/store-message","title":"Store Message","description":"This page may contain outdated information. It will be updated as soon as possible."},"examples/sub-flow":{"id":"examples/sub-flow","title":"Sub Flow","description":"This page may contain outdated information. It will be updated as soon as possible."},"examples/text-operator":{"id":"examples/text-operator","title":"Text Operator","description":"This page may contain outdated information. It will be updated as soon as possible."},"getting-started/install-langflow":{"id":"getting-started/install-langflow","title":"\ud83d\udce6 Install Langflow","description":"Langflow requires Python version 3.10 or greater and","sidebar":"docs"},"getting-started/new-to-llms":{"id":"getting-started/new-to-llms","title":"\ud83d\udcda New to LLMs?","description":"Large Language Models, or LLMs, are part of an exciting new world in computing.","sidebar":"docs"},"getting-started/possible-installation-issues":{"id":"getting-started/possible-installation-issues","title":"\u2757\ufe0f Common Installation Issues","description":"This is a list of possible issues that you may encounter when installing Langflow and how to solve them.","sidebar":"docs"},"getting-started/quickstart":{"id":"getting-started/quickstart","title":"\u26a1\ufe0f Quickstart","description":"This guide demonstrates how to build a basic flow and modify the prompt for different outcomes.","sidebar":"docs"},"getting-started/workspace":{"id":"getting-started/workspace","title":"\ud83c\udfa8 Langflow Workspace","description":"The Langflow Workspace Interface","sidebar":"docs"},"index":{"id":"index","title":"\ud83d\udc4b Welcome to Langflow","description":"Langflow is a new, visual framework for building multi-agent and RAG applications. It is open-source, Python-powered, fully customizable, LLM and vector store agnostic.","sidebar":"docs"},"integrations/langsmith/intro":{"id":"integrations/langsmith/intro","title":"LangSmith","description":"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, just add your LangChain API key as a Langflow environment variable and you are good to go!","sidebar":"docs"},"integrations/notion/add-content-to-page":{"id":"integrations/notion/add-content-to-page","title":"Add Content To Page","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/intro":{"id":"integrations/notion/intro","title":"Introduction to Notion in Langflow","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/list-database-properties":{"id":"integrations/notion/list-database-properties","title":"Database Properties","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/list-pages":{"id":"integrations/notion/list-pages","title":"List Pages","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/list-users":{"id":"integrations/notion/list-users","title":"User List","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/page-content-viewer":{"id":"integrations/notion/page-content-viewer","title":"Page Content","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/page-create":{"id":"integrations/notion/page-create","title":"Page Create","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/page-update":{"id":"integrations/notion/page-update","title":"Page Update","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/search":{"id":"integrations/notion/search","title":"Notion Search","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/setup":{"id":"integrations/notion/setup","title":"Setting up a Notion App","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"migration/compatibility":{"id":"migration/compatibility","title":"Compatibility with Previous Versions","description":"This page may contain outdated information. It will be updated as soon as possible."},"migration/migrating-to-one-point-zero":{"id":"migration/migrating-to-one-point-zero","title":"Migrating to Langflow 1.0: A Guide","description":"This page may contain outdated information. It will be updated as soon as possible."},"starter-projects/basic-prompting":{"id":"starter-projects/basic-prompting","title":"Basic Prompting","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"starter-projects/blog-writer":{"id":"starter-projects/blog-writer","title":"Blog Writer","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"starter-projects/document-qa":{"id":"starter-projects/document-qa","title":"Document QA","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"starter-projects/memory-chatbot":{"id":"starter-projects/memory-chatbot","title":"Memory Chatbot","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"starter-projects/vector-store-rag":{"id":"starter-projects/vector-store-rag","title":"Vector Store RAG","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"tutorials/chatprompttemplate_guide":{"id":"tutorials/chatprompttemplate_guide","title":"Build Chatbots with the System Message Component","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"tutorials/custom_components":{"id":"tutorials/custom_components","title":"Custom Components","description":"Custom Components","sidebar":"docs"},"tutorials/loading_document":{"id":"tutorials/loading_document","title":"Integrate Documents with Prompt Variables","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"tutorials/rag-with-astradb":{"id":"tutorials/rag-with-astradb","title":"\ud83c\udf1f RAG with Astra DB","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"whats-new/a-new-chapter-langflow":{"id":"whats-new/a-new-chapter-langflow","title":"1.0 - A new chapter for Langflow","description":"{t.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"category","label":"What\'s New?","collapsed":false,"items":[{"type":"link","label":"1.0 - A new chapter for Langflow","href":"/whats-new/a-new-chapter-langflow","docId":"whats-new/a-new-chapter-langflow","unlisted":false}],"collapsible":true},{"type":"category","label":"Getting Started","collapsed":false,"items":[{"type":"link","label":"\ud83d\udc4b Welcome to Langflow","href":"/","docId":"index","unlisted":false},{"type":"link","label":"\ud83d\udce6 Install Langflow","href":"/getting-started/install-langflow","docId":"getting-started/install-langflow","unlisted":false},{"type":"link","label":"\u26a1\ufe0f Quickstart","href":"/getting-started/quickstart","docId":"getting-started/quickstart","unlisted":false},{"type":"link","label":"\ud83c\udfa8 Langflow Workspace","href":"/getting-started/workspace","docId":"getting-started/workspace","unlisted":false},{"type":"link","label":"\u2757\ufe0f Common Installation Issues","href":"/getting-started/possible-installation-issues","docId":"getting-started/possible-installation-issues","unlisted":false},{"type":"link","label":"\ud83d\udcda New to LLMs?","href":"/getting-started/new-to-llms","docId":"getting-started/new-to-llms","unlisted":false}],"collapsible":true},{"type":"category","label":"Starter Projects","collapsed":false,"items":[{"type":"link","label":"Basic Prompting","href":"/starter-projects/basic-prompting","docId":"starter-projects/basic-prompting","unlisted":false},{"type":"link","label":"Blog Writer","href":"/starter-projects/blog-writer","docId":"starter-projects/blog-writer","unlisted":false},{"type":"link","label":"Document QA","href":"/starter-projects/document-qa","docId":"starter-projects/document-qa","unlisted":false},{"type":"link","label":"Memory Chatbot","href":"/starter-projects/memory-chatbot","docId":"starter-projects/memory-chatbot","unlisted":false},{"type":"link","label":"Vector Store RAG","href":"/starter-projects/vector-store-rag","docId":"starter-projects/vector-store-rag","unlisted":false}],"collapsible":true},{"type":"category","label":"Administration","collapsed":false,"items":[{"type":"link","label":"API Keys","href":"/administration/api","docId":"administration/api","unlisted":false},{"type":"link","label":"Sign Up and Sign In","href":"/administration/login","docId":"administration/login","unlisted":false},{"type":"link","label":"Command Line Interface (CLI)","href":"/administration/cli","docId":"administration/cli","unlisted":false},{"type":"link","label":"Playground","href":"/administration/playground","docId":"administration/playground","unlisted":false},{"type":"link","label":"Chat Memory","href":"/administration/memories","docId":"administration/memories","unlisted":false},{"type":"link","label":"Logs","href":"/administration/logs","docId":"administration/logs","unlisted":false},{"type":"link","label":"Collections and Projects","href":"/administration/collections-projects","docId":"administration/collections-projects","unlisted":false},{"type":"link","label":"Settings","href":"/administration/settings","docId":"administration/settings","unlisted":false},{"type":"link","label":"Global Variables","href":"/administration/global-env","docId":"administration/global-env","unlisted":false},{"type":"link","label":"Chat Widget","href":"/administration/chat-widget","docId":"administration/chat-widget","unlisted":false}],"collapsible":true},{"type":"category","label":"Components","collapsed":false,"items":[{"type":"link","label":"Inputs and Outputs","href":"/components/inputs-and-outputs","docId":"components/inputs-and-outputs","unlisted":false},{"type":"link","label":"Text and Data","href":"/components/text-and-record","docId":"components/text-and-record","unlisted":false},{"type":"link","label":"Data","href":"/components/data","docId":"components/data","unlisted":false},{"type":"link","label":"Models","href":"/components/models","docId":"components/models","unlisted":false},{"type":"link","label":"Helpers","href":"/components/helpers","docId":"components/helpers","unlisted":false},{"type":"link","label":"Vector Stores","href":"/components/vector-stores","docId":"components/vector-stores","unlisted":false},{"type":"link","label":"Embeddings","href":"/components/embeddings","docId":"components/embeddings","unlisted":false},{"type":"link","label":"Custom Components","href":"/components/custom","docId":"components/custom","unlisted":false}],"collapsible":true},{"type":"category","label":"Tutorials","collapsed":true,"items":[{"type":"link","label":"Build Chatbots with the System Message Component","href":"/tutorials/chatprompttemplate_guide","docId":"tutorials/chatprompttemplate_guide","unlisted":false},{"type":"link","label":"Custom Components","href":"/tutorials/custom_components","docId":"tutorials/custom_components","unlisted":false},{"type":"link","label":"Integrate Documents with Prompt Variables","href":"/tutorials/loading_document","docId":"tutorials/loading_document","unlisted":false},{"type":"link","label":"\ud83c\udf1f RAG with Astra DB","href":"/tutorials/rag-with-astradb","docId":"tutorials/rag-with-astradb","unlisted":false}],"collapsible":true},{"type":"category","label":"Deployment","collapsed":true,"items":[{"type":"link","label":"Docker","href":"/deployment/docker","docId":"deployment/docker","unlisted":false},{"type":"link","label":"Backend-only","href":"/deployment/backend-only","docId":"deployment/backend-only","unlisted":false},{"type":"link","label":"Kubernetes","href":"/deployment/kubernetes","docId":"deployment/kubernetes","unlisted":false},{"type":"link","label":"Deploy on Google Cloud Platform","href":"/deployment/gcp-deployment","docId":"deployment/gcp-deployment","unlisted":false}],"collapsible":true},{"type":"category","label":"Contributing","collapsed":false,"items":[{"type":"link","label":"Telemetry","href":"/contributing/telemetry","docId":"contributing/telemetry","unlisted":false},{"type":"link","label":"How to Contribute?","href":"/contributing/how-contribute","docId":"contributing/how-contribute","unlisted":false},{"type":"link","label":"GitHub Issues","href":"/contributing/github-issues","docId":"contributing/github-issues","unlisted":false},{"type":"link","label":"Community","href":"/contributing/community","docId":"contributing/community","unlisted":false},{"type":"link","label":"How to Contribute Components?","href":"/contributing/contribute-component","docId":"contributing/contribute-component","unlisted":false}],"collapsible":true},{"type":"category","label":"Integrations","collapsed":false,"items":[{"type":"link","label":"LangSmith","href":"/integrations/langsmith/intro","docId":"integrations/langsmith/intro","unlisted":false},{"type":"category","label":"Notion","items":[{"type":"link","label":"Introduction to Notion in Langflow","href":"/integrations/notion/intro","docId":"integrations/notion/intro","unlisted":false},{"type":"link","label":"Setting up a Notion App","href":"/integrations/notion/setup","docId":"integrations/notion/setup","unlisted":false},{"type":"link","label":"Notion Search","href":"/integrations/notion/search","docId":"integrations/notion/search","unlisted":false},{"type":"link","label":"Database Properties","href":"/integrations/notion/list-database-properties","docId":"integrations/notion/list-database-properties","unlisted":false},{"type":"link","label":"List Pages","href":"/integrations/notion/list-pages","docId":"integrations/notion/list-pages","unlisted":false},{"type":"link","label":"User List","href":"/integrations/notion/list-users","docId":"integrations/notion/list-users","unlisted":false},{"type":"link","label":"Page Create","href":"/integrations/notion/page-create","docId":"integrations/notion/page-create","unlisted":false},{"type":"link","label":"Add Content To Page","href":"/integrations/notion/add-content-to-page","docId":"integrations/notion/add-content-to-page","unlisted":false},{"type":"link","label":"Page Update","href":"/integrations/notion/page-update","docId":"integrations/notion/page-update","unlisted":false},{"type":"link","label":"Page Content","href":"/integrations/notion/page-content-viewer","docId":"integrations/notion/page-content-viewer","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsible":true}]},"docs":{"administration/api":{"id":"administration/api","title":"API Keys","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/chat-widget":{"id":"administration/chat-widget","title":"Chat Widget","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/cli":{"id":"administration/cli","title":"Command Line Interface (CLI)","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/collections-projects":{"id":"administration/collections-projects","title":"Collections and Projects","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/global-env":{"id":"administration/global-env","title":"Global Variables","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/login":{"id":"administration/login","title":"Sign Up and Sign In","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/logs":{"id":"administration/logs","title":"Logs","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/memories":{"id":"administration/memories","title":"Chat Memory","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/playground":{"id":"administration/playground","title":"Playground","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"administration/prompt-customization":{"id":"administration/prompt-customization","title":"Prompt Customization","description":"This page may contain outdated information. It will be updated as soon as possible."},"administration/settings":{"id":"administration/settings","title":"Settings","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/agents":{"id":"components/agents","title":"Agents","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/chains":{"id":"components/chains","title":"Chains","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/custom":{"id":"components/custom","title":"Custom Components","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/data":{"id":"components/data","title":"Data","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/embeddings":{"id":"components/embeddings","title":"Embeddings","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/experimental":{"id":"components/experimental","title":"Experimental","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/helpers":{"id":"components/helpers","title":"Helpers","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/inputs-and-outputs":{"id":"components/inputs-and-outputs","title":"Inputs and Outputs","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/loaders":{"id":"components/loaders","title":"Loaders","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/memories":{"id":"components/memories","title":"Memories","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/model_specs":{"id":"components/model_specs","title":"Large Language Models (LLMs)","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/models":{"id":"components/models","title":"Models","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/retrievers":{"id":"components/retrievers","title":"Retrievers","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/text-and-record":{"id":"components/text-and-record","title":"Text and Data","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"components/text-splitters":{"id":"components/text-splitters","title":"Text Splitters","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/toolkits":{"id":"components/toolkits","title":"Toolkits","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/tools":{"id":"components/tools","title":"Tools","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/utilities":{"id":"components/utilities","title":"Utilities","description":"This page may contain outdated information. It will be updated as soon as possible."},"components/vector-stores":{"id":"components/vector-stores","title":"Vector Stores","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"contributing/community":{"id":"contributing/community","title":"Community","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"contributing/contribute-component":{"id":"contributing/contribute-component","title":"How to Contribute Components?","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"contributing/github-issues":{"id":"contributing/github-issues","title":"GitHub Issues","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"contributing/how-contribute":{"id":"contributing/how-contribute","title":"How to Contribute?","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"contributing/telemetry":{"id":"contributing/telemetry","title":"Telemetry","description":"Our system uses anonymous telemetry to collect essential usage statistics to enhance functionality and user experience. This data helps us identify commonly used features and areas needing improvement, ensuring our development efforts align with what you need.","sidebar":"docs"},"deployment/backend-only":{"id":"deployment/backend-only","title":"Backend-only","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"deployment/docker":{"id":"deployment/docker","title":"Docker","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"deployment/gcp-deployment":{"id":"deployment/gcp-deployment","title":"Deploy on Google Cloud Platform","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"deployment/kubernetes":{"id":"deployment/kubernetes","title":"Kubernetes","description":"This guide will help you get LangFlow up and running in Kubernetes cluster, including the following steps:","sidebar":"docs"},"examples/chat-memory":{"id":"examples/chat-memory","title":"Chat Memory","description":"This page may contain outdated information. It will be updated as soon as possible."},"examples/combine-text":{"id":"examples/combine-text","title":"Combine Text","description":"This page may contain outdated information. It will be updated as soon as possible."},"examples/create-record":{"id":"examples/create-record","title":"Create Data","description":"This page may contain outdated information. It will be updated as soon as possible."},"examples/pass":{"id":"examples/pass","title":"Pass","description":"This page may contain outdated information. It will be updated as soon as possible."},"examples/store-message":{"id":"examples/store-message","title":"Store Message","description":"This page may contain outdated information. It will be updated as soon as possible."},"examples/sub-flow":{"id":"examples/sub-flow","title":"Sub Flow","description":"This page may contain outdated information. It will be updated as soon as possible."},"examples/text-operator":{"id":"examples/text-operator","title":"Text Operator","description":"This page may contain outdated information. It will be updated as soon as possible."},"getting-started/install-langflow":{"id":"getting-started/install-langflow","title":"\ud83d\udce6 Install Langflow","description":"Langflow requires Python version 3.10 or greater and","sidebar":"docs"},"getting-started/new-to-llms":{"id":"getting-started/new-to-llms","title":"\ud83d\udcda New to LLMs?","description":"Large Language Models, or LLMs, are part of an exciting new world in computing.","sidebar":"docs"},"getting-started/possible-installation-issues":{"id":"getting-started/possible-installation-issues","title":"\u2757\ufe0f Common Installation Issues","description":"This is a list of possible issues that you may encounter when installing Langflow and how to solve them.","sidebar":"docs"},"getting-started/quickstart":{"id":"getting-started/quickstart","title":"\u26a1\ufe0f Quickstart","description":"This guide demonstrates how to build a basic flow and modify the prompt for different outcomes.","sidebar":"docs"},"getting-started/workspace":{"id":"getting-started/workspace","title":"\ud83c\udfa8 Langflow Workspace","description":"The Langflow Workspace Interface","sidebar":"docs"},"index":{"id":"index","title":"\ud83d\udc4b Welcome to Langflow","description":"Langflow is a new, visual framework for building multi-agent and RAG applications. It is open-source, Python-powered, fully customizable, LLM and vector store agnostic.","sidebar":"docs"},"integrations/langsmith/intro":{"id":"integrations/langsmith/intro","title":"LangSmith","description":"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, just add your LangChain API key as a Langflow environment variable and you are good to go!","sidebar":"docs"},"integrations/notion/add-content-to-page":{"id":"integrations/notion/add-content-to-page","title":"Add Content To Page","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/intro":{"id":"integrations/notion/intro","title":"Introduction to Notion in Langflow","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/list-database-properties":{"id":"integrations/notion/list-database-properties","title":"Database Properties","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/list-pages":{"id":"integrations/notion/list-pages","title":"List Pages","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/list-users":{"id":"integrations/notion/list-users","title":"User List","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/page-content-viewer":{"id":"integrations/notion/page-content-viewer","title":"Page Content","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/page-create":{"id":"integrations/notion/page-create","title":"Page Create","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/page-update":{"id":"integrations/notion/page-update","title":"Page Update","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/search":{"id":"integrations/notion/search","title":"Notion Search","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"integrations/notion/setup":{"id":"integrations/notion/setup","title":"Setting up a Notion App","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"migration/compatibility":{"id":"migration/compatibility","title":"Compatibility with Previous Versions","description":"This page may contain outdated information. It will be updated as soon as possible."},"migration/migrating-to-one-point-zero":{"id":"migration/migrating-to-one-point-zero","title":"Migrating to Langflow 1.0: A Guide","description":"This page may contain outdated information. It will be updated as soon as possible."},"starter-projects/basic-prompting":{"id":"starter-projects/basic-prompting","title":"Basic Prompting","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"starter-projects/blog-writer":{"id":"starter-projects/blog-writer","title":"Blog Writer","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"starter-projects/document-qa":{"id":"starter-projects/document-qa","title":"Document QA","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"starter-projects/memory-chatbot":{"id":"starter-projects/memory-chatbot","title":"Memory Chatbot","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"starter-projects/vector-store-rag":{"id":"starter-projects/vector-store-rag","title":"Vector Store RAG","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"tutorials/chatprompttemplate_guide":{"id":"tutorials/chatprompttemplate_guide","title":"Build Chatbots with the System Message Component","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"tutorials/custom_components":{"id":"tutorials/custom_components","title":"Custom Components","description":"Custom Components","sidebar":"docs"},"tutorials/loading_document":{"id":"tutorials/loading_document","title":"Integrate Documents with Prompt Variables","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"tutorials/rag-with-astradb":{"id":"tutorials/rag-with-astradb","title":"\ud83c\udf1f RAG with Astra DB","description":"This page may contain outdated information. It will be updated as soon as possible.","sidebar":"docs"},"whats-new/a-new-chapter-langflow":{"id":"whats-new/a-new-chapter-langflow","title":"1.0 - A new chapter for Langflow","description":"{n.r(o),n.d(o,{CH:()=>h,assets:()=>a,chCodeConfig:()=>g,contentTitle:()=>l,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>p});n(6540);var i=n(4848),r=n(8453),s=n(4754),t=n(7293);const c={},l="Docker",d={id:"deployment/docker",title:"Docker",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/deployment/docker.mdx",sourceDirName:"deployment",slug:"/deployment/docker",permalink:"/deployment/docker",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"\ud83c\udf1f RAG with Astra DB",permalink:"/tutorials/rag-with-astradb"},next:{title:"Backend-only",permalink:"/deployment/backend-only"}},a={},h={annotations:s.hk,Code:s.Cy},g={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Clone repo and build Docker container",id:"clone-repo-and-build-docker-container",level:2},{value:"Docker Compose configuration",id:"docker-compose-configuration",level:2},{value:"LangFlow service",id:"langflow-service",level:3},{value:"PostgreSQL service",id:"postgresql-service",level:3},{value:"Switch to a specific LangFlow version",id:"switch-to-a-specific-langflow-version",level:2}];function u(e){const o=Object.assign({h1:"h1",p:"p",h2:"h2",ul:"ul",li:"li",ol:"ol",code:"code",a:"a",h3:"h3"},(0,r.RP)(),e.components);return h||x("CH",!1),h.Code||x("CH.Code",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.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","\n",(0,i.jsx)(o.h1,{id:"docker",children:"Docker"}),"\n",(0,i.jsx)(t.A,{type:"warning",title:"warning",children:(0,i.jsx)(o.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,i.jsx)(o.p,{children:"This guide will help you get LangFlow up and running using Docker and Docker Compose."}),"\n",(0,i.jsx)(o.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(o.ul,{children:["\n",(0,i.jsx)(o.li,{children:"Docker"}),"\n",(0,i.jsx)(o.li,{children:"Docker Compose"}),"\n"]}),"\n",(0,i.jsx)(o.h2,{id:"clone-repo-and-build-docker-container",children:"Clone repo and build Docker container"}),"\n",(0,i.jsxs)(o.ol,{children:["\n",(0,i.jsxs)(o.li,{children:["\n",(0,i.jsx)(o.p,{children:"Clone the LangFlow repository:"}),"\n",(0,i.jsx)(h.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"git ",props:{style:{color:"#FFA657"}}},{content:"clone https://github.com/langflow-ai/langflow.git",props:{style:{color:"#A5D6FF"}}}]}],lang:"sh"},annotations:[]}]}),"\n"]}),"\n",(0,i.jsxs)(o.li,{children:["\n",(0,i.jsxs)(o.p,{children:["Navigate to the ",(0,i.jsx)(o.code,{children:"docker_example"})," directory:"]}),"\n",(0,i.jsx)(h.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"cd ",props:{style:{color:"#79C0FF"}}},{content:"langflow/docker_example",props:{style:{color:"#A5D6FF"}}}]}],lang:"sh"},annotations:[]}]}),"\n"]}),"\n",(0,i.jsxs)(o.li,{children:["\n",(0,i.jsx)(o.p,{children:"Run the Docker Compose file:"}),"\n",(0,i.jsx)(h.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"compose up",props:{style:{color:"#A5D6FF"}}}]}],lang:"sh"},annotations:[]}]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(o.p,{children:["LangFlow will now be accessible at ",(0,i.jsx)(o.a,{href:"http://localhost:7860/",children:"http://localhost:7860/"}),"."]}),"\n",(0,i.jsx)(o.h2,{id:"docker-compose-configuration",children:"Docker Compose configuration"}),"\n",(0,i.jsxs)(o.p,{children:["The Docker Compose configuration spins up two services: ",(0,i.jsx)(o.code,{children:"langflow"})," and ",(0,i.jsx)(o.code,{children:"postgres"}),"."]}),"\n",(0,i.jsx)(o.h3,{id:"langflow-service",children:"LangFlow service"}),"\n",(0,i.jsxs)(o.p,{children:["The ",(0,i.jsx)(o.code,{children:"langflow"})," service uses the ",(0,i.jsx)(o.code,{children:"langflowai/langflow:latest"})," Docker image and exposes port 7860. It depends on the ",(0,i.jsx)(o.code,{children:"postgres"})," service."]}),"\n",(0,i.jsx)(o.p,{children:"Environment variables:"}),"\n",(0,i.jsxs)(o.ul,{children:["\n",(0,i.jsxs)(o.li,{children:[(0,i.jsx)(o.code,{children:"LANGFLOW_DATABASE_URL"}),": The connection string for the PostgreSQL database."]}),"\n",(0,i.jsxs)(o.li,{children:[(0,i.jsx)(o.code,{children:"LANGFLOW_CONFIG_DIR"}),": The directory where LangFlow stores logs, file storage, monitor data, and secret keys."]}),"\n"]}),"\n",(0,i.jsx)(o.p,{children:"Volumes:"}),"\n",(0,i.jsxs)(o.ul,{children:["\n",(0,i.jsxs)(o.li,{children:[(0,i.jsx)(o.code,{children:"langflow-data"}),": This volume is mapped to ",(0,i.jsx)(o.code,{children:"/var/lib/langflow"})," in the container."]}),"\n"]}),"\n",(0,i.jsx)(o.h3,{id:"postgresql-service",children:"PostgreSQL service"}),"\n",(0,i.jsxs)(o.p,{children:["The ",(0,i.jsx)(o.code,{children:"postgres"})," service uses the ",(0,i.jsx)(o.code,{children:"postgres:16"})," Docker image and exposes port 5432."]}),"\n",(0,i.jsx)(o.p,{children:"Environment variables:"}),"\n",(0,i.jsxs)(o.ul,{children:["\n",(0,i.jsxs)(o.li,{children:[(0,i.jsx)(o.code,{children:"POSTGRES_USER"}),": The username for the PostgreSQL database."]}),"\n",(0,i.jsxs)(o.li,{children:[(0,i.jsx)(o.code,{children:"POSTGRES_PASSWORD"}),": The password for the PostgreSQL database."]}),"\n",(0,i.jsxs)(o.li,{children:[(0,i.jsx)(o.code,{children:"POSTGRES_DB"}),": The name of the PostgreSQL database."]}),"\n"]}),"\n",(0,i.jsx)(o.p,{children:"Volumes:"}),"\n",(0,i.jsxs)(o.ul,{children:["\n",(0,i.jsxs)(o.li,{children:[(0,i.jsx)(o.code,{children:"langflow-postgres"}),": This volume is mapped to ",(0,i.jsx)(o.code,{children:"/var/lib/postgresql/data"})," in the container."]}),"\n"]}),"\n",(0,i.jsx)(o.h2,{id:"switch-to-a-specific-langflow-version",children:"Switch to a specific LangFlow version"}),"\n",(0,i.jsxs)(o.p,{children:["If you want to use a specific version of LangFlow, you can modify the ",(0,i.jsx)(o.code,{children:"image"})," field under the ",(0,i.jsx)(o.code,{children:"langflow"})," service in the Docker Compose file. For example, to use version 1.0-alpha, change ",(0,i.jsx)(o.code,{children:"langflowai/langflow:latest"})," to ",(0,i.jsx)(o.code,{children:"langflowai/langflow:1.0-alpha"}),"."]})]})}const f=function(e={}){const{wrapper:o}=Object.assign({},(0,r.RP)(),e.components);return o?(0,i.jsx)(o,Object.assign({},e,{children:(0,i.jsx)(u,e)})):u(e)};function x(e,o){throw new Error("Expected "+(o?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/2851112f.3a5dbd2d.js b/assets/js/2851112f.3a5dbd2d.js
new file mode 100644
index 0000000000..787b7868c1
--- /dev/null
+++ b/assets/js/2851112f.3a5dbd2d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5761],{7293:(e,n,o)=>{o.d(n,{A:()=>B});var i=o(6540),t=o(4848);function c(e){const{mdxAdmonitionTitle:n,rest:o}=function(e){const n=i.Children.toArray(e),o=n.find((e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),c=n.filter((e=>e!==o)),r=o?.props.children;return{mdxAdmonitionTitle:r,rest:c.length>0?(0,t.jsx)(t.Fragment,{children:c}):null}}(e.children),c=e.title??n;return{...e,...c&&{title:c},children:o}}var r=o(8215),s=o(1312),l=o(7559);const d={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function a(e){let{type:n,className:o,children:i}=e;return(0,t.jsx)("div",{className:(0,r.A)(l.G.common.admonition,l.G.common.admonitionType(n),d.admonition,o),children:i})}function h(e){let{icon:n,title:o}=e;return(0,t.jsxs)("div",{className:d.admonitionHeading,children:[(0,t.jsx)("span",{className:d.admonitionIcon,children:n}),o]})}function u(e){let{children:n}=e;return n?(0,t.jsx)("div",{className:d.admonitionContent,children:n}):null}function p(e){const{type:n,icon:o,title:i,children:c,className:r}=e;return(0,t.jsxs)(a,{type:n,className:r,children:[i||o?(0,t.jsx)(h,{title:i,icon:o}):null,(0,t.jsx)(u,{children:c})]})}function g(e){return(0,t.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const m={icon:(0,t.jsx)(g,{}),title:(0,t.jsx)(s.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function f(e){return(0,t.jsx)(p,{...m,...e,className:(0,r.A)("alert alert--secondary",e.className),children:e.children})}function x(e){return(0,t.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const j={icon:(0,t.jsx)(x,{}),title:(0,t.jsx)(s.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(e){return(0,t.jsx)(p,{...j,...e,className:(0,r.A)("alert alert--success",e.className),children:e.children})}function w(e){return(0,t.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const b={icon:(0,t.jsx)(w,{}),title:(0,t.jsx)(s.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function k(e){return(0,t.jsx)(p,{...b,...e,className:(0,r.A)("alert alert--info",e.className),children:e.children})}function y(e){return(0,t.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const C={icon:(0,t.jsx)(y,{}),title:(0,t.jsx)(s.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function F(e){return(0,t.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const A={icon:(0,t.jsx)(F,{}),title:(0,t.jsx)(s.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const T={icon:(0,t.jsx)(y,{}),title:(0,t.jsx)(s.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const N={...{note:f,tip:v,info:k,warning:function(e){return(0,t.jsx)(p,{...C,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,t.jsx)(p,{...A,...e,className:(0,r.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,t.jsx)(f,{title:"secondary",...e}),important:e=>(0,t.jsx)(k,{title:"important",...e}),success:e=>(0,t.jsx)(v,{title:"success",...e}),caution:function(e){return(0,t.jsx)(p,{...T,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})}}};var D=o(6763);function B(e){const n=c(e),o=(i=n.type,N[i]||(D.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),N.info));var i;return(0,t.jsx)(o,{...n})}},3411:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>h,assets:()=>a,chCodeConfig:()=>u,contentTitle:()=>l,default:()=>m,frontMatter:()=>s,metadata:()=>d,toc:()=>p});o(6540);var i=o(4848),t=o(8453),c=o(4754),r=o(7293);const s={},l="Docker",d={id:"deployment/docker",title:"Docker",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/deployment/docker.mdx",sourceDirName:"deployment",slug:"/deployment/docker",permalink:"/deployment/docker",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"\ud83c\udf1f RAG with Astra DB",permalink:"/tutorials/rag-with-astradb"},next:{title:"Backend-only",permalink:"/deployment/backend-only"}},a={},h={annotations:c.hk,Code:c.Cy},u={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Clone repo and build Docker container",id:"clone-repo-and-build-docker-container",level:2},{value:"Docker Compose configuration",id:"docker-compose-configuration",level:2},{value:"LangFlow service",id:"langflow-service",level:3},{value:"PostgreSQL service",id:"postgresql-service",level:3},{value:"Switch to a specific LangFlow version",id:"switch-to-a-specific-langflow-version",level:2}];function g(e){const n=Object.assign({h1:"h1",p:"p",h2:"h2",ul:"ul",li:"li",ol:"ol",code:"code",a:"a",h3:"h3"},(0,t.RP)(),e.components);return h||f("CH",!1),h.Code||f("CH.Code",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.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","\n",(0,i.jsx)(n.h1,{id:"docker",children:"Docker"}),"\n",(0,i.jsx)(r.A,{type:"warning",title:"warning",children:(0,i.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,i.jsx)(n.p,{children:"This guide will help you get LangFlow up and running using Docker and Docker Compose."}),"\n",(0,i.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Docker"}),"\n",(0,i.jsx)(n.li,{children:"Docker Compose"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"clone-repo-and-build-docker-container",children:"Clone repo and build Docker container"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Clone the LangFlow repository:"}),"\n",(0,i.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"git ",props:{style:{color:"#FFA657"}}},{content:"clone https://github.com/langflow-ai/langflow.git",props:{style:{color:"#A5D6FF"}}}]}],lang:"sh"},annotations:[]}]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Navigate to the ",(0,i.jsx)(n.code,{children:"docker_example"})," directory:"]}),"\n",(0,i.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"cd ",props:{style:{color:"#79C0FF"}}},{content:"langflow/docker_example",props:{style:{color:"#A5D6FF"}}}]}],lang:"sh"},annotations:[]}]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Run the Docker Compose file:"}),"\n",(0,i.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"compose up",props:{style:{color:"#A5D6FF"}}}]}],lang:"sh"},annotations:[]}]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["LangFlow will now be accessible at ",(0,i.jsx)(n.a,{href:"http://localhost:7860/",children:"http://localhost:7860/"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"docker-compose-configuration",children:"Docker Compose configuration"}),"\n",(0,i.jsxs)(n.p,{children:["The Docker Compose configuration spins up two services: ",(0,i.jsx)(n.code,{children:"langflow"})," and ",(0,i.jsx)(n.code,{children:"postgres"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"langflow-service",children:"LangFlow service"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"langflow"})," service uses the ",(0,i.jsx)(n.code,{children:"langflowai/langflow:latest"})," Docker image and exposes port 7860. It depends on the ",(0,i.jsx)(n.code,{children:"postgres"})," service."]}),"\n",(0,i.jsx)(n.p,{children:"Environment variables:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"LANGFLOW_DATABASE_URL"}),": The connection string for the PostgreSQL database."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"LANGFLOW_CONFIG_DIR"}),": The directory where LangFlow stores logs, file storage, monitor data, and secret keys."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Volumes:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"langflow-data"}),": This volume is mapped to ",(0,i.jsx)(n.code,{children:"/var/lib/langflow"})," in the container."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"postgresql-service",children:"PostgreSQL service"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"postgres"})," service uses the ",(0,i.jsx)(n.code,{children:"postgres:16"})," Docker image and exposes port 5432."]}),"\n",(0,i.jsx)(n.p,{children:"Environment variables:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"POSTGRES_USER"}),": The username for the PostgreSQL database."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"POSTGRES_PASSWORD"}),": The password for the PostgreSQL database."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"POSTGRES_DB"}),": The name of the PostgreSQL database."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Volumes:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"langflow-postgres"}),": This volume is mapped to ",(0,i.jsx)(n.code,{children:"/var/lib/postgresql/data"})," in the container."]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"switch-to-a-specific-langflow-version",children:"Switch to a specific LangFlow version"}),"\n",(0,i.jsxs)(n.p,{children:["If you want to use a specific version of LangFlow, you can modify the ",(0,i.jsx)(n.code,{children:"image"})," field under the ",(0,i.jsx)(n.code,{children:"langflow"})," service in the Docker Compose file. For example, to use version 1.0-alpha, change ",(0,i.jsx)(n.code,{children:"langflowai/langflow:latest"})," to ",(0,i.jsx)(n.code,{children:"langflowai/langflow:1.0-alpha"}),"."]})]})}const m=function(e={}){const{wrapper:n}=Object.assign({},(0,t.RP)(),e.components);return n?(0,i.jsx)(n,Object.assign({},e,{children:(0,i.jsx)(g,e)})):g(e)};function f(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/30d90be0.1f877954.js b/assets/js/30d90be0.1f877954.js
new file mode 100644
index 0000000000..96109c93db
--- /dev/null
+++ b/assets/js/30d90be0.1f877954.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4558],{7293:(e,n,t)=>{t.d(n,{A:()=>T});var o=t(6540),r=t(4848);function i(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=o.Children.toArray(e),t=n.find((e=>o.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),i=n.filter((e=>e!==t)),s=t?.props.children;return{mdxAdmonitionTitle:s,rest:i.length>0?(0,r.jsx)(r.Fragment,{children:i}):null}}(e.children),i=e.title??n;return{...e,...i&&{title:i},children:t}}var s=t(8215),c=t(1312),l=t(7559);const d={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function a(e){let{type:n,className:t,children:o}=e;return(0,r.jsx)("div",{className:(0,s.A)(l.G.common.admonition,l.G.common.admonitionType(n),d.admonition,t),children:o})}function h(e){let{icon:n,title:t}=e;return(0,r.jsxs)("div",{className:d.admonitionHeading,children:[(0,r.jsx)("span",{className:d.admonitionIcon,children:n}),t]})}function u(e){let{children:n}=e;return n?(0,r.jsx)("div",{className:d.admonitionContent,children:n}):null}function p(e){const{type:n,icon:t,title:o,children:i,className:s}=e;return(0,r.jsxs)(a,{type:n,className:s,children:[o||t?(0,r.jsx)(h,{title:o,icon:t}):null,(0,r.jsx)(u,{children:i})]})}function g(e){return(0,r.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const m={icon:(0,r.jsx)(g,{}),title:(0,r.jsx)(c.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function f(e){return(0,r.jsx)(p,{...m,...e,className:(0,s.A)("alert alert--secondary",e.className),children:e.children})}function j(e){return(0,r.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const x={icon:(0,r.jsx)(j,{}),title:(0,r.jsx)(c.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function b(e){return(0,r.jsx)(p,{...x,...e,className:(0,s.A)("alert alert--success",e.className),children:e.children})}function v(e){return(0,r.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,r.jsx)(v,{}),title:(0,r.jsx)(c.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function y(e){return(0,r.jsx)(p,{...w,...e,className:(0,s.A)("alert alert--info",e.className),children:e.children})}function k(e){return(0,r.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const A={icon:(0,r.jsx)(k,{}),title:(0,r.jsx)(c.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function C(e){return(0,r.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const B={icon:(0,r.jsx)(C,{}),title:(0,r.jsx)(c.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const F={icon:(0,r.jsx)(k,{}),title:(0,r.jsx)(c.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const N={...{note:f,tip:b,info:y,warning:function(e){return(0,r.jsx)(p,{...A,...e,className:(0,s.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,r.jsx)(p,{...B,...e,className:(0,s.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,r.jsx)(f,{title:"secondary",...e}),important:e=>(0,r.jsx)(y,{title:"important",...e}),success:e=>(0,r.jsx)(b,{title:"success",...e}),caution:function(e){return(0,r.jsx)(p,{...F,...e,className:(0,s.A)("alert alert--warning",e.className),children:e.children})}}};var D=t(6763);function T(e){const n=i(e),t=(o=n.type,N[o]||(D.warn(`No admonition component found for admonition type "${o}". Using Info as fallback.`),N.info));var o;return(0,r.jsx)(t,{...n})}},7533:(e,n,t)=>{t.d(n,{A:()=>c});var o=t(6540),r=t(1122),i=t(6025),s=t(4848);const c=e=>{let{alt:n,sources:t,style:c}=e;const[l,d]=(0,o.useState)(!1),a=e=>{"Escape"===e.key&&d(!1)};(0,o.useEffect)((()=>(l?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[l]);return(0,s.jsx)("div",{className:"zoomable-image "+(l?"fullscreen":""),onClick:()=>{d(!l)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...c},children:(0,s.jsx)(r.A,{className:"zoomable-image-inner",alt:n,sources:{light:(0,i.Ay)(t.light),dark:(0,i.Ay)(t.dark)}})})}},8674:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>u,assets:()=>h,chCodeConfig:()=>p,contentTitle:()=>d,default:()=>f,frontMatter:()=>l,metadata:()=>a,toc:()=>g});t(6540);var o=t(4848),r=t(8453),i=t(4754),s=(t(1122),t(6025),t(7533)),c=t(7293);const l={},d="Blog Writer",a={id:"starter-projects/blog-writer",title:"Blog Writer",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/starter-projects/blog-writer.mdx",sourceDirName:"starter-projects",slug:"/starter-projects/blog-writer",permalink:"/starter-projects/blog-writer",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Basic Prompting",permalink:"/starter-projects/basic-prompting"},next:{title:"Document QA",permalink:"/starter-projects/document-qa"}},h={},u={annotations:i.hk,Code:i.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},g=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Create the Blog Writer project",id:"create-the-blog-writer-project",level:2},{value:"Run the Blog Writer flow",id:"run-the-blog-writer-flow",level:2}];function m(e){const n=Object.assign({h1:"h1",p:"p",h2:"h2",ul:"ul",li:"li",a:"a",ol:"ol",strong:"strong",code:"code"},(0,r.RP)(),e.components);return u||j("CH",!1),u.Code||j("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.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","\n",(0,o.jsx)(n.h1,{id:"blog-writer",children:"Blog Writer"}),"\n",(0,o.jsx)(c.A,{type:"warning",title:"warning",children:(0,o.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,o.jsx)(n.p,{children:"Build a blog writer with OpenAI that uses URLs for reference content."}),"\n",(0,o.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.a,{href:"../getting-started/install-langflow",children:"Langflow installed and running"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.a,{href:"https://platform.openai.com",children:"OpenAI API key created"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"create-the-blog-writer-project",children:"Create the Blog Writer project"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["From the Langflow dashboard, click ",(0,o.jsx)(n.strong,{children:"New Project"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:["Select ",(0,o.jsx)(n.strong,{children:"Blog Writer"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:["The ",(0,o.jsx)(n.strong,{children:"Blog Writer"})," flow is created."]}),"\n"]}),"\n",(0,o.jsx)(s.A,{alt:"Docusaurus themed image",sources:{light:"img/blog-writer.png",dark:"img/blog-writer.png"},style:{width:"80%",margin:"20px auto"}}),"\n",(0,o.jsxs)(n.p,{children:["This flow creates a one-shot prompt flow with ",(0,o.jsx)(n.strong,{children:"Prompt"}),", ",(0,o.jsx)(n.strong,{children:"OpenAI"}),", and ",(0,o.jsx)(n.strong,{children:"Chat Output"})," components, and augments the flow with reference content and instructions from the ",(0,o.jsx)(n.strong,{children:"URL"})," and ",(0,o.jsx)(n.strong,{children:"Instructions"})," components."]}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.strong,{children:"Prompt"})," component's default ",(0,o.jsx)(n.strong,{children:"Template"})," field looks like this:"]}),"\n",(0,o.jsx)(u.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Reference ",props:{style:{color:"#FFA657"}}},{content:"1:",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:"reference_1}",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"---",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"Reference ",props:{style:{color:"#FFA657"}}},{content:"2:",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:"reference_2}",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"---",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:"instructions}",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"Blog:",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.code,{children:"{instructions}"})," value is received from the ",(0,o.jsx)(n.strong,{children:"Value"})," field of the ",(0,o.jsx)(n.strong,{children:"Instructions"})," component.\nThe ",(0,o.jsx)(n.code,{children:"reference_1"})," and ",(0,o.jsx)(n.code,{children:"reference_2"})," values are received from the ",(0,o.jsx)(n.strong,{children:"URL"})," fields of the ",(0,o.jsx)(n.strong,{children:"URL"})," components."]}),"\n",(0,o.jsxs)(n.ol,{start:"4",children:["\n",(0,o.jsxs)(n.li,{children:["To create an environment variable for the ",(0,o.jsx)(n.strong,{children:"OpenAI"})," component, in the ",(0,o.jsx)(n.strong,{children:"OpenAI API Key"})," field, click the ",(0,o.jsx)(n.strong,{children:"Globe"})," button, and then click ",(0,o.jsx)(n.strong,{children:"Add New Variable"}),".","\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["In the ",(0,o.jsx)(n.strong,{children:"Variable Name"})," field, enter ",(0,o.jsx)(n.code,{children:"openai_api_key"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:["In the ",(0,o.jsx)(n.strong,{children:"Value"})," field, paste your OpenAI API Key (",(0,o.jsx)(n.code,{children:"sk-..."}),")."]}),"\n",(0,o.jsxs)(n.li,{children:["Click ",(0,o.jsx)(n.strong,{children:"Save Variable"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"run-the-blog-writer-flow",children:"Run the Blog Writer flow"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["Click the ",(0,o.jsx)(n.strong,{children:"Run"})," button.\nThe ",(0,o.jsx)(n.strong,{children:"Interaction Panel"})," opens, where you can run your one-shot flow."]}),"\n",(0,o.jsxs)(n.li,{children:["Click the ",(0,o.jsx)(n.strong,{children:"Lighting Bolt"})," icon to run your flow."]}),"\n",(0,o.jsxs)(n.li,{children:["The ",(0,o.jsx)(n.strong,{children:"OpenAI"})," component constructs a blog post with the ",(0,o.jsx)(n.strong,{children:"URL"})," items as context.\nThe default ",(0,o.jsx)(n.strong,{children:"URL"})," values are for web pages at ",(0,o.jsx)(n.code,{children:"promptingguide.ai"}),", so your blog post will be about prompting LLMs."]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["To write about something different, change the values in the ",(0,o.jsx)(n.strong,{children:"URL"})," components, and see what the LLM constructs."]})]})}const f=function(e={}){const{wrapper:n}=Object.assign({},(0,r.RP)(),e.components);return n?(0,o.jsx)(n,Object.assign({},e,{children:(0,o.jsx)(m,e)})):m(e)};function j(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/30d90be0.1f953139.js b/assets/js/30d90be0.1f953139.js
deleted file mode 100644
index a55fb9f6a8..0000000000
--- a/assets/js/30d90be0.1f953139.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4558],{7533:(e,t,n)=>{n.d(t,{A:()=>i});var o=n(6540),r=n(1122),s=n(6025),c=n(4848);const i=e=>{let{alt:t,sources:n,style:i}=e;const[l,d]=(0,o.useState)(!1),a=e=>{"Escape"===e.key&&d(!1)};(0,o.useEffect)((()=>(l?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[l]);return(0,c.jsx)("div",{className:"zoomable-image "+(l?"fullscreen":""),onClick:()=>{d(!l)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...i},children:(0,c.jsx)(r.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,s.Ay)(n.light),dark:(0,s.Ay)(n.dark)}})})}},8674:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>p,assets:()=>h,chCodeConfig:()=>g,contentTitle:()=>d,default:()=>f,frontMatter:()=>l,metadata:()=>a,toc:()=>u});n(6540);var o=n(4848),r=n(8453),s=n(4754),c=(n(1122),n(6025),n(7533)),i=n(7293);const l={},d="Blog Writer",a={id:"starter-projects/blog-writer",title:"Blog Writer",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/starter-projects/blog-writer.mdx",sourceDirName:"starter-projects",slug:"/starter-projects/blog-writer",permalink:"/starter-projects/blog-writer",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Basic Prompting",permalink:"/starter-projects/basic-prompting"},next:{title:"Document QA",permalink:"/starter-projects/document-qa"}},h={},p={annotations:s.hk,Code:s.Cy},g={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Create the Blog Writer project",id:"create-the-blog-writer-project",level:2},{value:"Run the Blog Writer flow",id:"run-the-blog-writer-flow",level:2}];function j(e){const t=Object.assign({h1:"h1",p:"p",h2:"h2",ul:"ul",li:"li",a:"a",ol:"ol",strong:"strong",code:"code"},(0,r.RP)(),e.components);return p||x("CH",!1),p.Code||x("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.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","\n",(0,o.jsx)(t.h1,{id:"blog-writer",children:"Blog Writer"}),"\n",(0,o.jsx)(i.A,{type:"warning",title:"warning",children:(0,o.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,o.jsx)(t.p,{children:"Build a blog writer with OpenAI that uses URLs for reference content."}),"\n",(0,o.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"../getting-started/install-langflow",children:"Langflow installed and running"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"https://platform.openai.com",children:"OpenAI API key created"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"create-the-blog-writer-project",children:"Create the Blog Writer project"}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["From the Langflow dashboard, click ",(0,o.jsx)(t.strong,{children:"New Project"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Select ",(0,o.jsx)(t.strong,{children:"Blog Writer"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["The ",(0,o.jsx)(t.strong,{children:"Blog Writer"})," flow is created."]}),"\n"]}),"\n",(0,o.jsx)(c.A,{alt:"Docusaurus themed image",sources:{light:"img/blog-writer.png",dark:"img/blog-writer.png"},style:{width:"80%",margin:"20px auto"}}),"\n",(0,o.jsxs)(t.p,{children:["This flow creates a one-shot prompt flow with ",(0,o.jsx)(t.strong,{children:"Prompt"}),", ",(0,o.jsx)(t.strong,{children:"OpenAI"}),", and ",(0,o.jsx)(t.strong,{children:"Chat Output"})," components, and augments the flow with reference content and instructions from the ",(0,o.jsx)(t.strong,{children:"URL"})," and ",(0,o.jsx)(t.strong,{children:"Instructions"})," components."]}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Prompt"})," component's default ",(0,o.jsx)(t.strong,{children:"Template"})," field looks like this:"]}),"\n",(0,o.jsx)(p.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"Reference ",props:{style:{color:"#FFA657"}}},{content:"1:",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:"reference_1}",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"---",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"Reference ",props:{style:{color:"#FFA657"}}},{content:"2:",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:"reference_2}",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"---",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:"instructions}",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"Blog:",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.code,{children:"{instructions}"})," value is received from the ",(0,o.jsx)(t.strong,{children:"Value"})," field of the ",(0,o.jsx)(t.strong,{children:"Instructions"})," component.\nThe ",(0,o.jsx)(t.code,{children:"reference_1"})," and ",(0,o.jsx)(t.code,{children:"reference_2"})," values are received from the ",(0,o.jsx)(t.strong,{children:"URL"})," fields of the ",(0,o.jsx)(t.strong,{children:"URL"})," components."]}),"\n",(0,o.jsxs)(t.ol,{start:"4",children:["\n",(0,o.jsxs)(t.li,{children:["To create an environment variable for the ",(0,o.jsx)(t.strong,{children:"OpenAI"})," component, in the ",(0,o.jsx)(t.strong,{children:"OpenAI API Key"})," field, click the ",(0,o.jsx)(t.strong,{children:"Globe"})," button, and then click ",(0,o.jsx)(t.strong,{children:"Add New Variable"}),".","\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["In the ",(0,o.jsx)(t.strong,{children:"Variable Name"})," field, enter ",(0,o.jsx)(t.code,{children:"openai_api_key"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["In the ",(0,o.jsx)(t.strong,{children:"Value"})," field, paste your OpenAI API Key (",(0,o.jsx)(t.code,{children:"sk-..."}),")."]}),"\n",(0,o.jsxs)(t.li,{children:["Click ",(0,o.jsx)(t.strong,{children:"Save Variable"}),"."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"run-the-blog-writer-flow",children:"Run the Blog Writer flow"}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["Click the ",(0,o.jsx)(t.strong,{children:"Run"})," button.\nThe ",(0,o.jsx)(t.strong,{children:"Interaction Panel"})," opens, where you can run your one-shot flow."]}),"\n",(0,o.jsxs)(t.li,{children:["Click the ",(0,o.jsx)(t.strong,{children:"Lighting Bolt"})," icon to run your flow."]}),"\n",(0,o.jsxs)(t.li,{children:["The ",(0,o.jsx)(t.strong,{children:"OpenAI"})," component constructs a blog post with the ",(0,o.jsx)(t.strong,{children:"URL"})," items as context.\nThe default ",(0,o.jsx)(t.strong,{children:"URL"})," values are for web pages at ",(0,o.jsx)(t.code,{children:"promptingguide.ai"}),", so your blog post will be about prompting LLMs."]}),"\n"]}),"\n",(0,o.jsxs)(t.p,{children:["To write about something different, change the values in the ",(0,o.jsx)(t.strong,{children:"URL"})," components, and see what the LLM constructs."]})]})}const f=function(e={}){const{wrapper:t}=Object.assign({},(0,r.RP)(),e.components);return t?(0,o.jsx)(t,Object.assign({},e,{children:(0,o.jsx)(j,e)})):j(e)};function x(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/3554.5cf4deed.js b/assets/js/3554.5cf4deed.js
deleted file mode 100644
index d559ea007a..0000000000
--- a/assets/js/3554.5cf4deed.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3554],{4744:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)};var r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function a(e,t){return!1!==t.clone&&t.isMergeableObject(e)?s((r=e,Array.isArray(r)?[]:{}),e,t):e;var r}function n(e,t,r){return e.concat(t).map((function(e){return a(e,r)}))}function o(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function i(e,t){try{return t in e}catch(r){return!1}}function l(e,t,r){var n={};return r.isMergeableObject(e)&&o(e).forEach((function(t){n[t]=a(e[t],r)})),o(t).forEach((function(o){(function(e,t){return i(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,o)||(i(e,o)&&r.isMergeableObject(t[o])?n[o]=function(e,t){if(!t.customMerge)return s;var r=t.customMerge(e);return"function"==typeof r?r:s}(o,r)(e[o],t[o],r):n[o]=a(t[o],r))})),n}function s(e,r,o){(o=o||{}).arrayMerge=o.arrayMerge||n,o.isMergeableObject=o.isMergeableObject||t,o.cloneUnlessOtherwiseSpecified=a;var i=Array.isArray(r);return i===Array.isArray(e)?i?o.arrayMerge(e,r,o):l(e,r,o):a(r,o)}s.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,r){return s(e,r,t)}),{})};var u=s;e.exports=u},6147:e=>{function t(e,t){e.onload=function(){this.onerror=this.onload=null,t(null,e)},e.onerror=function(){this.onerror=this.onload=null,t(new Error("Failed to load "+this.src),e)}}function r(e,t){e.onreadystatechange=function(){"complete"!=this.readyState&&"loaded"!=this.readyState||(this.onreadystatechange=null,t(null,e))}}e.exports=function(e,a,n){var o=document.head||document.getElementsByTagName("head")[0],i=document.createElement("script");"function"==typeof a&&(n=a,a={}),a=a||{},n=n||function(){},i.type=a.type||"text/javascript",i.charset=a.charset||"utf8",i.async=!("async"in a)||!!a.async,i.src=e,a.attrs&&function(e,t){for(var r in t)e.setAttribute(r,t[r])}(i,a.attrs),a.text&&(i.text=""+a.text),("onload"in i?t:r)(i,n),i.onload||t(i,n),o.appendChild(i)}},1811:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var a=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function n(e,t){if(e.length!==t.length)return!1;for(var r=0;r{var a,n=r(6763),o=Object.create,i=Object.defineProperty,l=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,u=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,d=(e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of s(t))c.call(e,n)||n===r||i(e,n,{get:()=>t[n],enumerable:!(a=l(t,n))||a.enumerable});return e},p=(e,t,r)=>(r=null!=e?o(u(e)):{},d(!t&&e&&e.__esModule?r:i(r,"default",{value:e,enumerable:!0}),e)),y=(e,t,r)=>(((e,t,r)=>{t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r),h={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(h,{default:()=>g}),e.exports=(a=h,d(i({},"__esModule",{value:!0}),a));var f=p(r(6540)),m=p(r(115)),b=r(7604),P=r(5635);class g extends f.Component{constructor(){super(...arguments),y(this,"mounted",!1),y(this,"isReady",!1),y(this,"isPlaying",!1),y(this,"isLoading",!0),y(this,"loadOnReady",null),y(this,"startOnPlay",!0),y(this,"seekOnPlay",null),y(this,"onDurationCalled",!1),y(this,"handlePlayerMount",(e=>{this.player||(this.player=e,this.player.load(this.props.url)),this.progress()})),y(this,"getInternalPlayer",(e=>this.player?this.player[e]:null)),y(this,"progress",(()=>{if(this.props.url&&this.player&&this.isReady){const e=this.getCurrentTime()||0,t=this.getSecondsLoaded(),r=this.getDuration();if(r){const a={playedSeconds:e,played:e/r};null!==t&&(a.loadedSeconds=t,a.loaded=t/r),a.playedSeconds===this.prevPlayed&&a.loadedSeconds===this.prevLoaded||this.props.onProgress(a),this.prevPlayed=a.playedSeconds,this.prevLoaded=a.loadedSeconds}}this.progressTimeout=setTimeout(this.progress,this.props.progressFrequency||this.props.progressInterval)})),y(this,"handleReady",(()=>{if(!this.mounted)return;this.isReady=!0,this.isLoading=!1;const{onReady:e,playing:t,volume:r,muted:a}=this.props;e(),a||null===r||this.player.setVolume(r),this.loadOnReady?(this.player.load(this.loadOnReady,!0),this.loadOnReady=null):t&&this.player.play(),this.handleDurationCheck()})),y(this,"handlePlay",(()=>{this.isPlaying=!0,this.isLoading=!1;const{onStart:e,onPlay:t,playbackRate:r}=this.props;this.startOnPlay&&(this.player.setPlaybackRate&&1!==r&&this.player.setPlaybackRate(r),e(),this.startOnPlay=!1),t(),this.seekOnPlay&&(this.seekTo(this.seekOnPlay),this.seekOnPlay=null),this.handleDurationCheck()})),y(this,"handlePause",(e=>{this.isPlaying=!1,this.isLoading||this.props.onPause(e)})),y(this,"handleEnded",(()=>{const{activePlayer:e,loop:t,onEnded:r}=this.props;e.loopOnEnded&&t&&this.seekTo(0),t||(this.isPlaying=!1,r())})),y(this,"handleError",((...e)=>{this.isLoading=!1,this.props.onError(...e)})),y(this,"handleDurationCheck",(()=>{clearTimeout(this.durationCheckTimeout);const e=this.getDuration();e?this.onDurationCalled||(this.props.onDuration(e),this.onDurationCalled=!0):this.durationCheckTimeout=setTimeout(this.handleDurationCheck,100)})),y(this,"handleLoaded",(()=>{this.isLoading=!1}))}componentDidMount(){this.mounted=!0}componentWillUnmount(){clearTimeout(this.progressTimeout),clearTimeout(this.durationCheckTimeout),this.isReady&&this.props.stopOnUnmount&&(this.player.stop(),this.player.disablePIP&&this.player.disablePIP()),this.mounted=!1}componentDidUpdate(e){if(!this.player)return;const{url:t,playing:r,volume:a,muted:o,playbackRate:i,pip:l,loop:s,activePlayer:u,disableDeferredLoading:c}=this.props;if(!(0,m.default)(e.url,t)){if(this.isLoading&&!u.forceLoad&&!c&&!(0,P.isMediaStream)(t))return n.warn(`ReactPlayer: the attempt to load ${t} is being deferred until the player has loaded`),void(this.loadOnReady=t);this.isLoading=!0,this.startOnPlay=!0,this.onDurationCalled=!1,this.player.load(t,this.isReady)}e.playing||!r||this.isPlaying||this.player.play(),e.playing&&!r&&this.isPlaying&&this.player.pause(),!e.pip&&l&&this.player.enablePIP&&this.player.enablePIP(),e.pip&&!l&&this.player.disablePIP&&this.player.disablePIP(),e.volume!==a&&null!==a&&this.player.setVolume(a),e.muted!==o&&(o?this.player.mute():(this.player.unmute(),null!==a&&setTimeout((()=>this.player.setVolume(a))))),e.playbackRate!==i&&this.player.setPlaybackRate&&this.player.setPlaybackRate(i),e.loop!==s&&this.player.setLoop&&this.player.setLoop(s)}getDuration(){return this.isReady?this.player.getDuration():null}getCurrentTime(){return this.isReady?this.player.getCurrentTime():null}getSecondsLoaded(){return this.isReady?this.player.getSecondsLoaded():null}seekTo(e,t,r){if(!this.isReady)return void(0!==e&&(this.seekOnPlay=e,setTimeout((()=>{this.seekOnPlay=null}),5e3)));if(t?"fraction"===t:e>0&&e<1){const t=this.player.getDuration();return t?void this.player.seekTo(t*e,r):void n.warn("ReactPlayer: could not seek using fraction \u2013\xa0duration not yet available")}this.player.seekTo(e,r)}render(){const e=this.props.activePlayer;return e?f.default.createElement(e,{...this.props,onMount:this.handlePlayerMount,onReady:this.handleReady,onPlay:this.handlePlay,onPause:this.handlePause,onEnded:this.handleEnded,onLoaded:this.handleLoaded,onError:this.handleError}):null}}y(g,"displayName","Player"),y(g,"propTypes",b.propTypes),y(g,"defaultProps",b.defaultProps)},5580:(e,t,r)=>{var a,n=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,s=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,c=(e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of l(t))u.call(e,n)||n===r||o(e,n,{get:()=>t[n],enumerable:!(a=i(t,n))||a.enumerable});return e},d=(e,t,r)=>(r=null!=e?n(s(e)):{},c(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)),p=(e,t,r)=>(((e,t,r)=>{t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r),y={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(y,{createReactPlayer:()=>S}),e.exports=(a=y,c(o({},"__esModule",{value:!0}),a));var h=d(r(6540)),f=d(r(4744)),m=d(r(1811)),b=d(r(115)),P=r(7604),g=r(5635),w=d(r(8021));const v=(0,g.lazy)((()=>r.e(6353).then(r.t.bind(r,6734,23)))),O="undefined"!=typeof window&&window.document&&"undefined"!=typeof document,k=void 0!==r.g&&r.g.window&&r.g.window.document,_=Object.keys(P.propTypes),T=O||k?h.Suspense:()=>null,j=[],S=(e,t)=>{var r;return r=class extends h.Component{constructor(){super(...arguments),p(this,"state",{showPreview:!!this.props.light}),p(this,"references",{wrapper:e=>{this.wrapper=e},player:e=>{this.player=e}}),p(this,"handleClickPreview",(e=>{this.setState({showPreview:!1}),this.props.onClickPreview(e)})),p(this,"showPreview",(()=>{this.setState({showPreview:!0})})),p(this,"getDuration",(()=>this.player?this.player.getDuration():null)),p(this,"getCurrentTime",(()=>this.player?this.player.getCurrentTime():null)),p(this,"getSecondsLoaded",(()=>this.player?this.player.getSecondsLoaded():null)),p(this,"getInternalPlayer",((e="player")=>this.player?this.player.getInternalPlayer(e):null)),p(this,"seekTo",((e,t,r)=>{if(!this.player)return null;this.player.seekTo(e,t,r)})),p(this,"handleReady",(()=>{this.props.onReady(this)})),p(this,"getActivePlayer",(0,m.default)((r=>{for(const t of[...j,...e])if(t.canPlay(r))return t;return t||null}))),p(this,"getConfig",(0,m.default)(((e,t)=>{const{config:r}=this.props;return f.default.all([P.defaultProps.config,P.defaultProps.config[t]||{},r,r[t]||{}])}))),p(this,"getAttributes",(0,m.default)((e=>(0,g.omit)(this.props,_)))),p(this,"renderActivePlayer",(e=>{if(!e)return null;const t=this.getActivePlayer(e);if(!t)return null;const r=this.getConfig(e,t.key);return h.default.createElement(w.default,{...this.props,key:t.key,ref:this.references.player,config:r,activePlayer:t.lazyPlayer||t,onReady:this.handleReady})}))}shouldComponentUpdate(e,t){return!(0,b.default)(this.props,e)||!(0,b.default)(this.state,t)}componentDidUpdate(e){const{light:t}=this.props;!e.light&&t&&this.setState({showPreview:!0}),e.light&&!t&&this.setState({showPreview:!1})}renderPreview(e){if(!e)return null;const{light:t,playIcon:r,previewTabIndex:a,oEmbedUrl:n,previewAriaLabel:o}=this.props;return h.default.createElement(v,{url:e,light:t,playIcon:r,previewTabIndex:a,previewAriaLabel:o,oEmbedUrl:n,onClick:this.handleClickPreview})}render(){const{url:e,style:t,width:r,height:a,fallback:n,wrapper:o}=this.props,{showPreview:i}=this.state,l=this.getAttributes(e),s="string"==typeof o?this.references.wrapper:void 0;return h.default.createElement(o,{ref:s,style:{...t,width:r,height:a},...l},h.default.createElement(T,{fallback:n},i?this.renderPreview(e):this.renderActivePlayer(e)))}},p(r,"displayName","ReactPlayer"),p(r,"propTypes",P.propTypes),p(r,"defaultProps",P.defaultProps),p(r,"addCustomPlayer",(e=>{j.push(e)})),p(r,"removeCustomPlayers",(()=>{j.length=0})),p(r,"canPlay",(t=>{for(const r of[...j,...e])if(r.canPlay(t))return!0;return!1})),p(r,"canEnablePIP",(t=>{for(const r of[...j,...e])if(r.canEnablePIP&&r.canEnablePIP(t))return!0;return!1})),r}},3554:(e,t,r)=>{var a,n=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,s=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,c=(e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of l(t))u.call(e,n)||n===r||o(e,n,{get:()=>t[n],enumerable:!(a=i(t,n))||a.enumerable});return e},d={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(d,{default:()=>f}),e.exports=(a=d,c(o({},"__esModule",{value:!0}),a));var p=((e,t,r)=>(r=null!=e?n(s(e)):{},c(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)))(r(7015)),y=r(5580);const h=p.default[p.default.length-1];var f=(0,y.createReactPlayer)(p.default,h)},327:(e,t,r)=>{var a,n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,l=Object.prototype.hasOwnProperty,s={};((e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})})(s,{AUDIO_EXTENSIONS:()=>_,DASH_EXTENSIONS:()=>S,FLV_EXTENSIONS:()=>E,HLS_EXTENSIONS:()=>j,MATCH_URL_DAILYMOTION:()=>w,MATCH_URL_FACEBOOK:()=>h,MATCH_URL_FACEBOOK_WATCH:()=>f,MATCH_URL_KALTURA:()=>k,MATCH_URL_MIXCLOUD:()=>v,MATCH_URL_MUX:()=>y,MATCH_URL_SOUNDCLOUD:()=>d,MATCH_URL_STREAMABLE:()=>m,MATCH_URL_TWITCH_CHANNEL:()=>g,MATCH_URL_TWITCH_VIDEO:()=>P,MATCH_URL_VIDYARD:()=>O,MATCH_URL_VIMEO:()=>p,MATCH_URL_WISTIA:()=>b,MATCH_URL_YOUTUBE:()=>c,VIDEO_EXTENSIONS:()=>T,canPlay:()=>I}),e.exports=(a=s,((e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))l.call(e,s)||s===r||n(e,s,{get:()=>t[s],enumerable:!(a=o(t,s))||a.enumerable});return e})(n({},"__esModule",{value:!0}),a));var u=r(5635);const c=/(?:youtu\.be\/|youtube(?:-nocookie|education)?\.com\/(?:embed\/|v\/|watch\/|watch\?v=|watch\?.+&v=|shorts\/|live\/))((\w|-){11})|youtube\.com\/playlist\?list=|youtube\.com\/user\//,d=/(?:soundcloud\.com|snd\.sc)\/[^.]+$/,p=/vimeo\.com\/(?!progressive_redirect).+/,y=/stream\.mux\.com\/(?!\w+\.m3u8)(\w+)/,h=/^https?:\/\/(www\.)?facebook\.com.*\/(video(s)?|watch|story)(\.php?|\/).+$/,f=/^https?:\/\/fb\.watch\/.+$/,m=/streamable\.com\/([a-z0-9]+)$/,b=/(?:wistia\.(?:com|net)|wi\.st)\/(?:medias|embed)\/(?:iframe\/)?([^?]+)/,P=/(?:www\.|go\.)?twitch\.tv\/videos\/(\d+)($|\?)/,g=/(?:www\.|go\.)?twitch\.tv\/([a-zA-Z0-9_]+)($|\?)/,w=/^(?:(?:https?):)?(?:\/\/)?(?:www\.)?(?:(?:dailymotion\.com(?:\/embed)?\/video)|dai\.ly)\/([a-zA-Z0-9]+)(?:_[\w_-]+)?(?:[\w.#_-]+)?/,v=/mixcloud\.com\/([^/]+\/[^/]+)/,O=/vidyard.com\/(?:watch\/)?([a-zA-Z0-9-_]+)/,k=/^https?:\/\/[a-zA-Z]+\.kaltura.(com|org)\/p\/([0-9]+)\/sp\/([0-9]+)00\/embedIframeJs\/uiconf_id\/([0-9]+)\/partner_id\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_].*)$/,_=/\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\?)/i,T=/\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\d+]+)?($|\?)/i,j=/\.(m3u8)($|\?)/i,S=/\.(mpd)($|\?)/i,E=/\.(flv)($|\?)/i,C=e=>{if(e instanceof Array){for(const t of e){if("string"==typeof t&&C(t))return!0;if(C(t.src))return!0}return!1}return!(!(0,u.isMediaStream)(e)&&!(0,u.isBlobUrl)(e))||(_.test(e)||T.test(e)||j.test(e)||S.test(e)||E.test(e))},I={youtube:e=>e instanceof Array?e.every((e=>c.test(e))):c.test(e),soundcloud:e=>d.test(e)&&!_.test(e),vimeo:e=>p.test(e)&&!T.test(e)&&!j.test(e),mux:e=>y.test(e),facebook:e=>h.test(e)||f.test(e),streamable:e=>m.test(e),wistia:e=>b.test(e),twitch:e=>P.test(e)||g.test(e),dailymotion:e=>w.test(e),mixcloud:e=>v.test(e),vidyard:e=>O.test(e),kaltura:e=>k.test(e),file:C}},7015:(e,t,r)=>{Object.create;var a,n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,l=(Object.getPrototypeOf,Object.prototype.hasOwnProperty),s=(e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))l.call(e,s)||s===r||n(e,s,{get:()=>t[s],enumerable:!(a=o(t,s))||a.enumerable});return e},u={};((e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})})(u,{default:()=>p}),e.exports=(a=u,s(n({},"__esModule",{value:!0}),a));var c=r(5635),d=r(327),p=[{key:"youtube",name:"YouTube",canPlay:d.canPlay.youtube,lazyPlayer:(0,c.lazy)((()=>r.e(8446).then(r.t.bind(r,2910,23))))},{key:"soundcloud",name:"SoundCloud",canPlay:d.canPlay.soundcloud,lazyPlayer:(0,c.lazy)((()=>r.e(9979).then(r.t.bind(r,3127,23))))},{key:"vimeo",name:"Vimeo",canPlay:d.canPlay.vimeo,lazyPlayer:(0,c.lazy)((()=>r.e(6173).then(r.t.bind(r,1423,23))))},{key:"mux",name:"Mux",canPlay:d.canPlay.mux,lazyPlayer:(0,c.lazy)((()=>r.e(2723).then(r.t.bind(r,7553,23))))},{key:"facebook",name:"Facebook",canPlay:d.canPlay.facebook,lazyPlayer:(0,c.lazy)((()=>r.e(6887).then(r.t.bind(r,1343,23))))},{key:"streamable",name:"Streamable",canPlay:d.canPlay.streamable,lazyPlayer:(0,c.lazy)((()=>r.e(7627).then(r.t.bind(r,9643,23))))},{key:"wistia",name:"Wistia",canPlay:d.canPlay.wistia,lazyPlayer:(0,c.lazy)((()=>r.e(9340).then(r.t.bind(r,3330,23))))},{key:"twitch",name:"Twitch",canPlay:d.canPlay.twitch,lazyPlayer:(0,c.lazy)((()=>r.e(2042).then(r.t.bind(r,1400,23))))},{key:"dailymotion",name:"DailyMotion",canPlay:d.canPlay.dailymotion,lazyPlayer:(0,c.lazy)((()=>r.e(6328).then(r.t.bind(r,9348,23))))},{key:"mixcloud",name:"Mixcloud",canPlay:d.canPlay.mixcloud,lazyPlayer:(0,c.lazy)((()=>r.e(7570).then(r.t.bind(r,3276,23))))},{key:"vidyard",name:"Vidyard",canPlay:d.canPlay.vidyard,lazyPlayer:(0,c.lazy)((()=>r.e(3392).then(r.t.bind(r,3552,23))))},{key:"kaltura",name:"Kaltura",canPlay:d.canPlay.kaltura,lazyPlayer:(0,c.lazy)((()=>r.e(6463).then(r.t.bind(r,7945,23))))},{key:"file",name:"FilePlayer",canPlay:d.canPlay.file,canEnablePIP:e=>d.canPlay.file(e)&&(document.pictureInPictureEnabled||(0,c.supportsWebKitPresentationMode)())&&!d.AUDIO_EXTENSIONS.test(e),lazyPlayer:(0,c.lazy)((()=>r.e(7458).then(r.t.bind(r,688,23))))}]},7604:(e,t,r)=>{var a,n=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,s=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,c=(e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of l(t))u.call(e,n)||n===r||o(e,n,{get:()=>t[n],enumerable:!(a=i(t,n))||a.enumerable});return e},d={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(d,{defaultProps:()=>_,propTypes:()=>O}),e.exports=(a=d,c(o({},"__esModule",{value:!0}),a));var p=((e,t,r)=>(r=null!=e?n(s(e)):{},c(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e)))(r(5556));const{string:y,bool:h,number:f,array:m,oneOfType:b,shape:P,object:g,func:w,node:v}=p.default,O={url:b([y,m,g]),playing:h,loop:h,controls:h,volume:f,muted:h,playbackRate:f,width:b([y,f]),height:b([y,f]),style:g,progressInterval:f,playsinline:h,pip:h,stopOnUnmount:h,light:b([h,y,g]),playIcon:v,previewTabIndex:f,previewAriaLabel:y,fallback:v,oEmbedUrl:y,wrapper:b([y,w,P({render:w.isRequired})]),config:P({soundcloud:P({options:g}),youtube:P({playerVars:g,embedOptions:g,onUnstarted:w}),facebook:P({appId:y,version:y,playerId:y,attributes:g}),dailymotion:P({params:g}),vimeo:P({playerOptions:g,title:y}),mux:P({attributes:g,version:y}),file:P({attributes:g,tracks:m,forceVideo:h,forceAudio:h,forceHLS:h,forceSafariHLS:h,forceDisableHls:h,forceDASH:h,forceFLV:h,hlsOptions:g,hlsVersion:y,dashVersion:y,flvVersion:y}),wistia:P({options:g,playerId:y,customControls:m}),mixcloud:P({options:g}),twitch:P({options:g,playerId:y}),vidyard:P({options:g})}),onReady:w,onStart:w,onPlay:w,onPause:w,onBuffer:w,onBufferEnd:w,onEnded:w,onError:w,onDuration:w,onSeek:w,onPlaybackRateChange:w,onPlaybackQualityChange:w,onProgress:w,onClickPreview:w,onEnablePIP:w,onDisablePIP:w},k=()=>{},_={playing:!1,loop:!1,controls:!1,volume:null,muted:!1,playbackRate:1,width:"640px",height:"360px",style:{},progressInterval:1e3,playsinline:!1,pip:!1,stopOnUnmount:!0,light:!1,fallback:null,wrapper:"div",previewTabIndex:0,previewAriaLabel:"",oEmbedUrl:"https://noembed.com/embed?url={url}",config:{soundcloud:{options:{visual:!0,buying:!1,liking:!1,download:!1,sharing:!1,show_comments:!1,show_playcount:!1}},youtube:{playerVars:{playsinline:1,showinfo:0,rel:0,iv_load_policy:3,modestbranding:1},embedOptions:{},onUnstarted:k},facebook:{appId:"1309697205772819",version:"v3.3",playerId:null,attributes:{}},dailymotion:{params:{api:1,"endscreen-enable":!1}},vimeo:{playerOptions:{autopause:!1,byline:!1,portrait:!1,title:!1},title:null},mux:{attributes:{},version:"2"},file:{attributes:{},tracks:[],forceVideo:!1,forceAudio:!1,forceHLS:!1,forceDASH:!1,forceFLV:!1,hlsOptions:{},hlsVersion:"1.1.4",dashVersion:"3.1.3",flvVersion:"1.5.0",forceDisableHls:!1},wistia:{options:{},playerId:null,customControls:null},mixcloud:{options:{hide_cover:1}},twitch:{options:{},playerId:null},vidyard:{options:{}}},onReady:k,onStart:k,onPlay:k,onPause:k,onBuffer:k,onBufferEnd:k,onEnded:k,onError:k,onDuration:k,onSeek:k,onPlaybackRateChange:k,onPlaybackQualityChange:k,onProgress:k,onClickPreview:k,onEnablePIP:k,onDisablePIP:k}},5635:(e,t,r)=>{var a,n=r(6763),o=Object.create,i=Object.defineProperty,l=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,u=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,d=(e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of s(t))c.call(e,n)||n===r||i(e,n,{get:()=>t[n],enumerable:!(a=l(t,n))||a.enumerable});return e},p=(e,t,r)=>(r=null!=e?o(u(e)):{},d(!t&&e&&e.__esModule?r:i(r,"default",{value:e,enumerable:!0}),e)),y={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(y,{callPlayer:()=>R,getConfig:()=>I,getSDK:()=>C,isBlobUrl:()=>L,isMediaStream:()=>M,lazy:()=>b,omit:()=>A,parseEndTime:()=>_,parseStartTime:()=>k,queryString:()=>j,randomString:()=>T,supportsWebKitPresentationMode:()=>D}),e.exports=(a=y,d(i({},"__esModule",{value:!0}),a));var h=p(r(6540)),f=p(r(6147)),m=p(r(4744));const b=e=>h.default.lazy((async()=>{const t=await e();return"function"==typeof t.default?t:t.default})),P=/[?](?:start|t)=([0-9hms]+)/,g=/[?]end=([0-9hms]+)/,w=/(\d+)(h|m|s)/g,v=/^\d+$/;function O(e,t){if(e instanceof Array)return;const r=e.match(t);if(r){const e=r[1];if(e.match(w))return function(e){let t=0,r=w.exec(e);for(;null!==r;){const[,a,n]=r;"h"===n&&(t+=60*parseInt(a,10)*60),"m"===n&&(t+=60*parseInt(a,10)),"s"===n&&(t+=parseInt(a,10)),r=w.exec(e)}return t}(e);if(v.test(e))return parseInt(e)}}function k(e){return O(e,P)}function _(e){return O(e,g)}function T(){return Math.random().toString(36).substr(2,5)}function j(e){return Object.keys(e).map((t=>`${t}=${e[t]}`)).join("&")}function S(e){return window[e]?window[e]:window.exports&&window.exports[e]?window.exports[e]:window.module&&window.module.exports&&window.module.exports[e]?window.module.exports[e]:null}const E={},C=function(e){0;return e}((function(e,t,r=null,a=(()=>!0),n=f.default){const o=S(t);return o&&a(o)?Promise.resolve(o):new Promise(((a,o)=>{if(E[e])return void E[e].push({resolve:a,reject:o});E[e]=[{resolve:a,reject:o}];const i=t=>{E[e].forEach((e=>e.resolve(t)))};if(r){const e=window[r];window[r]=function(){e&&e(),i(S(t))}}n(e,(a=>{a?(E[e].forEach((e=>e.reject(a))),E[e]=null):r||i(S(t))}))}))}));function I(e,t){return(0,m.default)(t.config,e.config)}function A(e,...t){const r=[].concat(...t),a={},n=Object.keys(e);for(const o of n)-1===r.indexOf(o)&&(a[o]=e[o]);return a}function R(e,...t){if(!this.player||!this.player[e]){let t=`ReactPlayer: ${this.constructor.displayName} player could not call %c${e}%c \u2013 `;return this.player?this.player[e]||(t+="The method was not available"):t+="The player was not available",n.warn(t,"font-weight: bold",""),null}return this.player[e](...t)}function M(e){return"undefined"!=typeof window&&void 0!==window.MediaStream&&e instanceof window.MediaStream}function L(e){return/^blob:/.test(e)}function D(e=document.createElement("video")){const t=!1===/iPhone|iPod/.test(navigator.userAgent);return e.webkitSupportsPresentationMode&&"function"==typeof e.webkitSetPresentationMode&&t}}}]);
\ No newline at end of file
diff --git a/assets/js/39102146.312d090b.js b/assets/js/39102146.312d090b.js
deleted file mode 100644
index 30c253b16c..0000000000
--- a/assets/js/39102146.312d090b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3085],{7533:(e,t,n)=>{n.d(t,{A:()=>a});var o=n(6540),i=n(1122),s=n(6025),r=n(4848);const a=e=>{let{alt:t,sources:n,style:a}=e;const[l,c]=(0,o.useState)(!1),d=e=>{"Escape"===e.key&&c(!1)};(0,o.useEffect)((()=>(l?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[l]);return(0,r.jsx)("div",{className:"zoomable-image "+(l?"fullscreen":""),onClick:()=>{c(!l)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...a},children:(0,r.jsx)(i.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,s.Ay)(n.light),dark:(0,s.Ay)(n.dark)}})})}},6756:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>h,assets:()=>d,chCodeConfig:()=>p,contentTitle:()=>l,default:()=>g,frontMatter:()=>a,metadata:()=>c,toc:()=>u});n(6540);var o=n(4848),i=n(8453),s=n(4754),r=(n(1122),n(6025),n(7533),n(7293));const a={},l="Build Chatbots with the System Message Component",c={id:"tutorials/chatprompttemplate_guide",title:"Build Chatbots with the System Message Component",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/tutorials/chatprompttemplate_guide.mdx",sourceDirName:"tutorials",slug:"/tutorials/chatprompttemplate_guide",permalink:"/tutorials/chatprompttemplate_guide",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Custom Components",permalink:"/components/custom"},next:{title:"Custom Components",permalink:"/tutorials/custom_components"}},d={},h={annotations:s.hk,InlineCode:s.R0},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Overview",id:"overview",level:2},{value:"Interactive Guide",id:"interactive-guide",level:2},{value:"Step-by-Step Instructions",id:"step-by-step-instructions",level:2}];function m(e){const t=Object.assign({h1:"h1",p:"p",h2:"h2",ol:"ol",li:"li",blockquote:"blockquote",strong:"strong",code:"code"},(0,i.RP)(),e.components);return h||b("CH",!1),h.InlineCode||b("CH.InlineCode",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.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","\n",(0,o.jsx)(t.h1,{id:"build-chatbots-with-the-system-message-component",children:"Build Chatbots with the System Message Component"}),"\n",(0,o.jsx)(r.A,{type:"warning",title:"warning",children:(0,o.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,o.jsx)(t.h2,{id:"overview",children:"Overview"}),"\n",(0,o.jsx)(t.p,{children:'In this guide, we will modify the "Basic Chat with Prompt and History" example, integrating the ChatPromptTemplate with the SystemMessagePromptTemplate and HumanMessagePromptTemplate components. By following these steps, you\'ll be able to build a personalized chatbot that can interpret and respond based on user-defined System messages.'}),"\n",(0,o.jsx)(t.h2,{id:"interactive-guide",children:"Interactive Guide"}),"\n",(0,o.jsx)("iframe",{src:"https://app.tango.us/app/embed/f05bb3a7-4ceb-4b61-921f-628563b562f6?iframe=true",sandbox:"allow-scripts allow-top-navigation-by-user-activation allow-popups allow-same-origin",security:"restricted",title:"Step-by-Step Instructions to Customize and Build a Chatbot with custom System Message",width:"100%",height:"800px",referrerpolicy:"strict-origin-when-cross-origin",frameborder:"0",webkitallowfullscreen:"webkitallowfullscreen",mozallowfullscreen:"mozallowfullscreen",allowfullscreen:"allowfullscreen"}),"\n",(0,o.jsx)(t.h2,{id:"step-by-step-instructions",children:"Step-by-Step Instructions"}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:'Navigate to the "Community Examples" section.'}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:'Locate the "Basic Chat with Prompt and History" example, and click on "Fork Example".'}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:'Once in the editor, find the "PromptTemplate" component and remove it.'}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Now, add these three components: ChatPromptTemplate, SystemMessagePromptTemplate, and HumanMessagePromptTemplate."}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.blockquote,{children:["\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Note:"})," Remember to set the model to gpt-3.5-turbo-0613 or the most up-to-date version. The latest models have improved capabilities to comprehend System messages."]}),"\n"]}),"\n",(0,o.jsxs)(t.ol,{start:"5",children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:'Open the "Prompt" field on the SystemMessagePromptTemplate component.'}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsxs)(t.p,{children:["Enter the text: ",(0,o.jsx)(h.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"You are a {role} that {behavior}.",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"You are a {role} that {behavior}."})]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:'Save your changes by clicking on "Check & Save".'}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Define the 'role' variable by typing \"obedient assistant\"."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:'Next, navigate to the HumanMessagePromptTemplate and open the "Prompt" field.'}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsxs)(t.p,{children:["Here, simply enter ",(0,o.jsx)(t.code,{children:"{input}"}),"."]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:'Save these changes by clicking on "Check & Save".'}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Now, you should see your flow populated with the variables you defined."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"In the Memory component, set the 'Input Key' to \"input\"."}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.blockquote,{children:["\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Tip:"})," When using a Memory component with multiple variables, it's crucial to specify which variable should be used to generate the conversation history."]}),"\n"]}),"\n",(0,o.jsxs)(t.ol,{start:"14",children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:'Click on the "Build" button to implement your changes.'}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Open the chat interface to test your modifications."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"You should now be able to see and use the defined variables in the chat interface."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Click on 'role' to examine the variable you established in the workspace."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Now, let's define the 'behavior' variable."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Enter the text: \"writes the word 'Langflow' at the end of every sentence.\""}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:'Test your chatbot by typing "How can you help me?"'}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"If everything was set up correctly, your chatbot should respond appropriately, following the defined behavior."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Congratulations! You have successfully customized and built your chatbot."}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"By following these instructions, you have created a dynamic chatbot capable of understanding and responding based on custom system messages, enhancing the user experience and interaction. Enjoy your personalized assistant!"})]})}const g=function(e={}){const{wrapper:t}=Object.assign({},(0,i.RP)(),e.components);return t?(0,o.jsx)(t,Object.assign({},e,{children:(0,o.jsx)(m,e)})):m(e)};function b(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/39102146.8fa6a688.js b/assets/js/39102146.8fa6a688.js
new file mode 100644
index 0000000000..a0d48ee0e4
--- /dev/null
+++ b/assets/js/39102146.8fa6a688.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3085],{7293:(e,n,t)=>{t.d(n,{A:()=>A});var i=t(6540),o=t(4848);function s(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=i.Children.toArray(e),t=n.find((e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),s=n.filter((e=>e!==t)),r=t?.props.children;return{mdxAdmonitionTitle:r,rest:s.length>0?(0,o.jsx)(o.Fragment,{children:s}):null}}(e.children),s=e.title??n;return{...e,...s&&{title:s},children:t}}var r=t(8215),a=t(1312),l=t(7559);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:t,children:i}=e;return(0,o.jsx)("div",{className:(0,r.A)(l.G.common.admonition,l.G.common.admonitionType(n),c.admonition,t),children:i})}function h(e){let{icon:n,title:t}=e;return(0,o.jsxs)("div",{className:c.admonitionHeading,children:[(0,o.jsx)("span",{className:c.admonitionIcon,children:n}),t]})}function u(e){let{children:n}=e;return n?(0,o.jsx)("div",{className:c.admonitionContent,children:n}):null}function m(e){const{type:n,icon:t,title:i,children:s,className:r}=e;return(0,o.jsxs)(d,{type:n,className:r,children:[i||t?(0,o.jsx)(h,{title:i,icon:t}):null,(0,o.jsx)(u,{children:s})]})}function p(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const x={icon:(0,o.jsx)(p,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function g(e){return(0,o.jsx)(m,{...x,...e,className:(0,r.A)("alert alert--secondary",e.className),children:e.children})}function f(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const j={icon:(0,o.jsx)(f,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function b(e){return(0,o.jsx)(m,{...j,...e,className:(0,r.A)("alert alert--success",e.className),children:e.children})}function v(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const y={icon:(0,o.jsx)(v,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function w(e){return(0,o.jsx)(m,{...y,...e,className:(0,r.A)("alert alert--info",e.className),children:e.children})}function k(e){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const C={icon:(0,o.jsx)(k,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function N(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const B={icon:(0,o.jsx)(N,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const T={icon:(0,o.jsx)(k,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const M={...{note:g,tip:b,info:w,warning:function(e){return(0,o.jsx)(m,{...C,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,o.jsx)(m,{...B,...e,className:(0,r.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,o.jsx)(g,{title:"secondary",...e}),important:e=>(0,o.jsx)(w,{title:"important",...e}),success:e=>(0,o.jsx)(b,{title:"success",...e}),caution:function(e){return(0,o.jsx)(m,{...T,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})}}};var S=t(6763);function A(e){const n=s(e),t=(i=n.type,M[i]||(S.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),M.info));var i;return(0,o.jsx)(t,{...n})}},7533:(e,n,t)=>{t.d(n,{A:()=>a});var i=t(6540),o=t(1122),s=t(6025),r=t(4848);const a=e=>{let{alt:n,sources:t,style:a}=e;const[l,c]=(0,i.useState)(!1),d=e=>{"Escape"===e.key&&c(!1)};(0,i.useEffect)((()=>(l?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[l]);return(0,r.jsx)("div",{className:"zoomable-image "+(l?"fullscreen":""),onClick:()=>{c(!l)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...a},children:(0,r.jsx)(o.A,{className:"zoomable-image-inner",alt:n,sources:{light:(0,s.Ay)(t.light),dark:(0,s.Ay)(t.dark)}})})}},6756:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>h,assets:()=>d,chCodeConfig:()=>u,contentTitle:()=>l,default:()=>x,frontMatter:()=>a,metadata:()=>c,toc:()=>m});t(6540);var i=t(4848),o=t(8453),s=t(4754),r=(t(1122),t(6025),t(7533),t(7293));const a={},l="Build Chatbots with the System Message Component",c={id:"tutorials/chatprompttemplate_guide",title:"Build Chatbots with the System Message Component",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/tutorials/chatprompttemplate_guide.mdx",sourceDirName:"tutorials",slug:"/tutorials/chatprompttemplate_guide",permalink:"/tutorials/chatprompttemplate_guide",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Custom Components",permalink:"/components/custom"},next:{title:"Custom Components",permalink:"/tutorials/custom_components"}},d={},h={annotations:s.hk,InlineCode:s.R0},u={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},m=[{value:"Overview",id:"overview",level:2},{value:"Interactive Guide",id:"interactive-guide",level:2},{value:"Step-by-Step Instructions",id:"step-by-step-instructions",level:2}];function p(e){const n=Object.assign({h1:"h1",p:"p",h2:"h2",ol:"ol",li:"li",blockquote:"blockquote",strong:"strong",code:"code"},(0,o.RP)(),e.components);return h||g("CH",!1),h.InlineCode||g("CH.InlineCode",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.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","\n",(0,i.jsx)(n.h1,{id:"build-chatbots-with-the-system-message-component",children:"Build Chatbots with the System Message Component"}),"\n",(0,i.jsx)(r.A,{type:"warning",title:"warning",children:(0,i.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,i.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,i.jsx)(n.p,{children:'In this guide, we will modify the "Basic Chat with Prompt and History" example, integrating the ChatPromptTemplate with the SystemMessagePromptTemplate and HumanMessagePromptTemplate components. By following these steps, you\'ll be able to build a personalized chatbot that can interpret and respond based on user-defined System messages.'}),"\n",(0,i.jsx)(n.h2,{id:"interactive-guide",children:"Interactive Guide"}),"\n",(0,i.jsx)("iframe",{src:"https://app.tango.us/app/embed/f05bb3a7-4ceb-4b61-921f-628563b562f6?iframe=true",sandbox:"allow-scripts allow-top-navigation-by-user-activation allow-popups allow-same-origin",security:"restricted",title:"Step-by-Step Instructions to Customize and Build a Chatbot with custom System Message",width:"100%",height:"800px",referrerpolicy:"strict-origin-when-cross-origin",frameborder:"0",webkitallowfullscreen:"webkitallowfullscreen",mozallowfullscreen:"mozallowfullscreen",allowfullscreen:"allowfullscreen"}),"\n",(0,i.jsx)(n.h2,{id:"step-by-step-instructions",children:"Step-by-Step Instructions"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:'Navigate to the "Community Examples" section.'}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:'Locate the "Basic Chat with Prompt and History" example, and click on "Fork Example".'}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:'Once in the editor, find the "PromptTemplate" component and remove it.'}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Now, add these three components: ChatPromptTemplate, SystemMessagePromptTemplate, and HumanMessagePromptTemplate."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Note:"})," Remember to set the model to gpt-3.5-turbo-0613 or the most up-to-date version. The latest models have improved capabilities to comprehend System messages."]}),"\n"]}),"\n",(0,i.jsxs)(n.ol,{start:"5",children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:'Open the "Prompt" field on the SystemMessagePromptTemplate component.'}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Enter the text: ",(0,i.jsx)(h.InlineCode,{codeConfig:u,code:{lines:[{tokens:[{content:"You are a {role} that {behavior}.",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"You are a {role} that {behavior}."})]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:'Save your changes by clicking on "Check & Save".'}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Define the 'role' variable by typing \"obedient assistant\"."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:'Next, navigate to the HumanMessagePromptTemplate and open the "Prompt" field.'}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["Here, simply enter ",(0,i.jsx)(n.code,{children:"{input}"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:'Save these changes by clicking on "Check & Save".'}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Now, you should see your flow populated with the variables you defined."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"In the Memory component, set the 'Input Key' to \"input\"."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Tip:"})," When using a Memory component with multiple variables, it's crucial to specify which variable should be used to generate the conversation history."]}),"\n"]}),"\n",(0,i.jsxs)(n.ol,{start:"14",children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:'Click on the "Build" button to implement your changes.'}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Open the chat interface to test your modifications."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"You should now be able to see and use the defined variables in the chat interface."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Click on 'role' to examine the variable you established in the workspace."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Now, let's define the 'behavior' variable."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Enter the text: \"writes the word 'Langflow' at the end of every sentence.\""}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:'Test your chatbot by typing "How can you help me?"'}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"If everything was set up correctly, your chatbot should respond appropriately, following the defined behavior."}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:"Congratulations! You have successfully customized and built your chatbot."}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"By following these instructions, you have created a dynamic chatbot capable of understanding and responding based on custom system messages, enhancing the user experience and interaction. Enjoy your personalized assistant!"})]})}const x=function(e={}){const{wrapper:n}=Object.assign({},(0,o.RP)(),e.components);return n?(0,i.jsx)(n,Object.assign({},e,{children:(0,i.jsx)(p,e)})):p(e)};function g(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/3b7cd930.47ff364f.js b/assets/js/3b7cd930.47ff364f.js
new file mode 100644
index 0000000000..f2c6cb4168
--- /dev/null
+++ b/assets/js/3b7cd930.47ff364f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[870],{7533:(e,s,t)=>{t.d(s,{A:()=>i});var n=t(6540),o=t(1122),a=t(6025),r=t(4848);const i=e=>{let{alt:s,sources:t,style:i}=e;const[c,l]=(0,n.useState)(!1),d=e=>{"Escape"===e.key&&l(!1)};(0,n.useEffect)((()=>(c?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[c]);return(0,r.jsx)("div",{className:"zoomable-image "+(c?"fullscreen":""),onClick:()=>{l(!c)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...i},children:(0,r.jsx)(o.A,{className:"zoomable-image-inner",alt:s,sources:{light:(0,a.Ay)(t.light),dark:(0,a.Ay)(t.dark)}})})}},7266:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>m,contentTitle:()=>l,default:()=>g,frontMatter:()=>c,metadata:()=>d,toc:()=>u});t(6540);var n=t(4848),o=t(8453),a=(t(1122),t(6025),t(7533),t(3554)),r=t.n(a),i=t(7293);const c={},l="Store Message",d={id:"examples/store-message",title:"Store Message",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/examples/store-message.mdx",sourceDirName:"examples",slug:"/examples/store-message",permalink:"/examples/store-message",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},m={},u=[];function p(e){const s=Object.assign({h1:"h1",p:"p",strong:"strong"},(0,o.RP)(),e.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"store-message",children:"Store Message"}),"\n",(0,n.jsx)(i.A,{type:"warning",title:"warning",children:(0,n.jsx)(s.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(s.p,{children:["The ",(0,n.jsx)(s.strong,{children:"Store Message"})," component allows you to save information under a specified Session ID and sender type."]}),"\n",(0,n.jsxs)(s.p,{children:["The ",(0,n.jsx)(s.strong,{children:"Message History"})," component can then be used to retrieve stored messages."]}),"\n",(0,n.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,n.jsx)(r(),{playing:!0,controls:!0,url:"/videos/store_message.mp4"})})]})}const g=function(e={}){const{wrapper:s}=Object.assign({},(0,o.RP)(),e.components);return s?(0,n.jsx)(s,Object.assign({},e,{children:(0,n.jsx)(p,e)})):p(e)}},8453:(e,s,t)=>{t.d(s,{RP:()=>a,xA:()=>i});var n=t(6540);const o=n.createContext({});function a(e){const s=n.useContext(o);return n.useMemo((()=>"function"==typeof e?e(s):{...s,...e}),[s,e])}const r={};function i({components:e,children:s,disableParentContext:t}){let i;return i=t?"function"==typeof e?e({}):e||r:a(e),n.createElement(o.Provider,{value:i},s)}}}]);
\ No newline at end of file
diff --git a/assets/js/3b7cd930.df0ed3b4.js b/assets/js/3b7cd930.df0ed3b4.js
deleted file mode 100644
index 65c59cf5a5..0000000000
--- a/assets/js/3b7cd930.df0ed3b4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[870],{7293:(e,n,t)=>{t.d(n,{A:()=>H});var i=t(6540),s=t(4848);function o(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=i.Children.toArray(e),t=n.find((e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),o=n.filter((e=>e!==t)),a=t?.props.children;return{mdxAdmonitionTitle:a,rest:o.length>0?(0,s.jsx)(s.Fragment,{children:o}):null}}(e.children),o=e.title??n;return{...e,...o&&{title:o},children:t}}var a=t(8215),r=t(1312),c=t(7559);const l={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:t,children:i}=e;return(0,s.jsx)("div",{className:(0,a.A)(c.G.common.admonition,c.G.common.admonitionType(n),l.admonition,t),children:i})}function m(e){let{icon:n,title:t}=e;return(0,s.jsxs)("div",{className:l.admonitionHeading,children:[(0,s.jsx)("span",{className:l.admonitionIcon,children:n}),t]})}function u(e){let{children:n}=e;return n?(0,s.jsx)("div",{className:l.admonitionContent,children:n}):null}function h(e){const{type:n,icon:t,title:i,children:o,className:a}=e;return(0,s.jsxs)(d,{type:n,className:a,children:[i||t?(0,s.jsx)(m,{title:i,icon:t}):null,(0,s.jsx)(u,{children:o})]})}function f(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const x={icon:(0,s.jsx)(f,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function p(e){return(0,s.jsx)(h,{...x,...e,className:(0,a.A)("alert alert--secondary",e.className),children:e.children})}function g(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const j={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(e){return(0,s.jsx)(h,{...j,...e,className:(0,a.A)("alert alert--success",e.className),children:e.children})}function y(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,s.jsx)(y,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function A(e){return(0,s.jsx)(h,{...w,...e,className:(0,a.A)("alert alert--info",e.className),children:e.children})}function N(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const b={icon:(0,s.jsx)(N,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function C(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const M={icon:(0,s.jsx)(C,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const z={icon:(0,s.jsx)(N,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const T={...{note:p,tip:v,info:A,warning:function(e){return(0,s.jsx)(h,{...b,...e,className:(0,a.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,s.jsx)(h,{...M,...e,className:(0,a.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,s.jsx)(p,{title:"secondary",...e}),important:e=>(0,s.jsx)(A,{title:"important",...e}),success:e=>(0,s.jsx)(v,{title:"success",...e}),caution:function(e){return(0,s.jsx)(h,{...z,...e,className:(0,a.A)("alert alert--warning",e.className),children:e.children})}}};var k=t(6763);function H(e){const n=o(e),t=(i=n.type,T[i]||(k.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),T.info));var i;return(0,s.jsx)(t,{...n})}},7533:(e,n,t)=>{t.d(n,{A:()=>r});var i=t(6540),s=t(1122),o=t(6025),a=t(4848);const r=e=>{let{alt:n,sources:t,style:r}=e;const[c,l]=(0,i.useState)(!1),d=e=>{"Escape"===e.key&&l(!1)};(0,i.useEffect)((()=>(c?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[c]);return(0,a.jsx)("div",{className:"zoomable-image "+(c?"fullscreen":""),onClick:()=>{l(!c)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...r},children:(0,a.jsx)(s.A,{className:"zoomable-image-inner",alt:n,sources:{light:(0,o.Ay)(t.light),dark:(0,o.Ay)(t.dark)}})})}},7266:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>m,contentTitle:()=>l,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>u});t(6540);var i=t(4848),s=t(8453),o=(t(1122),t(6025),t(7533),t(3554)),a=t.n(o),r=t(7293);const c={},l="Store Message",d={id:"examples/store-message",title:"Store Message",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/examples/store-message.mdx",sourceDirName:"examples",slug:"/examples/store-message",permalink:"/examples/store-message",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},m={},u=[];function h(e){const n=Object.assign({h1:"h1",p:"p",strong:"strong"},(0,s.RP)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"store-message",children:"Store Message"}),"\n",(0,i.jsx)(r.A,{type:"warning",title:"warning",children:(0,i.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"Store Message"})," component allows you to save information under a specified Session ID and sender type."]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"Message History"})," component can then be used to retrieve stored messages."]}),"\n",(0,i.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,i.jsx)(a(),{playing:!0,controls:!0,url:"/videos/store_message.mp4"})})]})}const f=function(e={}){const{wrapper:n}=Object.assign({},(0,s.RP)(),e.components);return n?(0,i.jsx)(n,Object.assign({},e,{children:(0,i.jsx)(h,e)})):h(e)}},8453:(e,n,t)=>{t.d(n,{RP:()=>o,xA:()=>r});var i=t(6540);const s=i.createContext({});function o(e){const n=i.useContext(s);return i.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const a={};function r({components:e,children:n,disableParentContext:t}){let r;return r=t?"function"==typeof e?e({}):e||a:o(e),i.createElement(s.Provider,{value:r},n)}}}]);
\ No newline at end of file
diff --git a/assets/js/3ba2a8d4.57da5b34.js b/assets/js/3ba2a8d4.57da5b34.js
deleted file mode 100644
index 0951f2b585..0000000000
--- a/assets/js/3ba2a8d4.57da5b34.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7198],{7878:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>a,assets:()=>h,chCodeConfig:()=>p,contentTitle:()=>d,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>x});t(6540);var o=t(4848),s=t(8453),r=t(4754),i=t(7293);const l={},d="Command Line Interface (CLI)",c={id:"administration/cli",title:"Command Line Interface (CLI)",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/administration/cli.mdx",sourceDirName:"administration",slug:"/administration/cli",permalink:"/administration/cli",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Sign Up and Sign In",permalink:"/administration/login"},next:{title:"Playground",permalink:"/administration/playground"}},h={},a={annotations:r.hk,Code:r.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Overview",id:"overview",level:2},{value:"Options",id:"options",level:3},{value:"langflow api-key",id:"langflow-api-key",level:2},{value:"Options",id:"options-1",level:3},{value:"langflow copy-db",id:"langflow-copy-db",level:2},{value:"Options",id:"options-2",level:3},{value:"langflow migration",id:"langflow-migration",level:2},{value:"Options",id:"options-3",level:3},{value:"langflow run",id:"langflow-run",level:2},{value:"Options",id:"options-4",level:3},{value:"CLI environment variables",id:"cli-environment-variables",level:4},{value:"langflow superuser",id:"langflow-superuser",level:2},{value:"Options",id:"options-5",level:3}];function j(e){const n=Object.assign({h1:"h1",p:"p",ul:"ul",li:"li",a:"a",h2:"h2",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",code:"code",h3:"h3",h4:"h4"},(0,s.RP)(),e.components);return a||f("CH",!1),a.Code||f("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.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","\n",(0,o.jsx)(n.h1,{id:"command-line-interface-cli",children:"Command Line Interface (CLI)"}),"\n",(0,o.jsx)(i.A,{type:"warning",title:"warning",children:(0,o.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,o.jsx)(n.p,{children:"Langflow's Command Line Interface (CLI) is a powerful tool that allows you to interact with the Langflow server from the command line. The CLI provides a wide range of commands to help you shape Langflow to your needs."}),"\n",(0,o.jsx)(n.p,{children:"The available commands are below. Navigate to their individual sections of this page to see the parameters."}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"#overview",children:"langflow"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"#langflow-api-key",children:"langflow api-key"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"#langflow-copy-db",children:"langflow copy-db"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"#langflow-migration",children:"langflow migration"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"#langflow-run",children:"langflow run"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"#langflow-superuser",children:"langflow superuser"})}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,o.jsx)(n.p,{children:"Running the CLI without any arguments displays a list of available options and commands."}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"--help",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Command"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"api-key"})}),(0,o.jsx)(n.td,{children:"Creates an API key for the default superuser if AUTO_LOGIN is enabled."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"copy-db"})}),(0,o.jsxs)(n.td,{children:["Copy the database files to the current directory (",(0,o.jsx)(n.code,{children:"which langflow"}),")."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"migration"})}),(0,o.jsx)(n.td,{children:"Run or test migrations."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"run"})}),(0,o.jsx)(n.td,{children:"Run the Langflow."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"superuser"})}),(0,o.jsx)(n.td,{children:"Create a superuser."})]})]})]}),"\n",(0,o.jsx)(n.h3,{id:"options",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--install-completion"})}),(0,o.jsx)(n.td,{children:"Install completion for the current shell."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--show-completion"})}),(0,o.jsx)(n.td,{children:"Show completion for the current shell, to copy it or customize the installation."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--help"})}),(0,o.jsx)(n.td,{children:"Show this message and exit."})]})]})]}),"\n",(0,o.jsx)(n.h2,{id:"langflow-api-key",children:"langflow api-key"}),"\n",(0,o.jsxs)(n.p,{children:["Run the ",(0,o.jsx)(n.code,{children:"api-key"})," command to create an API key for the default superuser if ",(0,o.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," is set to ",(0,o.jsx)(n.code,{children:"True"}),"."]}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"api-key",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow api-key",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"API Key Created Successfully: \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"sk-O0elzoWID1izAH8RUKrnnvyyMwIzHi2Wk-uXWoNJ2Ro \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"This is the only time the API key will be displayed. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"Make sure to store it in a secure location. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"The API key has been copied to your clipboard. Cmd + V to paste it. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",props:{style:{color:"#FFA657"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h3,{id:"options-1",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Type"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"--log-level"}),(0,o.jsx)(n.td,{children:"TEXT"}),(0,o.jsx)(n.td,{children:"Logging level. [env var: LANGFLOW_LOG_LEVEL] [default: error]"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"--help"}),(0,o.jsx)(n.td,{}),(0,o.jsx)(n.td,{children:"Show this message and exit."})]})]})]}),"\n",(0,o.jsx)(n.h2,{id:"langflow-copy-db",children:"langflow copy-db"}),"\n",(0,o.jsxs)(n.p,{children:["Run the ",(0,o.jsx)(n.code,{children:"copy-db"})," command to copy the cached ",(0,o.jsx)(n.code,{children:"langflow.db"})," and ",(0,o.jsx)(n.code,{children:"langflow-pre.db"})," database files to the current directory."]}),"\n",(0,o.jsxs)(n.p,{children:["If the files exist in the cache directory, they will be copied to the same directory as ",(0,o.jsx)(n.code,{children:"__main__.py"}),", which can be found with ",(0,o.jsx)(n.code,{children:"which langflow"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"options-2",children:"Options"}),"\n",(0,o.jsx)(n.p,{children:"None."}),"\n",(0,o.jsx)(n.h2,{id:"langflow-migration",children:"langflow migration"}),"\n",(0,o.jsxs)(n.p,{children:["Run or test migrations with the ",(0,o.jsx)(n.a,{href:"https://pypi.org/project/alembic/",children:"Alembic"})," database tool."]}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"migration",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow migration",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h3,{id:"options-3",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--test, --no-test"})}),(0,o.jsx)(n.td,{children:"Run migrations in test mode. [default: test]"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--fix, --no-fix"})}),(0,o.jsx)(n.td,{children:"Fix migrations. This is a destructive operation, and should only be used if you know what you are doing. [default: no-fix]"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--help"})}),(0,o.jsx)(n.td,{children:"Show this message and exit."})]})]})]}),"\n",(0,o.jsx)(n.h2,{id:"langflow-run",children:"langflow run"}),"\n",(0,o.jsx)(n.p,{children:"Run Langflow."}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"run",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow run",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h3,{id:"options-4",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--help"})}),(0,o.jsx)(n.td,{children:"Displays all available options."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--host"})}),(0,o.jsxs)(n.td,{children:["Defines the host to bind the server to. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_HOST"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"127.0.0.1"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--workers"})}),(0,o.jsxs)(n.td,{children:["Sets the number of worker processes. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_WORKERS"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"1"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--timeout"})}),(0,o.jsxs)(n.td,{children:["Sets the worker timeout in seconds. The default is ",(0,o.jsx)(n.code,{children:"60"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--port"})}),(0,o.jsxs)(n.td,{children:["Sets the port to listen on. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_PORT"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"7860"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--env-file"})}),(0,o.jsxs)(n.td,{children:["Specifies the path to the .env file containing environment variables. The default is ",(0,o.jsx)(n.code,{children:".env"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--log-level"})}),(0,o.jsxs)(n.td,{children:["Defines the logging level. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_LOG_LEVEL"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"critical"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--components-path"})}),(0,o.jsxs)(n.td,{children:["Specifies the path to the directory containing custom components. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_COMPONENTS_PATH"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"langflow/components"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--log-file"})}),(0,o.jsxs)(n.td,{children:["Specifies the path to the log file. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_LOG_FILE"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"logs/langflow.log"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--cache"})}),(0,o.jsxs)(n.td,{children:["Select the type of cache to use. Options are ",(0,o.jsx)(n.code,{children:"InMemoryCache"})," and ",(0,o.jsx)(n.code,{children:"SQLiteCache"}),". Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_LANGCHAIN_CACHE"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"SQLiteCache"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"--dev"}),"/",(0,o.jsx)(n.code,{children:"--no-dev"})]}),(0,o.jsxs)(n.td,{children:["Toggles the development mode. The default is ",(0,o.jsx)(n.code,{children:"no-dev"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--path"})}),(0,o.jsxs)(n.td,{children:["Specifies the path to the frontend directory containing build files. This option is for development purposes only. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_FRONTEND_PATH"})," environment variable."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"--open-browser"}),"/",(0,o.jsx)(n.code,{children:"--no-open-browser"})]}),(0,o.jsxs)(n.td,{children:["Toggles the option to open the browser after starting the server. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_OPEN_BROWSER"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"open-browser"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"--remove-api-keys"}),"/",(0,o.jsx)(n.code,{children:"--no-remove-api-keys"})]}),(0,o.jsxs)(n.td,{children:["Toggles the option to remove API keys from the projects saved in the database. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_REMOVE_API_KEYS"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"no-remove-api-keys"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--install-completion [bash|zsh|fish|powershell|pwsh]"})}),(0,o.jsx)(n.td,{children:"Installs completion for the specified shell."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--show-completion [bash|zsh|fish|powershell|pwsh]"})}),(0,o.jsx)(n.td,{children:"Shows completion for the specified shell, allowing you to copy it or customize the installation."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--backend-only"})}),(0,o.jsxs)(n.td,{children:["This parameter, with a default value of ",(0,o.jsx)(n.code,{children:"False"}),", allows running only the backend server without the frontend. It can also be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_BACKEND_ONLY"})," environment variable. For more, see ",(0,o.jsx)(n.a,{href:"../deployment/backend-only",children:"Backend-only"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--store"})}),(0,o.jsxs)(n.td,{children:["This parameter, with a default value of ",(0,o.jsx)(n.code,{children:"True"}),", enables the store features, use ",(0,o.jsx)(n.code,{children:"--no-store"})," to deactivate it. It can be configured using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_STORE"})," environment variable."]})]})]})]}),"\n",(0,o.jsx)(n.h4,{id:"cli-environment-variables",children:"CLI environment variables"}),"\n",(0,o.jsxs)(n.p,{children:["You can configure many of the CLI options using environment variables. These can be exported in your operating system or added to a ",(0,o.jsx)(n.code,{children:".env"})," file and loaded using the ",(0,o.jsx)(n.code,{children:"--env-file"})," option."]}),"\n",(0,o.jsxs)(n.p,{children:["A sample ",(0,o.jsx)(n.code,{children:".env"})," file named ",(0,o.jsx)(n.code,{children:".env.example"})," is included with the project. Copy this file to a new file named ",(0,o.jsx)(n.code,{children:".env"})," and replace the example values with your actual settings. If you're setting values in both your OS and the ",(0,o.jsx)(n.code,{children:".env"})," file, the ",(0,o.jsx)(n.code,{children:".env"})," settings will take precedence."]}),"\n",(0,o.jsx)(n.h2,{id:"langflow-superuser",children:"langflow superuser"}),"\n",(0,o.jsx)(n.p,{children:"Create a superuser for Langflow."}),"\n",(0,o.jsx)(a.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"superuser",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow superuser",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h3,{id:"options-5",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Type"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--username"})}),(0,o.jsx)(n.td,{children:"TEXT"}),(0,o.jsx)(n.td,{children:"Username for the superuser. [default: None] [required]"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--password"})}),(0,o.jsx)(n.td,{children:"TEXT"}),(0,o.jsx)(n.td,{children:"Password for the superuser. [default: None] [required]"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--log-level"})}),(0,o.jsx)(n.td,{children:"TEXT"}),(0,o.jsx)(n.td,{children:"Logging level. [env var: LANGFLOW_LOG_LEVEL] [default: error]"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--help"})}),(0,o.jsx)(n.td,{}),(0,o.jsx)(n.td,{children:"Show this message and exit."})]})]})]})]})}const u=function(e={}){const{wrapper:n}=Object.assign({},(0,s.RP)(),e.components);return n?(0,o.jsx)(n,Object.assign({},e,{children:(0,o.jsx)(j,e)})):j(e)};function f(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/3ba2a8d4.60a04fb3.js b/assets/js/3ba2a8d4.60a04fb3.js
new file mode 100644
index 0000000000..86a94de0cc
--- /dev/null
+++ b/assets/js/3ba2a8d4.60a04fb3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7198],{7293:(e,n,t)=>{t.d(n,{A:()=>N});var o=t(6540),s=t(4848);function i(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=o.Children.toArray(e),t=n.find((e=>o.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),i=n.filter((e=>e!==t)),r=t?.props.children;return{mdxAdmonitionTitle:r,rest:i.length>0?(0,s.jsx)(s.Fragment,{children:i}):null}}(e.children),i=e.title??n;return{...e,...i&&{title:i},children:t}}var r=t(8215),l=t(1312),d=t(7559);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function a(e){let{type:n,className:t,children:o}=e;return(0,s.jsx)("div",{className:(0,r.A)(d.G.common.admonition,d.G.common.admonitionType(n),c.admonition,t),children:o})}function h(e){let{icon:n,title:t}=e;return(0,s.jsxs)("div",{className:c.admonitionHeading,children:[(0,s.jsx)("span",{className:c.admonitionIcon,children:n}),t]})}function x(e){let{children:n}=e;return n?(0,s.jsx)("div",{className:c.admonitionContent,children:n}):null}function p(e){const{type:n,icon:t,title:o,children:i,className:r}=e;return(0,s.jsxs)(a,{type:n,className:r,children:[o||t?(0,s.jsx)(h,{title:o,icon:t}):null,(0,s.jsx)(x,{children:i})]})}function j(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const u={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function f(e){return(0,s.jsx)(p,{...u,...e,className:(0,r.A)("alert alert--secondary",e.className),children:e.children})}function m(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const g={icon:(0,s.jsx)(m,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(e){return(0,s.jsx)(p,{...g,...e,className:(0,r.A)("alert alert--success",e.className),children:e.children})}function y(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const b={icon:(0,s.jsx)(y,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function w(e){return(0,s.jsx)(p,{...b,...e,className:(0,r.A)("alert alert--info",e.className),children:e.children})}function F(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const A={icon:(0,s.jsx)(F,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function k(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const C={icon:(0,s.jsx)(k,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const L={icon:(0,s.jsx)(F,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const T={...{note:f,tip:v,info:w,warning:function(e){return(0,s.jsx)(p,{...A,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,s.jsx)(p,{...C,...e,className:(0,r.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,s.jsx)(f,{title:"secondary",...e}),important:e=>(0,s.jsx)(w,{title:"important",...e}),success:e=>(0,s.jsx)(v,{title:"success",...e}),caution:function(e){return(0,s.jsx)(p,{...L,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})}}};var O=t(6763);function N(e){const n=i(e),t=(o=n.type,T[o]||(O.warn(`No admonition component found for admonition type "${o}". Using Info as fallback.`),T.info));var o;return(0,s.jsx)(t,{...n})}},7878:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>h,assets:()=>a,chCodeConfig:()=>x,contentTitle:()=>d,default:()=>u,frontMatter:()=>l,metadata:()=>c,toc:()=>p});t(6540);var o=t(4848),s=t(8453),i=t(4754),r=t(7293);const l={},d="Command Line Interface (CLI)",c={id:"administration/cli",title:"Command Line Interface (CLI)",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/administration/cli.mdx",sourceDirName:"administration",slug:"/administration/cli",permalink:"/administration/cli",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Sign Up and Sign In",permalink:"/administration/login"},next:{title:"Playground",permalink:"/administration/playground"}},a={},h={annotations:i.hk,Code:i.Cy},x={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Overview",id:"overview",level:2},{value:"Options",id:"options",level:3},{value:"langflow api-key",id:"langflow-api-key",level:2},{value:"Options",id:"options-1",level:3},{value:"langflow copy-db",id:"langflow-copy-db",level:2},{value:"Options",id:"options-2",level:3},{value:"langflow migration",id:"langflow-migration",level:2},{value:"Options",id:"options-3",level:3},{value:"langflow run",id:"langflow-run",level:2},{value:"Options",id:"options-4",level:3},{value:"CLI environment variables",id:"cli-environment-variables",level:4},{value:"langflow superuser",id:"langflow-superuser",level:2},{value:"Options",id:"options-5",level:3}];function j(e){const n=Object.assign({h1:"h1",p:"p",ul:"ul",li:"li",a:"a",h2:"h2",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",code:"code",h3:"h3",h4:"h4"},(0,s.RP)(),e.components);return h||f("CH",!1),h.Code||f("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.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","\n",(0,o.jsx)(n.h1,{id:"command-line-interface-cli",children:"Command Line Interface (CLI)"}),"\n",(0,o.jsx)(r.A,{type:"warning",title:"warning",children:(0,o.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,o.jsx)(n.p,{children:"Langflow's Command Line Interface (CLI) is a powerful tool that allows you to interact with the Langflow server from the command line. The CLI provides a wide range of commands to help you shape Langflow to your needs."}),"\n",(0,o.jsx)(n.p,{children:"The available commands are below. Navigate to their individual sections of this page to see the parameters."}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"#overview",children:"langflow"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"#langflow-api-key",children:"langflow api-key"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"#langflow-copy-db",children:"langflow copy-db"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"#langflow-migration",children:"langflow migration"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"#langflow-run",children:"langflow run"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"#langflow-superuser",children:"langflow superuser"})}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"overview",children:"Overview"}),"\n",(0,o.jsx)(n.p,{children:"Running the CLI without any arguments displays a list of available options and commands."}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"--help",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Command"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"api-key"})}),(0,o.jsx)(n.td,{children:"Creates an API key for the default superuser if AUTO_LOGIN is enabled."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"copy-db"})}),(0,o.jsxs)(n.td,{children:["Copy the database files to the current directory (",(0,o.jsx)(n.code,{children:"which langflow"}),")."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"migration"})}),(0,o.jsx)(n.td,{children:"Run or test migrations."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"run"})}),(0,o.jsx)(n.td,{children:"Run the Langflow."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"superuser"})}),(0,o.jsx)(n.td,{children:"Create a superuser."})]})]})]}),"\n",(0,o.jsx)(n.h3,{id:"options",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--install-completion"})}),(0,o.jsx)(n.td,{children:"Install completion for the current shell."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--show-completion"})}),(0,o.jsx)(n.td,{children:"Show completion for the current shell, to copy it or customize the installation."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--help"})}),(0,o.jsx)(n.td,{children:"Show this message and exit."})]})]})]}),"\n",(0,o.jsx)(n.h2,{id:"langflow-api-key",children:"langflow api-key"}),"\n",(0,o.jsxs)(n.p,{children:["Run the ",(0,o.jsx)(n.code,{children:"api-key"})," command to create an API key for the default superuser if ",(0,o.jsx)(n.code,{children:"LANGFLOW_AUTO_LOGIN"})," is set to ",(0,o.jsx)(n.code,{children:"True"}),"."]}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"api-key",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow api-key",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e",props:{style:{color:"#FFA657"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"API Key Created Successfully: \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"sk-O0elzoWID1izAH8RUKrnnvyyMwIzHi2Wk-uXWoNJ2Ro \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"This is the only time the API key will be displayed. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"Make sure to store it in a secure location. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"\u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2502 ",props:{style:{color:"#FFA657"}}},{content:"The API key has been copied to your clipboard. Cmd + V to paste it. \u2502",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",props:{style:{color:"#FFA657"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h3,{id:"options-1",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Type"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"--log-level"}),(0,o.jsx)(n.td,{children:"TEXT"}),(0,o.jsx)(n.td,{children:"Logging level. [env var: LANGFLOW_LOG_LEVEL] [default: error]"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"--help"}),(0,o.jsx)(n.td,{}),(0,o.jsx)(n.td,{children:"Show this message and exit."})]})]})]}),"\n",(0,o.jsx)(n.h2,{id:"langflow-copy-db",children:"langflow copy-db"}),"\n",(0,o.jsxs)(n.p,{children:["Run the ",(0,o.jsx)(n.code,{children:"copy-db"})," command to copy the cached ",(0,o.jsx)(n.code,{children:"langflow.db"})," and ",(0,o.jsx)(n.code,{children:"langflow-pre.db"})," database files to the current directory."]}),"\n",(0,o.jsxs)(n.p,{children:["If the files exist in the cache directory, they will be copied to the same directory as ",(0,o.jsx)(n.code,{children:"__main__.py"}),", which can be found with ",(0,o.jsx)(n.code,{children:"which langflow"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"options-2",children:"Options"}),"\n",(0,o.jsx)(n.p,{children:"None."}),"\n",(0,o.jsx)(n.h2,{id:"langflow-migration",children:"langflow migration"}),"\n",(0,o.jsxs)(n.p,{children:["Run or test migrations with the ",(0,o.jsx)(n.a,{href:"https://pypi.org/project/alembic/",children:"Alembic"})," database tool."]}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"migration",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow migration",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h3,{id:"options-3",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--test, --no-test"})}),(0,o.jsx)(n.td,{children:"Run migrations in test mode. [default: test]"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--fix, --no-fix"})}),(0,o.jsx)(n.td,{children:"Fix migrations. This is a destructive operation, and should only be used if you know what you are doing. [default: no-fix]"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--help"})}),(0,o.jsx)(n.td,{children:"Show this message and exit."})]})]})]}),"\n",(0,o.jsx)(n.h2,{id:"langflow-run",children:"langflow run"}),"\n",(0,o.jsx)(n.p,{children:"Run Langflow."}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"run",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow run",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h3,{id:"options-4",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--help"})}),(0,o.jsx)(n.td,{children:"Displays all available options."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--host"})}),(0,o.jsxs)(n.td,{children:["Defines the host to bind the server to. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_HOST"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"127.0.0.1"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--workers"})}),(0,o.jsxs)(n.td,{children:["Sets the number of worker processes. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_WORKERS"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"1"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--timeout"})}),(0,o.jsxs)(n.td,{children:["Sets the worker timeout in seconds. The default is ",(0,o.jsx)(n.code,{children:"60"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--port"})}),(0,o.jsxs)(n.td,{children:["Sets the port to listen on. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_PORT"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"7860"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--env-file"})}),(0,o.jsxs)(n.td,{children:["Specifies the path to the .env file containing environment variables. The default is ",(0,o.jsx)(n.code,{children:".env"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--log-level"})}),(0,o.jsxs)(n.td,{children:["Defines the logging level. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_LOG_LEVEL"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"critical"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--components-path"})}),(0,o.jsxs)(n.td,{children:["Specifies the path to the directory containing custom components. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_COMPONENTS_PATH"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"langflow/components"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--log-file"})}),(0,o.jsxs)(n.td,{children:["Specifies the path to the log file. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_LOG_FILE"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"logs/langflow.log"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--cache"})}),(0,o.jsxs)(n.td,{children:["Select the type of cache to use. Options are ",(0,o.jsx)(n.code,{children:"InMemoryCache"})," and ",(0,o.jsx)(n.code,{children:"SQLiteCache"}),". Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_LANGCHAIN_CACHE"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"SQLiteCache"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"--dev"}),"/",(0,o.jsx)(n.code,{children:"--no-dev"})]}),(0,o.jsxs)(n.td,{children:["Toggles the development mode. The default is ",(0,o.jsx)(n.code,{children:"no-dev"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--path"})}),(0,o.jsxs)(n.td,{children:["Specifies the path to the frontend directory containing build files. This option is for development purposes only. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_FRONTEND_PATH"})," environment variable."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"--open-browser"}),"/",(0,o.jsx)(n.code,{children:"--no-open-browser"})]}),(0,o.jsxs)(n.td,{children:["Toggles the option to open the browser after starting the server. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_OPEN_BROWSER"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"open-browser"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.code,{children:"--remove-api-keys"}),"/",(0,o.jsx)(n.code,{children:"--no-remove-api-keys"})]}),(0,o.jsxs)(n.td,{children:["Toggles the option to remove API keys from the projects saved in the database. Can be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_REMOVE_API_KEYS"})," environment variable. The default is ",(0,o.jsx)(n.code,{children:"no-remove-api-keys"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--install-completion [bash|zsh|fish|powershell|pwsh]"})}),(0,o.jsx)(n.td,{children:"Installs completion for the specified shell."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--show-completion [bash|zsh|fish|powershell|pwsh]"})}),(0,o.jsx)(n.td,{children:"Shows completion for the specified shell, allowing you to copy it or customize the installation."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--backend-only"})}),(0,o.jsxs)(n.td,{children:["This parameter, with a default value of ",(0,o.jsx)(n.code,{children:"False"}),", allows running only the backend server without the frontend. It can also be set using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_BACKEND_ONLY"})," environment variable. For more, see ",(0,o.jsx)(n.a,{href:"../deployment/backend-only",children:"Backend-only"}),"."]})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--store"})}),(0,o.jsxs)(n.td,{children:["This parameter, with a default value of ",(0,o.jsx)(n.code,{children:"True"}),", enables the store features, use ",(0,o.jsx)(n.code,{children:"--no-store"})," to deactivate it. It can be configured using the ",(0,o.jsx)(n.code,{children:"LANGFLOW_STORE"})," environment variable."]})]})]})]}),"\n",(0,o.jsx)(n.h4,{id:"cli-environment-variables",children:"CLI environment variables"}),"\n",(0,o.jsxs)(n.p,{children:["You can configure many of the CLI options using environment variables. These can be exported in your operating system or added to a ",(0,o.jsx)(n.code,{children:".env"})," file and loaded using the ",(0,o.jsx)(n.code,{children:"--env-file"})," option."]}),"\n",(0,o.jsxs)(n.p,{children:["A sample ",(0,o.jsx)(n.code,{children:".env"})," file named ",(0,o.jsx)(n.code,{children:".env.example"})," is included with the project. Copy this file to a new file named ",(0,o.jsx)(n.code,{children:".env"})," and replace the example values with your actual settings. If you're setting values in both your OS and the ",(0,o.jsx)(n.code,{children:".env"})," file, the ",(0,o.jsx)(n.code,{children:".env"})," settings will take precedence."]}),"\n",(0,o.jsx)(n.h2,{id:"langflow-superuser",children:"langflow superuser"}),"\n",(0,o.jsx)(n.p,{children:"Create a superuser for Langflow."}),"\n",(0,o.jsx)(h.Code,{codeConfig:x,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"superuser",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow superuser",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h3,{id:"options-5",children:"Options"}),"\n",(0,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Option"}),(0,o.jsx)(n.th,{children:"Type"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--username"})}),(0,o.jsx)(n.td,{children:"TEXT"}),(0,o.jsx)(n.td,{children:"Username for the superuser. [default: None] [required]"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--password"})}),(0,o.jsx)(n.td,{children:"TEXT"}),(0,o.jsx)(n.td,{children:"Password for the superuser. [default: None] [required]"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--log-level"})}),(0,o.jsx)(n.td,{children:"TEXT"}),(0,o.jsx)(n.td,{children:"Logging level. [env var: LANGFLOW_LOG_LEVEL] [default: error]"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:(0,o.jsx)(n.code,{children:"--help"})}),(0,o.jsx)(n.td,{}),(0,o.jsx)(n.td,{children:"Show this message and exit."})]})]})]})]})}const u=function(e={}){const{wrapper:n}=Object.assign({},(0,s.RP)(),e.components);return n?(0,o.jsx)(n,Object.assign({},e,{children:(0,o.jsx)(j,e)})):j(e)};function f(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/3fe772c5.36c68b60.js b/assets/js/3fe772c5.36c68b60.js
deleted file mode 100644
index aee87dabd8..0000000000
--- a/assets/js/3fe772c5.36c68b60.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[667],{7293:(e,n,t)=>{t.d(n,{A:()=>H});var i=t(6540),o=t(4848);function s(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=i.Children.toArray(e),t=n.find((e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),s=n.filter((e=>e!==t)),a=t?.props.children;return{mdxAdmonitionTitle:a,rest:s.length>0?(0,o.jsx)(o.Fragment,{children:s}):null}}(e.children),s=e.title??n;return{...e,...s&&{title:s},children:t}}var a=t(8215),r=t(1312),c=t(7559);const l={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:t,children:i}=e;return(0,o.jsx)("div",{className:(0,a.A)(c.G.common.admonition,c.G.common.admonitionType(n),l.admonition,t),children:i})}function m(e){let{icon:n,title:t}=e;return(0,o.jsxs)("div",{className:l.admonitionHeading,children:[(0,o.jsx)("span",{className:l.admonitionIcon,children:n}),t]})}function u(e){let{children:n}=e;return n?(0,o.jsx)("div",{className:l.admonitionContent,children:n}):null}function h(e){const{type:n,icon:t,title:i,children:s,className:a}=e;return(0,o.jsxs)(d,{type:n,className:a,children:[i||t?(0,o.jsx)(m,{title:i,icon:t}):null,(0,o.jsx)(u,{children:s})]})}function x(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const f={icon:(0,o.jsx)(x,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function p(e){return(0,o.jsx)(h,{...f,...e,className:(0,a.A)("alert alert--secondary",e.className),children:e.children})}function j(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const v={icon:(0,o.jsx)(j,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function g(e){return(0,o.jsx)(h,{...v,...e,className:(0,a.A)("alert alert--success",e.className),children:e.children})}function y(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,o.jsx)(y,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function A(e){return(0,o.jsx)(h,{...w,...e,className:(0,a.A)("alert alert--info",e.className),children:e.children})}function N(e){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const b={icon:(0,o.jsx)(N,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function T(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const C={icon:(0,o.jsx)(T,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const z={icon:(0,o.jsx)(N,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const k={...{note:p,tip:g,info:A,warning:function(e){return(0,o.jsx)(h,{...b,...e,className:(0,a.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,o.jsx)(h,{...C,...e,className:(0,a.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,o.jsx)(p,{title:"secondary",...e}),important:e=>(0,o.jsx)(A,{title:"important",...e}),success:e=>(0,o.jsx)(g,{title:"success",...e}),caution:function(e){return(0,o.jsx)(h,{...z,...e,className:(0,a.A)("alert alert--warning",e.className),children:e.children})}}};var M=t(6763);function H(e){const n=s(e),t=(i=n.type,k[i]||(M.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),k.info));var i;return(0,o.jsx)(t,{...n})}},7533:(e,n,t)=>{t.d(n,{A:()=>r});var i=t(6540),o=t(1122),s=t(6025),a=t(4848);const r=e=>{let{alt:n,sources:t,style:r}=e;const[c,l]=(0,i.useState)(!1),d=e=>{"Escape"===e.key&&l(!1)};(0,i.useEffect)((()=>(c?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[c]);return(0,a.jsx)("div",{className:"zoomable-image "+(c?"fullscreen":""),onClick:()=>{l(!c)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...r},children:(0,a.jsx)(o.A,{className:"zoomable-image-inner",alt:n,sources:{light:(0,s.Ay)(t.light),dark:(0,s.Ay)(t.dark)}})})}},1573:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>m,contentTitle:()=>l,default:()=>x,frontMatter:()=>c,metadata:()=>d,toc:()=>u});t(6540);var i=t(4848),o=t(8453),s=(t(1122),t(6025),t(7533),t(3554)),a=t.n(s),r=t(7293);const c={},l="Text Operator",d={id:"examples/text-operator",title:"Text Operator",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/examples/text-operator.mdx",sourceDirName:"examples",slug:"/examples/text-operator",permalink:"/examples/text-operator",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},m={},u=[];function h(e){const n=Object.assign({h1:"h1",p:"p",strong:"strong",code:"code"},(0,o.RP)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"text-operator",children:"Text Operator"}),"\n",(0,i.jsx)(r.A,{type:"warning",title:"warning",children:(0,i.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"Text Operator"})," component simplifies logic. It evaluates the results from another component (for example, if the input text exactly equals ",(0,i.jsx)(n.code,{children:"Tuna"}),") and runs another component based on the results. Basically, the text operator is an if/else component for your flow."]}),"\n",(0,i.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,i.jsx)(a(),{playing:!0,controls:!0,url:"/videos/text_operator.mp4"})})]})}const x=function(e={}){const{wrapper:n}=Object.assign({},(0,o.RP)(),e.components);return n?(0,i.jsx)(n,Object.assign({},e,{children:(0,i.jsx)(h,e)})):h(e)}},8453:(e,n,t)=>{t.d(n,{RP:()=>s,xA:()=>r});var i=t(6540);const o=i.createContext({});function s(e){const n=i.useContext(o);return i.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const a={};function r({components:e,children:n,disableParentContext:t}){let r;return r=t?"function"==typeof e?e({}):e||a:s(e),i.createElement(o.Provider,{value:r},n)}}}]);
\ No newline at end of file
diff --git a/assets/js/3fe772c5.c25111e0.js b/assets/js/3fe772c5.c25111e0.js
new file mode 100644
index 0000000000..1111a178f6
--- /dev/null
+++ b/assets/js/3fe772c5.c25111e0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[667],{7533:(e,t,n)=>{n.d(t,{A:()=>i});var o=n(6540),s=n(1122),r=n(6025),a=n(4848);const i=e=>{let{alt:t,sources:n,style:i}=e;const[l,c]=(0,o.useState)(!1),d=e=>{"Escape"===e.key&&c(!1)};(0,o.useEffect)((()=>(l?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[l]);return(0,a.jsx)("div",{className:"zoomable-image "+(l?"fullscreen":""),onClick:()=>{c(!l)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...i},children:(0,a.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(n.light),dark:(0,r.Ay)(n.dark)}})})}},1573:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>x,frontMatter:()=>l,metadata:()=>d,toc:()=>u});n(6540);var o=n(4848),s=n(8453),r=(n(1122),n(6025),n(7533),n(3554)),a=n.n(r),i=n(7293);const l={},c="Text Operator",d={id:"examples/text-operator",title:"Text Operator",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/examples/text-operator.mdx",sourceDirName:"examples",slug:"/examples/text-operator",permalink:"/examples/text-operator",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},p={},u=[];function m(e){const t=Object.assign({h1:"h1",p:"p",strong:"strong",code:"code"},(0,s.RP)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"text-operator",children:"Text Operator"}),"\n",(0,o.jsx)(i.A,{type:"warning",title:"warning",children:(0,o.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,o.jsxs)(t.p,{children:["The ",(0,o.jsx)(t.strong,{children:"Text Operator"})," component simplifies logic. It evaluates the results from another component (for example, if the input text exactly equals ",(0,o.jsx)(t.code,{children:"Tuna"}),") and runs another component based on the results. Basically, the text operator is an if/else component for your flow."]}),"\n",(0,o.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,o.jsx)(a(),{playing:!0,controls:!0,url:"/videos/text_operator.mp4"})})]})}const x=function(e={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),e.components);return t?(0,o.jsx)(t,Object.assign({},e,{children:(0,o.jsx)(m,e)})):m(e)}},8453:(e,t,n)=>{n.d(t,{RP:()=>r,xA:()=>i});var o=n(6540);const s=o.createContext({});function r(e){const t=o.useContext(s);return o.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const a={};function i({components:e,children:t,disableParentContext:n}){let i;return i=n?"function"==typeof e?e({}):e||a:r(e),o.createElement(s.Provider,{value:i},t)}}}]);
\ No newline at end of file
diff --git a/assets/js/401abcde.443421a9.js b/assets/js/401abcde.443421a9.js
deleted file mode 100644
index cf7e6b7f51..0000000000
--- a/assets/js/401abcde.443421a9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1129],{7293:(n,e,t)=>{t.d(e,{A:()=>T});var i=t(6540),o=t(4848);function s(n){const{mdxAdmonitionTitle:e,rest:t}=function(n){const e=i.Children.toArray(n),t=e.find((n=>i.isValidElement(n)&&"mdxAdmonitionTitle"===n.type)),s=e.filter((n=>n!==t)),a=t?.props.children;return{mdxAdmonitionTitle:a,rest:s.length>0?(0,o.jsx)(o.Fragment,{children:s}):null}}(n.children),s=n.title??e;return{...n,...s&&{title:s},children:t}}var a=t(8215),r=t(1312),l=t(7559);const d={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function c(n){let{type:e,className:t,children:i}=n;return(0,o.jsx)("div",{className:(0,a.A)(l.G.common.admonition,l.G.common.admonitionType(e),d.admonition,t),children:i})}function u(n){let{icon:e,title:t}=n;return(0,o.jsxs)("div",{className:d.admonitionHeading,children:[(0,o.jsx)("span",{className:d.admonitionIcon,children:e}),t]})}function m(n){let{children:e}=n;return e?(0,o.jsx)("div",{className:d.admonitionContent,children:e}):null}function h(n){const{type:e,icon:t,title:i,children:s,className:a}=n;return(0,o.jsxs)(c,{type:e,className:a,children:[i||t?(0,o.jsx)(u,{title:i,icon:t}):null,(0,o.jsx)(m,{children:s})]})}function g(n){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const p={icon:(0,o.jsx)(g,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function x(n){return(0,o.jsx)(h,{...p,...n,className:(0,a.A)("alert alert--secondary",n.className),children:n.children})}function f(n){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const y={icon:(0,o.jsx)(f,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function j(n){return(0,o.jsx)(h,{...y,...n,className:(0,a.A)("alert alert--success",n.className),children:n.children})}function v(n){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,o.jsx)(v,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function I(n){return(0,o.jsx)(h,{...w,...n,className:(0,a.A)("alert alert--info",n.className),children:n.children})}function A(n){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const C={icon:(0,o.jsx)(A,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function M(n){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const b={icon:(0,o.jsx)(M,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const N={icon:(0,o.jsx)(A,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const P={...{note:x,tip:j,info:I,warning:function(n){return(0,o.jsx)(h,{...C,...n,className:(0,a.A)("alert alert--warning",n.className),children:n.children})},danger:function(n){return(0,o.jsx)(h,{...b,...n,className:(0,a.A)("alert alert--danger",n.className),children:n.children})}},...{secondary:n=>(0,o.jsx)(x,{title:"secondary",...n}),important:n=>(0,o.jsx)(I,{title:"important",...n}),success:n=>(0,o.jsx)(j,{title:"success",...n}),caution:function(n){return(0,o.jsx)(h,{...N,...n,className:(0,a.A)("alert alert--warning",n.className),children:n.children})}}};var k=t(6763);function T(n){const e=s(n),t=(i=e.type,P[i]||(k.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),P.info));var i;return(0,o.jsx)(t,{...e})}},7533:(n,e,t)=>{t.d(e,{A:()=>r});var i=t(6540),o=t(1122),s=t(6025),a=t(4848);const r=n=>{let{alt:e,sources:t,style:r}=n;const[l,d]=(0,i.useState)(!1),c=n=>{"Escape"===n.key&&d(!1)};(0,i.useEffect)((()=>(l?document.addEventListener("keydown",c):document.removeEventListener("keydown",c),()=>{document.removeEventListener("keydown",c)})),[l]);return(0,a.jsx)("div",{className:"zoomable-image "+(l?"fullscreen":""),onClick:()=>{d(!l)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...r},children:(0,a.jsx)(o.A,{className:"zoomable-image-inner",alt:e,sources:{light:(0,s.Ay)(t.light),dark:(0,s.Ay)(t.dark)}})})}},7761:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>h,contentTitle:()=>u,default:()=>x,frontMatter:()=>c,metadata:()=>m,toc:()=>g});t(6540);var i=t(4848),o=t(8453),s=(t(1122),t(6025)),a=t(7533),r=t(3554),l=t.n(r),d=t(7293);const c={},u="Playground",m={id:"administration/playground",title:"Playground",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/administration/playground.mdx",sourceDirName:"administration",slug:"/administration/playground",permalink:"/administration/playground",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Command Line Interface (CLI)",permalink:"/administration/cli"},next:{title:"Chat Memory",permalink:"/administration/memories"}},h={},g=[{value:"Playground I/O",id:"playground-io",level:2},{value:"Memory Management",id:"memory-management",level:2}];function p(n){const e=Object.assign({h1:"h1",p:"p",strong:"strong",ol:"ol",li:"li",img:"img",h2:"h2",ul:"ul",a:"a"},(0,o.RP)(),n.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.h1,{id:"playground",children:"Playground"}),"\n",(0,i.jsx)(d.A,{type:"warning",title:"warning",children:(0,i.jsx)(e.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,i.jsx)(d.A,{type:"info",children:(0,i.jsxs)(e.p,{children:["From the ",(0,i.jsx)(e.strong,{children:"My Collection"}),"\xa0page, click the\xa0Playground\xa0button in one of your flow cards.\nIt will directly open up a window with that project's Playground, without even showing the flow (this also works for flows hosted on the Langflow Store!)."]})}),"\n",(0,i.jsxs)(e.p,{children:["The ",(0,i.jsx)(e.strong,{children:"Playground"})," is a dynamic interface designed for real-time interaction with agents, allowing users to access and manage memories and monitor the inputs and outputs. Here, users can directly prototype and experiment with their configured components or AI models, making adjustments and observing different outcomes in real-time."]}),"\n",(0,i.jsx)(e.p,{children:"It even works for flows hosted on the Langflow store!"}),"\n",(0,i.jsx)(e.p,{children:"As long as you have a flow properly working, you can interact with it by clicking the\xa0Playground\xa0button."}),"\n",(0,i.jsxs)(e.ol,{children:["\n",(0,i.jsxs)(e.li,{children:["From your ",(0,i.jsx)(e.strong,{children:"Collections"})," page, click the ",(0,i.jsxs)(e.strong,{children:[(0,i.jsx)(e.img,{src:t(4757).A+"",loading:"lazy",alt:"Playground icon",width:"24",height:"24"}),"Playground"]})," in one of your flows.\nThe ",(0,i.jsx)(e.strong,{children:"Playground"})," window opens."]}),"\n"]}),"\n",(0,i.jsx)(a.A,{alt:"Docusaurus themed image",sources:{light:(0,s.Ay)("img/playground-chat.png"),dark:(0,s.Ay)("img/playground-chat.png")},style:{width:"100%",maxWidth:"800px",margin:"0 auto"}}),"\n",(0,i.jsxs)(e.ol,{start:"2",children:["\n",(0,i.jsx)(e.li,{children:"Chat with your bot as you normally would, all without having to open the editor."}),"\n"]}),"\n",(0,i.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,i.jsx)(l(),{playing:!0,controls:!0,url:"/videos/langflow_playground.mp4"})}),"\n",(0,i.jsx)(e.h2,{id:"playground-io",children:"Playground I/O"}),"\n",(0,i.jsx)(e.p,{children:"The Playground's window arrangement changes depending on what components are being used."}),"\n",(0,i.jsx)(e.p,{children:"Adding or removing any of the below components modifies your Playground so you can monitor the inputs and outputs."}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Chat Input"}),"\n",(0,i.jsx)(e.li,{children:"Text Input"}),"\n",(0,i.jsx)(e.li,{children:"Chat Output"}),"\n",(0,i.jsx)(e.li,{children:"Text Output"}),"\n",(0,i.jsx)(e.li,{children:"Data Output"}),"\n",(0,i.jsx)(e.li,{children:"Inspect Memory"}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["You can also select ",(0,i.jsx)(e.strong,{children:"Options"})," > ",(0,i.jsx)(e.strong,{children:"Logs"})," to see your flow's logs."]}),"\n",(0,i.jsxs)(e.p,{children:["For more information, see ",(0,i.jsx)(e.a,{href:"../components/inputs-and-outputs",children:"Inputs and Outputs"}),"."]}),"\n",(0,i.jsx)(e.h2,{id:"memory-management",children:"Memory Management"}),"\n",(0,i.jsxs)(e.p,{children:["When you send a message, under ",(0,i.jsx)(e.strong,{children:"Memories"}),", you can view a table of previous interactions for this session."]}),"\n",(0,i.jsx)(e.p,{children:"Langflow allows every chat message to be stored, and a single flow can have multiple memory sessions. This enables you to create multiple \u201cmemories\u201d for agents to store and recall specific information as needed."}),"\n",(0,i.jsx)(e.p,{children:"You can edit and remove previous messages to inspect and validate a model\u2019s response behavior."}),"\n",(0,i.jsxs)(e.p,{children:["For more information, see ",(0,i.jsx)(e.a,{href:"./memories",children:"Memories"}),"."]})]})}const x=function(n={}){const{wrapper:e}=Object.assign({},(0,o.RP)(),n.components);return e?(0,i.jsx)(e,Object.assign({},n,{children:(0,i.jsx)(p,n)})):p(n)}},4757:(n,e,t)=>{t.d(e,{A:()=>i});const i="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgY2xhc3M9Imx1Y2lkZSBsdWNpZGUtYm90LW1lc3NhZ2Utc3F1YXJlIj4KICA8cGF0aCBkPSJNMTIgNlYySDgiIC8+CiAgPHBhdGggZD0ibTggMTgtNCA0VjhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMloiIC8+CiAgPHBhdGggZD0iTTIgMTJoMiIgLz4KICA8cGF0aCBkPSJNOSAxMXYyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxMXYyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgo8L3N2Zz4g"},8453:(n,e,t)=>{t.d(e,{RP:()=>s,xA:()=>r});var i=t(6540);const o=i.createContext({});function s(n){const e=i.useContext(o);return i.useMemo((()=>"function"==typeof n?n(e):{...e,...n}),[e,n])}const a={};function r({components:n,children:e,disableParentContext:t}){let r;return r=t?"function"==typeof n?n({}):n||a:s(n),i.createElement(o.Provider,{value:r},e)}}}]);
\ No newline at end of file
diff --git a/assets/js/401abcde.b75b8e96.js b/assets/js/401abcde.b75b8e96.js
new file mode 100644
index 0000000000..6a91ea5cb6
--- /dev/null
+++ b/assets/js/401abcde.b75b8e96.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1129],{7533:(e,n,o)=>{o.d(n,{A:()=>r});var t=o(6540),i=o(1122),s=o(6025),a=o(4848);const r=e=>{let{alt:n,sources:o,style:r}=e;const[l,d]=(0,t.useState)(!1),c=e=>{"Escape"===e.key&&d(!1)};(0,t.useEffect)((()=>(l?document.addEventListener("keydown",c):document.removeEventListener("keydown",c),()=>{document.removeEventListener("keydown",c)})),[l]);return(0,a.jsx)("div",{className:"zoomable-image "+(l?"fullscreen":""),onClick:()=>{d(!l)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...r},children:(0,a.jsx)(i.A,{className:"zoomable-image-inner",alt:n,sources:{light:(0,s.Ay)(o.light),dark:(0,s.Ay)(o.dark)}})})}},7761:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>m,contentTitle:()=>g,default:()=>y,frontMatter:()=>c,metadata:()=>u,toc:()=>h});o(6540);var t=o(4848),i=o(8453),s=(o(1122),o(6025)),a=o(7533),r=o(3554),l=o.n(r),d=o(7293);const c={},g="Playground",u={id:"administration/playground",title:"Playground",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/administration/playground.mdx",sourceDirName:"administration",slug:"/administration/playground",permalink:"/administration/playground",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Command Line Interface (CLI)",permalink:"/administration/cli"},next:{title:"Chat Memory",permalink:"/administration/memories"}},m={},h=[{value:"Playground I/O",id:"playground-io",level:2},{value:"Memory Management",id:"memory-management",level:2}];function p(e){const n=Object.assign({h1:"h1",p:"p",strong:"strong",ol:"ol",li:"li",img:"img",h2:"h2",ul:"ul",a:"a"},(0,i.RP)(),e.components);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"playground",children:"Playground"}),"\n",(0,t.jsx)(d.A,{type:"warning",title:"warning",children:(0,t.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,t.jsx)(d.A,{type:"info",children:(0,t.jsxs)(n.p,{children:["From the ",(0,t.jsx)(n.strong,{children:"My Collection"}),"\xa0page, click the\xa0Playground\xa0button in one of your flow cards.\nIt will directly open up a window with that project's Playground, without even showing the flow (this also works for flows hosted on the Langflow Store!)."]})}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.strong,{children:"Playground"})," is a dynamic interface designed for real-time interaction with agents, allowing users to access and manage memories and monitor the inputs and outputs. Here, users can directly prototype and experiment with their configured components or AI models, making adjustments and observing different outcomes in real-time."]}),"\n",(0,t.jsx)(n.p,{children:"It even works for flows hosted on the Langflow store!"}),"\n",(0,t.jsx)(n.p,{children:"As long as you have a flow properly working, you can interact with it by clicking the\xa0Playground\xa0button."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["From your ",(0,t.jsx)(n.strong,{children:"Collections"})," page, click the ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(n.img,{src:o(4757).A+"",loading:"lazy",alt:"Playground icon",width:"24",height:"24"}),"Playground"]})," in one of your flows.\nThe ",(0,t.jsx)(n.strong,{children:"Playground"})," window opens."]}),"\n"]}),"\n",(0,t.jsx)(a.A,{alt:"Docusaurus themed image",sources:{light:(0,s.Ay)("img/playground-chat.png"),dark:(0,s.Ay)("img/playground-chat.png")},style:{width:"100%",maxWidth:"800px",margin:"0 auto"}}),"\n",(0,t.jsxs)(n.ol,{start:"2",children:["\n",(0,t.jsx)(n.li,{children:"Chat with your bot as you normally would, all without having to open the editor."}),"\n"]}),"\n",(0,t.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,t.jsx)(l(),{playing:!0,controls:!0,url:"/videos/langflow_playground.mp4"})}),"\n",(0,t.jsx)(n.h2,{id:"playground-io",children:"Playground I/O"}),"\n",(0,t.jsx)(n.p,{children:"The Playground's window arrangement changes depending on what components are being used."}),"\n",(0,t.jsx)(n.p,{children:"Adding or removing any of the below components modifies your Playground so you can monitor the inputs and outputs."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Chat Input"}),"\n",(0,t.jsx)(n.li,{children:"Text Input"}),"\n",(0,t.jsx)(n.li,{children:"Chat Output"}),"\n",(0,t.jsx)(n.li,{children:"Text Output"}),"\n",(0,t.jsx)(n.li,{children:"Data Output"}),"\n",(0,t.jsx)(n.li,{children:"Inspect Memory"}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["You can also select ",(0,t.jsx)(n.strong,{children:"Options"})," > ",(0,t.jsx)(n.strong,{children:"Logs"})," to see your flow's logs."]}),"\n",(0,t.jsxs)(n.p,{children:["For more information, see ",(0,t.jsx)(n.a,{href:"../components/inputs-and-outputs",children:"Inputs and Outputs"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"memory-management",children:"Memory Management"}),"\n",(0,t.jsxs)(n.p,{children:["When you send a message, under ",(0,t.jsx)(n.strong,{children:"Memories"}),", you can view a table of previous interactions for this session."]}),"\n",(0,t.jsx)(n.p,{children:"Langflow allows every chat message to be stored, and a single flow can have multiple memory sessions. This enables you to create multiple \u201cmemories\u201d for agents to store and recall specific information as needed."}),"\n",(0,t.jsx)(n.p,{children:"You can edit and remove previous messages to inspect and validate a model\u2019s response behavior."}),"\n",(0,t.jsxs)(n.p,{children:["For more information, see ",(0,t.jsx)(n.a,{href:"./memories",children:"Memories"}),"."]})]})}const y=function(e={}){const{wrapper:n}=Object.assign({},(0,i.RP)(),e.components);return n?(0,t.jsx)(n,Object.assign({},e,{children:(0,t.jsx)(p,e)})):p(e)}},4757:(e,n,o)=>{o.d(n,{A:()=>t});const t="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgY2xhc3M9Imx1Y2lkZSBsdWNpZGUtYm90LW1lc3NhZ2Utc3F1YXJlIj4KICA8cGF0aCBkPSJNMTIgNlYySDgiIC8+CiAgPHBhdGggZD0ibTggMTgtNCA0VjhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMloiIC8+CiAgPHBhdGggZD0iTTIgMTJoMiIgLz4KICA8cGF0aCBkPSJNOSAxMXYyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxMXYyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgo8L3N2Zz4g"},8453:(e,n,o)=>{o.d(n,{RP:()=>s,xA:()=>r});var t=o(6540);const i=t.createContext({});function s(e){const n=t.useContext(i);return t.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const a={};function r({components:e,children:n,disableParentContext:o}){let r;return r=o?"function"==typeof e?e({}):e||a:s(e),t.createElement(i.Provider,{value:r},n)}}}]);
\ No newline at end of file
diff --git a/assets/js/4eafabd3.0e0a8a71.js b/assets/js/4eafabd3.0e0a8a71.js
deleted file mode 100644
index 665c926699..0000000000
--- a/assets/js/4eafabd3.0e0a8a71.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5833],{5248:(o,e,t)=>{t.r(e),t.d(e,{CH:()=>d,assets:()=>i,chCodeConfig:()=>y,contentTitle:()=>p,default:()=>F,frontMatter:()=>c,metadata:()=>a,toc:()=>h});t(6540);var n=t(4848),s=t(8453),r=t(4754),l=t(7293);const c={},p="Backend-only",a={id:"deployment/backend-only",title:"Backend-only",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/deployment/backend-only.mdx",sourceDirName:"deployment",slug:"/deployment/backend-only",permalink:"/deployment/backend-only",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Docker",permalink:"/deployment/docker"},next:{title:"Kubernetes",permalink:"/deployment/kubernetes"}},i={},d={annotations:r.hk,Code:r.Cy},y={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Download your flow's curl call",id:"download-your-flows-curl-call",level:2},{value:"Start Langflow in backend-only mode",id:"start-langflow-in-backend-only-mode",level:2},{value:"Download your flow's Python API call",id:"download-your-flows-python-api-call",level:2}];function u(o){const e=Object.assign({h1:"h1",p:"p",code:"code",h2:"h2",ul:"ul",li:"li",a:"a",ol:"ol",strong:"strong"},(0,s.RP)(),o.components);return d||D("CH",!1),d.Code||D("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(e.h1,{id:"backend-only",children:"Backend-only"}),"\n",(0,n.jsx)(l.A,{type:"warning",title:"warning",children:(0,n.jsx)(e.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(e.p,{children:["You can run Langflow in ",(0,n.jsx)(e.code,{children:"--backend-only"})," mode to expose your Langflow app as an API, without running the frontend UI."]}),"\n",(0,n.jsxs)(e.p,{children:["Start langflow in backend-only mode with ",(0,n.jsx)(e.code,{children:"python3 -m langflow run --backend-only"}),"."]}),"\n",(0,n.jsxs)(e.p,{children:["The terminal prints ",(0,n.jsx)(e.code,{children:"Welcome to \u26d3 Langflow"}),", and a blank window opens at ",(0,n.jsx)(e.code,{children:"http://127.0.0.1:7864/all"}),".\nLangflow will now serve requests to its API without the frontend running."]}),"\n",(0,n.jsx)(e.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.a,{href:"../getting-started/install-langflow",children:"Langflow installed"})}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.a,{href:"https://platform.openai.com",children:"OpenAI API key"})}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.a,{href:"../starter-projects/basic-prompting",children:"A Langflow flow created"})}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(e.h2,{id:"download-your-flows-curl-call",children:"Download your flow's curl call"}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsx)(e.li,{children:"Click API."}),"\n",(0,n.jsxs)(e.li,{children:["Click ",(0,n.jsx)(e.strong,{children:"curl"})," > ",(0,n.jsx)(e.strong,{children:"Copy code"})," and save the code to your local machine.\nIt will look something like this:"]}),"\n"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "http://127.0.0.1:7864/api/v1/run/ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef?stream=false" \\',props:{}}]},{tokens:[{content:" -H 'Content-Type: application/json'\\",props:{}}]},{tokens:[{content:' -d \'{"input_value": "message",',props:{}}]},{tokens:[{content:' "output_type": "chat",',props:{}}]},{tokens:[{content:' "input_type": "chat",',props:{}}]},{tokens:[{content:' "tweaks": {',props:{}}]},{tokens:[{content:' "Prompt-kvo86": {},',props:{}}]},{tokens:[{content:' "OpenAIModel-MilkD": {},',props:{}}]},{tokens:[{content:' "ChatOutput-ktwdw": {},',props:{}}]},{tokens:[{content:' "ChatInput-xXC4F": {}',props:{}}]},{tokens:[{content:"}}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,n.jsxs)(e.p,{children:["Note the flow ID of ",(0,n.jsx)(e.code,{children:"ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef"}),". You can find this ID in the UI as well to ensure you're querying the right flow."]}),"\n",(0,n.jsx)(e.h2,{id:"start-langflow-in-backend-only-mode",children:"Start Langflow in backend-only mode"}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsx)(e.li,{children:"Stop Langflow with Ctrl+C."}),"\n",(0,n.jsxs)(e.li,{children:["Start langflow in backend-only mode with ",(0,n.jsx)(e.code,{children:"python3 -m langflow run --backend-only"}),".\nThe terminal prints ",(0,n.jsx)(e.code,{children:"Welcome to \u26d3 Langflow"}),", and a blank window opens at ",(0,n.jsx)(e.code,{children:"http://127.0.0.1:7864/all"}),".\nLangflow will now serve requests to its API."]}),"\n",(0,n.jsx)(e.li,{children:"Run the curl code you copied from the UI.\nYou should get a result like this:"}),"\n"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"session_id"',props:{style:{color:"#FFA657"}}},{content:":",props:{style:{color:"#79C0FF"}}},{content:'"ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef:bf81d898868ac87e1b4edbd96c131c5dee801ea2971122cc91352d144a45b880","outputs"',props:{style:{color:"#FFA657"}}},{content:":",props:{style:{color:"#79C0FF"}}},{content:'[{"',props:{style:{color:"#C9D1D9"}}},{content:'inputs":{"input_value":"hi, ',props:{style:{color:"#FFA657"}}},{content:'are you there?"},"outputs":[{"results":{"result":"Arrr, ahoy matey! Aye, I be here. What be ye needin\', me hearty?"},"artifacts":{"message":"Arrr, ahoy matey! Aye, I be here. What be ye needin\', me hearty?","sender":"Machine","sender_name":"AI"},"messages":[{"message":"Arrr, ahoy matey! Aye, I be here. What be ye needin\', me hearty?","sender":"Machine","sender_name":"AI","component_id":"ChatOutput-ktwdw"}],"component_display_name":"Chat Output","component_id":"ChatOutput-ktwdw","used_frozen_result":false}]}]}%',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsx)(e.p,{children:"Again, note that the flow ID matches.\nLangflow is receiving your POST request, running the flow, and returning the result, all without running the frontend. Cool!"}),"\n",(0,n.jsx)(e.h2,{id:"download-your-flows-python-api-call",children:"Download your flow's Python API call"}),"\n",(0,n.jsx)(e.p,{children:"Instead of using curl, you can download your flow as a Python API call instead."}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsx)(e.li,{children:"Click API."}),"\n",(0,n.jsxs)(e.li,{children:["Click ",(0,n.jsx)(e.strong,{children:"Python API"})," > ",(0,n.jsx)(e.strong,{children:"Copy code"})," and save the code to your local machine.\nThe code will look something like this:"]}),"\n"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Optional",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"BASE_API_URL ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"http://127.0.0.1:7864/api/v1/run"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"FLOW_ID ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# You can tweak the flow by adding a tweaks dictionary",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:'# e.g {"OpenAI-XXXXX": {"model_name": "gpt-4"}}',props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"def ",props:{style:{color:"#FF7B72"}}},{content:"run_flow",props:{style:{color:"#D2A8FF"}}},{content:"(message: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" flow_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" output_type: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"chat"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_type: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"chat"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tweaks: Optional[",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" api_key: Optional[",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}},{content:") -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' """',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" Run a flow with a given message and optional tweaks.",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param message: The message to send to the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param flow_id: The ID of the flow to run",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param tweaks: Optional tweaks to customize the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :return: The JSON response from the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' """',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" api_url ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"{BASE_API_URL}",props:{style:{color:"#79C0FF"}}},{content:"/",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"flow_id",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" payload ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "input_value"',props:{style:{color:"#A5D6FF"}}},{content:": message,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "output_type"',props:{style:{color:"#A5D6FF"}}},{content:": output_type,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "input_type"',props:{style:{color:"#A5D6FF"}}},{content:": input_type,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" tweaks:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" payload[",props:{style:{color:"#C9D1D9"}}},{content:'"tweaks"',props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" tweaks",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" api_key:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}},{content:'"x-api-key"',props:{style:{color:"#A5D6FF"}}},{content:": api_key}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.post(api_url, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"payload, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Setup any tweaks you want to apply to the flow",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"message ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(run_flow(",props:{style:{color:"#C9D1D9"}}},{content:"message",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"message, ",props:{style:{color:"#C9D1D9"}}},{content:"flow_id",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"FLOW_ID",props:{style:{color:"#79C0FF"}}},{content:"))",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(e.ol,{start:"3",children:["\n",(0,n.jsx)(e.li,{children:"Run your Python app:"}),"\n"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python3 app.py",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(e.p,{children:"The result is similar to the curl call:"}),"\n",(0,n.jsx)(d.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:"'session_id'",props:{style:{color:"#FFA657"}}},{content:": ",props:{style:{color:"#79C0FF"}}},{content:"'ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef:bf81d898868ac87e1b4edbd96c131c5dee801ea2971122cc91352d144a45b880', 'outputs':",props:{style:{color:"#A5D6FF"}}},{content:" [{",props:{style:{color:"#C9D1D9"}}},{content:"'inputs'",props:{style:{color:"#FFA657"}}},{content:": ",props:{style:{color:"#79C0FF"}}},{content:"{'input_value': 'message'}, 'outputs':",props:{style:{color:"#A5D6FF"}}},{content:" [{",props:{style:{color:"#C9D1D9"}}},{content:"'results'",props:{style:{color:"#FFA657"}}},{content:": ",props:{style:{color:"#79C0FF"}}},{content:"{'result': \"Arrr matey! What be yer message for this ol' pirate? Speak up or walk the plank!\"}, 'artifacts': {'message': \"Arrr matey! What be yer message for this ol' pirate? Speak up or walk the plank!\", 'sender': 'Machine', 'sender_name': 'AI'}, 'messages':",props:{style:{color:"#A5D6FF"}}},{content:" [{",props:{style:{color:"#C9D1D9"}}},{content:"'message'",props:{style:{color:"#FFA657"}}},{content:": ",props:{style:{color:"#79C0FF"}}},{content:"\"Arrr matey! What be yer message for this ol' pirate? Speak up or walk the plank!\", 'sender': 'Machine', 'sender_name': 'AI', 'component_id': 'ChatOutput-ktwdw'}], 'component_display_name': 'Chat Output', 'component_id': 'ChatOutput-ktwdw', 'used_frozen_result': False}]}]}",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsx)(e.p,{children:"Your Python app POSTs to your Langflow server, and the server runs the flow and returns the result."}),"\n",(0,n.jsxs)(e.p,{children:["See ",(0,n.jsx)(e.a,{href:"../administration/api",children:"API"})," for more ways to interact with your headless Langflow server."]})]})}const F=function(o={}){const{wrapper:e}=Object.assign({},(0,s.RP)(),o.components);return e?(0,n.jsx)(e,Object.assign({},o,{children:(0,n.jsx)(u,o)})):u(o)};function D(o,e){throw new Error("Expected "+(e?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/4eafabd3.69bb0659.js b/assets/js/4eafabd3.69bb0659.js
new file mode 100644
index 0000000000..0975fc910d
--- /dev/null
+++ b/assets/js/4eafabd3.69bb0659.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5833],{7293:(o,e,t)=>{t.d(e,{A:()=>I});var n=t(6540),s=t(4848);function r(o){const{mdxAdmonitionTitle:e,rest:t}=function(o){const e=n.Children.toArray(o),t=e.find((o=>n.isValidElement(o)&&"mdxAdmonitionTitle"===o.type)),r=e.filter((o=>o!==t)),l=t?.props.children;return{mdxAdmonitionTitle:l,rest:r.length>0?(0,s.jsx)(s.Fragment,{children:r}):null}}(o.children),r=o.title??e;return{...o,...r&&{title:r},children:t}}var l=t(8215),c=t(1312),i=t(7559);const a={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function p(o){let{type:e,className:t,children:n}=o;return(0,s.jsx)("div",{className:(0,l.A)(i.G.common.admonition,i.G.common.admonitionType(e),a.admonition,t),children:n})}function d(o){let{icon:e,title:t}=o;return(0,s.jsxs)("div",{className:a.admonitionHeading,children:[(0,s.jsx)("span",{className:a.admonitionIcon,children:e}),t]})}function h(o){let{children:e}=o;return e?(0,s.jsx)("div",{className:a.admonitionContent,children:e}):null}function u(o){const{type:e,icon:t,title:n,children:r,className:l}=o;return(0,s.jsxs)(p,{type:e,className:l,children:[n||t?(0,s.jsx)(d,{title:n,icon:t}):null,(0,s.jsx)(h,{children:r})]})}function y(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const f={icon:(0,s.jsx)(y,{}),title:(0,s.jsx)(c.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function m(o){return(0,s.jsx)(u,{...f,...o,className:(0,l.A)("alert alert--secondary",o.className),children:o.children})}function F(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const g={icon:(0,s.jsx)(F,{}),title:(0,s.jsx)(c.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function D(o){return(0,s.jsx)(u,{...g,...o,className:(0,l.A)("alert alert--success",o.className),children:o.children})}function k(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const C={icon:(0,s.jsx)(k,{}),title:(0,s.jsx)(c.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function w(o){return(0,s.jsx)(u,{...C,...o,className:(0,l.A)("alert alert--info",o.className),children:o.children})}function x(o){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const j={icon:(0,s.jsx)(x,{}),title:(0,s.jsx)(c.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function b(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const A={icon:(0,s.jsx)(b,{}),title:(0,s.jsx)(c.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const v={icon:(0,s.jsx)(x,{}),title:(0,s.jsx)(c.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const _={...{note:m,tip:D,info:w,warning:function(o){return(0,s.jsx)(u,{...j,...o,className:(0,l.A)("alert alert--warning",o.className),children:o.children})},danger:function(o){return(0,s.jsx)(u,{...A,...o,className:(0,l.A)("alert alert--danger",o.className),children:o.children})}},...{secondary:o=>(0,s.jsx)(m,{title:"secondary",...o}),important:o=>(0,s.jsx)(w,{title:"important",...o}),success:o=>(0,s.jsx)(D,{title:"success",...o}),caution:function(o){return(0,s.jsx)(u,{...v,...o,className:(0,l.A)("alert alert--warning",o.className),children:o.children})}}};var B=t(6763);function I(o){const e=r(o),t=(n=e.type,_[n]||(B.warn(`No admonition component found for admonition type "${n}". Using Info as fallback.`),_.info));var n;return(0,s.jsx)(t,{...e})}},5248:(o,e,t)=>{t.r(e),t.d(e,{CH:()=>d,assets:()=>p,chCodeConfig:()=>h,contentTitle:()=>i,default:()=>f,frontMatter:()=>c,metadata:()=>a,toc:()=>u});t(6540);var n=t(4848),s=t(8453),r=t(4754),l=t(7293);const c={},i="Backend-only",a={id:"deployment/backend-only",title:"Backend-only",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/deployment/backend-only.mdx",sourceDirName:"deployment",slug:"/deployment/backend-only",permalink:"/deployment/backend-only",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Docker",permalink:"/deployment/docker"},next:{title:"Kubernetes",permalink:"/deployment/kubernetes"}},p={},d={annotations:r.hk,Code:r.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Download your flow's curl call",id:"download-your-flows-curl-call",level:2},{value:"Start Langflow in backend-only mode",id:"start-langflow-in-backend-only-mode",level:2},{value:"Download your flow's Python API call",id:"download-your-flows-python-api-call",level:2}];function y(o){const e=Object.assign({h1:"h1",p:"p",code:"code",h2:"h2",ul:"ul",li:"li",a:"a",ol:"ol",strong:"strong"},(0,s.RP)(),o.components);return d||m("CH",!1),d.Code||m("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(e.h1,{id:"backend-only",children:"Backend-only"}),"\n",(0,n.jsx)(l.A,{type:"warning",title:"warning",children:(0,n.jsx)(e.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(e.p,{children:["You can run Langflow in ",(0,n.jsx)(e.code,{children:"--backend-only"})," mode to expose your Langflow app as an API, without running the frontend UI."]}),"\n",(0,n.jsxs)(e.p,{children:["Start langflow in backend-only mode with ",(0,n.jsx)(e.code,{children:"python3 -m langflow run --backend-only"}),"."]}),"\n",(0,n.jsxs)(e.p,{children:["The terminal prints ",(0,n.jsx)(e.code,{children:"Welcome to \u26d3 Langflow"}),", and a blank window opens at ",(0,n.jsx)(e.code,{children:"http://127.0.0.1:7864/all"}),".\nLangflow will now serve requests to its API without the frontend running."]}),"\n",(0,n.jsx)(e.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.a,{href:"../getting-started/install-langflow",children:"Langflow installed"})}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.a,{href:"https://platform.openai.com",children:"OpenAI API key"})}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.a,{href:"../starter-projects/basic-prompting",children:"A Langflow flow created"})}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(e.h2,{id:"download-your-flows-curl-call",children:"Download your flow's curl call"}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsx)(e.li,{children:"Click API."}),"\n",(0,n.jsxs)(e.li,{children:["Click ",(0,n.jsx)(e.strong,{children:"curl"})," > ",(0,n.jsx)(e.strong,{children:"Copy code"})," and save the code to your local machine.\nIt will look something like this:"]}),"\n"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"curl -X POST \\",props:{}}]},{tokens:[{content:' "http://127.0.0.1:7864/api/v1/run/ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef?stream=false" \\',props:{}}]},{tokens:[{content:" -H 'Content-Type: application/json'\\",props:{}}]},{tokens:[{content:' -d \'{"input_value": "message",',props:{}}]},{tokens:[{content:' "output_type": "chat",',props:{}}]},{tokens:[{content:' "input_type": "chat",',props:{}}]},{tokens:[{content:' "tweaks": {',props:{}}]},{tokens:[{content:' "Prompt-kvo86": {},',props:{}}]},{tokens:[{content:' "OpenAIModel-MilkD": {},',props:{}}]},{tokens:[{content:' "ChatOutput-ktwdw": {},',props:{}}]},{tokens:[{content:' "ChatInput-xXC4F": {}',props:{}}]},{tokens:[{content:"}}'",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,n.jsxs)(e.p,{children:["Note the flow ID of ",(0,n.jsx)(e.code,{children:"ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef"}),". You can find this ID in the UI as well to ensure you're querying the right flow."]}),"\n",(0,n.jsx)(e.h2,{id:"start-langflow-in-backend-only-mode",children:"Start Langflow in backend-only mode"}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsx)(e.li,{children:"Stop Langflow with Ctrl+C."}),"\n",(0,n.jsxs)(e.li,{children:["Start langflow in backend-only mode with ",(0,n.jsx)(e.code,{children:"python3 -m langflow run --backend-only"}),".\nThe terminal prints ",(0,n.jsx)(e.code,{children:"Welcome to \u26d3 Langflow"}),", and a blank window opens at ",(0,n.jsx)(e.code,{children:"http://127.0.0.1:7864/all"}),".\nLangflow will now serve requests to its API."]}),"\n",(0,n.jsx)(e.li,{children:"Run the curl code you copied from the UI.\nYou should get a result like this:"}),"\n"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"session_id"',props:{style:{color:"#FFA657"}}},{content:":",props:{style:{color:"#79C0FF"}}},{content:'"ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef:bf81d898868ac87e1b4edbd96c131c5dee801ea2971122cc91352d144a45b880","outputs"',props:{style:{color:"#FFA657"}}},{content:":",props:{style:{color:"#79C0FF"}}},{content:'[{"',props:{style:{color:"#C9D1D9"}}},{content:'inputs":{"input_value":"hi, ',props:{style:{color:"#FFA657"}}},{content:'are you there?"},"outputs":[{"results":{"result":"Arrr, ahoy matey! Aye, I be here. What be ye needin\', me hearty?"},"artifacts":{"message":"Arrr, ahoy matey! Aye, I be here. What be ye needin\', me hearty?","sender":"Machine","sender_name":"AI"},"messages":[{"message":"Arrr, ahoy matey! Aye, I be here. What be ye needin\', me hearty?","sender":"Machine","sender_name":"AI","component_id":"ChatOutput-ktwdw"}],"component_display_name":"Chat Output","component_id":"ChatOutput-ktwdw","used_frozen_result":false}]}]}%',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsx)(e.p,{children:"Again, note that the flow ID matches.\nLangflow is receiving your POST request, running the flow, and returning the result, all without running the frontend. Cool!"}),"\n",(0,n.jsx)(e.h2,{id:"download-your-flows-python-api-call",children:"Download your flow's Python API call"}),"\n",(0,n.jsx)(e.p,{children:"Instead of using curl, you can download your flow as a Python API call instead."}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsx)(e.li,{children:"Click API."}),"\n",(0,n.jsxs)(e.li,{children:["Click ",(0,n.jsx)(e.strong,{children:"Python API"})," > ",(0,n.jsx)(e.strong,{children:"Copy code"})," and save the code to your local machine.\nThe code will look something like this:"]}),"\n"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Optional",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"BASE_API_URL ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"http://127.0.0.1:7864/api/v1/run"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"FLOW_ID ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# You can tweak the flow by adding a tweaks dictionary",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:'# e.g {"OpenAI-XXXXX": {"model_name": "gpt-4"}}',props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"def ",props:{style:{color:"#FF7B72"}}},{content:"run_flow",props:{style:{color:"#D2A8FF"}}},{content:"(message: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" flow_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" output_type: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"chat"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_type: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"chat"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tweaks: Optional[",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" api_key: Optional[",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}},{content:") -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' """',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" Run a flow with a given message and optional tweaks.",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param message: The message to send to the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param flow_id: The ID of the flow to run",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :param tweaks: Optional tweaks to customize the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" :return: The JSON response from the flow",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' """',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" api_url ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"{BASE_API_URL}",props:{style:{color:"#79C0FF"}}},{content:"/",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"flow_id",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" payload ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "input_value"',props:{style:{color:"#A5D6FF"}}},{content:": message,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "output_type"',props:{style:{color:"#A5D6FF"}}},{content:": output_type,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "input_type"',props:{style:{color:"#A5D6FF"}}},{content:": input_type,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"None",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" tweaks:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" payload[",props:{style:{color:"#C9D1D9"}}},{content:'"tweaks"',props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" tweaks",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" api_key:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}},{content:'"x-api-key"',props:{style:{color:"#A5D6FF"}}},{content:": api_key}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.post(api_url, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"payload, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"# Setup any tweaks you want to apply to the flow",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"message ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"message"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"print",props:{style:{color:"#79C0FF"}}},{content:"(run_flow(",props:{style:{color:"#C9D1D9"}}},{content:"message",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"message, ",props:{style:{color:"#C9D1D9"}}},{content:"flow_id",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"FLOW_ID",props:{style:{color:"#79C0FF"}}},{content:"))",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(e.ol,{start:"3",children:["\n",(0,n.jsx)(e.li,{children:"Run your Python app:"}),"\n"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python3 app.py",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(e.p,{children:"The result is similar to the curl call:"}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}},{content:"'session_id'",props:{style:{color:"#FFA657"}}},{content:": ",props:{style:{color:"#79C0FF"}}},{content:"'ef7e0554-69e5-4e3e-ab29-ee83bcd8d9ef:bf81d898868ac87e1b4edbd96c131c5dee801ea2971122cc91352d144a45b880', 'outputs':",props:{style:{color:"#A5D6FF"}}},{content:" [{",props:{style:{color:"#C9D1D9"}}},{content:"'inputs'",props:{style:{color:"#FFA657"}}},{content:": ",props:{style:{color:"#79C0FF"}}},{content:"{'input_value': 'message'}, 'outputs':",props:{style:{color:"#A5D6FF"}}},{content:" [{",props:{style:{color:"#C9D1D9"}}},{content:"'results'",props:{style:{color:"#FFA657"}}},{content:": ",props:{style:{color:"#79C0FF"}}},{content:"{'result': \"Arrr matey! What be yer message for this ol' pirate? Speak up or walk the plank!\"}, 'artifacts': {'message': \"Arrr matey! What be yer message for this ol' pirate? Speak up or walk the plank!\", 'sender': 'Machine', 'sender_name': 'AI'}, 'messages':",props:{style:{color:"#A5D6FF"}}},{content:" [{",props:{style:{color:"#C9D1D9"}}},{content:"'message'",props:{style:{color:"#FFA657"}}},{content:": ",props:{style:{color:"#79C0FF"}}},{content:"\"Arrr matey! What be yer message for this ol' pirate? Speak up or walk the plank!\", 'sender': 'Machine', 'sender_name': 'AI', 'component_id': 'ChatOutput-ktwdw'}], 'component_display_name': 'Chat Output', 'component_id': 'ChatOutput-ktwdw', 'used_frozen_result': False}]}]}",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsx)(e.p,{children:"Your Python app POSTs to your Langflow server, and the server runs the flow and returns the result."}),"\n",(0,n.jsxs)(e.p,{children:["See ",(0,n.jsx)(e.a,{href:"../administration/api",children:"API"})," for more ways to interact with your headless Langflow server."]})]})}const f=function(o={}){const{wrapper:e}=Object.assign({},(0,s.RP)(),o.components);return e?(0,n.jsx)(e,Object.assign({},o,{children:(0,n.jsx)(y,o)})):y(o)};function m(o,e){throw new Error("Expected "+(e?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/4f5bab73.65a14398.js b/assets/js/4f5bab73.65a14398.js
new file mode 100644
index 0000000000..0c10a07555
--- /dev/null
+++ b/assets/js/4f5bab73.65a14398.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4395],{7293:(o,t,e)=>{e.d(t,{A:()=>_});var n=e(6540),s=e(4848);function r(o){const{mdxAdmonitionTitle:t,rest:e}=function(o){const t=n.Children.toArray(o),e=t.find((o=>n.isValidElement(o)&&"mdxAdmonitionTitle"===o.type)),r=t.filter((o=>o!==e)),c=e?.props.children;return{mdxAdmonitionTitle:c,rest:r.length>0?(0,s.jsx)(s.Fragment,{children:r}):null}}(o.children),r=o.title??t;return{...o,...r&&{title:r},children:e}}var c=e(8215),l=e(1312),i=e(7559);const p={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function a(o){let{type:t,className:e,children:n}=o;return(0,s.jsx)("div",{className:(0,c.A)(i.G.common.admonition,i.G.common.admonitionType(t),p.admonition,e),children:n})}function d(o){let{icon:t,title:e}=o;return(0,s.jsxs)("div",{className:p.admonitionHeading,children:[(0,s.jsx)("span",{className:p.admonitionIcon,children:t}),e]})}function y(o){let{children:t}=o;return t?(0,s.jsx)("div",{className:p.admonitionContent,children:t}):null}function D(o){const{type:t,icon:e,title:n,children:r,className:c}=o;return(0,s.jsxs)(a,{type:t,className:c,children:[n||e?(0,s.jsx)(d,{title:n,icon:e}):null,(0,s.jsx)(y,{children:r})]})}function h(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const u={icon:(0,s.jsx)(h,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function F(o){return(0,s.jsx)(D,{...u,...o,className:(0,c.A)("alert alert--secondary",o.className),children:o.children})}function m(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const C={icon:(0,s.jsx)(m,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function f(o){return(0,s.jsx)(D,{...C,...o,className:(0,c.A)("alert alert--success",o.className),children:o.children})}function g(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const x={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function k(o){return(0,s.jsx)(D,{...x,...o,className:(0,c.A)("alert alert--info",o.className),children:o.children})}function j(o){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const v={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function A(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const B={icon:(0,s.jsx)(A,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const w={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const b={...{note:F,tip:f,info:k,warning:function(o){return(0,s.jsx)(D,{...v,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})},danger:function(o){return(0,s.jsx)(D,{...B,...o,className:(0,c.A)("alert alert--danger",o.className),children:o.children})}},...{secondary:o=>(0,s.jsx)(F,{title:"secondary",...o}),important:o=>(0,s.jsx)(k,{title:"important",...o}),success:o=>(0,s.jsx)(f,{title:"success",...o}),caution:function(o){return(0,s.jsx)(D,{...w,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})}}};var N=e(6763);function _(o){const t=r(o),e=(n=t.type,b[n]||(N.warn(`No admonition component found for admonition type "${n}". Using Info as fallback.`),b.info));var n;return(0,s.jsx)(e,{...t})}},7533:(o,t,e)=>{e.d(t,{A:()=>l});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const l=o=>{let{alt:t,sources:e,style:l}=o;const[i,p]=(0,n.useState)(!1),a=o=>{"Escape"===o.key&&p(!1)};(0,n.useEffect)((()=>(i?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[i]);return(0,c.jsx)("div",{className:"zoomable-image "+(i?"fullscreen":""),onClick:()=>{p(!i)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},1694:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>y,assets:()=>d,chCodeConfig:()=>D,contentTitle:()=>p,default:()=>F,frontMatter:()=>i,metadata:()=>a,toc:()=>h});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=e(7293),l=(e(1122),e(6025),e(7533));const i={},p="User List",a={id:"integrations/notion/list-users",title:"User List",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/list-users.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/list-users",permalink:"/integrations/notion/list-users",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"List Pages",permalink:"/integrations/notion/list-pages"},next:{title:"Page Create",permalink:"/integrations/notion/page-create"}},d={},y={annotations:r.hk,Code:r.Cy},D={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function u(o){const t=Object.assign({h1:"h1",p:"p",code:"code",a:"a",ul:"ul",li:"li",h2:"h2",ol:"ol"},(0,s.RP)(),o.components);return y||m("CH",!1),y.Code||m("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"user-list",children:"User List"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component retrieves users from Notion. It provides a convenient way to integrate Notion user data into your Langflow workflows."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://developers.notion.com/reference/get-users",children:"Notion Reference"})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component enables you to:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Retrieve user data from Notion"}),"\n",(0,n.jsx)(t.li,{children:"Access user information such as ID, type, name, and avatar URL"}),"\n",(0,n.jsx)(t.li,{children:"Integrate Notion user data seamlessly into your Langflow workflows"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(t.p,{children:["To use the ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component in a Langflow flow, follow these steps:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["Add the ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component to your flow."]}),"\n",(0,n.jsx)(t.li,{children:"Configure the component by providing the required Notion secret token."}),"\n",(0,n.jsx)(t.li,{children:"Connect the component to other nodes in your flow as needed."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-python-code",children:"Component Python code"}),"\n",(0,n.jsx)(y.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" List",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionUserList",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"List Users [Notion]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Retrieve users from Notion."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/list-users"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> List[Data]:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" url ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://api.notion.com/v1/users"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.get(url, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response.raise_for_status()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" results ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" data[",props:{style:{color:"#C9D1D9"}}},{content:"'results'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" for",props:{style:{color:"#FF7B72"}}},{content:" user ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" results:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" id ",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" user[",props:{style:{color:"#C9D1D9"}}},{content:"'id'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" type ",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" user[",props:{style:{color:"#C9D1D9"}}},{content:"'type'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" user.get(",props:{style:{color:"#C9D1D9"}}},{content:"'name'",props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"''",props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" avatar_url ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" user.get(",props:{style:{color:"#C9D1D9"}}},{content:"'avatar_url'",props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"''",props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data_dict ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"id",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"type",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#A5D6FF"}}},{content:": name,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "avatar_url"',props:{style:{color:"#A5D6FF"}}},{content:": avatar_url,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" output ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"User:',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" for",props:{style:{color:"#FF7B72"}}},{content:" key, value ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" data_dict.items():",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" output ",props:{style:{color:"#C9D1D9"}}},{content:"+= f",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"key.replace(",props:{style:{color:"#C9D1D9"}}},{content:"'_'",props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"' '",props:{style:{color:"#A5D6FF"}}},{content:").title()",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:": ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"value",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" output ",props:{style:{color:"#C9D1D9"}}},{content:"+= ",props:{style:{color:"#FF7B72"}}},{content:'"________________________',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" record ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"output, ",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"data_dict)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data.append(record)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:".join(record.text ",props:{style:{color:"#C9D1D9"}}},{content:"for",props:{style:{color:"#FF7B72"}}},{content:" record ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" data)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" data",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Here's an example of how you can use the ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component in a Langflow flow and passing the outputs to the Prompt component:"]}),"\n",(0,n.jsx)(l.A,{alt:"NotionUserList Flow Example",sources:{light:"img/notion/NotionUserList_flow_example.png",dark:"img/notion/NotionUserList_flow_example_dark.png"},style:{width:"100%",margin:"20px 0"}}),"\n",(0,n.jsx)(t.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(t.p,{children:["When using the ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component, consider the following best practices:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Ensure that you have a valid Notion integration token with the necessary permissions to retrieve user data."}),"\n",(0,n.jsx)(t.li,{children:"Handle the retrieved user data securely and in compliance with Notion's API usage guidelines."}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component provides a seamless way to integrate Notion user data into your Langflow workflows. By leveraging this component, you can easily retrieve and utilize user information from Notion, enhancing the capabilities of your Langflow applications. Feel free to explore and experiment with the ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component to unlock new possibilities in your Langflow projects!"]}),"\n",(0,n.jsx)(t.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(t.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component, consider the following:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Double-check that your Notion integration token is valid and has the required permissions."}),"\n",(0,n.jsxs)(t.li,{children:["Verify that you have installed the necessary dependencies (",(0,n.jsx)(t.code,{children:"requests"}),") for the component to function properly."]}),"\n",(0,n.jsx)(t.li,{children:"Check the Notion API documentation for any updates or changes that may affect the component's functionality."}),"\n"]})]})}const F=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(u,o)})):u(o)};function m(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/4f5bab73.c6983576.js b/assets/js/4f5bab73.c6983576.js
deleted file mode 100644
index 7780b8eb90..0000000000
--- a/assets/js/4f5bab73.c6983576.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4395],{7533:(o,t,e)=>{e.d(t,{A:()=>l});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const l=o=>{let{alt:t,sources:e,style:l}=o;const[p,i]=(0,n.useState)(!1),a=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[p]);return(0,c.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},1694:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>d,assets:()=>y,chCodeConfig:()=>D,contentTitle:()=>i,default:()=>u,frontMatter:()=>p,metadata:()=>a,toc:()=>F});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=e(7293),l=(e(1122),e(6025),e(7533));const p={},i="User List",a={id:"integrations/notion/list-users",title:"User List",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/list-users.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/list-users",permalink:"/integrations/notion/list-users",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"List Pages",permalink:"/integrations/notion/list-pages"},next:{title:"Page Create",permalink:"/integrations/notion/page-create"}},y={},d={annotations:r.hk,Code:r.Cy},D={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},F=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function h(o){const t=Object.assign({h1:"h1",p:"p",code:"code",a:"a",ul:"ul",li:"li",h2:"h2",ol:"ol"},(0,s.RP)(),o.components);return d||C("CH",!1),d.Code||C("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"user-list",children:"User List"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component retrieves users from Notion. It provides a convenient way to integrate Notion user data into your Langflow workflows."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://developers.notion.com/reference/get-users",children:"Notion Reference"})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component enables you to:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Retrieve user data from Notion"}),"\n",(0,n.jsx)(t.li,{children:"Access user information such as ID, type, name, and avatar URL"}),"\n",(0,n.jsx)(t.li,{children:"Integrate Notion user data seamlessly into your Langflow workflows"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(t.p,{children:["To use the ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component in a Langflow flow, follow these steps:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["Add the ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component to your flow."]}),"\n",(0,n.jsx)(t.li,{children:"Configure the component by providing the required Notion secret token."}),"\n",(0,n.jsx)(t.li,{children:"Connect the component to other nodes in your flow as needed."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-python-code",children:"Component Python code"}),"\n",(0,n.jsx)(d.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" List",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionUserList",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"List Users [Notion]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Retrieve users from Notion."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/list-users"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> List[Data]:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" url ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://api.notion.com/v1/users"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.get(url, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response.raise_for_status()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" results ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" data[",props:{style:{color:"#C9D1D9"}}},{content:"'results'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" for",props:{style:{color:"#FF7B72"}}},{content:" user ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" results:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" id ",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" user[",props:{style:{color:"#C9D1D9"}}},{content:"'id'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" type ",props:{style:{color:"#79C0FF"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" user[",props:{style:{color:"#C9D1D9"}}},{content:"'type'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" user.get(",props:{style:{color:"#C9D1D9"}}},{content:"'name'",props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"''",props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" avatar_url ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" user.get(",props:{style:{color:"#C9D1D9"}}},{content:"'avatar_url'",props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"''",props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data_dict ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "id"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"id",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"type",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#A5D6FF"}}},{content:": name,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "avatar_url"',props:{style:{color:"#A5D6FF"}}},{content:": avatar_url,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" output ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"User:',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" for",props:{style:{color:"#FF7B72"}}},{content:" key, value ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" data_dict.items():",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" output ",props:{style:{color:"#C9D1D9"}}},{content:"+= f",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"key.replace(",props:{style:{color:"#C9D1D9"}}},{content:"'_'",props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"' '",props:{style:{color:"#A5D6FF"}}},{content:").title()",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:": ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"value",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" output ",props:{style:{color:"#C9D1D9"}}},{content:"+= ",props:{style:{color:"#FF7B72"}}},{content:'"________________________',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" record ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"output, ",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"data_dict)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data.append(record)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:".join(record.text ",props:{style:{color:"#C9D1D9"}}},{content:"for",props:{style:{color:"#FF7B72"}}},{content:" record ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" data)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" data",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Here's an example of how you can use the ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component in a Langflow flow and passing the outputs to the Prompt component:"]}),"\n",(0,n.jsx)(l.A,{alt:"NotionUserList Flow Example",sources:{light:"img/notion/NotionUserList_flow_example.png",dark:"img/notion/NotionUserList_flow_example_dark.png"},style:{width:"100%",margin:"20px 0"}}),"\n",(0,n.jsx)(t.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(t.p,{children:["When using the ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component, consider the following best practices:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Ensure that you have a valid Notion integration token with the necessary permissions to retrieve user data."}),"\n",(0,n.jsx)(t.li,{children:"Handle the retrieved user data securely and in compliance with Notion's API usage guidelines."}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component provides a seamless way to integrate Notion user data into your Langflow workflows. By leveraging this component, you can easily retrieve and utilize user information from Notion, enhancing the capabilities of your Langflow applications. Feel free to explore and experiment with the ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component to unlock new possibilities in your Langflow projects!"]}),"\n",(0,n.jsx)(t.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(t.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(t.code,{children:"NotionUserList"})," component, consider the following:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Double-check that your Notion integration token is valid and has the required permissions."}),"\n",(0,n.jsxs)(t.li,{children:["Verify that you have installed the necessary dependencies (",(0,n.jsx)(t.code,{children:"requests"}),") for the component to function properly."]}),"\n",(0,n.jsx)(t.li,{children:"Check the Notion API documentation for any updates or changes that may affect the component's functionality."}),"\n"]})]})}const u=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(h,o)})):h(o)};function C(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/64615af5.b18ce40b.js b/assets/js/64615af5.b18ce40b.js
deleted file mode 100644
index 7bff92ad3c..0000000000
--- a/assets/js/64615af5.b18ce40b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3575],{7533:(o,t,e)=>{e.d(t,{A:()=>l});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const l=o=>{let{alt:t,sources:e,style:l}=o;const[p,i]=(0,n.useState)(!1),y=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",y):document.removeEventListener("keydown",y),()=>{document.removeEventListener("keydown",y)})),[p]);return(0,c.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},2371:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>a,assets:()=>D,chCodeConfig:()=>F,contentTitle:()=>i,default:()=>C,frontMatter:()=>p,metadata:()=>y,toc:()=>d});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=e(7293),l=(e(1122),e(6025),e(7533));const p={},i="Page Content",y={id:"integrations/notion/page-content-viewer",title:"Page Content",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/page-content-viewer.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/page-content-viewer",permalink:"/integrations/notion/page-content-viewer",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Page Update",permalink:"/integrations/notion/page-update"}},D={},a={annotations:r.hk,Code:r.Cy},F={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},d=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function h(o){const t=Object.assign({h1:"h1",p:"p",code:"code",a:"a",ul:"ul",li:"li",h2:"h2",ol:"ol"},(0,s.RP)(),o.components);return a||g("CH",!1),a.Code||g("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"page-content",children:"Page Content"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component retrieves the content of a Notion page as plain text. It provides a convenient way to integrate Notion page content into your Langflow workflows."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://developers.notion.com/reference/get-page",children:"Notion Reference"})}),"\n",(0,n.jsxs)(c.A,{type:"tip",title:"Component Functionality",children:[(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component enables you to:"]}),(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Retrieve the content of a Notion page as plain text"}),"\n",(0,n.jsx)(t.li,{children:"Extract text from various block types, including paragraphs, headings, lists, and more"}),"\n",(0,n.jsx)(t.li,{children:"Integrate Notion page content seamlessly into your Langflow workflows"}),"\n"]})]}),"\n",(0,n.jsx)(t.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(t.p,{children:["To use the ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component in a Langflow flow, follow these steps:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["Add the ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component to your flow."]}),"\n",(0,n.jsxs)(t.li,{children:["Configure the component by providing the required inputs:","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"page_id"}),": The ID of the Notion page you want to retrieve."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"notion_secret"}),": Your Notion integration token for authentication."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["Connect the output of the ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component to other components in your flow as needed."]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-python-code",children:"Component Python code"}),"\n",(0,n.jsx)(a.Code,{codeConfig:F,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Dict, Any",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionPageContent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Page Content Viewer [Notion]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Retrieve the content of a Notion page as plain text."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/page-content-viewer"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "page_id"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Page ID"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The ID of the Notion page to retrieve."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> Data:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" blocks_url ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"https://api.notion.com/v1/blocks/',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_id",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'/children?page_size=100"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"# Use the latest supported version",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # Retrieve the child blocks",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" blocks_response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.get(blocks_url, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" blocks_response.raise_for_status()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" blocks_data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" blocks_response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # Parse the blocks and extract the content as plain text",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".parse_blocks(blocks_data[",props:{style:{color:"#C9D1D9"}}},{content:'"results"',props:{style:{color:"#A5D6FF"}}},{content:"])",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" content",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"content"',props:{style:{color:"#A5D6FF"}}},{content:": content}, ",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"content)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"parse_blocks",props:{style:{color:"#D2A8FF"}}},{content:"(self, blocks: ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:") -> ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'""',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" for",props:{style:{color:"#FF7B72"}}},{content:" block ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" blocks:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" block_type ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" block[",props:{style:{color:"#C9D1D9"}}},{content:'"type"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" block_type ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}},{content:'"paragraph"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"heading_1"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"heading_2"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"heading_3"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"quote"',props:{style:{color:"#A5D6FF"}}},{content:"]:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"+= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".parse_rich_text(block[block_type][",props:{style:{color:"#C9D1D9"}}},{content:'"rich_text"',props:{style:{color:"#A5D6FF"}}},{content:"]) ",props:{style:{color:"#C9D1D9"}}},{content:"+ ",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" block_type ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}},{content:'"bulleted_list_item"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"numbered_list_item"',props:{style:{color:"#A5D6FF"}}},{content:"]:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"+= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".parse_rich_text(block[block_type][",props:{style:{color:"#C9D1D9"}}},{content:'"rich_text"',props:{style:{color:"#A5D6FF"}}},{content:"]) ",props:{style:{color:"#C9D1D9"}}},{content:"+ ",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" block_type ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"to_do"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"+= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".parse_rich_text(block[",props:{style:{color:"#C9D1D9"}}},{content:'"to_do"',props:{style:{color:"#A5D6FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:'"rich_text"',props:{style:{color:"#A5D6FF"}}},{content:"]) ",props:{style:{color:"#C9D1D9"}}},{content:"+ ",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" block_type ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"code"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"+= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".parse_rich_text(block[",props:{style:{color:"#C9D1D9"}}},{content:'"code"',props:{style:{color:"#A5D6FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:'"rich_text"',props:{style:{color:"#A5D6FF"}}},{content:"]) ",props:{style:{color:"#C9D1D9"}}},{content:"+ ",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" block_type ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"image"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"+= f",props:{style:{color:"#FF7B72"}}},{content:'"[Image: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"block[",props:{style:{color:"#C9D1D9"}}},{content:"'image'",props:{style:{color:"#A5D6FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:"'external'",props:{style:{color:"#A5D6FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:"'url'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#A5D6FF"}}},{content:"\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" block_type ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"divider"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"+= ",props:{style:{color:"#FF7B72"}}},{content:'"---',props:{style:{color:"#A5D6FF"}}},{content:"\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" content.strip()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"parse_rich_text",props:{style:{color:"#D2A8FF"}}},{content:"(self, rich_text: ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:") -> ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'""',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" for",props:{style:{color:"#FF7B72"}}},{content:" segment ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" rich_text:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"+=",props:{style:{color:"#FF7B72"}}},{content:" segment[",props:{style:{color:"#C9D1D9"}}},{content:'"plain_text"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" text",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(c.A,{type:"info",title:"Example Usage",children:[(0,n.jsxs)(t.p,{children:["Here's an example of how you can use the ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component in a Langflow flow:"]}),(0,n.jsx)(l.A,{alt:"NotionPageContent Flow Example",sources:{light:"img/notion/NotionPageContent_flow_example.png",dark:"img/notion/NotionPageContent_flow_example_dark.png"},style:{width:"100%",margin:"20px 0"}})]}),"\n",(0,n.jsx)(t.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(t.p,{children:["When using the ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component, consider the following best practices:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Ensure that you have the necessary permissions to access the Notion page you want to retrieve."}),"\n",(0,n.jsx)(t.li,{children:"Keep your Notion integration token secure and avoid sharing it publicly."}),"\n",(0,n.jsx)(t.li,{children:"Be mindful of the content you retrieve and ensure that it aligns with your intended use case."}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component provides a seamless way to integrate Notion page content into your Langflow workflows. By leveraging this component, you can easily retrieve and process the content of Notion pages, enabling you to build powerful and dynamic applications. Explore the capabilities of the ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component and unlock new possibilities in your Langflow projects!"]}),"\n",(0,n.jsx)(t.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(t.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component, consider the following:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Double-check that you have provided the correct Notion page ID."}),"\n",(0,n.jsx)(t.li,{children:"Verify that your Notion integration token is valid and has the necessary permissions."}),"\n",(0,n.jsx)(t.li,{children:"Check the Notion API documentation for any updates or changes that may affect the component's functionality."}),"\n"]})]})}const C=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(h,o)})):h(o)};function g(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/64615af5.e678d9d7.js b/assets/js/64615af5.e678d9d7.js
new file mode 100644
index 0000000000..b3066b0fbf
--- /dev/null
+++ b/assets/js/64615af5.e678d9d7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3575],{7293:(o,t,e)=>{e.d(t,{A:()=>N});var n=e(6540),s=e(4848);function r(o){const{mdxAdmonitionTitle:t,rest:e}=function(o){const t=n.Children.toArray(o),e=t.find((o=>n.isValidElement(o)&&"mdxAdmonitionTitle"===o.type)),r=t.filter((o=>o!==e)),c=e?.props.children;return{mdxAdmonitionTitle:c,rest:r.length>0?(0,s.jsx)(s.Fragment,{children:r}):null}}(o.children),r=o.title??t;return{...o,...r&&{title:r},children:e}}var c=e(8215),l=e(1312),p=e(7559);const i={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function a(o){let{type:t,className:e,children:n}=o;return(0,s.jsx)("div",{className:(0,c.A)(p.G.common.admonition,p.G.common.admonitionType(t),i.admonition,e),children:n})}function d(o){let{icon:t,title:e}=o;return(0,s.jsxs)("div",{className:i.admonitionHeading,children:[(0,s.jsx)("span",{className:i.admonitionIcon,children:t}),e]})}function y(o){let{children:t}=o;return t?(0,s.jsx)("div",{className:i.admonitionContent,children:t}):null}function D(o){const{type:t,icon:e,title:n,children:r,className:c}=o;return(0,s.jsxs)(a,{type:t,className:c,children:[n||e?(0,s.jsx)(d,{title:n,icon:e}):null,(0,s.jsx)(y,{children:r})]})}function F(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const h={icon:(0,s.jsx)(F,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function u(o){return(0,s.jsx)(D,{...h,...o,className:(0,c.A)("alert alert--secondary",o.className),children:o.children})}function C(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const g={icon:(0,s.jsx)(C,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function m(o){return(0,s.jsx)(D,{...g,...o,className:(0,c.A)("alert alert--success",o.className),children:o.children})}function f(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const k={icon:(0,s.jsx)(f,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function x(o){return(0,s.jsx)(D,{...k,...o,className:(0,c.A)("alert alert--info",o.className),children:o.children})}function j(o){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const A={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function b(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const v={icon:(0,s.jsx)(b,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const B={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const _={...{note:u,tip:m,info:x,warning:function(o){return(0,s.jsx)(D,{...A,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})},danger:function(o){return(0,s.jsx)(D,{...v,...o,className:(0,c.A)("alert alert--danger",o.className),children:o.children})}},...{secondary:o=>(0,s.jsx)(u,{title:"secondary",...o}),important:o=>(0,s.jsx)(x,{title:"important",...o}),success:o=>(0,s.jsx)(m,{title:"success",...o}),caution:function(o){return(0,s.jsx)(D,{...B,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})}}};var w=e(6763);function N(o){const t=r(o),e=(n=t.type,_[n]||(w.warn(`No admonition component found for admonition type "${n}". Using Info as fallback.`),_.info));var n;return(0,s.jsx)(e,{...t})}},7533:(o,t,e)=>{e.d(t,{A:()=>l});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const l=o=>{let{alt:t,sources:e,style:l}=o;const[p,i]=(0,n.useState)(!1),a=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[p]);return(0,c.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},2371:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>y,assets:()=>d,chCodeConfig:()=>D,contentTitle:()=>i,default:()=>u,frontMatter:()=>p,metadata:()=>a,toc:()=>F});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=e(7293),l=(e(1122),e(6025),e(7533));const p={},i="Page Content",a={id:"integrations/notion/page-content-viewer",title:"Page Content",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/page-content-viewer.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/page-content-viewer",permalink:"/integrations/notion/page-content-viewer",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Page Update",permalink:"/integrations/notion/page-update"}},d={},y={annotations:r.hk,Code:r.Cy},D={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},F=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function h(o){const t=Object.assign({h1:"h1",p:"p",code:"code",a:"a",ul:"ul",li:"li",h2:"h2",ol:"ol"},(0,s.RP)(),o.components);return y||C("CH",!1),y.Code||C("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"page-content",children:"Page Content"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component retrieves the content of a Notion page as plain text. It provides a convenient way to integrate Notion page content into your Langflow workflows."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://developers.notion.com/reference/get-page",children:"Notion Reference"})}),"\n",(0,n.jsxs)(c.A,{type:"tip",title:"Component Functionality",children:[(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component enables you to:"]}),(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Retrieve the content of a Notion page as plain text"}),"\n",(0,n.jsx)(t.li,{children:"Extract text from various block types, including paragraphs, headings, lists, and more"}),"\n",(0,n.jsx)(t.li,{children:"Integrate Notion page content seamlessly into your Langflow workflows"}),"\n"]})]}),"\n",(0,n.jsx)(t.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(t.p,{children:["To use the ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component in a Langflow flow, follow these steps:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["Add the ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component to your flow."]}),"\n",(0,n.jsxs)(t.li,{children:["Configure the component by providing the required inputs:","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"page_id"}),": The ID of the Notion page you want to retrieve."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"notion_secret"}),": Your Notion integration token for authentication."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["Connect the output of the ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component to other components in your flow as needed."]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-python-code",children:"Component Python code"}),"\n",(0,n.jsx)(y.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Dict, Any",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionPageContent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Page Content Viewer [Notion]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Retrieve the content of a Notion page as plain text."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/page-content-viewer"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "page_id"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Page ID"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The ID of the Notion page to retrieve."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> Data:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" blocks_url ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"https://api.notion.com/v1/blocks/',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_id",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'/children?page_size=100"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"# Use the latest supported version",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # Retrieve the child blocks",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" blocks_response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.get(blocks_url, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" blocks_response.raise_for_status()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" blocks_data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" blocks_response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # Parse the blocks and extract the content as plain text",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".parse_blocks(blocks_data[",props:{style:{color:"#C9D1D9"}}},{content:'"results"',props:{style:{color:"#A5D6FF"}}},{content:"])",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" content",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"content"',props:{style:{color:"#A5D6FF"}}},{content:": content}, ",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"content)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"parse_blocks",props:{style:{color:"#D2A8FF"}}},{content:"(self, blocks: ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:") -> ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'""',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" for",props:{style:{color:"#FF7B72"}}},{content:" block ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" blocks:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" block_type ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" block[",props:{style:{color:"#C9D1D9"}}},{content:'"type"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" block_type ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}},{content:'"paragraph"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"heading_1"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"heading_2"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"heading_3"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"quote"',props:{style:{color:"#A5D6FF"}}},{content:"]:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"+= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".parse_rich_text(block[block_type][",props:{style:{color:"#C9D1D9"}}},{content:'"rich_text"',props:{style:{color:"#A5D6FF"}}},{content:"]) ",props:{style:{color:"#C9D1D9"}}},{content:"+ ",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" block_type ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}},{content:'"bulleted_list_item"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"numbered_list_item"',props:{style:{color:"#A5D6FF"}}},{content:"]:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"+= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".parse_rich_text(block[block_type][",props:{style:{color:"#C9D1D9"}}},{content:'"rich_text"',props:{style:{color:"#A5D6FF"}}},{content:"]) ",props:{style:{color:"#C9D1D9"}}},{content:"+ ",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" block_type ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"to_do"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"+= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".parse_rich_text(block[",props:{style:{color:"#C9D1D9"}}},{content:'"to_do"',props:{style:{color:"#A5D6FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:'"rich_text"',props:{style:{color:"#A5D6FF"}}},{content:"]) ",props:{style:{color:"#C9D1D9"}}},{content:"+ ",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" block_type ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"code"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"+= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".parse_rich_text(block[",props:{style:{color:"#C9D1D9"}}},{content:'"code"',props:{style:{color:"#A5D6FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:'"rich_text"',props:{style:{color:"#A5D6FF"}}},{content:"]) ",props:{style:{color:"#C9D1D9"}}},{content:"+ ",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" block_type ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"image"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"+= f",props:{style:{color:"#FF7B72"}}},{content:'"[Image: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"block[",props:{style:{color:"#C9D1D9"}}},{content:"'image'",props:{style:{color:"#A5D6FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:"'external'",props:{style:{color:"#A5D6FF"}}},{content:"][",props:{style:{color:"#C9D1D9"}}},{content:"'url'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#A5D6FF"}}},{content:"\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" block_type ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"divider"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" content ",props:{style:{color:"#C9D1D9"}}},{content:"+= ",props:{style:{color:"#FF7B72"}}},{content:'"---',props:{style:{color:"#A5D6FF"}}},{content:"\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" content.strip()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"parse_rich_text",props:{style:{color:"#D2A8FF"}}},{content:"(self, rich_text: ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:") -> ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'""',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" for",props:{style:{color:"#FF7B72"}}},{content:" segment ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" rich_text:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"+=",props:{style:{color:"#FF7B72"}}},{content:" segment[",props:{style:{color:"#C9D1D9"}}},{content:'"plain_text"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" text",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(c.A,{type:"info",title:"Example Usage",children:[(0,n.jsxs)(t.p,{children:["Here's an example of how you can use the ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component in a Langflow flow:"]}),(0,n.jsx)(l.A,{alt:"NotionPageContent Flow Example",sources:{light:"img/notion/NotionPageContent_flow_example.png",dark:"img/notion/NotionPageContent_flow_example_dark.png"},style:{width:"100%",margin:"20px 0"}})]}),"\n",(0,n.jsx)(t.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(t.p,{children:["When using the ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component, consider the following best practices:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Ensure that you have the necessary permissions to access the Notion page you want to retrieve."}),"\n",(0,n.jsx)(t.li,{children:"Keep your Notion integration token secure and avoid sharing it publicly."}),"\n",(0,n.jsx)(t.li,{children:"Be mindful of the content you retrieve and ensure that it aligns with your intended use case."}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component provides a seamless way to integrate Notion page content into your Langflow workflows. By leveraging this component, you can easily retrieve and process the content of Notion pages, enabling you to build powerful and dynamic applications. Explore the capabilities of the ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component and unlock new possibilities in your Langflow projects!"]}),"\n",(0,n.jsx)(t.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(t.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(t.code,{children:"NotionPageContent"})," component, consider the following:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Double-check that you have provided the correct Notion page ID."}),"\n",(0,n.jsx)(t.li,{children:"Verify that your Notion integration token is valid and has the necessary permissions."}),"\n",(0,n.jsx)(t.li,{children:"Check the Notion API documentation for any updates or changes that may affect the component's functionality."}),"\n"]})]})}const u=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(h,o)})):h(o)};function C(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/661dd3b9.2233c1e3.js b/assets/js/661dd3b9.2233c1e3.js
new file mode 100644
index 0000000000..bed3f3a192
--- /dev/null
+++ b/assets/js/661dd3b9.2233c1e3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4468],{7293:(e,n,t)=>{t.d(n,{A:()=>N});var r=t(6540),o=t(4848);function s(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=r.Children.toArray(e),t=n.find((e=>r.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),s=n.filter((e=>e!==t)),i=t?.props.children;return{mdxAdmonitionTitle:i,rest:s.length>0?(0,o.jsx)(o.Fragment,{children:s}):null}}(e.children),s=e.title??n;return{...e,...s&&{title:s},children:t}}var i=t(8215),a=t(1312),c=t(7559);const d={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function l(e){let{type:n,className:t,children:r}=e;return(0,o.jsx)("div",{className:(0,i.A)(c.G.common.admonition,c.G.common.admonitionType(n),d.admonition,t),children:r})}function h(e){let{icon:n,title:t}=e;return(0,o.jsxs)("div",{className:d.admonitionHeading,children:[(0,o.jsx)("span",{className:d.admonitionIcon,children:n}),t]})}function u(e){let{children:n}=e;return n?(0,o.jsx)("div",{className:d.admonitionContent,children:n}):null}function p(e){const{type:n,icon:t,title:r,children:s,className:i}=e;return(0,o.jsxs)(l,{type:n,className:i,children:[r||t?(0,o.jsx)(h,{title:r,icon:t}):null,(0,o.jsx)(u,{children:s})]})}function g(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const m={icon:(0,o.jsx)(g,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function x(e){return(0,o.jsx)(p,{...m,...e,className:(0,i.A)("alert alert--secondary",e.className),children:e.children})}function j(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const f={icon:(0,o.jsx)(j,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(e){return(0,o.jsx)(p,{...f,...e,className:(0,i.A)("alert alert--success",e.className),children:e.children})}function b(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const A={icon:(0,o.jsx)(b,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function w(e){return(0,o.jsx)(p,{...A,...e,className:(0,i.A)("alert alert--info",e.className),children:e.children})}function k(e){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const y={icon:(0,o.jsx)(k,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function C(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const T={icon:(0,o.jsx)(C,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const I={icon:(0,o.jsx)(k,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const B={...{note:x,tip:v,info:w,warning:function(e){return(0,o.jsx)(p,{...y,...e,className:(0,i.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,o.jsx)(p,{...T,...e,className:(0,i.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,o.jsx)(x,{title:"secondary",...e}),important:e=>(0,o.jsx)(w,{title:"important",...e}),success:e=>(0,o.jsx)(v,{title:"success",...e}),caution:function(e){return(0,o.jsx)(p,{...I,...e,className:(0,i.A)("alert alert--warning",e.className),children:e.children})}}};var R=t(6763);function N(e){const n=s(e),t=(r=n.type,B[r]||(R.warn(`No admonition component found for admonition type "${r}". Using Info as fallback.`),B.info));var r;return(0,o.jsx)(t,{...n})}},7533:(e,n,t)=>{t.d(n,{A:()=>a});var r=t(6540),o=t(1122),s=t(6025),i=t(4848);const a=e=>{let{alt:n,sources:t,style:a}=e;const[c,d]=(0,r.useState)(!1),l=e=>{"Escape"===e.key&&d(!1)};(0,r.useEffect)((()=>(c?document.addEventListener("keydown",l):document.removeEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)})),[c]);return(0,i.jsx)("div",{className:"zoomable-image "+(c?"fullscreen":""),onClick:()=>{d(!c)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...a},children:(0,i.jsx)(o.A,{className:"zoomable-image-inner",alt:n,sources:{light:(0,s.Ay)(t.light),dark:(0,s.Ay)(t.dark)}})})}},7836:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>u,assets:()=>h,chCodeConfig:()=>p,contentTitle:()=>d,default:()=>x,frontMatter:()=>c,metadata:()=>l,toc:()=>g});t(6540);var r=t(4848),o=t(8453),s=t(4754),i=(t(1122),t(6025),t(7533)),a=t(7293);const c={},d="Vector Store RAG",l={id:"starter-projects/vector-store-rag",title:"Vector Store RAG",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/starter-projects/vector-store-rag.mdx",sourceDirName:"starter-projects",slug:"/starter-projects/vector-store-rag",permalink:"/starter-projects/vector-store-rag",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Memory Chatbot",permalink:"/starter-projects/memory-chatbot"},next:{title:"API Keys",permalink:"/administration/api"}},h={},u={annotations:s.hk,Code:s.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},g=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Create the vector store RAG project",id:"create-the-vector-store-rag-project",level:2},{value:"Run the vector store RAG flow",id:"run-the-vector-store-rag-flow",level:2}];function m(e){const n=Object.assign({h1:"h1",p:"p",strong:"strong",a:"a",h2:"h2",ul:"ul",li:"li",code:"code",ol:"ol"},(0,o.RP)(),e.components);return u||j("CH",!1),u.Code||j("CH.Code",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.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","\n",(0,r.jsx)(n.h1,{id:"vector-store-rag",children:"Vector Store RAG"}),"\n",(0,r.jsx)(a.A,{type:"warning",title:"warning",children:(0,r.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,r.jsx)(n.p,{children:"Retrieval Augmented Generation, or RAG, is a pattern for training LLMs on your data and querying it."}),"\n",(0,r.jsxs)(n.p,{children:["RAG is backed by a ",(0,r.jsx)(n.strong,{children:"vector store"}),", a vector database which stores embeddings of the ingested data."]}),"\n",(0,r.jsxs)(n.p,{children:["This enables ",(0,r.jsx)(n.strong,{children:"vector search"}),", a more powerful and context-aware search."]}),"\n",(0,r.jsxs)(n.p,{children:["We've chosen ",(0,r.jsx)(n.a,{href:"https://astra.datastax.com/signup?utm_source=langflow-pre-release&utm_medium=referral&utm_campaign=langflow-announcement&utm_content=create-a-free-astra-db-account",children:"Astra DB"})," as the vector database for this starter project, but you can follow along with any of Langflow's vector database options."]}),"\n",(0,r.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.a,{href:"../getting-started/install-langflow",children:"Langflow installed and running"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.a,{href:"https://platform.openai.com",children:"OpenAI API key"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://docs.datastax.com/en/astra-db-serverless/get-started/quickstart.html",children:"An Astra DB vector database created"})," with:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Application token (",(0,r.jsx)(n.code,{children:"AstraCS:WSnyFUhRxsrg\u2026\u200b"}),")"]}),"\n",(0,r.jsxs)(n.li,{children:["API endpoint (",(0,r.jsx)(n.code,{children:"https://ASTRA_DB_ID-ASTRA_DB_REGION.apps.astra.datastax.com"}),")"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"create-the-vector-store-rag-project",children:"Create the vector store RAG project"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["From the Langflow dashboard, click ",(0,r.jsx)(n.strong,{children:"New Project"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Select ",(0,r.jsx)(n.strong,{children:"Vector Store RAG"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["The ",(0,r.jsx)(n.strong,{children:"Vector Store RAG"})," flow is created."]}),"\n"]}),"\n",(0,r.jsx)(i.A,{alt:"Docusaurus themed image",sources:{light:"img/vector-store-rag.png",dark:"img/vector-store-rag.png"},style:{width:"80%",margin:"20px auto"}}),"\n",(0,r.jsx)(n.p,{children:"The vector store RAG flow is built of two separate flows."}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.strong,{children:"ingestion"})," flow (bottom of the screen) populates the vector store with data from a local file.\nIt ingests data from a file (",(0,r.jsx)(n.strong,{children:"File"}),"), splits it into chunks (",(0,r.jsx)(n.strong,{children:"Recursive Character Text Splitter"}),"), indexes it in Astra DB (",(0,r.jsx)(n.strong,{children:"Astra DB"}),"), and computes embeddings for the chunks (",(0,r.jsx)(n.strong,{children:"OpenAI Embeddings"}),').\nThis forms a "brain" for the query flow.']}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.strong,{children:"query"})," flow (top of the screen) allows users to chat with the embedded vector store data. It's a little more complex:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Chat Input"})," component defines where to put the user input coming from the Playground."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"OpenAI Embeddings"})," component generates embeddings from the user input."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Astra DB Search"})," component retrieves the most relevant Data from the Astra DB database."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Text Output"})," component turns the Data into Text by concatenating them and also displays it in the Playground."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Prompt"})," component takes in the user input and the retrieved Data as text and builds a prompt for the OpenAI model."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"OpenAI"})," component generates a response to the prompt."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Chat Output"})," component displays the response in the Playground."]}),"\n"]}),"\n",(0,r.jsxs)(n.ol,{start:"4",children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To create an environment variable for the ",(0,r.jsx)(n.strong,{children:"OpenAI"})," component, in the ",(0,r.jsx)(n.strong,{children:"OpenAI API Key"})," field, click the ",(0,r.jsx)(n.strong,{children:"Globe"})," button, and then click ",(0,r.jsx)(n.strong,{children:"Add New Variable"}),"."]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Variable Name"})," field, enter ",(0,r.jsx)(n.code,{children:"openai_api_key"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Value"})," field, paste your OpenAI API Key (",(0,r.jsx)(n.code,{children:"sk-..."}),")."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Save Variable"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["To create environment variables for the ",(0,r.jsx)(n.strong,{children:"Astra DB"})," and ",(0,r.jsx)(n.strong,{children:"Astra DB Search"})," components:"]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Token"})," field, click the ",(0,r.jsx)(n.strong,{children:"Globe"})," button, and then click ",(0,r.jsx)(n.strong,{children:"Add New Variable"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Variable Name"})," field, enter ",(0,r.jsx)(n.code,{children:"astra_token"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Value"})," field, paste your Astra application token (",(0,r.jsx)(n.code,{children:"AstraCS:WSnyFUhRxsrg\u2026\u200b"}),")."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Save Variable"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Repeat the above steps for the ",(0,r.jsx)(n.strong,{children:"API Endpoint"})," field, pasting your Astra API Endpoint instead (",(0,r.jsx)(n.code,{children:"https://ASTRA_DB_ID-ASTRA_DB_REGION.apps.astra.datastax.com"}),")."]}),"\n",(0,r.jsxs)(n.li,{children:["Add the global variable to both the ",(0,r.jsx)(n.strong,{children:"Astra DB"})," and ",(0,r.jsx)(n.strong,{children:"Astra DB Search"})," components."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"run-the-vector-store-rag-flow",children:"Run the vector store RAG flow"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Click the ",(0,r.jsx)(n.strong,{children:"Playground"})," button.\nThe ",(0,r.jsx)(n.strong,{children:"Playground"})," opens, where you can chat with your data."]}),"\n",(0,r.jsx)(n.li,{children:'Type a message and press Enter. (Try something like "What topics do you know about?")'}),"\n",(0,r.jsx)(n.li,{children:"The bot will respond with a summary of the data you've embedded."}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:'For example, we embedded a PDF of an engine maintenance manual and asked, "How do I change the oil?"\nThe bot responds:'}),"\n",(0,r.jsx)(u.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"To change the oil in the engine, follow these steps:",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Make sure the engine is turned off and cool before starting.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Locate the oil drain plug on the bottom of the engine.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Place a drain pan underneath the oil drain plug to catch the old oil...",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(n.p,{children:"We can also get more specific:"}),"\n",(0,r.jsx)(u.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"User",props:{}}]},{tokens:[{content:"What size wrench should I use to remove the oil drain cap?",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"AI",props:{}}]},{tokens:[{content:"You should use a 3/8 inch wrench to remove the oil drain cap.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(n.p,{children:"This is the size the engine manual lists as well. This confirms our flow works, because the query returns the unique knowledge we embedded from the Astra vector store."})]})}const x=function(e={}){const{wrapper:n}=Object.assign({},(0,o.RP)(),e.components);return n?(0,r.jsx)(n,Object.assign({},e,{children:(0,r.jsx)(m,e)})):m(e)};function j(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/661dd3b9.d272a45e.js b/assets/js/661dd3b9.d272a45e.js
deleted file mode 100644
index a26acc547d..0000000000
--- a/assets/js/661dd3b9.d272a45e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4468],{7533:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(6540),s=n(1122),o=n(6025),i=n(4848);const a=e=>{let{alt:t,sources:n,style:a}=e;const[c,d]=(0,r.useState)(!1),l=e=>{"Escape"===e.key&&d(!1)};(0,r.useEffect)((()=>(c?document.addEventListener("keydown",l):document.removeEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)})),[c]);return(0,i.jsx)("div",{className:"zoomable-image "+(c?"fullscreen":""),onClick:()=>{d(!c)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...a},children:(0,i.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,o.Ay)(n.light),dark:(0,o.Ay)(n.dark)}})})}},7836:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>p,assets:()=>h,chCodeConfig:()=>u,contentTitle:()=>d,default:()=>j,frontMatter:()=>c,metadata:()=>l,toc:()=>g});n(6540);var r=n(4848),s=n(8453),o=n(4754),i=(n(1122),n(6025),n(7533)),a=n(7293);const c={},d="Vector Store RAG",l={id:"starter-projects/vector-store-rag",title:"Vector Store RAG",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/starter-projects/vector-store-rag.mdx",sourceDirName:"starter-projects",slug:"/starter-projects/vector-store-rag",permalink:"/starter-projects/vector-store-rag",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Memory Chatbot",permalink:"/starter-projects/memory-chatbot"},next:{title:"API Keys",permalink:"/administration/api"}},h={},p={annotations:o.hk,Code:o.Cy},u={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},g=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Create the vector store RAG project",id:"create-the-vector-store-rag-project",level:2},{value:"Run the vector store RAG flow",id:"run-the-vector-store-rag-flow",level:2}];function x(e){const t=Object.assign({h1:"h1",p:"p",strong:"strong",a:"a",h2:"h2",ul:"ul",li:"li",code:"code",ol:"ol"},(0,s.RP)(),e.components);return p||m("CH",!1),p.Code||m("CH.Code",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.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","\n",(0,r.jsx)(t.h1,{id:"vector-store-rag",children:"Vector Store RAG"}),"\n",(0,r.jsx)(a.A,{type:"warning",title:"warning",children:(0,r.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,r.jsx)(t.p,{children:"Retrieval Augmented Generation, or RAG, is a pattern for training LLMs on your data and querying it."}),"\n",(0,r.jsxs)(t.p,{children:["RAG is backed by a ",(0,r.jsx)(t.strong,{children:"vector store"}),", a vector database which stores embeddings of the ingested data."]}),"\n",(0,r.jsxs)(t.p,{children:["This enables ",(0,r.jsx)(t.strong,{children:"vector search"}),", a more powerful and context-aware search."]}),"\n",(0,r.jsxs)(t.p,{children:["We've chosen ",(0,r.jsx)(t.a,{href:"https://astra.datastax.com/signup?utm_source=langflow-pre-release&utm_medium=referral&utm_campaign=langflow-announcement&utm_content=create-a-free-astra-db-account",children:"Astra DB"})," as the vector database for this starter project, but you can follow along with any of Langflow's vector database options."]}),"\n",(0,r.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.a,{href:"../getting-started/install-langflow",children:"Langflow installed and running"})}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsx)(t.p,{children:(0,r.jsx)(t.a,{href:"https://platform.openai.com",children:"OpenAI API key"})}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.a,{href:"https://docs.datastax.com/en/astra-db-serverless/get-started/quickstart.html",children:"An Astra DB vector database created"})," with:"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["Application token (",(0,r.jsx)(t.code,{children:"AstraCS:WSnyFUhRxsrg\u2026\u200b"}),")"]}),"\n",(0,r.jsxs)(t.li,{children:["API endpoint (",(0,r.jsx)(t.code,{children:"https://ASTRA_DB_ID-ASTRA_DB_REGION.apps.astra.datastax.com"}),")"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"create-the-vector-store-rag-project",children:"Create the vector store RAG project"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["From the Langflow dashboard, click ",(0,r.jsx)(t.strong,{children:"New Project"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Select ",(0,r.jsx)(t.strong,{children:"Vector Store RAG"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["The ",(0,r.jsx)(t.strong,{children:"Vector Store RAG"})," flow is created."]}),"\n"]}),"\n",(0,r.jsx)(i.A,{alt:"Docusaurus themed image",sources:{light:"img/vector-store-rag.png",dark:"img/vector-store-rag.png"},style:{width:"80%",margin:"20px auto"}}),"\n",(0,r.jsx)(t.p,{children:"The vector store RAG flow is built of two separate flows."}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"ingestion"})," flow (bottom of the screen) populates the vector store with data from a local file.\nIt ingests data from a file (",(0,r.jsx)(t.strong,{children:"File"}),"), splits it into chunks (",(0,r.jsx)(t.strong,{children:"Recursive Character Text Splitter"}),"), indexes it in Astra DB (",(0,r.jsx)(t.strong,{children:"Astra DB"}),"), and computes embeddings for the chunks (",(0,r.jsx)(t.strong,{children:"OpenAI Embeddings"}),').\nThis forms a "brain" for the query flow.']}),"\n",(0,r.jsxs)(t.p,{children:["The ",(0,r.jsx)(t.strong,{children:"query"})," flow (top of the screen) allows users to chat with the embedded vector store data. It's a little more complex:"]}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Chat Input"})," component defines where to put the user input coming from the Playground."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"OpenAI Embeddings"})," component generates embeddings from the user input."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Astra DB Search"})," component retrieves the most relevant Data from the Astra DB database."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Text Output"})," component turns the Data into Text by concatenating them and also displays it in the Playground."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Prompt"})," component takes in the user input and the retrieved Data as text and builds a prompt for the OpenAI model."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"OpenAI"})," component generates a response to the prompt."]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Chat Output"})," component displays the response in the Playground."]}),"\n"]}),"\n",(0,r.jsxs)(t.ol,{start:"4",children:["\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["To create an environment variable for the ",(0,r.jsx)(t.strong,{children:"OpenAI"})," component, in the ",(0,r.jsx)(t.strong,{children:"OpenAI API Key"})," field, click the ",(0,r.jsx)(t.strong,{children:"Globe"})," button, and then click ",(0,r.jsx)(t.strong,{children:"Add New Variable"}),"."]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Variable Name"})," field, enter ",(0,r.jsx)(t.code,{children:"openai_api_key"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Value"})," field, paste your OpenAI API Key (",(0,r.jsx)(t.code,{children:"sk-..."}),")."]}),"\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Save Variable"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["\n",(0,r.jsxs)(t.p,{children:["To create environment variables for the ",(0,r.jsx)(t.strong,{children:"Astra DB"})," and ",(0,r.jsx)(t.strong,{children:"Astra DB Search"})," components:"]}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Token"})," field, click the ",(0,r.jsx)(t.strong,{children:"Globe"})," button, and then click ",(0,r.jsx)(t.strong,{children:"Add New Variable"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Variable Name"})," field, enter ",(0,r.jsx)(t.code,{children:"astra_token"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["In the ",(0,r.jsx)(t.strong,{children:"Value"})," field, paste your Astra application token (",(0,r.jsx)(t.code,{children:"AstraCS:WSnyFUhRxsrg\u2026\u200b"}),")."]}),"\n",(0,r.jsxs)(t.li,{children:["Click ",(0,r.jsx)(t.strong,{children:"Save Variable"}),"."]}),"\n",(0,r.jsxs)(t.li,{children:["Repeat the above steps for the ",(0,r.jsx)(t.strong,{children:"API Endpoint"})," field, pasting your Astra API Endpoint instead (",(0,r.jsx)(t.code,{children:"https://ASTRA_DB_ID-ASTRA_DB_REGION.apps.astra.datastax.com"}),")."]}),"\n",(0,r.jsxs)(t.li,{children:["Add the global variable to both the ",(0,r.jsx)(t.strong,{children:"Astra DB"})," and ",(0,r.jsx)(t.strong,{children:"Astra DB Search"})," components."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"run-the-vector-store-rag-flow",children:"Run the vector store RAG flow"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Click the ",(0,r.jsx)(t.strong,{children:"Playground"})," button.\nThe ",(0,r.jsx)(t.strong,{children:"Playground"})," opens, where you can chat with your data."]}),"\n",(0,r.jsx)(t.li,{children:'Type a message and press Enter. (Try something like "What topics do you know about?")'}),"\n",(0,r.jsx)(t.li,{children:"The bot will respond with a summary of the data you've embedded."}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:'For example, we embedded a PDF of an engine maintenance manual and asked, "How do I change the oil?"\nThe bot responds:'}),"\n",(0,r.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"To change the oil in the engine, follow these steps:",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Make sure the engine is turned off and cool before starting.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Locate the oil drain plug on the bottom of the engine.",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"Place a drain pan underneath the oil drain plug to catch the old oil...",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.p,{children:"We can also get more specific:"}),"\n",(0,r.jsx)(p.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"User",props:{}}]},{tokens:[{content:"What size wrench should I use to remove the oil drain cap?",props:{}}]},{tokens:[{content:"",props:{}}]},{tokens:[{content:"AI",props:{}}]},{tokens:[{content:"You should use a 3/8 inch wrench to remove the oil drain cap.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,r.jsx)(t.p,{children:"This is the size the engine manual lists as well. This confirms our flow works, because the query returns the unique knowledge we embedded from the Astra vector store."})]})}const j=function(e={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),e.components);return t?(0,r.jsx)(t,Object.assign({},e,{children:(0,r.jsx)(x,e)})):x(e)};function m(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/7278.3a2cdbb2.js b/assets/js/7278.3a2cdbb2.js
new file mode 100644
index 0000000000..225b651eb0
--- /dev/null
+++ b/assets/js/7278.3a2cdbb2.js
@@ -0,0 +1 @@
+(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7278],{7293:(e,t,n)=>{"use strict";n.d(t,{A:()=>M});var r=n(6540),a=n(4848);function o(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=r.Children.toArray(e),n=t.find((e=>r.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),o=t.filter((e=>e!==n)),i=n?.props.children;return{mdxAdmonitionTitle:i,rest:o.length>0?(0,a.jsx)(a.Fragment,{children:o}):null}}(e.children),o=e.title??t;return{...e,...o&&{title:o},children:n}}var i=n(8215),l=n(1312),s=n(7559);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function u(e){let{type:t,className:n,children:r}=e;return(0,a.jsx)("div",{className:(0,i.A)(s.G.common.admonition,s.G.common.admonitionType(t),c.admonition,n),children:r})}function d(e){let{icon:t,title:n}=e;return(0,a.jsxs)("div",{className:c.admonitionHeading,children:[(0,a.jsx)("span",{className:c.admonitionIcon,children:t}),n]})}function p(e){let{children:t}=e;return t?(0,a.jsx)("div",{className:c.admonitionContent,children:t}):null}function y(e){const{type:t,icon:n,title:r,children:o,className:i}=e;return(0,a.jsxs)(u,{type:t,className:i,children:[r||n?(0,a.jsx)(d,{title:r,icon:n}):null,(0,a.jsx)(p,{children:o})]})}function h(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const f={icon:(0,a.jsx)(h,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function m(e){return(0,a.jsx)(y,{...f,...e,className:(0,i.A)("alert alert--secondary",e.className),children:e.children})}function b(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const P={icon:(0,a.jsx)(b,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function g(e){return(0,a.jsx)(y,{...P,...e,className:(0,i.A)("alert alert--success",e.className),children:e.children})}function v(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,a.jsx)(v,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function O(e){return(0,a.jsx)(y,{...w,...e,className:(0,i.A)("alert alert--info",e.className),children:e.children})}function j(e){return(0,a.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const x={icon:(0,a.jsx)(j,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function k(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const T={icon:(0,a.jsx)(k,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const _={icon:(0,a.jsx)(j,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const A={...{note:m,tip:g,info:O,warning:function(e){return(0,a.jsx)(y,{...x,...e,className:(0,i.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,a.jsx)(y,{...T,...e,className:(0,i.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,a.jsx)(m,{title:"secondary",...e}),important:e=>(0,a.jsx)(O,{title:"important",...e}),success:e=>(0,a.jsx)(g,{title:"success",...e}),caution:function(e){return(0,a.jsx)(y,{..._,...e,className:(0,i.A)("alert alert--warning",e.className),children:e.children})}}};var C=n(6763);function M(e){const t=o(e),n=(r=t.type,A[r]||(C.warn(`No admonition component found for admonition type "${r}". Using Info as fallback.`),A.info));var r;return(0,a.jsx)(n,{...t})}},4744:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===n}(e)}(e)};var n="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function r(e,t){return!1!==t.clone&&t.isMergeableObject(e)?s((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function a(e,t,n){return e.concat(t).map((function(e){return r(e,n)}))}function o(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function i(e,t){try{return t in e}catch(n){return!1}}function l(e,t,n){var a={};return n.isMergeableObject(e)&&o(e).forEach((function(t){a[t]=r(e[t],n)})),o(t).forEach((function(o){(function(e,t){return i(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,o)||(i(e,o)&&n.isMergeableObject(t[o])?a[o]=function(e,t){if(!t.customMerge)return s;var n=t.customMerge(e);return"function"==typeof n?n:s}(o,n)(e[o],t[o],n):a[o]=r(t[o],n))})),a}function s(e,n,o){(o=o||{}).arrayMerge=o.arrayMerge||a,o.isMergeableObject=o.isMergeableObject||t,o.cloneUnlessOtherwiseSpecified=r;var i=Array.isArray(n);return i===Array.isArray(e)?i?o.arrayMerge(e,n,o):l(e,n,o):r(n,o)}s.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,n){return s(e,n,t)}),{})};var c=s;e.exports=c},6147:e=>{function t(e,t){e.onload=function(){this.onerror=this.onload=null,t(null,e)},e.onerror=function(){this.onerror=this.onload=null,t(new Error("Failed to load "+this.src),e)}}function n(e,t){e.onreadystatechange=function(){"complete"!=this.readyState&&"loaded"!=this.readyState||(this.onreadystatechange=null,t(null,e))}}e.exports=function(e,r,a){var o=document.head||document.getElementsByTagName("head")[0],i=document.createElement("script");"function"==typeof r&&(a=r,r={}),r=r||{},a=a||function(){},i.type=r.type||"text/javascript",i.charset=r.charset||"utf8",i.async=!("async"in r)||!!r.async,i.src=e,r.attrs&&function(e,t){for(var n in t)e.setAttribute(n,t[n])}(i,r.attrs),r.text&&(i.text=""+r.text),("onload"in i?t:n)(i,a),i.onload||t(i,a),o.appendChild(i)}},1811:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function a(e,t){if(e.length!==t.length)return!1;for(var n=0;n{var r,a=n(6763),o=Object.create,i=Object.defineProperty,l=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,c=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,d=(e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of s(t))u.call(e,a)||a===n||i(e,a,{get:()=>t[a],enumerable:!(r=l(t,a))||r.enumerable});return e},p=(e,t,n)=>(n=null!=e?o(c(e)):{},d(!t&&e&&e.__esModule?n:i(n,"default",{value:e,enumerable:!0}),e)),y=(e,t,n)=>(((e,t,n)=>{t in e?i(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n),h={};((e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})})(h,{default:()=>g}),e.exports=(r=h,d(i({},"__esModule",{value:!0}),r));var f=p(n(6540)),m=p(n(115)),b=n(7604),P=n(5635);class g extends f.Component{constructor(){super(...arguments),y(this,"mounted",!1),y(this,"isReady",!1),y(this,"isPlaying",!1),y(this,"isLoading",!0),y(this,"loadOnReady",null),y(this,"startOnPlay",!0),y(this,"seekOnPlay",null),y(this,"onDurationCalled",!1),y(this,"handlePlayerMount",(e=>{this.player||(this.player=e,this.player.load(this.props.url)),this.progress()})),y(this,"getInternalPlayer",(e=>this.player?this.player[e]:null)),y(this,"progress",(()=>{if(this.props.url&&this.player&&this.isReady){const e=this.getCurrentTime()||0,t=this.getSecondsLoaded(),n=this.getDuration();if(n){const r={playedSeconds:e,played:e/n};null!==t&&(r.loadedSeconds=t,r.loaded=t/n),r.playedSeconds===this.prevPlayed&&r.loadedSeconds===this.prevLoaded||this.props.onProgress(r),this.prevPlayed=r.playedSeconds,this.prevLoaded=r.loadedSeconds}}this.progressTimeout=setTimeout(this.progress,this.props.progressFrequency||this.props.progressInterval)})),y(this,"handleReady",(()=>{if(!this.mounted)return;this.isReady=!0,this.isLoading=!1;const{onReady:e,playing:t,volume:n,muted:r}=this.props;e(),r||null===n||this.player.setVolume(n),this.loadOnReady?(this.player.load(this.loadOnReady,!0),this.loadOnReady=null):t&&this.player.play(),this.handleDurationCheck()})),y(this,"handlePlay",(()=>{this.isPlaying=!0,this.isLoading=!1;const{onStart:e,onPlay:t,playbackRate:n}=this.props;this.startOnPlay&&(this.player.setPlaybackRate&&1!==n&&this.player.setPlaybackRate(n),e(),this.startOnPlay=!1),t(),this.seekOnPlay&&(this.seekTo(this.seekOnPlay),this.seekOnPlay=null),this.handleDurationCheck()})),y(this,"handlePause",(e=>{this.isPlaying=!1,this.isLoading||this.props.onPause(e)})),y(this,"handleEnded",(()=>{const{activePlayer:e,loop:t,onEnded:n}=this.props;e.loopOnEnded&&t&&this.seekTo(0),t||(this.isPlaying=!1,n())})),y(this,"handleError",((...e)=>{this.isLoading=!1,this.props.onError(...e)})),y(this,"handleDurationCheck",(()=>{clearTimeout(this.durationCheckTimeout);const e=this.getDuration();e?this.onDurationCalled||(this.props.onDuration(e),this.onDurationCalled=!0):this.durationCheckTimeout=setTimeout(this.handleDurationCheck,100)})),y(this,"handleLoaded",(()=>{this.isLoading=!1}))}componentDidMount(){this.mounted=!0}componentWillUnmount(){clearTimeout(this.progressTimeout),clearTimeout(this.durationCheckTimeout),this.isReady&&this.props.stopOnUnmount&&(this.player.stop(),this.player.disablePIP&&this.player.disablePIP()),this.mounted=!1}componentDidUpdate(e){if(!this.player)return;const{url:t,playing:n,volume:r,muted:o,playbackRate:i,pip:l,loop:s,activePlayer:c,disableDeferredLoading:u}=this.props;if(!(0,m.default)(e.url,t)){if(this.isLoading&&!c.forceLoad&&!u&&!(0,P.isMediaStream)(t))return a.warn(`ReactPlayer: the attempt to load ${t} is being deferred until the player has loaded`),void(this.loadOnReady=t);this.isLoading=!0,this.startOnPlay=!0,this.onDurationCalled=!1,this.player.load(t,this.isReady)}e.playing||!n||this.isPlaying||this.player.play(),e.playing&&!n&&this.isPlaying&&this.player.pause(),!e.pip&&l&&this.player.enablePIP&&this.player.enablePIP(),e.pip&&!l&&this.player.disablePIP&&this.player.disablePIP(),e.volume!==r&&null!==r&&this.player.setVolume(r),e.muted!==o&&(o?this.player.mute():(this.player.unmute(),null!==r&&setTimeout((()=>this.player.setVolume(r))))),e.playbackRate!==i&&this.player.setPlaybackRate&&this.player.setPlaybackRate(i),e.loop!==s&&this.player.setLoop&&this.player.setLoop(s)}getDuration(){return this.isReady?this.player.getDuration():null}getCurrentTime(){return this.isReady?this.player.getCurrentTime():null}getSecondsLoaded(){return this.isReady?this.player.getSecondsLoaded():null}seekTo(e,t,n){if(!this.isReady)return void(0!==e&&(this.seekOnPlay=e,setTimeout((()=>{this.seekOnPlay=null}),5e3)));if(t?"fraction"===t:e>0&&e<1){const t=this.player.getDuration();return t?void this.player.seekTo(t*e,n):void a.warn("ReactPlayer: could not seek using fraction \u2013\xa0duration not yet available")}this.player.seekTo(e,n)}render(){const e=this.props.activePlayer;return e?f.default.createElement(e,{...this.props,onMount:this.handlePlayerMount,onReady:this.handleReady,onPlay:this.handlePlay,onPause:this.handlePause,onEnded:this.handleEnded,onLoaded:this.handleLoaded,onError:this.handleError}):null}}y(g,"displayName","Player"),y(g,"propTypes",b.propTypes),y(g,"defaultProps",b.defaultProps)},5580:(e,t,n)=>{var r,a=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,u=(e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of l(t))c.call(e,a)||a===n||o(e,a,{get:()=>t[a],enumerable:!(r=i(t,a))||r.enumerable});return e},d=(e,t,n)=>(n=null!=e?a(s(e)):{},u(!t&&e&&e.__esModule?n:o(n,"default",{value:e,enumerable:!0}),e)),p=(e,t,n)=>(((e,t,n)=>{t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n),y={};((e,t)=>{for(var n in t)o(e,n,{get:t[n],enumerable:!0})})(y,{createReactPlayer:()=>_}),e.exports=(r=y,u(o({},"__esModule",{value:!0}),r));var h=d(n(6540)),f=d(n(4744)),m=d(n(1811)),b=d(n(115)),P=n(7604),g=n(5635),v=d(n(8021));const w=(0,g.lazy)((()=>n.e(6353).then(n.t.bind(n,6734,23)))),O="undefined"!=typeof window&&window.document&&"undefined"!=typeof document,j=void 0!==n.g&&n.g.window&&n.g.window.document,x=Object.keys(P.propTypes),k=O||j?h.Suspense:()=>null,T=[],_=(e,t)=>{var n;return n=class extends h.Component{constructor(){super(...arguments),p(this,"state",{showPreview:!!this.props.light}),p(this,"references",{wrapper:e=>{this.wrapper=e},player:e=>{this.player=e}}),p(this,"handleClickPreview",(e=>{this.setState({showPreview:!1}),this.props.onClickPreview(e)})),p(this,"showPreview",(()=>{this.setState({showPreview:!0})})),p(this,"getDuration",(()=>this.player?this.player.getDuration():null)),p(this,"getCurrentTime",(()=>this.player?this.player.getCurrentTime():null)),p(this,"getSecondsLoaded",(()=>this.player?this.player.getSecondsLoaded():null)),p(this,"getInternalPlayer",((e="player")=>this.player?this.player.getInternalPlayer(e):null)),p(this,"seekTo",((e,t,n)=>{if(!this.player)return null;this.player.seekTo(e,t,n)})),p(this,"handleReady",(()=>{this.props.onReady(this)})),p(this,"getActivePlayer",(0,m.default)((n=>{for(const t of[...T,...e])if(t.canPlay(n))return t;return t||null}))),p(this,"getConfig",(0,m.default)(((e,t)=>{const{config:n}=this.props;return f.default.all([P.defaultProps.config,P.defaultProps.config[t]||{},n,n[t]||{}])}))),p(this,"getAttributes",(0,m.default)((e=>(0,g.omit)(this.props,x)))),p(this,"renderActivePlayer",(e=>{if(!e)return null;const t=this.getActivePlayer(e);if(!t)return null;const n=this.getConfig(e,t.key);return h.default.createElement(v.default,{...this.props,key:t.key,ref:this.references.player,config:n,activePlayer:t.lazyPlayer||t,onReady:this.handleReady})}))}shouldComponentUpdate(e,t){return!(0,b.default)(this.props,e)||!(0,b.default)(this.state,t)}componentDidUpdate(e){const{light:t}=this.props;!e.light&&t&&this.setState({showPreview:!0}),e.light&&!t&&this.setState({showPreview:!1})}renderPreview(e){if(!e)return null;const{light:t,playIcon:n,previewTabIndex:r,oEmbedUrl:a,previewAriaLabel:o}=this.props;return h.default.createElement(w,{url:e,light:t,playIcon:n,previewTabIndex:r,previewAriaLabel:o,oEmbedUrl:a,onClick:this.handleClickPreview})}render(){const{url:e,style:t,width:n,height:r,fallback:a,wrapper:o}=this.props,{showPreview:i}=this.state,l=this.getAttributes(e),s="string"==typeof o?this.references.wrapper:void 0;return h.default.createElement(o,{ref:s,style:{...t,width:n,height:r},...l},h.default.createElement(k,{fallback:a},i?this.renderPreview(e):this.renderActivePlayer(e)))}},p(n,"displayName","ReactPlayer"),p(n,"propTypes",P.propTypes),p(n,"defaultProps",P.defaultProps),p(n,"addCustomPlayer",(e=>{T.push(e)})),p(n,"removeCustomPlayers",(()=>{T.length=0})),p(n,"canPlay",(t=>{for(const n of[...T,...e])if(n.canPlay(t))return!0;return!1})),p(n,"canEnablePIP",(t=>{for(const n of[...T,...e])if(n.canEnablePIP&&n.canEnablePIP(t))return!0;return!1})),n}},3554:(e,t,n)=>{var r,a=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,u=(e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of l(t))c.call(e,a)||a===n||o(e,a,{get:()=>t[a],enumerable:!(r=i(t,a))||r.enumerable});return e},d={};((e,t)=>{for(var n in t)o(e,n,{get:t[n],enumerable:!0})})(d,{default:()=>f}),e.exports=(r=d,u(o({},"__esModule",{value:!0}),r));var p=((e,t,n)=>(n=null!=e?a(s(e)):{},u(!t&&e&&e.__esModule?n:o(n,"default",{value:e,enumerable:!0}),e)))(n(7015)),y=n(5580);const h=p.default[p.default.length-1];var f=(0,y.createReactPlayer)(p.default,h)},327:(e,t,n)=>{var r,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,l=Object.prototype.hasOwnProperty,s={};((e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})})(s,{AUDIO_EXTENSIONS:()=>x,DASH_EXTENSIONS:()=>_,FLV_EXTENSIONS:()=>A,HLS_EXTENSIONS:()=>T,MATCH_URL_DAILYMOTION:()=>v,MATCH_URL_FACEBOOK:()=>h,MATCH_URL_FACEBOOK_WATCH:()=>f,MATCH_URL_KALTURA:()=>j,MATCH_URL_MIXCLOUD:()=>w,MATCH_URL_MUX:()=>y,MATCH_URL_SOUNDCLOUD:()=>d,MATCH_URL_STREAMABLE:()=>m,MATCH_URL_TWITCH_CHANNEL:()=>g,MATCH_URL_TWITCH_VIDEO:()=>P,MATCH_URL_VIDYARD:()=>O,MATCH_URL_VIMEO:()=>p,MATCH_URL_WISTIA:()=>b,MATCH_URL_YOUTUBE:()=>u,VIDEO_EXTENSIONS:()=>k,canPlay:()=>M}),e.exports=(r=s,((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))l.call(e,s)||s===n||a(e,s,{get:()=>t[s],enumerable:!(r=o(t,s))||r.enumerable});return e})(a({},"__esModule",{value:!0}),r));var c=n(5635);const u=/(?:youtu\.be\/|youtube(?:-nocookie|education)?\.com\/(?:embed\/|v\/|watch\/|watch\?v=|watch\?.+&v=|shorts\/|live\/))((\w|-){11})|youtube\.com\/playlist\?list=|youtube\.com\/user\//,d=/(?:soundcloud\.com|snd\.sc)\/[^.]+$/,p=/vimeo\.com\/(?!progressive_redirect).+/,y=/stream\.mux\.com\/(?!\w+\.m3u8)(\w+)/,h=/^https?:\/\/(www\.)?facebook\.com.*\/(video(s)?|watch|story)(\.php?|\/).+$/,f=/^https?:\/\/fb\.watch\/.+$/,m=/streamable\.com\/([a-z0-9]+)$/,b=/(?:wistia\.(?:com|net)|wi\.st)\/(?:medias|embed)\/(?:iframe\/)?([^?]+)/,P=/(?:www\.|go\.)?twitch\.tv\/videos\/(\d+)($|\?)/,g=/(?:www\.|go\.)?twitch\.tv\/([a-zA-Z0-9_]+)($|\?)/,v=/^(?:(?:https?):)?(?:\/\/)?(?:www\.)?(?:(?:dailymotion\.com(?:\/embed)?\/video)|dai\.ly)\/([a-zA-Z0-9]+)(?:_[\w_-]+)?(?:[\w.#_-]+)?/,w=/mixcloud\.com\/([^/]+\/[^/]+)/,O=/vidyard.com\/(?:watch\/)?([a-zA-Z0-9-_]+)/,j=/^https?:\/\/[a-zA-Z]+\.kaltura.(com|org)\/p\/([0-9]+)\/sp\/([0-9]+)00\/embedIframeJs\/uiconf_id\/([0-9]+)\/partner_id\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_].*)$/,x=/\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\?)/i,k=/\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\d+]+)?($|\?)/i,T=/\.(m3u8)($|\?)/i,_=/\.(mpd)($|\?)/i,A=/\.(flv)($|\?)/i,C=e=>{if(e instanceof Array){for(const t of e){if("string"==typeof t&&C(t))return!0;if(C(t.src))return!0}return!1}return!(!(0,c.isMediaStream)(e)&&!(0,c.isBlobUrl)(e))||(x.test(e)||k.test(e)||T.test(e)||_.test(e)||A.test(e))},M={youtube:e=>e instanceof Array?e.every((e=>u.test(e))):u.test(e),soundcloud:e=>d.test(e)&&!x.test(e),vimeo:e=>p.test(e)&&!k.test(e)&&!T.test(e),mux:e=>y.test(e),facebook:e=>h.test(e)||f.test(e),streamable:e=>m.test(e),wistia:e=>b.test(e),twitch:e=>P.test(e)||g.test(e),dailymotion:e=>v.test(e),mixcloud:e=>w.test(e),vidyard:e=>O.test(e),kaltura:e=>j.test(e),file:C}},7015:(e,t,n)=>{Object.create;var r,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,l=(Object.getPrototypeOf,Object.prototype.hasOwnProperty),s=(e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of i(t))l.call(e,s)||s===n||a(e,s,{get:()=>t[s],enumerable:!(r=o(t,s))||r.enumerable});return e},c={};((e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})})(c,{default:()=>p}),e.exports=(r=c,s(a({},"__esModule",{value:!0}),r));var u=n(5635),d=n(327),p=[{key:"youtube",name:"YouTube",canPlay:d.canPlay.youtube,lazyPlayer:(0,u.lazy)((()=>n.e(8446).then(n.t.bind(n,2910,23))))},{key:"soundcloud",name:"SoundCloud",canPlay:d.canPlay.soundcloud,lazyPlayer:(0,u.lazy)((()=>n.e(9979).then(n.t.bind(n,3127,23))))},{key:"vimeo",name:"Vimeo",canPlay:d.canPlay.vimeo,lazyPlayer:(0,u.lazy)((()=>n.e(6173).then(n.t.bind(n,1423,23))))},{key:"mux",name:"Mux",canPlay:d.canPlay.mux,lazyPlayer:(0,u.lazy)((()=>n.e(2723).then(n.t.bind(n,7553,23))))},{key:"facebook",name:"Facebook",canPlay:d.canPlay.facebook,lazyPlayer:(0,u.lazy)((()=>n.e(6887).then(n.t.bind(n,1343,23))))},{key:"streamable",name:"Streamable",canPlay:d.canPlay.streamable,lazyPlayer:(0,u.lazy)((()=>n.e(7627).then(n.t.bind(n,9643,23))))},{key:"wistia",name:"Wistia",canPlay:d.canPlay.wistia,lazyPlayer:(0,u.lazy)((()=>n.e(9340).then(n.t.bind(n,3330,23))))},{key:"twitch",name:"Twitch",canPlay:d.canPlay.twitch,lazyPlayer:(0,u.lazy)((()=>n.e(2042).then(n.t.bind(n,1400,23))))},{key:"dailymotion",name:"DailyMotion",canPlay:d.canPlay.dailymotion,lazyPlayer:(0,u.lazy)((()=>n.e(6328).then(n.t.bind(n,9348,23))))},{key:"mixcloud",name:"Mixcloud",canPlay:d.canPlay.mixcloud,lazyPlayer:(0,u.lazy)((()=>n.e(7570).then(n.t.bind(n,3276,23))))},{key:"vidyard",name:"Vidyard",canPlay:d.canPlay.vidyard,lazyPlayer:(0,u.lazy)((()=>n.e(3392).then(n.t.bind(n,3552,23))))},{key:"kaltura",name:"Kaltura",canPlay:d.canPlay.kaltura,lazyPlayer:(0,u.lazy)((()=>n.e(6463).then(n.t.bind(n,7945,23))))},{key:"file",name:"FilePlayer",canPlay:d.canPlay.file,canEnablePIP:e=>d.canPlay.file(e)&&(document.pictureInPictureEnabled||(0,u.supportsWebKitPresentationMode)())&&!d.AUDIO_EXTENSIONS.test(e),lazyPlayer:(0,u.lazy)((()=>n.e(7458).then(n.t.bind(n,688,23))))}]},7604:(e,t,n)=>{var r,a=Object.create,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,u=(e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of l(t))c.call(e,a)||a===n||o(e,a,{get:()=>t[a],enumerable:!(r=i(t,a))||r.enumerable});return e},d={};((e,t)=>{for(var n in t)o(e,n,{get:t[n],enumerable:!0})})(d,{defaultProps:()=>x,propTypes:()=>O}),e.exports=(r=d,u(o({},"__esModule",{value:!0}),r));var p=((e,t,n)=>(n=null!=e?a(s(e)):{},u(!t&&e&&e.__esModule?n:o(n,"default",{value:e,enumerable:!0}),e)))(n(5556));const{string:y,bool:h,number:f,array:m,oneOfType:b,shape:P,object:g,func:v,node:w}=p.default,O={url:b([y,m,g]),playing:h,loop:h,controls:h,volume:f,muted:h,playbackRate:f,width:b([y,f]),height:b([y,f]),style:g,progressInterval:f,playsinline:h,pip:h,stopOnUnmount:h,light:b([h,y,g]),playIcon:w,previewTabIndex:f,previewAriaLabel:y,fallback:w,oEmbedUrl:y,wrapper:b([y,v,P({render:v.isRequired})]),config:P({soundcloud:P({options:g}),youtube:P({playerVars:g,embedOptions:g,onUnstarted:v}),facebook:P({appId:y,version:y,playerId:y,attributes:g}),dailymotion:P({params:g}),vimeo:P({playerOptions:g,title:y}),mux:P({attributes:g,version:y}),file:P({attributes:g,tracks:m,forceVideo:h,forceAudio:h,forceHLS:h,forceSafariHLS:h,forceDisableHls:h,forceDASH:h,forceFLV:h,hlsOptions:g,hlsVersion:y,dashVersion:y,flvVersion:y}),wistia:P({options:g,playerId:y,customControls:m}),mixcloud:P({options:g}),twitch:P({options:g,playerId:y}),vidyard:P({options:g})}),onReady:v,onStart:v,onPlay:v,onPause:v,onBuffer:v,onBufferEnd:v,onEnded:v,onError:v,onDuration:v,onSeek:v,onPlaybackRateChange:v,onPlaybackQualityChange:v,onProgress:v,onClickPreview:v,onEnablePIP:v,onDisablePIP:v},j=()=>{},x={playing:!1,loop:!1,controls:!1,volume:null,muted:!1,playbackRate:1,width:"640px",height:"360px",style:{},progressInterval:1e3,playsinline:!1,pip:!1,stopOnUnmount:!0,light:!1,fallback:null,wrapper:"div",previewTabIndex:0,previewAriaLabel:"",oEmbedUrl:"https://noembed.com/embed?url={url}",config:{soundcloud:{options:{visual:!0,buying:!1,liking:!1,download:!1,sharing:!1,show_comments:!1,show_playcount:!1}},youtube:{playerVars:{playsinline:1,showinfo:0,rel:0,iv_load_policy:3,modestbranding:1},embedOptions:{},onUnstarted:j},facebook:{appId:"1309697205772819",version:"v3.3",playerId:null,attributes:{}},dailymotion:{params:{api:1,"endscreen-enable":!1}},vimeo:{playerOptions:{autopause:!1,byline:!1,portrait:!1,title:!1},title:null},mux:{attributes:{},version:"2"},file:{attributes:{},tracks:[],forceVideo:!1,forceAudio:!1,forceHLS:!1,forceDASH:!1,forceFLV:!1,hlsOptions:{},hlsVersion:"1.1.4",dashVersion:"3.1.3",flvVersion:"1.5.0",forceDisableHls:!1},wistia:{options:{},playerId:null,customControls:null},mixcloud:{options:{hide_cover:1}},twitch:{options:{},playerId:null},vidyard:{options:{}}},onReady:j,onStart:j,onPlay:j,onPause:j,onBuffer:j,onBufferEnd:j,onEnded:j,onError:j,onDuration:j,onSeek:j,onPlaybackRateChange:j,onPlaybackQualityChange:j,onProgress:j,onClickPreview:j,onEnablePIP:j,onDisablePIP:j}},5635:(e,t,n)=>{var r,a=n(6763),o=Object.create,i=Object.defineProperty,l=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,c=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,d=(e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of s(t))u.call(e,a)||a===n||i(e,a,{get:()=>t[a],enumerable:!(r=l(t,a))||r.enumerable});return e},p=(e,t,n)=>(n=null!=e?o(c(e)):{},d(!t&&e&&e.__esModule?n:i(n,"default",{value:e,enumerable:!0}),e)),y={};((e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})})(y,{callPlayer:()=>I,getConfig:()=>M,getSDK:()=>C,isBlobUrl:()=>R,isMediaStream:()=>E,lazy:()=>b,omit:()=>S,parseEndTime:()=>x,parseStartTime:()=>j,queryString:()=>T,randomString:()=>k,supportsWebKitPresentationMode:()=>L}),e.exports=(r=y,d(i({},"__esModule",{value:!0}),r));var h=p(n(6540)),f=p(n(6147)),m=p(n(4744));const b=e=>h.default.lazy((async()=>{const t=await e();return"function"==typeof t.default?t:t.default})),P=/[?](?:start|t)=([0-9hms]+)/,g=/[?]end=([0-9hms]+)/,v=/(\d+)(h|m|s)/g,w=/^\d+$/;function O(e,t){if(e instanceof Array)return;const n=e.match(t);if(n){const e=n[1];if(e.match(v))return function(e){let t=0,n=v.exec(e);for(;null!==n;){const[,r,a]=n;"h"===a&&(t+=60*parseInt(r,10)*60),"m"===a&&(t+=60*parseInt(r,10)),"s"===a&&(t+=parseInt(r,10)),n=v.exec(e)}return t}(e);if(w.test(e))return parseInt(e)}}function j(e){return O(e,P)}function x(e){return O(e,g)}function k(){return Math.random().toString(36).substr(2,5)}function T(e){return Object.keys(e).map((t=>`${t}=${e[t]}`)).join("&")}function _(e){return window[e]?window[e]:window.exports&&window.exports[e]?window.exports[e]:window.module&&window.module.exports&&window.module.exports[e]?window.module.exports[e]:null}const A={},C=function(e){0;return e}((function(e,t,n=null,r=(()=>!0),a=f.default){const o=_(t);return o&&r(o)?Promise.resolve(o):new Promise(((r,o)=>{if(A[e])return void A[e].push({resolve:r,reject:o});A[e]=[{resolve:r,reject:o}];const i=t=>{A[e].forEach((e=>e.resolve(t)))};if(n){const e=window[n];window[n]=function(){e&&e(),i(_(t))}}a(e,(r=>{r?(A[e].forEach((e=>e.reject(r))),A[e]=null):n||i(_(t))}))}))}));function M(e,t){return(0,m.default)(t.config,e.config)}function S(e,...t){const n=[].concat(...t),r={},a=Object.keys(e);for(const o of a)-1===n.indexOf(o)&&(r[o]=e[o]);return r}function I(e,...t){if(!this.player||!this.player[e]){let t=`ReactPlayer: ${this.constructor.displayName} player could not call %c${e}%c \u2013 `;return this.player?this.player[e]||(t+="The method was not available"):t+="The player was not available",a.warn(t,"font-weight: bold",""),null}return this.player[e](...t)}function E(e){return"undefined"!=typeof window&&void 0!==window.MediaStream&&e instanceof window.MediaStream}function R(e){return/^blob:/.test(e)}function L(e=document.createElement("video")){const t=!1===/iPhone|iPod/.test(navigator.userAgent);return e.webkitSupportsPresentationMode&&"function"==typeof e.webkitSetPresentationMode&&t}}}]);
\ No newline at end of file
diff --git a/assets/js/7736.62a43c3b.js b/assets/js/7736.62a43c3b.js
deleted file mode 100644
index 0ad0af52e9..0000000000
--- a/assets/js/7736.62a43c3b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7736],{7293:(e,t,n)=>{n.d(t,{A:()=>F});var r=n(6540),o=n(4848);function i(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=r.Children.toArray(e),n=t.find((e=>r.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),i=t.filter((e=>e!==n)),s=n?.props.children;return{mdxAdmonitionTitle:s,rest:i.length>0?(0,o.jsx)(o.Fragment,{children:i}):null}}(e.children),i=e.title??t;return{...e,...i&&{title:i},children:n}}var s=n(8215),a=n(1312),l=n(7559);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function u(e){let{type:t,className:n,children:r}=e;return(0,o.jsx)("div",{className:(0,s.A)(l.G.common.admonition,l.G.common.admonitionType(t),c.admonition,n),children:r})}function d(e){let{icon:t,title:n}=e;return(0,o.jsxs)("div",{className:c.admonitionHeading,children:[(0,o.jsx)("span",{className:c.admonitionIcon,children:t}),n]})}function h(e){let{children:t}=e;return t?(0,o.jsx)("div",{className:c.admonitionContent,children:t}):null}function f(e){const{type:t,icon:n,title:r,children:i,className:s}=e;return(0,o.jsxs)(u,{type:t,className:s,children:[r||n?(0,o.jsx)(d,{title:r,icon:n}):null,(0,o.jsx)(h,{children:i})]})}function m(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const p={icon:(0,o.jsx)(m,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function v(e){return(0,o.jsx)(f,{...p,...e,className:(0,s.A)("alert alert--secondary",e.className),children:e.children})}function g(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const b={icon:(0,o.jsx)(g,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function y(e){return(0,o.jsx)(f,{...b,...e,className:(0,s.A)("alert alert--success",e.className),children:e.children})}function x(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,o.jsx)(x,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function E(e){return(0,o.jsx)(f,{...w,...e,className:(0,s.A)("alert alert--info",e.className),children:e.children})}function j(e){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const C={icon:(0,o.jsx)(j,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function N(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const O={icon:(0,o.jsx)(N,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const k={icon:(0,o.jsx)(j,{}),title:(0,o.jsx)(a.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const S={...{note:v,tip:y,info:E,warning:function(e){return(0,o.jsx)(f,{...C,...e,className:(0,s.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,o.jsx)(f,{...O,...e,className:(0,s.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,o.jsx)(v,{title:"secondary",...e}),important:e=>(0,o.jsx)(E,{title:"important",...e}),success:e=>(0,o.jsx)(y,{title:"success",...e}),caution:function(e){return(0,o.jsx)(f,{...k,...e,className:(0,s.A)("alert alert--warning",e.className),children:e.children})}}};var _=n(6763);function F(e){const t=i(e),n=(r=t.type,S[r]||(_.warn(`No admonition component found for admonition type "${r}". Using Info as fallback.`),S.info));var r;return(0,o.jsx)(n,{...t})}},4754:(e,t,n)=>{n.d(t,{Cy:()=>St,Fk:()=>Nn,R0:()=>Mn,W_:()=>Lt,Wu:()=>En,hk:()=>_n});var r=n(6540),o=n(961),i=n(6763);function s(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o/^#([A-Fa-f0-9]{3,4}){1,2}$/.test(e),l=(e,t)=>e.match(new RegExp(`.{${t}}`,"g")),c=e=>parseInt(e.repeat(2/e.length),16);function u(e,t){return void 0!==e?e/255:"number"!=typeof t||t<0||t>1?1:t}function d(e,t){if(!e)return e;const{r:n,g:r,b:o,a:i}=function(e){if(!e)return;if(!a(e))throw new Error("Invalid color string, must be a valid hex color");const t=Math.floor((e.length-1)/3),n=l(e.slice(1),t),[r,o,i,s]=n.map(c);return{r:r,g:o,b:i,a:u(s,1)}}(e);return function(e){if(!e)return;const{r:t,g:n,b:r,a:o}=e,i=Math.round(255*o);return`#${t.toString(16).padStart(2,"0")}${n.toString(16).padStart(2,"0")}${r.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`}({r:n,g:r,b:o,a:i*t})}function h(e,t){return{prev:t(e.prev,"prev"),next:t(e.next,"next")}}function f(e,t){return{prev:void 0===(null==e?void 0:e.prev)?t:e.prev,next:void 0===(null==e?void 0:e.next)?t:e.next}}function m(e,t,n){return h(f(e,t),n)}function p(e,t){return t(e.prev)||t(e.next)}function v(e){return e.lines.map((e=>e.tokens.map((e=>e.content)).join(""))).join("\n")}function g(e){return e.split(/,(?![^\[]*\])/g)}function b(e){return e.reduce(((e,t)=>Object.assign(e,t)),{})}function y(e){const t=e.match(/(\d+)\[(.+)\]/);if(t){const[,e,n]=t,r=n.split(",").map(x),o=Number(e);return{[o]:r}}return b(j(e).map((e=>({[e]:!0}))))}function x(e){const[t,n]=e.split(":");if(!C(t))throw new O(t);const r=Number(t);if(r<1)throw new N;if(n){if(!C(n))throw new O(n);return{start:r,end:+n}}return{start:r,end:r}}function w(e){if(!e)throw new Error("Focus cannot be empty");try{return function(e){const t={};let n=-1,r=null==e?0:e.length;for(;++ne-1))]]}return j(e).map((e=>[e-1,!0]))}function j(e){const[t,n]=e.split(":");if(!C(t))throw new O(t);const r=Number(t);if(r<1)throw new N;if(n){if(!C(n))throw new O(n);const e=[];for(let t=r;t<=+n;t++)e.push(t);return e}return[r]}function C(e){e=e.toString();var t=Math.abs(e),n=parseInt(e,10);return!isNaN(t)&&n===t&&t.toString()===e}class N extends Error{constructor(){super("Invalid line or column number in focus string"),Object.setPrototypeOf(this,new.target.prototype)}}class O extends Error{constructor(e){super(`Invalid number "${e}" in focus string`),this.number=e,Object.setPrototypeOf(this,new.target.prototype)}}const k="undefined"!=typeof window?r.useLayoutEffect:r.useEffect;const S=200;function _(e,t,n,o,i,s){const[a,l]=r.useState(null),[c,u]=r.useState(0),d=function(){const[e,t]=r.useState(void 0);return r.useEffect((()=>{function e(){t(window.innerWidth)}return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[]),e}(),h=r.useRef(null),{prevLongestLine:f,nextLongestLine:m,element:p}=r.useMemo((()=>{const n=L(e.prev,t.prev),s=L(e.next,t.next),a=(e.prev||e.next).trimEnd().split(F),l=Math.max(a.length,10);if(i){const e="focus"===i?function(e,t){const[n,r]=function(e,t){if(e){const t=w(e),n=Object.keys(t).map((e=>parseInt(e,10)));return[Math.min(...n),Math.max(...n)]}return[0,t.length-1]}(e.prev,t);return r-n+1}(t,a):i;let r=a.length;for(;re;)a.pop(),r--;n&&!a.includes(n)&&(a[a.length-1]=n)}let c=!1;const u=r.createElement("code",{className:"ch-code-scroll-parent"},r.createElement("br",null),a.map(((e,t)=>{const i=c||e!==n?void 0:h;return c=c||null!=i,r.createElement("div",{ref:i,key:t},o?r.createElement("span",{className:"ch-code-line-number"},"_",l):void 0,r.createElement("div",{style:{display:"inline-block",marginLeft:16}},r.createElement("span",null,e)))})),r.createElement("br",null));return{prevLongestLine:n,nextLongestLine:s,element:u}}),[e]),v=[...s,d,f,m,n,c];return k((()=>{var e;if(h.current){const t=h.current,r=null==t?void 0:t.parentElement,o=r.parentElement,{width:i}=o.getBoundingClientRect();if(!i&&0===c){const e=new ResizeObserver((([t])=>{const{width:n}=t.contentRect;n&&(e.disconnect(),u(1))}));return e.observe(o),()=>e.disconnect()}const s=null==t?void 0:t.querySelector(":scope > div"),a=null==t?void 0:t.querySelector(":scope > span"),d=a?function(e){const t=getComputedStyle(e);return parseFloat(t.width)}(a):0,p=P(s),g=p/f.length||1,b=m.length*g,y=null!==(e=M(s))&&void 0!==e?e:20,x={containerWidth:P(o.parentElement),containerHeight:M(o.parentElement),contentWidth:P(r.parentElement),contentHeight:M(r.parentElement),lineWidths:[p||b||S,b||p||S],lineWidth:[Math.max(p||b||S,g*n),Math.max(b||p||S,g*n)],lineHeight:y,colWidth:g,lineNumberWidth:d,deps:v};l(x)}return()=>{}}),v),!a||function(e,t){for(let n=0;nparseInt(e,10)))}return[...t.keys()]}(t,n);let o="";return n.forEach(((e,t)=>{r.includes(t)&&e.length>o.length&&(o=e)})),o}function P(e){const t=getComputedStyle(e);return parseFloat(t.width)-parseFloat(t.paddingLeft)-parseFloat(t.paddingRight)}function M(e){if(!e)return null;const t=getComputedStyle(e);return parseFloat(t.height)-parseFloat(t.paddingTop)-parseFloat(t.paddingBottom)}function I(){}function H(e,t,n,r,o){for(var i=0,s=t.length,a=0,l=0;ie.length?n:e})),c.value=e.join(d)}else c.value=e.join(n.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var h=t[s-1];return s>1&&"string"==typeof h.value&&(h.added||h.removed)&&e.equals("",h.value)&&(t[s-2].value+=h.value,t.pop()),t}I.prototype={diff:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.callback;"function"==typeof n&&(r=n,n={}),this.options=n;var o=this;function i(e){return r?(setTimeout((function(){r(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e));var s=(t=this.removeEmpty(this.tokenize(t))).length,a=e.length,l=1,c=s+a,u=[{newPos:-1,components:[]}],d=this.extractCommon(u[0],t,e,0);if(u[0].newPos+1>=s&&d+1>=a)return i([{value:this.join(t),count:t.length}]);function h(){for(var n=-1*l;n<=l;n+=2){var r=void 0,c=u[n-1],d=u[n+1],h=(d?d.newPos:0)-n;c&&(u[n-1]=void 0);var f=c&&c.newPos+1=s&&h+1>=a)return i(H(o,r.components,t,e,o.useLongestToken));u[n]=r}else u[n]=void 0}var p;l++}if(r)!function e(){setTimeout((function(){if(l>c)return r();h()||e()}),0)}();else for(;l<=c;){var f=h();if(f)return f}},pushComponent:function(e,t,n){var r=e[e.length-1];r&&r.added===t&&r.removed===n?e[e.length-1]={count:r.count+1,added:t,removed:n}:e.push({count:1,added:t,removed:n})},extractCommon:function(e,t,n,r){for(var o=t.length,i=n.length,s=e.newPos,a=s-r,l=0;s+1{if(e.added)for(let t=0;tvoid 0===e.next?Object.assign(Object.assign({},t.prev[e.prev]),{lineNumber:{prev:e.prev+1},move:"exit",enterIndex:null,exitIndex:r++}):void 0===e.prev?Object.assign(Object.assign({},t.next[e.next]),{lineNumber:{next:e.next+1},move:"enter",enterIndex:n++,exitIndex:null}):Object.assign(Object.assign({},t.prev[e.prev]),{lineNumber:{prev:e.prev+1,next:e.next+1},move:"stay",enterIndex:null,exitIndex:null}))),enterCount:n,exitCount:r}}function D(e,t,n){const{lines:r}=e,o=s(e,["lines"]),i=h(t,((e,t)=>function(e,t){return b(e?g(e).map(y):[...t.keys()].map((e=>({[e+1]:!0}))))}(e,"prev"===t?r.filter((e=>"enter"!==e.move)):r.filter((e=>"exit"!==e.move))))),a=r.map((e=>{const{tokens:t}=e,r=s(e,["tokens"]),o={prev:!!e.lineNumber.prev&&i.prev[e.lineNumber.prev],next:!!e.lineNumber.next&&i.next[e.lineNumber.next]},a={prev:e.lineNumber.prev&&n.prev[e.lineNumber.prev]||[],next:e.lineNumber.next&&n.next[e.lineNumber.next]||[]};return Object.assign({focused:h(o,(e=>!!e)),groups:G(t,o,a)},r)})),l=h(i,(e=>Object.keys(e).map((e=>Number(e))))),c=h(l,(e=>Math.min(...e))),u=h(l,(e=>Math.max(...e)));return Object.assign({lines:a,firstFocusedLineNumber:c,lastFocusedLineNumber:u},o)}function G(e,t,n){const r=h(t,(e=>Array.isArray(e)?e:[])),o=h(n,(e=>e.map((({columnNumbers:e})=>e)))),i=function(e,t){const n=[...t.map((e=>e.start-1)),...t.map((e=>e.end))];let r=e;return n.forEach((e=>{const t=[];let n=0;r.forEach((r=>{const o=n,i=n+r.content.length;if(o{const r=V(s,t.prev),o=V(s,t.next),i=K(s,n.prev),c=K(s,n.next);a&&a.focused.prev===r&&a.focused.next===o&&a.annotation.prev===i&&a.annotation.next===c||(a={focused:{prev:r,next:o},tokens:[],annotation:{prev:i,next:c}},l.push(a)),null==a||a.tokens.push(e),s+=e.content.length})),l.map((e=>({focused:e.focused,tokens:e.tokens,element:Z(e)})))}function Z(e){return r.createElement(r.Fragment,null,e.tokens.map((({content:e,props:t},n)=>r.createElement("span",Object.assign({},t,{key:n+1}),e))))}function V(e,t){return Array.isArray(t)?t.some((({start:t,end:n})=>t-1<=e&&et.start-1<=e&&er)return i;const s=(t-n)/(r-n);return o+(e.ease||Q.linear)(s)*(i-o)}}function J([e,t],n,r){if(r<=1)return[e,t];const o=t-e,i=o/Math.pow(r,1/8),s=e+(o-i)/(r-1)*n;return[s,s+i]}U.tokenize=function(e){return e.slice()},U.join=U.removeEmpty=function(e){return e};const Q={linear:function(e){return e},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return e*(2-e)},easeInOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1}};function ee(e,t,n,r){const[o,i]=t;return e.map((e=>{const t=h(e.lineNumber,(e=>e&&e-1)),{enterIndex:s,exitIndex:a}=e,l="exit"===e.move?{fixed:!0,value:t.prev}:"enter"===e.move?{fixed:!0,value:t.next}:{fixed:!1,extremes:[t.prev,t.next],interval:[o,i],ease:Q.easeInOutCubic},c="exit"===e.move?{fixed:!1,extremes:[0,-1],ease:Q.easeInQuad,interval:J([0,o],a,r)}:"enter"===e.move?{fixed:!1,extremes:[1,0],ease:Q.easeOutQuad,interval:J([i,1],s,n)}:{fixed:!0,value:0};return Object.assign(Object.assign({},e),{tweenX:c,tweenY:l})}))}function te(e){const t=m(e,[],(e=>e.flatMap((e=>g(e.focus).map((t=>Object.assign(Object.assign({},e),{focus:t}))))))),n=m(t,[],(e=>e.filter(ne))),r=m(t,[],(e=>e.filter((e=>!ne(e)))));return{inlineAnnotations:h(n,(e=>function(e){const t={};return e.forEach((e=>{const n=y(e.focus),r=+Object.keys(n)[0],o=n[r],i=t[r]||[];i.push({columnNumbers:o[0],data:e.data,Component:e.Component}),t[r]=i})),t}(e))),multilineAnnotations:h(r,(e=>function(e){return e.map((e=>({lineNumbers:x(e.focus),data:e.data,Component:e.Component})))}(e)))}}function ne(e){return!!e.focus.match(/(\d+)\[(.+)\]/)}function re(e,t,n){const r=[...t];r.sort(((e,t)=>e.lineNumbers.start-t.lineNumbers.start));let o=0;const i=[];for(;ot.lineNumbers.start)throw"Code Hike can't handle two annotations for the same line";if(t&&n(s)===t.lineNumbers.start){const a={lines:[],annotation:t};for(;s&&(!n(s)||n(s)<=t.lineNumbers.end);)a.lines.push(s),s=e[++o];i.push(a),r.shift()}else if(t){const r={lines:[]};for(;s&&(!n(s)||n(s)0||r.length>0;){const e=o[0],t=i[0],c=e&&e.columnNumbers.start===a,u=t&&t.columnNumbers.start===l;if(al)if(u){const e=t.columnNumbers.end+1;s.push({next:{annotation:t,groups:ie(r,l,e)}}),l=e,i.shift()}else{const e=Math.min(a,(null==t?void 0:t.columnNumbers.start)||a);s.push({next:{groups:ie(r,l,e)}}),l=e}else if(a==l)if(c&&u&&e.columnNumbers.end===t.columnNumbers.end){const c=t.columnNumbers.end+1;s.push({prev:{annotation:e,groups:ie(n,a,c)},next:{annotation:t,groups:ie(r,l,c)}}),a=c,l=c,o.shift(),i.shift()}else if(c){const t=e.columnNumbers.end+1;s.push({prev:{annotation:e,groups:ie(n,a,t)}}),a=t,o.shift()}else if(u){const e=t.columnNumbers.end+1;s.push({next:{annotation:t,groups:ie(r,l,e)}}),l=e,i.shift()}else if(e||t){const o=Math.min((null==e?void 0:e.columnNumbers.start)||Number.MAX_VALUE,(null==t?void 0:t.columnNumbers.start)||Number.MAX_VALUE);s.push({prev:{groups:ie(n,a,o)},next:{groups:ie(r,l,o)}}),a=o,l=o}else s.push({prev:{groups:n},next:{groups:r}}),n=[],r=[]}return s}function ie(e,t,n){const r=[];let o=t;for(;o0;){const t=e.shift();r.push(t);o+=t.tokens.reduce(((e,t)=>e+t.content.length),0)}return r}function se(e){const{highlightedLines:t,focus:n}=e;return r.useMemo((()=>function({focus:e,annotations:t,highlightedLines:n,lang:r}){const o=function(e){return h(e,(e=>e.map((e=>e.tokens.map((e=>e.content)).join(""))).join("\n").trimEnd().concat("\n")))}(n),i=function(e,t){return X(e,t)}(o,n),{inlineAnnotations:a,multilineAnnotations:l}=function(e){return te(e)}(t),c=function(e,t,n){return D(e,t,n)}(i,f(e,null),a),u=function(e,t,n){var{lines:r}=e,o=s(e,["lines"]);const i=function(e,t){return e.map((e=>{var{groups:n}=e,r=s(e,["groups"]);const{lineNumber:o}=r,i={prev:o.prev&&t.prev[o.prev]||[],next:o.next&&t.next[o.next]||[]};return Object.assign(Object.assign({},r),{annotatedGroups:oe(n,i)})}))}(r,t),a=function(e,t){return{prev:re(e,t.prev,(e=>e.lineNumber.prev)),next:re(e,t.next,(e=>e.lineNumber.next))}}(i,n);return Object.assign(Object.assign({},o),{lineGroups:a,lineCount:{prev:r.filter((e=>null!=e.lineNumber.prev)).length,next:r.filter((e=>null!=e.lineNumber.next)).length}})}(c,a,l);return function(e,t,n){const r=(i=e.enterCount,s=e.exitCount,i<=0&&s<=0?[0,1]:i<=0&&s>=1?[.33,1]:i>=1&&s<=0?[0,.67]:[.25,.75]),o=h(e.lineGroups,(t=>t.map((t=>Object.assign(Object.assign({},t),{lines:ee(t.lines,r,e.enterCount,e.exitCount)})))));var i,s;return Object.assign(Object.assign({},e),{groups:o,verticalInterval:r,code:t,lang:n})}(u,o,r)}(e)),[t.prev,t.next,n.prev,n.next])}function ae({dimensions:e,codeStep:t,children:n,minZoom:o=0,maxZoom:i=1.2,center:a=!1,progress:l}){const{prev:c,next:u}=function(e){var{codeStep:t}=e,n=s(e,["codeStep"]);const{lineHeight:r,lineWidth:o}=n.dimensions,i={prev:{extremes:[t.firstFocusedLineNumber.prev-1,t.lastFocusedLineNumber.prev-1],originalContentHeight:t.lineCount.prev*r,lineWidth:o[0]},next:{extremes:[t.firstFocusedLineNumber.next-1,t.lastFocusedLineNumber.next-1],originalContentHeight:t.lineCount.next*r,lineWidth:o[1]}};return h(i,(({extremes:e,originalContentHeight:t,lineWidth:r})=>function({dimensions:e,lineWidth:t,minZoom:n,maxZoom:r,extremes:o,originalContentHeight:i,horizontalCenter:s}){const{lineHeight:a}=e,l=null==e?void 0:e.contentHeight,c=null==e?void 0:e.contentWidth,u=(o[1]-o[0]+3)*a,d=(null==e?void 0:e.lineNumberWidth)||16,h=16,f=Math.max(Math.min((c-d-h)/t,l/u,r),n),m=i*f,p=(o[0]-1)*a*f,v=(o[1]+2)*a*f,g=(v+p)/2,b=v-p,y=l>m?(l-m)/2:(w=l/2-g,E=Math.max(l-m,-p),j=0,w<=E?E:w>=j?j:w),x=s?Math.max(c/2-t*f/2,0):0;var w,E,j;return{zoom:f,dx:x,dy:y,focusHeight:b,focusWidth:t*f}}(Object.assign({extremes:e,originalContentHeight:t,lineWidth:r},n))))}({codeStep:t,dimensions:e,minZoom:o,maxZoom:i,horizontalCenter:a}),d=ue(c.zoom,u.zoom,l),f=ue(c.dx,u.dx,l),m=ue(c.dy,u.dy,l,t.verticalInterval),p=ue(c.focusHeight,u.focusHeight,l),v=ue(c.focusWidth,u.focusWidth,l),g=((null==e?void 0:e.lineNumberWidth)||0)*d||16,b=Math.max(v+g,e.contentWidth),y=g/d;return r.createElement(le,{width:e.containerWidth,height:e.containerHeight,lang:t.lang},r.createElement(ce,{dx:f,dy:m,scale:d,height:Math.max(p,e.contentHeight),width:b},n(v,y)))}function le({width:e,height:t,children:n,lang:o}){return r.createElement("code",{style:{width:e,height:t,position:"relative",overflow:"auto"},className:"ch-code-scroll-parent",children:n,"data-ch-lang":o})}function ce({dx:e,dy:t,scale:n,height:o,width:i,children:s}){return r.createElement("div",{style:{position:"absolute",top:0,left:0,transformOrigin:"top left",width:i,height:o,overflow:"hidden"},className:"ch-code-scroll-content"},r.createElement("div",{style:{position:"absolute",top:0,left:0,transform:`translateX(${e}px) translateY(${t}px) scale(${n})`,transformOrigin:"left top",width:i/n,height:(o-2*t)/n},children:s}))}function ue(e,t,n,r=[0,1]){return Y({fixed:!1,interval:r,extremes:[e,t],ease:Q.easeInOutCubic},n)}function de(e){return r.createElement(ae,Object.assign({},e),((t,n)=>r.createElement(he,{codeStep:e.codeStep,focusWidth:t,lineHeight:e.dimensions.lineHeight,progress:e.progress,startX:n,lineNumberWidth:e.dimensions.lineNumberWidth})))}function he({codeStep:e,progress:t,focusWidth:n,lineHeight:o,startX:i,lineNumberWidth:s}){const a=t<.5?e.groups.prev:e.groups.next;return r.createElement(r.Fragment,null,a.map(((e,a)=>{if(!e.annotation)return r.createElement(fe,{lines:e.lines,t:t,focusWidth:n,lineHeight:o,startX:i,key:a,lineNumberWidth:s});const l=Y(e.lines[0].tweenY,t),c=e.annotation.lineNumbers.end-e.annotation.lineNumbers.start+1,u=e.annotation.Component;return r.createElement(u,{style:{position:"absolute",height:c*o,width:"100%",transform:`translateY(${l*o}px)`},key:a,data:e.annotation.data,isInline:!1,lines:e.lines},r.createElement(fe,{lines:e.lines,t:t,focusWidth:n,lineHeight:o,startY:l,startX:i,lineNumberWidth:s}))})))}function fe({lines:e,focusWidth:t,lineHeight:n,t:o,startX:i,startY:s=0,lineNumberWidth:a}){return r.createElement(r.Fragment,null,e.map(((e,l)=>{const{tweenX:c,tweenY:u,focused:d}=e,h=Y(c,o),f=Y(u,o),m=be(d,o,h);return r.createElement(r.Fragment,{key:l},a?r.createElement("span",{className:"ch-code-line-number",style:{position:"absolute",top:0,left:0,transform:`translate(${h*t}px, ${(f-s)*n}px)`,width:a,opacity:m}},o<.5?e.lineNumber.prev:e.lineNumber.next):void 0,r.createElement(ve,{dx:i+h*t,dy:(f-s)*n,width:t,opacity:m},r.createElement(me,{line:e,progress:o,dx:h})))})))}function me({line:e,progress:t,dx:n}){return r.createElement("div",{style:{display:"inline-block",width:"100%"}},e.annotatedGroups.map(((e,o)=>r.createElement(pe,{annotatedGroup:e,progress:t,dx:n,key:o}))),r.createElement("br",null))}function pe({annotatedGroup:e,progress:t,dx:n}){var o,i;const s=t<.5?e.prev:e.next,a=(null==s?void 0:s.groups)||[],l=null===(o=null==s?void 0:s.annotation)||void 0===o?void 0:o.Component,c=a.map(((e,o)=>{const i=be(e.focused,t,n);return r.createElement("span",{style:{opacity:i},key:o+1},e.element)}));return l?r.createElement(l,{children:c,data:null===(i=null==s?void 0:s.annotation)||void 0===i?void 0:i.data,isInline:!0}):r.createElement(r.Fragment,null,c)}function ve({children:e,dx:t,dy:n,opacity:o,width:i}){return r.createElement("div",{style:{position:"absolute",top:0,left:0,transform:`translate(${t}px, ${n}px)`,width:i,display:o<=0?"none":void 0}},e)}const ge=.33;function be(e,t,n){return Y({fixed:!1,extremes:[e.prev?.99:ge,e.next?.99:ge],interval:[0,1]},t)-1*Math.abs(n)}function ye({content:e,style:t,className:n}){const[o,i]=r.useState(!1);return r.createElement("button",{type:"button",title:"Copy code",className:n,style:t,onClick:()=>{!function(e){if(!navigator.clipboard)return void function(e){var t=document.createElement("textarea");t.value=e,t.style.top="0",t.style.left="0",t.style.position="fixed",document.body.appendChild(t),t.focus(),t.select();try{document.execCommand("copy")}catch(n){}document.body.removeChild(t)}(e);navigator.clipboard.writeText(e)}(e),i(!0),setTimeout((()=>{i(!1)}),1200)}},r.createElement("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},o?r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"}):r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.6px",d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})))}const xe=10;function we(e){var{tween:t,progress:n,config:o}=e,i=s(e,["tween","progress","config"]);const a=function({tween:e}){return se({highlightedLines:h(e,(e=>e.code.lines)),focus:h(e,(e=>e.focus)),annotations:h(e,(e=>e.annotations)),lang:p(e,(e=>{var t;return null===(t=null==e?void 0:e.code)||void 0===t?void 0:t.lang}))})}({tween:t}),{element:l,dimensions:c}=_(a.code,h(t,(e=>e.focus)),o.minColumns||xe,o.lineNumbers||!1,o.rows,[o.parentHeight]);return!c||o.debug?r.createElement(Ee,{element:l,htmlProps:i,debug:o.debug}):r.createElement(je,{dimensions:c,stepInfo:a,config:o,progress:n,htmlProps:i})}function Ee({element:e,htmlProps:t,debug:n}){return r.createElement(Ce,{htmlProps:t,measured:!1},e)}function je({config:{minZoom:e=1,maxZoom:t=1,horizontalCenter:n=!1},dimensions:o,stepInfo:i,progress:s,htmlProps:a,config:l}){var c;return r.createElement(Ce,{htmlProps:a,measured:!0},r.createElement(de,{codeStep:i,progress:s,dimensions:o,minZoom:e,maxZoom:t,center:n}),l.showCopyButton?r.createElement(ye,{className:"ch-code-button",content:null===(c=null==i?void 0:i.code)||void 0===c?void 0:c.prev}):void 0)}function Ce({htmlProps:e,children:t,measured:n}){return r.createElement("div",Object.assign({},e,{className:`ch-code-wrapper ${(null==e?void 0:e.className)||""}`,"data-ch-measured":n,children:t}))}function Ne(){return"undefined"!=typeof window?performance.now():0}function Oe(e,t){var n=t.stiffness,r=t.damping,o=t.mass,i=t.decimals,s=t.teleport;return{X:e,k:null!=n?n:170,c:null!=r?r:26,m:null!=o?o:1,teleport:null!=s&&s,decimals:null!=i?i:2}}function ke(e,t){var n=t.from,r=t.initialSpeed;return{x0:null!=n?n:e,v0:null!=r?r:0,t0:Ne(),raf:null}}var Se=Math.sqrt,_e=Math.exp,Fe=Math.sin,Le=Math.cos;function Pe(e){var t=e.x0,n=e.v0,r=e.t0,o=e.t,i=e.k,s=e.c,a=e.m,l=e.X,c=t-l,u=(o-r)/1e3,d=s*s-4*i*a;if(d>0){var h=(-s+Se(d))/(2*a),f=(-s-Se(d))/(2*a),m=(c*h-n)/(h-f),p=(n-c*f)/(h-f);return{x:l+m*_e(f*u)+p*_e(h*u),v:m*f*_e(f*u)+p*h*_e(h*u)}}if(d<0){var v=-s/(2*a),g=Se(-d)/(2*a),b=c,y=(n-v*c)/g;return{x:l+_e(v*u)*(b*Le(g*u)+y*Fe(g*u)),v:_e(v*u)*((y*g+b*v)*Le(g*u)-(b*g-y*v)*Fe(g*u))}}var x=-s/(2*a),w=c,E=n-x*c;return{x:l+(w+E*u)*_e(x*u),v:(E+w*x+E*x*u)*_e(x*u)}}var Me=[],Ie=null;function He(e){var t=Me.push(e);return 1===t&&(Ie=requestAnimationFrame(Ae)),[Ie,t-1]}function $e(e){var t=e[0],n=e[1];t===Ie&&delete Me[n]}function Ae(){var e=Ne(),t=Me;Me=[],(0,o.unstable_batchedUpdates)((function(){return t.forEach((function(t){return t&&t(e)}))}))}var ze="undefined"!=typeof window?r.useLayoutEffect:r.useEffect;function Te(e,t){void 0===t&&(t={});var n=r.useState()[1],o=Oe(e,t),i=function(e,t){var n=r.useRef(null);return null==n.current&&(n.current={config:Oe(e,t),state:ke(e,t)}),n.current}(e,t),s=i.state,a=i.config,l=Ne(),c=s.x0,u=s.v0,d=s.t0,h=a.k,f=a.c,m=a.m,p=a.X,v=o.teleport?{x:p,v:0}:Pe({x0:c,v0:u,t0:d,t:l,k:h,c:f,m:m,X:p}),g=v.x,b=v.v,y=function(e,t,n,r){var o=r.decimals,i=r.X,s=r.k,a=r.c,l=r.m;if(Be(e,o)!==Be(i,o))return!0;var c=n+.016,u=Pe({x0:e,v0:t,t0:n,t:c,k:s,c:a,m:l,X:i});return Be(u.x,o)!==Be(i,o)}(g,b,l,o);return ze((function(){Object.assign(a,o)}),[o.X,o.k,o.c,o.m,o.teleport]),ze((function(){s.x0=g,s.v0=b,s.t0=l}),[g,b,l]),ze((function(){y&&null==s.raf?s.raf=He((function e(t){var r=s.x0,o=s.v0,i=s.t0,l=a.k,c=a.c,u=a.m,d=a.X,h=a.decimals;Be(Pe({x0:r,v0:o,t0:i,t:t,k:l,c:c,m:u,X:d}).x,h)!==Be(r,h)?(s.raf=null,n(t)):s.raf=He(e)})):y||null==s.raf||($e(s.raf),s.raf=null)})),ze((function(){return function(){null!=s.raf&&$e(s.raf)}}),[]),[Be(g,o.decimals),y]}function Be(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}const We={stiffness:120,damping:24,mass:.2,decimals:3};function Re(e){var{step:t,config:n}=e,o=s(e,["step","config"]);const{tween:i,t:a}=function(e,t=We){const[{target:n,steps:o,index:i},s]=r.useState({target:2,steps:[e,e,e],index:0});r.useEffect((()=>{o[o.length-1]!=e&&s((t=>function(e,t,n){const{steps:r,target:o,index:i}=e,s=r.slice(),a=n-i;return a<1?(s[2]=t,Object.assign(Object.assign({},e),{steps:s})):(s[0]=r[1],s[1]=r[2],s[2]=t,Object.assign(Object.assign({},e),{steps:s,target:o+1,index:i+1}))}(t,e,a)))}),[e]);const[a]=Te(n,t),l=a-i;return l<=1?{tween:{prev:o[0],next:o[1]},t:l}:{tween:{prev:o[1],next:o[2]},t:l-1}}(t,n.spring);return r.createElement(we,Object.assign({tween:i,progress:a,config:n},o))}const qe=r.forwardRef((function(e,t){var{title:n,children:o,titleBar:i,zoom:a=1,overflow:l}=e,c=s(e,["title","children","titleBar","zoom","overflow"]);const u=i||r.createElement(Ue,{title:n}),d={"--ch-frame-zoom":a,overflow:l};return r.createElement("div",Object.assign({},c,{ref:t}),r.createElement("div",{className:"ch-frame"},r.createElement("div",{className:"ch-frame-title-bar"},u),r.createElement("div",{className:"ch-frame-content"},r.createElement("div",{className:"ch-frame-zoom",style:d},o))))}));function Ue({title:e}){return r.createElement(r.Fragment,null,r.createElement("div",{className:"ch-frame-left-bar"},r.createElement(Xe,null)),r.createElement("div",{className:"ch-frame-middle-bar"},e),r.createElement("div",{className:"ch-frame-right-bar"}))}function Xe(){return r.createElement("div",{className:"ch-frame-buttons"},r.createElement("div",{className:"ch-frame-button ch-frame-button-left"}),r.createElement("div",{className:"ch-frame-button-space"}),r.createElement("div",{className:"ch-frame-button ch-frame-button-middle"}),r.createElement("div",{className:"ch-frame-button-space"}),r.createElement("div",{className:"ch-frame-button ch-frame-button-right"}))}r.forwardRef((function(e,t){var{title:n,children:o,titleBar:i,overflow:a}=e,l=s(e,["title","children","titleBar","overflow"]);const c=i||r.createElement(Ue,{title:n});return r.createElement("div",Object.assign({},l,{ref:t}),r.createElement("div",{className:"ch-simple-frame"},r.createElement("div",{className:"ch-frame-title-bar"},c),o))}));const De=r.forwardRef((function(e,t){var n,{northPanel:o,southPanel:i,terminalPanel:a,style:l,height:c,northButton:u,southButton:d,className:h,onTabClick:f}=e,m=s(e,["northPanel","southPanel","terminalPanel","style","height","northButton","southButton","className","onTabClick"]);return r.createElement("div",Object.assign({ref:t},m,{className:"ch-editor-frame",style:l}),r.createElement("div",{className:"ch-frame-title-bar"},r.createElement(Ge,{tabs:o.tabs,showFrameButtons:!0,button:u,panel:"north",onTabClick:f})),r.createElement("div",{"data-ch-panel":"north",style:o.style,children:o.children}),i&&r.createElement(r.Fragment,null,r.createElement("div",{className:"ch-frame-title-bar",style:{transform:null===(n=i.style)||void 0===n?void 0:n.transform}},r.createElement(Ge,{tabs:i.tabs,showFrameButtons:!1,button:d,topBorder:!0,panel:"south",onTabClick:f})),r.createElement("div",{"data-ch-panel":"south",children:i.children,style:i.style})))}));function Ge({tabs:e,button:t,showFrameButtons:n,topBorder:o,panel:i,onTabClick:s}){return r.createElement(r.Fragment,null,o&&r.createElement("div",{className:"ch-editor-group-border"}),n?r.createElement(Xe,null):r.createElement("div",null),e.map((({title:e,active:t,style:n})=>r.createElement("div",{key:e,title:e,"data-ch-tab":i,"data-active":t,className:"ch-editor-tab",style:n,onClick:s&&(()=>s(e))},r.createElement(Ze,{title:e})))),r.createElement("div",{style:{flex:1,minWidth:"0.8em"}}),t)}function Ze({title:e}){if(!e)return r.createElement("div",null);const t=e.lastIndexOf("/")+1,n=e.substring(t),o=e.substring(0,t);return r.createElement("div",null,r.createElement("span",{style:{opacity:.5}},o),n)}const Ve=r.createElement("span",{className:"ch-terminal-prompt"},"$");function Ke({text:e,progress:t=1,style:n}){const o=function(e,t){if(!e)return[];const n=Math.round(e.length*t),{commands:r}=function(e){const[,...t]=e.split(/^\$\s*/gm),n=t.map((e=>{const[t,...n]=e.split(/\r?\n/);return{run:t,output:n.length>0?n.join("\n"):null}})),r=n[n.length-1],o=n.length>0&&null!=r.output;return{title:o?r.run.split(/(\s+)/)[0]:"bash",isRunning:o,commands:n}}(e.slice(0,n));return r}(e,t);return r.createElement("pre",{style:n,className:"ch-terminal-content"},o.map((({run:e,output:t},n)=>r.createElement(r.Fragment,{key:n},r.createElement("div",null,Ve," ",r.createElement("span",null,e)),t&&r.createElement("div",{className:"ch-terminal-output"},t)))))}function Ye({prev:e="",prevKey:t,next:n="",nextKey:o,progress:i}){return r.createElement("div",{className:"ch-terminal"},r.createElement("div",{style:{position:"relative",transform:`translateY(-${100*i}%)`}},r.createElement(Ke,{text:e,progress:1,key:t}),r.createElement(Ke,{style:{position:"absolute"},text:n,progress:i,key:o})))}function Je({steps:e,progress:t}){const n=e.map((e=>e.text)),o=t%1,i=(s=Math.floor(t),a=0,l=e.length-1,Math.min(Math.max(s,a),l));var s,a,l;const c=i+1;return r.createElement(Ye,{prev:n[i],prevKey:i,next:n[c]||"",nextKey:c,progress:o})}function Qe({prev:e,next:t,t:n,backward:o}){const i=function({prev:e,next:t,t:n,backward:r}){return e||t?!e&&t?et*Math.min(4*n,1):e&&!t?et*Math.max(1-4*n,0):et:0}({prev:e,next:t,t:n,backward:o});return i?r.createElement("div",{className:"ch-editor-terminal",style:{height:i}},r.createElement("div",{className:"ch-editor-terminal-tab"},r.createElement("span",null,"Terminal")),r.createElement("div",{className:"ch-editor-terminal-content"},r.createElement(Je,{steps:[{text:e||""},{text:t||""}],progress:n}),")")):null}const et=150;function tt(e){return Array.isArray(e.rows)?Object.assign(Object.assign({},e),{rows:e.rows[0]}):e}function nt(e){return Array.isArray(e.rows)?Object.assign(Object.assign({},e),{rows:e.rows[1]}):e}function rt(e,t,n,o,i,s){const{prevSnapshot:a,nextSnapshot:l}=function(e,t,n){const[{prevSnapshot:o,nextSnapshot:i},s]=r.useState({prevSnapshot:null,nextSnapshot:null});return dt((()=>{(o||i)&&s({prevSnapshot:null,nextSnapshot:null})}),[t,n]),dt((()=>{if(o){if(!i){const t=e.current;s((e=>Object.assign(Object.assign({},e),{nextSnapshot:Object.assign(Object.assign({},ht(t,n)),ft(t,n))})))}}else{const n=e.current;s((e=>Object.assign(Object.assign({},e),{prevSnapshot:Object.assign(Object.assign({},ht(n,t)),ft(n,t))})))}})),{prevSnapshot:o,nextSnapshot:i}}(e,t,n);if(!a)return function(e,t,n){const o=e.northPanel,i=e.southPanel,{prevNorthFile:s,prevSouthFile:a,nextNorthFile:l,nextSouthFile:c}=at(e,t,!0);return{northContent:st(s),northPanel:{tabs:o.tabs.map((e=>({title:e,active:e===o.active,style:{}}))),style:{flexGrow:1,overflow:"hidden"},children:r.createElement(it,{codeConfig:tt(n),prevFile:s,nextFile:s,t:0,parentHeight:"0"})},southContent:st(a),southPanel:i&&{tabs:i.tabs.map((e=>({title:e,active:e===i.active,style:{}}))),style:{flexGrow:1,overflow:"hidden"},children:r.createElement(it,{codeConfig:nt(n),prevFile:a,nextFile:a,t:0,parentHeight:"0"})}}}(t,n,s);if(!l)return ot(t,n,s);if(1===o)return ot(t,n,s);const c=t.southPanel||n.southPanel,{prevNorthFile:u,prevSouthFile:d,nextNorthFile:h,nextSouthFile:f}=at(t,n,0==o||i),{northStyle:m,southStyle:p}=function(e,t,n){if(null===e.southHeight&&null===t.southHeight)return{northStyle:{minHeight:e.northHeight}};if(null!==e.southHeight&&null===t.southHeight&&t.northKey!==e.southKey)return{northStyle:{minHeight:lt(e.northHeight,t.northHeight,n)},southStyle:{minHeight:e.southHeight}};if(null!==e.southHeight&&null===t.southHeight&&e.southKey===t.northKey)return{northStyle:{minHeight:e.northHeight},southStyle:{position:"relative",minHeight:lt(e.southHeight,t.northHeight,n),transform:`translateY(${lt(0,-(e.northHeight+e.titleBarHeight),n)}px)`}};if(null===e.southHeight&&null!==t.southHeight&&e.northKey!==t.southKey)return{northStyle:{minHeight:lt(e.northHeight,t.northHeight,n)},southStyle:{position:"relative",minHeight:t.southHeight}};if(null===e.southHeight&&null!==t.southHeight&&e.northKey===t.southKey)return{northStyle:{minHeight:t.northHeight},southStyle:{position:"relative",minHeight:lt(e.northHeight,t.southHeight,n),transform:`translateY(${lt(-(t.northHeight+t.titleBarHeight),0,n)}px)`}};return{northStyle:{minHeight:lt(e.northHeight,t.northHeight,n)},southStyle:{minHeight:lt(e.southHeight,t.southHeight,n)}}}(a,l,o),{northTabs:v,southTabs:g}=function(e,t,n,r,o){if(!e.southTabs&&ut(r,e.northTabs))return{northTabs:ct(t.northTabs,t.southTabs,e.southTabs,e.northTabs,n,o),southTabs:ct(t.southTabs,t.northTabs,e.northTabs,e.southTabs,r,o)};if(!t.southTabs&&ut(r,t.northTabs))return{northTabs:ct(t.southTabs,t.northTabs,e.northTabs,e.southTabs,n,o),southTabs:ct(t.northTabs,t.southTabs,e.southTabs,e.northTabs,r,o)};return{northTabs:ct(t.northTabs,t.southTabs,e.northTabs,e.southTabs,n,o),southTabs:ct(t.southTabs,t.northTabs,e.southTabs,e.northTabs,r,o)}}(a,l,u.name,null==d?void 0:d.name,o);return{northContent:st(h),northPanel:{tabs:v,style:m,children:r.createElement(it,{codeConfig:tt(s),prevFile:u,nextFile:h,t:o,parentHeight:m.height||m.minHeight})},southContent:st(f),southPanel:c&&{tabs:g,style:p,children:r.createElement(it,{codeConfig:nt(s),prevFile:d,nextFile:f,t:o,parentHeight:(null==p?void 0:p.height)||(null==p?void 0:p.minHeight)})}}}function ot(e,t,n){var o;const i=t.northPanel,s=t.southPanel;let{prevNorthFile:a,prevSouthFile:l,nextNorthFile:c,nextSouthFile:u}=at(e,t,!1);return!s&&i.active===(null===(o=null==e?void 0:e.southPanel)||void 0===o?void 0:o.active)&&(c=u),{northContent:st(c),northPanel:{tabs:i.tabs.map((e=>({title:e,active:e===i.active,style:{}}))),style:{flexGrow:1,overflow:"hidden"},children:r.createElement(it,{codeConfig:tt(n),prevFile:c,nextFile:c,t:1,parentHeight:"1"})},southContent:st(u),southPanel:s&&{tabs:s.tabs.map((e=>({title:e,active:e===s.active,style:{}}))),style:{flexGrow:1,overflow:"hidden"},children:r.createElement(it,{codeConfig:nt(n),prevFile:u,nextFile:u,t:1,parentHeight:"1"})}}}function it({prevFile:e,nextFile:t,t:n,codeConfig:o,parentHeight:i}){var s;const a=Object.assign(Object.assign({},null==o?void 0:o.htmlProps),{style:Object.assign({height:"100%"},null===(s=null==o?void 0:o.htmlProps)||void 0===s?void 0:s.style)});return r.createElement(we,Object.assign({progress:n,tween:{prev:e,next:t},config:Object.assign(Object.assign({},o),{parentHeight:i})},a))}function st(e){return e?v(e.code):""}function at(e,t,n){var r,o;const i=e.northPanel.active,s=t.northPanel.active,a=null===(r=e.southPanel)||void 0===r?void 0:r.active,l=null===(o=t.southPanel)||void 0===o?void 0:o.active,c=e.files.find((e=>e.name===i)),u=t.files.find((e=>e.name===s)),d=a?e.files.find((e=>e.name===a)):null,h=l?t.files.find((e=>e.name===l)):null;if(!a&&i===l)return{prevNorthFile:u,nextNorthFile:u,prevSouthFile:c,nextSouthFile:h};if(!l&&s===a)return{prevNorthFile:c,nextNorthFile:c,prevSouthFile:d,nextSouthFile:u};return{prevNorthFile:i===s||n?c:u,nextNorthFile:i===s?u:n?c:u,prevSouthFile:a===l?d:n?d||h:h||d,nextSouthFile:a===l?h:n?d||h:h||d}}function lt(e,t,n){return e+(t-e)*n}function ct(e,t,n,r,o,i){const s=e?Object.keys(e).filter((e=>ut(e,n)||!n)).map((t=>{const r=n&&n[t],s=e[t],a=r?r.left+(s.left-r.left)*i:s.left,l=r?r.width+(s.width-r.width)*i:s.width;return{active:t===o,title:t,style:{position:"absolute",transform:`translateX(${a}px)`,width:l}}})):[],a=e?Object.keys(e).filter((e=>n&&!ut(e,n))).map((t=>{const n=e[t];return{active:t===o,title:t,style:{position:"absolute",transform:`translateX(${n.left}px)`,opacity:i,width:n.width}}})):[];!e||Object.keys(e).filter((e=>ut(e,r))).map((t=>{const n=r[t],i=e[t].left-n.left;return{active:t===o,title:t,style:{position:"absolute",transform:`translateX(${i}px)`}}}));return[...a,...s,...n?Object.keys(n).filter((t=>!ut(t,e))).map((e=>{const t=n[e];return{active:e===o,title:e,style:{position:"absolute",opacity:1-i,transform:`translateX(${t.left}px)`,width:t.width}}})):[]]}function ut(e,t){return t&&e&&e in t}const dt="undefined"!=typeof window?r.useLayoutEffect:r.useEffect;function ht(e,t){var n;const r=e.querySelector("[data-ch-panel='north']"),o=e.querySelector("[data-ch-panel='south']");return{titleBarHeight:e.querySelector(".ch-frame-title-bar").getBoundingClientRect().height,northHeight:r.getBoundingClientRect().height,northKey:t.northPanel.active,southHeight:(null==o?void 0:o.getBoundingClientRect().height)||null,southKey:null===(n=t.southPanel)||void 0===n?void 0:n.active}}function ft(e,t){var n;const r=Array.from(e.querySelectorAll("[data-ch-tab='north']")),o=Array.from(e.querySelectorAll("[data-ch-tab='south']"));return{northTabs:mt(r,t.northPanel.active),southTabs:mt(o,null===(n=t.southPanel)||void 0===n?void 0:n.active)}}function mt(e,t){if(!e[0])return null;const n=e[0].parentElement.getBoundingClientRect().left,r={};return e.forEach((e=>{const o=e.getAttribute("title"),i=e.getBoundingClientRect();r[o]={left:i.left-n,width:i.width,active:o===t}})),r}function pt({files:e,startingFileName:t}){const[n,o]=r.useState((()=>e.find((e=>e.name===t))));return r.createElement("div",{className:"ch-code-browser"},r.createElement(vt,{files:e,activeFile:n,setActiveFile:o}),r.createElement(yt,{file:n}))}function vt({files:e,activeFile:t,setActiveFile:n}){const o=r.useMemo((()=>function(e){let t=[];for(const n of e){const e=n.name.split("/");let r=t;for(let t=0;te.name===o));if(-1===s){const e={name:o,children:[],codeFile:void 0};i&&(e.codeFile=n),r.push(e),r=e.children}else r=r[s].children}}return t=xt(t),t}(e)),[e]);return r.createElement("div",{className:"ch-code-browser-sidebar"},r.createElement(gt,{tree:o,activeFile:t,setActiveFile:n}))}function gt({tree:e,activeFile:t,setActiveFile:n,level:o=0}){return r.createElement(r.Fragment,null,e.map((e=>r.createElement(bt,{key:e.name,node:e,activeFile:t,setActiveFile:n,level:o}))))}function bt({node:e,activeFile:t,setActiveFile:n,level:o}){const i=e.children&&e.children.length>0,s=e.codeFile===t;return i?r.createElement("div",null,r.createElement("div",{className:"ch-code-browser-sidebar-folder"},r.createElement("div",{style:{paddingLeft:1.5*o+"ch"}},e.name)),r.createElement(gt,{tree:e.children,activeFile:t,setActiveFile:n,level:o+1})):r.createElement("div",null,r.createElement("div",{className:"ch-code-browser-sidebar-file","data-selected":s,onClick:()=>n(e.codeFile)},r.createElement("div",{style:{paddingLeft:1.5*o+"ch"}},e.name)))}function yt({file:e}){return r.createElement("div",{className:"ch-code-browser-content"},r.createElement(ye,{className:"ch-code-browser-button",content:v(e.code)}),e.code.lines.map(((e,t)=>r.createElement("div",{key:t},e.tokens.map(((e,t)=>r.createElement("span",Object.assign({key:t},e.props),e.content))),r.createElement("br",null)))))}function xt(e){for(const t of e)t.children=xt(t.children);return e.sort(((e,t)=>{const n=e.children&&e.children.length>0,r=t.children&&t.children.length>0;return n&&r||!n&&!r?e.name.localeCompare(t.name):n?-1:1}))}function wt({style:e,step:t,className:n}){const[o,i]=r.useState(!1),[s,a]=r.useState(!0),l=r.useRef(null),c=t.files;return r.useEffect((()=>{l.current&&!l.current.showModal&&a(!1)}),[]),s?r.createElement(r.Fragment,null,r.createElement(Et,{className:n,style:e,onClick:()=>{l.current.showModal(),document.body.classList.add("ch-no-scroll"),i(!0)}}),r.createElement("dialog",{ref:l,className:"ch-expand-dialog",onClose:()=>{i(!1)},onClick:e=>{e.currentTarget===e.target&&(l.current.close(),document.body.classList.remove("ch-no-scroll"))}},r.createElement(jt,{onClick:()=>{l.current.close(),document.body.classList.remove("ch-no-scroll")}}),o?r.createElement("div",{className:"ch-expand-dialog-content"},r.createElement(pt,{files:c,startingFileName:t.northPanel.active})):void 0)):null}function Et({onClick:e,style:t,className:n}){return r.createElement("button",{type:"button",title:"Expand",style:t,onClick:e,className:n},r.createElement("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4"})))}function jt({onClick:e}){return r.createElement("button",{onClick:e,className:"ch-expand-close",type:"button",title:"Close"},r.createElement("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))}const Ct={files:[{code:{lines:[],lang:"js"},focus:"",name:""}],northPanel:{active:"",tabs:[""],heightRatio:1}};function Nt(e){var{prev:t=Ct,next:n,t:o,backward:i,codeConfig:a,frameProps:l={}}=e,c=s(e,["prev","next","t","backward","codeConfig","frameProps"]);const u=r.createRef(),{showCopyButton:d,showExpandButton:h}=a,f=s(a,["showCopyButton","showExpandButton"]),{northPanel:m,southPanel:p,northContent:v,southContent:g}=rt(u,t,n||t,o,i,f),[b,y]=r.useState(void 0);k((()=>{var e;const t=null===(e=u.current)||void 0===e?void 0:e.getBoundingClientRect().height;y(t)}),[]);const x=Object.assign(Object.assign(Object.assign({},l),c),{style:Object.assign(Object.assign({},null==l?void 0:l.style),null==c?void 0:c.style)});b&&(x.style.height=b,x.style.maxHeight=b);const w=r.createElement(r.Fragment,null,d?r.createElement(ye,{className:"ch-editor-button",content:v}):void 0,h?r.createElement(wt,{className:"ch-editor-button",step:n||t}):void 0),E=d?r.createElement(ye,{className:"ch-editor-button",content:g}):void 0,j=r.createElement(Qe,{prev:t.terminal,next:(n||t).terminal,t:o,backward:i});return r.createElement(De,Object.assign({ref:u},x,{northPanel:m,southPanel:p,terminalPanel:j,northButton:w,southButton:E}))}const Ot={stiffness:120,damping:24,mass:.2,decimals:3};function kt(e){var{northPanel:t,southPanel:n,files:o,terminal:i,springConfig:a}=e,l=s(e,["northPanel","southPanel","files","terminal","springConfig"]);const c=r.useMemo((()=>({northPanel:t,southPanel:n,files:o,terminal:i})),[t,n,o,i]),{prev:u,next:d,t:h}=function(e,t=Ot){const[{target:n,steps:o,index:i},s]=r.useState({target:2,steps:[e,e,e],index:0});r.useEffect((()=>{o[o.length-1]!=e&&s((t=>function(e,t,n){const{steps:r,target:o,index:i}=e,s=r.slice(),a=n-i;return a<1?(s[2]=t,Object.assign(Object.assign({},e),{steps:s})):(s[0]=r[1],s[1]=r[2],s[2]=t,Object.assign(Object.assign({},e),{steps:s,target:o+1,index:i+1}))}(t,e,a)))}),[e]);const[a]=Te(n,t),l=a-i;return l<=1?{prev:o[0],next:o[1],t:l}:{prev:o[1],next:o[2],t:l-1}}(c,a);return r.createElement(Nt,Object.assign({t:h,backward:!1,prev:u,next:d},l))}function St(e){const[t,n]=r.useState(e);return r.createElement(_t,Object.assign({},t,{onTabClick:function(e){const r=Ft(t,e,null);n(Object.assign(Object.assign({},t),r))}}))}function _t(e){var t,n,{onTabClick:o}=e,i=s(e,["onTabClick"]);const a=function(e){var t,n,r,o,i,a,l,c,u;const{lineNumbers:d,showCopyButton:h,showExpandButton:f,minZoom:m,maxZoom:p}=e,v=s(e,["lineNumbers","showCopyButton","showExpandButton","minZoom","maxZoom"]),g=Object.assign(Object.assign({},e.codeConfig),{maxZoom:null==p?null===(t=e.codeConfig)||void 0===t?void 0:t.maxZoom:p,minZoom:null==m?null===(n=e.codeConfig)||void 0===n?void 0:n.minZoom:m,horizontalCenter:null!==(o=null===(r=e.codeConfig)||void 0===r?void 0:r.horizontalCenter)&&void 0!==o?o:e.horizontalCenter,lineNumbers:null==d?null===(i=e.codeConfig)||void 0===i?void 0:i.lineNumbers:d,showCopyButton:null==h?null===(a=e.codeConfig)||void 0===a?void 0:a.showCopyButton:h,showExpandButton:null==f?null===(l=e.codeConfig)||void 0===l?void 0:l.showExpandButton:f,rows:e.rows,debug:null!==(c=e.debug)&&void 0!==c?c:null===(u=e.codeConfig)||void 0===u?void 0:u.debug});return Object.assign(Object.assign({},v),{codeConfig:g})}(i),{className:l,style:c,codeConfig:u}=a,d=s(a,["className","style","codeConfig"]);if(i.southPanel||1!==i.files.length||i.files[0].name){const e=Object.assign(Object.assign({},null==d?void 0:d.frameProps),{onTabClick:o});return r.createElement("div",{className:`ch-codegroup not-prose ${l||""}`,"data-ch-theme":null===(n=i.codeConfig)||void 0===n?void 0:n.themeName,style:c},r.createElement(kt,Object.assign({},d,{frameProps:e,codeConfig:u})))}return r.createElement("div",{className:`ch-codeblock not-prose ${l||""}`,"data-ch-theme":null===(t=i.codeConfig)||void 0===t?void 0:t.themeName,style:c},r.createElement(Re,{className:"ch-code",config:u,step:d.files[0]}))}function Ft(e,t,n){const r=t||e.northPanel.active,o=e.files.map((e=>e.name===r?Object.assign(Object.assign({},e),{focus:null===n?e.focus:n}):e));let i=Object.assign({},e.northPanel),s=e.southPanel&&Object.assign({},e.southPanel);return e.northPanel.tabs.includes(r)?i.active=r:s&&(s.active=r),{files:o,northPanel:i,southPanel:s}}r.createContext({props:null,setFocus:()=>{}});function Lt({focus:e,file:t,children:n,id:o}){const{activate:i,reset:s,activatedId:a}=r.useContext(Pt),l=a===o;return r.createElement("span",{className:"ch-section-link","data-active":l,children:n,onMouseOver:()=>i({fileName:t,focus:e,id:o}),onMouseOut:s})}const Pt=r.createContext({activatedId:void 0,activate:()=>{},reset:()=>{}});function Mt({onActivation:e,onReset:t,children:n}){const[o,i]=r.useState(void 0),s=r.useCallback((t=>{i(t.id),e(t)}),[e]),a=r.useCallback((()=>{i(void 0),t()}),[t]);return r.createElement(Pt.Provider,{value:{activate:s,reset:a,activatedId:o}},n)}function It(){return r.createElement("svg",{fill:"currentColor",preserveAspectRatio:"xMidYMid meet",height:"1em",viewBox:"13 10 14 23",className:"ch-browser-button ch-browser-back-button"},r.createElement("g",null,r.createElement("path",{d:"m26.5 12.1q0 0.3-0.2 0.6l-8.8 8.7 8.8 8.8q0.2 0.2 0.2 0.5t-0.2 0.5l-1.1 1.1q-0.3 0.3-0.6 0.3t-0.5-0.3l-10.4-10.4q-0.2-0.2-0.2-0.5t0.2-0.5l10.4-10.4q0.3-0.2 0.5-0.2t0.6 0.2l1.1 1.1q0.2 0.2 0.2 0.5z"})))}function Ht(){return r.createElement("svg",{fill:"currentColor",preserveAspectRatio:"xMidYMid meet",height:"1em",viewBox:"13 10 14 23",className:"ch-browser-button ch-browser-forward-button"},r.createElement("g",null,r.createElement("path",{d:"m26.3 21.4q0 0.3-0.2 0.5l-10.4 10.4q-0.3 0.3-0.6 0.3t-0.5-0.3l-1.1-1.1q-0.2-0.2-0.2-0.5t0.2-0.5l8.8-8.8-8.8-8.7q-0.2-0.3-0.2-0.6t0.2-0.5l1.1-1.1q0.3-0.2 0.5-0.2t0.6 0.2l10.4 10.4q0.2 0.2 0.2 0.5z"})))}function $t({href:e}){return r.createElement("a",{className:"ch-browser-button ch-browser-open-button",title:"Open in new tab",href:e,target:"_blank",rel:"noopener noreferrer"},r.createElement("svg",{stroke:"currentColor",fill:"currentColor",strokeWidth:"0",viewBox:"3 3 18 18",height:"1em",width:"1em",className:"ch-browser-open-icon",xmlns:"http://www.w3.org/2000/svg"},r.createElement("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"})))}function At({url:e,linkUrl:t}){return r.createElement(r.Fragment,null,r.createElement(Xe,null),r.createElement(It,null),r.createElement(Ht,null),r.createElement("input",{value:e||"",readOnly:!0}),r.createElement($t,{href:t}))}function zt(e){return r.useMemo((()=>e?e.map((e=>{const{displayUrl:t,loadUrl:n}=function(e,t,n){const r="undefined"!=typeof window?window.origin:"",o=e&&!0===n?r+e:e;return{displayUrl:o,loadUrl:t||o}}(e.url,e.loadUrl,e.prependOrigin);return{zoom:e.zoom||1,displayUrl:t,loadUrl:n,children:e.children}})):[{zoom:1}]),[e])}const Tt=r.forwardRef((function(e,t){var{progress:n=0,backward:o=!1,steps:i,transition:a="none"}=e,l=s(e,["progress","backward","steps","transition"]);const c=zt(i),u=Math.round(n),{zoom:d,displayUrl:h,loadUrl:f,children:m}=c[u];return r.createElement(qe,Object.assign({},l,{zoom:d,className:`ch-mini-browser ${l.className||""}`,style:Object.assign(Object.assign({},Bt({progress:n,transition:a})),l.style),titleBar:r.createElement(At,{url:h,linkUrl:f})}),m||r.createElement("iframe",{ref:t,src:f}))}));function Bt({progress:e,transition:t}){if("slide"===t){const t=50,n=e-Math.floor(e),r=n<=.5?-t*n:t-t*n,o=2*Math.abs(n-.5);return{transform:`translateX(${r}px)`,opacity:o*o}}return{}}function Wt(e){var{url:t,loadUrl:n,prependOrigin:o,children:i,zoom:a}=e,l=s(e,["url","loadUrl","prependOrigin","children","zoom"]);const[c,u]=function({url:e,loadUrl:t,prependOrigin:n,children:o,zoom:i}){const[s,a]=r.useState({target:0,steps:[{url:e,loadUrl:t,prependOrigin:n,children:o,zoom:i}]});r.useEffect((()=>{const r=s.steps[s.steps.length-1];r.url===e&&r.loadUrl===t&&r.prependOrigin===n&&r.children===o||a((r=>({target:r.target+1,steps:[...r.steps,{url:e,loadUrl:t,prependOrigin:n,children:o,zoom:i}]})))}),[e,t,n,o,i]);const[l]=Te(s.target,{stiffness:100,decimals:3});return[s.steps,l]}({url:t,loadUrl:n,prependOrigin:o,children:i,zoom:a});return r.createElement(Tt,Object.assign({},l,{steps:c,progress:u}))}var Rt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},qt={};Object.defineProperty(qt,"__esModule",{value:!0}),qt.getMainFile=function(e){return"vue-cli"===e?"src/main.js":"angular-cli"===e?"src/main.ts":"create-react-app-typescript"===e?"src/index.tsx":"parcel"===e?"index.html":"gatsby"===e?"src/pages/index.js":"nuxt"===e||"next"===e||"apollo"===e||"reason"===e||"sapper"===e?"package.json":"nest"===e?"src/main.ts":"static"===e?"index.html":"src/index.js"};var Ut="sandbox.config.json";var Xt=qt.getTemplate=function(e,t){var n=t[Ut]||t["/"+Ut];if(n)try{var r=JSON.parse(n.content);if(r.template)return r.template}catch(f){}var o=e.dependencies,i=void 0===o?{}:o,s=e.devDependencies,a=void 0===s?{}:s,l=Object.keys(i).concat(Object.keys(a)),c=["nuxt","nuxt-edge"];if(l.some((function(e){return c.indexOf(e)>-1})))return"nuxt";if(l.indexOf("next")>-1)return"next";var u=["apollo-server","apollo-server-express","apollo-server-hapi","apollo-server-koa","apollo-server-lambda","apollo-server-micro"];if(l.some((function(e){return u.indexOf(e)>-1})))return"apollo";if(l.indexOf("ember-cli")>-1)return"ember";if(l.indexOf("sapper")>-1)return"sapper";var d=Object.keys(t);if(d.some((function(e){return e.endsWith(".vue")})))return"vue-cli";if(d.some((function(e){return e.endsWith(".re")})))return"reason";if(l.indexOf("gatsby")>-1)return"gatsby";if(l.indexOf("parcel-bundler")>-1)return"parcel";if(l.indexOf("react-scripts")>-1)return"create-react-app";if(l.indexOf("react-scripts-ts")>-1)return"create-react-app-typescript";if(l.indexOf("@angular/core")>-1)return"angular-cli";if(l.indexOf("preact-cli")>-1)return"preact-cli";if(l.indexOf("svelte")>-1)return"svelte";if(l.indexOf("vue")>-1)return"vue-cli";var h=["@dojo/core","@dojo/framework"];return l.some((function(e){return h.indexOf(e)>-1}))?"@dojo/cli-create-app":l.indexOf("cx")>-1?"cxjs":l.indexOf("@nestjs/core")>-1||l.indexOf("@nestjs/common")>-1?"nest":void 0},Dt={exports:{}};!function(e,t){var n="__lodash_hash_undefined__",r=1,o=2,i=9007199254740991,s="[object Arguments]",a="[object Array]",l="[object AsyncFunction]",c="[object Boolean]",u="[object Date]",d="[object Error]",h="[object Function]",f="[object GeneratorFunction]",m="[object Map]",p="[object Number]",v="[object Null]",g="[object Object]",b="[object Promise]",y="[object Proxy]",x="[object RegExp]",w="[object Set]",E="[object String]",j="[object Symbol]",C="[object Undefined]",N="[object WeakMap]",O="[object ArrayBuffer]",k="[object DataView]",S=/^\[object .+?Constructor\]$/,_=/^(?:0|[1-9]\d*)$/,F={};F["[object Float32Array]"]=F["[object Float64Array]"]=F["[object Int8Array]"]=F["[object Int16Array]"]=F["[object Int32Array]"]=F["[object Uint8Array]"]=F["[object Uint8ClampedArray]"]=F["[object Uint16Array]"]=F["[object Uint32Array]"]=!0,F[s]=F[a]=F[O]=F[c]=F[k]=F[u]=F[d]=F[h]=F[m]=F[p]=F[g]=F[x]=F[w]=F[E]=F[N]=!1;var L="object"==typeof Rt&&Rt&&Rt.Object===Object&&Rt,P="object"==typeof self&&self&&self.Object===Object&&self,M=L||P||Function("return this")(),I=t&&!t.nodeType&&t,H=I&&e&&!e.nodeType&&e,$=H&&H.exports===I,A=$&&L.process,z=function(){try{return A&&A.binding&&A.binding("util")}catch(e){}}(),T=z&&z.isTypedArray;function B(e,t){for(var n=-1,r=null==e?0:e.length;++nc))return!1;var d=a.get(e);if(d&&a.get(t))return d==t;var h=-1,f=!0,m=n&o?new Oe:void 0;for(a.set(e,t),a.set(t,e);++h-1},Ce.prototype.set=function(e,t){var n=this.__data__,r=_e(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Ne.prototype.clear=function(){this.size=0,this.__data__={hash:new je,map:new(de||Ce),string:new je}},Ne.prototype.delete=function(e){var t=Ae(this,e).delete(e);return this.size-=t?1:0,t},Ne.prototype.get=function(e){return Ae(this,e).get(e)},Ne.prototype.has=function(e){return Ae(this,e).has(e)},Ne.prototype.set=function(e,t){var n=Ae(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Oe.prototype.add=Oe.prototype.push=function(e){return this.__data__.set(e,n),this},Oe.prototype.has=function(e){return this.__data__.has(e)},ke.prototype.clear=function(){this.__data__=new Ce,this.size=0},ke.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},ke.prototype.get=function(e){return this.__data__.get(e)},ke.prototype.has=function(e){return this.__data__.has(e)},ke.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ce){var r=n.__data__;if(!de||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Ne(r)}return n.set(e,t),this.size=n.size,this};var Te=ae?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n-1&&e%1==0&&e-1&&e%1==0&&e<=i}function Ve(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ke(e){return null!=e&&"object"==typeof e}var Ye=T?function(e){return function(t){return e(t)}}(T):function(e){return Ke(e)&&Ze(e.length)&&!!F[Fe(e)]};function Je(e){return null!=(t=e)&&Ze(t.length)&&!Ge(t)?Se(e):Ie(e);var t}e.exports=function(e,t){return Pe(e,t)}}(Dt,Dt.exports);var Gt=Dt.exports,Zt=()=>Math.floor(1e6*Math.random()+1e6*Math.random()),Vt=class{constructor(e,t,n){this.type=e,this.handleMessage=t,this.target=n,this.outgoingMessages=new Set,this._messageListener=async e=>{var t;const{data:n}=e;if(n.$type!==this.getTypeId())return;if(this.outgoingMessages.has(n.$id))return;let r={$originId:this.internalId,$type:this.getTypeId(),$id:n.$id};try{const e=await this.handleMessage(n.$data);r.$data=e}catch(o){o.message||i.error(o),r.$error={message:null!=(t=o.message)?t:"Unknown error"}}e.source?e.source.postMessage(r,"*"):this._postMessage(r)},this.createConnection(),this.internalId=Zt(),this.isWorker="Worker"===(e=>{try{return e.constructor.name}catch(t){return""}})(n)}getTypeId(){return`p-${this.type}`}createConnection(){self.addEventListener("message",this._messageListener)}dispose(){self.removeEventListener("message",this._messageListener)}sendMessage(e){return new Promise((t=>{const n=Zt(),r={$originId:this.internalId,$type:this.getTypeId(),$data:e,$id:n};this.outgoingMessages.add(n);const o=e=>{const{data:r}=e;r.$type===this.getTypeId()&&r.$id===n&&r.$originId!==this.internalId&&(t(r.$data),self.removeEventListener("message",o))};self.addEventListener("message",o),this._postMessage(r)}))}_postMessage(e){this.isWorker||"undefined"!=typeof DedicatedWorkerGlobalScope&&this.target instanceof DedicatedWorkerGlobalScope?this.target.postMessage(e):this.target.postMessage(e,"*")}},Kt=class{constructor(e,t){this.globalListeners={},this.globalListenersCount=0,this.channelListeners={},this.channelListenersCount=0,this.channelId=Math.floor(1e6*Math.random()),this.frameWindow=e.contentWindow,this.origin=t,this.globalListeners=[],this.channelListeners=[],this.eventListener=this.eventListener.bind(this),"undefined"!=typeof window&&window.addEventListener("message",this.eventListener)}cleanup(){window.removeEventListener("message",this.eventListener),this.globalListeners={},this.channelListeners={},this.globalListenersCount=0,this.channelListenersCount=0}register(){this.frameWindow&&this.frameWindow.postMessage({type:"register-frame",origin:document.location.origin,id:this.channelId},this.origin)}dispatch(e){this.frameWindow&&this.frameWindow.postMessage({$id:this.channelId,codesandbox:!0,...e},this.origin)}globalListen(e){if("function"!=typeof e)return()=>{};const t=this.globalListenersCount;return this.globalListeners[t]=e,this.globalListenersCount++,()=>{delete this.globalListeners[t]}}channelListen(e){if("function"!=typeof e)return()=>{};const t=this.channelListenersCount;return this.channelListeners[t]=e,this.channelListenersCount++,()=>{delete this.channelListeners[t]}}eventListener(e){if(e.source!==this.frameWindow)return;const t=e.data;t.codesandbox&&(Object.values(this.globalListeners).forEach((e=>e(t))),t.$id===this.channelId&&Object.values(this.channelListeners).forEach((e=>e(t))))}};function Yt(e={},t={},n="/index.js"){return JSON.stringify({name:"sandpack-project",main:n,dependencies:e,devDependencies:t},null,2)}function Jt(e){if("SyntaxError"===e.title){const{title:t,path:n,message:r,line:o,column:i}=e;return{title:t,path:n,message:r,line:o,column:i}}const t=function(e){if(!e)return;return e.find((e=>!!e._originalFileName))}(e.payload.frames);if(!t)return{message:e.message};const n=function(e){const t=e._originalScriptCode[e._originalScriptCode.length-1].lineNumber.toString().length,n=2+t+3+e._originalColumnNumber;return e._originalScriptCode.reduce(((e,r)=>{const o=r.highlight?">":" ",i=r.lineNumber.toString().length===t?`${r.lineNumber}`:` ${r.lineNumber}`,s=r.highlight?"\n"+" ".repeat(n)+"^":"";return e+"\n"+o+" "+i+" | "+r.content+s}),"")}(t),r=(o=t)?` (${o._originalLineNumber}:${o._originalColumnNumber})`:"";var o;const i=function(e,t,n,r){return`${e}: ${t}${n}\n${r}`}(t._originalFileName,e.message,r,n);return{message:i,title:e.title,path:t._originalFileName,line:t._originalLineNumber,column:t._originalColumnNumber}}var Qt,en,tn=`https://${"0.19.0".replace(/\./g,"-")}-sandpack.codesandbox.io/`,nn=class{constructor(e,t,n={}){var r;if(this.getTranspilerContext=()=>new Promise((e=>{const t=this.listen((n=>{"transpiler-context"===n.type&&(e(n.data),t())}));this.dispatch({type:"get-transpiler-context"})})),this.options=n,this.sandboxInfo=t,this.bundlerURL=n.bundlerURL||tn,this.bundlerState=void 0,this.errors=[],this.status="initializing","string"==typeof e){this.selector=e;const t=document.querySelector(e);if(!t)throw new Error(`No element found for selector '${e}'`);this.element=t,this.iframe=document.createElement("iframe"),this.initializeElement()}else this.element=e,this.iframe=e;this.iframe.getAttribute("sandbox")||this.iframe.setAttribute("sandbox","allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts");const o=n.startRoute?new URL(n.startRoute,this.bundlerURL).toString():this.bundlerURL;null==(r=this.iframe.contentWindow)||r.location.replace(o),this.iframeProtocol=new Kt(this.iframe,this.bundlerURL),this.unsubscribeGlobalListener=this.iframeProtocol.globalListen((e=>{"initialized"===e.type&&this.iframe.contentWindow&&(this.iframeProtocol.register(),this.options.fileResolver&&(this.fileResolverProtocol=new Vt("file-resolver",(async e=>"isFile"===e.m?this.options.fileResolver.isFile(e.p):this.options.fileResolver.readFile(e.p)),this.iframe.contentWindow)),this.updatePreview(this.sandboxInfo,!0))})),this.unsubscribeChannelListener=this.iframeProtocol.channelListen((e=>{switch(e.type){case"start":this.errors=[];break;case"status":this.status=e.status;break;case"action":"show-error"===e.action&&(this.errors=[...this.errors,Jt(e)]);break;case"state":this.bundlerState=e.state}}))}cleanup(){this.unsubscribeChannelListener(),this.unsubscribeGlobalListener(),this.iframeProtocol.cleanup()}updateOptions(e){Gt(this.options,e)||(this.options=e,this.updatePreview())}updatePreview(e=this.sandboxInfo,t){var n,r,o,s;this.sandboxInfo={...this.sandboxInfo,...e};const a=this.getFiles(),l=Object.keys(a).reduce(((e,t)=>({...e,[t]:{code:a[t].code,path:t}})),{});let c=JSON.parse(Yt(this.sandboxInfo.dependencies,this.sandboxInfo.devDependencies,this.sandboxInfo.entry));try{c=JSON.parse(a["/package.json"].code)}catch(d){i.error("Could not parse package.json file: "+d.message)}const u=Object.keys(a).reduce(((e,t)=>({...e,[t]:{content:a[t].code,path:t}})),{});this.dispatch({type:"compile",codesandbox:!0,version:3,isInitializationCompile:t,modules:l,reactDevTools:this.options.reactDevTools,externalResources:this.options.externalResources||[],hasFileResolver:Boolean(this.options.fileResolver),disableDependencyPreprocessing:this.sandboxInfo.disableDependencyPreprocessing,template:this.sandboxInfo.template||Xt(c,u),showOpenInCodeSandbox:null==(n=this.options.showOpenInCodeSandbox)||n,showErrorScreen:null==(r=this.options.showErrorScreen)||r,showLoadingScreen:null==(o=this.options.showLoadingScreen)||o,skipEval:this.options.skipEval||!1,clearConsoleDisabled:!this.options.clearConsoleOnFirstCompile,logLevel:null!=(s=this.options.logLevel)?s:Qt.Info})}dispatch(e){this.iframeProtocol.dispatch(e)}listen(e){return this.iframeProtocol.channelListen(e)}getCodeSandboxURL(){const e=this.getFiles(),t=Object.keys(e).reduce(((t,n)=>({...t,[n.replace("/","")]:{content:e[n].code,isBinary:!1}})),{});return fetch("https://codesandbox.io/api/v1/sandboxes/define?json=1",{method:"POST",body:JSON.stringify({files:t}),headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>e.json())).then((e=>({sandboxId:e.sandbox_id,editorUrl:`https://codesandbox.io/s/${e.sandbox_id}`,embedUrl:`https://codesandbox.io/embed/${e.sandbox_id}`})))}getFiles(){const{sandboxInfo:e}=this;return void 0===e.files["/package.json"]?function(e,t,n,r){const o={...e};if(!o["/package.json"]){if(!t)throw new Error("No dependencies specified, please specify either a package.json or dependencies.");if(!r)throw new Error("Missing 'entry' parameter. Either specify an entry point, or pass in a package.json with the 'main' field set.");o["/package.json"]={code:Yt(t,n,r)}}return o}(e.files,e.dependencies,e.devDependencies,e.entry):this.sandboxInfo.files}initializeElement(){if(this.iframe.style.border="0",this.iframe.style.width=this.options.width||"100%",this.iframe.style.height=this.options.height||"100%",this.iframe.style.overflow="hidden",!this.element.parentNode)throw new Error("Given element does not have a parent.");this.element.parentNode.replaceChild(this.iframe,this.element)}};function rn(e){var{className:t,files:n,presetConfig:o,show:i,children:a,style:l,frameless:c,codeConfig:u}=e,d=s(e,["className","files","presetConfig","show","children","style","frameless","codeConfig"]);const h=o?r.createElement(on,{files:n,presetConfig:o}):a;return r.createElement("div",{className:"ch-preview"+(t?" "+t:""),style:l,"data-ch-theme":null==u?void 0:u.themeName},c?h:r.createElement(Wt,Object.assign({loadUrl:i},d,{children:h})))}function on({files:e,presetConfig:t}){const n=r.useRef(null),o=r.useRef(null);return r.useEffect((()=>{o.current=new nn(n.current,Object.assign(Object.assign({},t),{files:sn(t.files,e)}),{showOpenInCodeSandbox:!1})}),[]),r.useEffect((()=>{o.current&&o.current.updatePreview(Object.assign(Object.assign({},t),{files:sn(t.files,e)}))}),[e]),r.createElement("iframe",{ref:n})}function sn(e,t){const n=Object.assign({},e);return t.forEach((e=>{n["/"+e.name]={code:e.code.lines.map((e=>e.tokens.map((e=>e.content)).join(""))).join("\n")}})),n}function an(e,t){const n=r.Children.toArray(e);return{stepsChildren:t?n.slice(0,n.length/2):n,previewChildren:t?n.slice(n.length/2):void 0}}function ln(e){var t;const n=(null===(t=e.rootBounds)||void 0===t?void 0:t.height)||0;cn(e.rootBounds,{border:`${Math.min(10,n/2)}px solid ${un.rootColor}`,overflow:"hidden",boxSizing:"border-box"}),cn(e.boundingClientRect,{border:`${Math.min(10,e.boundingClientRect.height/2)}px solid ${e.isIntersecting?un.enterColor:un.exitColor}`,overflow:"hidden",boxSizing:"border-box"}),cn(e.intersectionRect,{backgroundColor:un.interColor,zIndex:2})}function cn(e,t={}){const{width:n,left:r,height:o,top:i}=e,s=document.createElement("div");return s.style.position="fixed",s.style.width=n+"px",s.style.left=r+"px",s.style.top=i+"px",s.style.height=o+"px",s.style.pointerEvents="none",s.style.transition="opacity 2s ease-in",Object.assign(s.style,t),requestAnimationFrame((()=>requestAnimationFrame((()=>{s.style.opacity="0"})))),s.addEventListener("transitionend",(()=>{document.body.removeChild(s)})),document.body.appendChild(s),s}(en=Qt||(Qt={}))[en.None=0]="None",en[en.Error=10]="Error",en[en.Warning=20]="Warning",en[en.Info=30]="Info",en[en.Debug=40]="Debug";const un={rootColor:"#9428AB",enterColor:"#B35C00",exitColor:"#035570",interColor:"#9CAF00BB"},dn="undefined"!=typeof window?r.useLayoutEffect:r.useEffect;const hn=r.createContext(void 0),fn="undefined"!=typeof window?r.useLayoutEffect:r.useEffect;function mn({onStepChange:e,children:t,getRootMargin:n=vn,triggerPosition:o,debug:i=!1}){const[s,a]=r.useState(),l=function(){const e="object"==typeof window;function t(){return e?document.documentElement.clientHeight:void 0}const[n,o]=r.useState(t);return r.useEffect((()=>{function e(){o(t())}return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[]),dn((()=>{o(t())}),[]),n}();return fn((()=>{const t=function(e,t){return new IntersectionObserver(e,{rootMargin:t,threshold:1e-6,root:null})}((t=>{(i||window.chDebugScroller)&&function(e){e.forEach(ln)}(t),t.forEach((t=>{if(t.intersectionRatio>0){const n=t.target;e(+n.stepIndex)}}))}),n(l||0,o));return a(t),()=>t.disconnect()}),[l]),r.createElement(hn.Provider,{value:s},t)}function pn(e){var{as:t="section",index:n}=e,o=s(e,["as","index"]);const i=r.useRef(null),a=r.useContext(hn);return fn((()=>(a&&a.observe(i.current),()=>a&&a.unobserve(i.current))),[a]),fn((()=>{i.current.stepIndex=n}),[n]),r.createElement(t,Object.assign(Object.assign({},o),{ref:i}))}function vn(e,t="50%"){let n=.5*e;if(t.endsWith("%")){n=e*(parseFloat(t.replace("%",""))/100)}else t.endsWith("px")&&(n=parseFloat(t.replace("px","")));return n<0&&(n=e+n),`-${n-2}px 0px -${e-n-2}px`}let gn=0;function bn({match:e}){const t=e.map((([e])=>e)),{isServer:n,matchedIndex:o}=function(e){const t="undefined"==typeof window,n=e.slice(0,-1);"default"!==e[e.length-1]&&i.warn("last media query should be 'default'");const[,o]=r.useState(0),s=t?[]:n.map((e=>window.matchMedia(e)));r.useEffect((()=>{const e=()=>o((e=>e+1));return s.forEach((t=>t.addListener(e))),()=>s.forEach((t=>t.removeListener(e)))}),[]);const a=s.findIndex((e=>e.matches));return{isServer:t,matchedIndex:a<0?e.length-1:a}}(t),s=n?"ssmq-"+gn++:"";return n?r.createElement(r.Fragment,null,r.createElement("style",{className:s,dangerouslySetInnerHTML:{__html:yn(t,s)}}),e.map((([e,t])=>r.createElement("div",{key:e,className:`${s} ${wn(e)}`},t))),r.createElement("script",{className:s,dangerouslySetInnerHTML:{__html:xn(e,s)}})):r.createElement(r.Fragment,null,r.createElement("div",null,e[o][1]))}function yn(e,t){return e.slice().reverse().map((e=>{const n=`.${t}.${wn(e)}{display:block}`,r=`.${t}:not(.${wn(e)}){display: none;}`;return"default"===e?`${n}${r}`:`@media ${e}{${n}${r}}`})).join("\n")}function xn(e,t){const n=e.map((([e])=>e)),r=n.map(wn);return`(function() {\n var qs = ${JSON.stringify(n)};\n var clss = ${JSON.stringify(r)};\n var mainCls = "${t}";\n\n var scrEls = document.getElementsByTagName("script");\n var scrEl = scrEls[scrEls.length - 1];\n var parent = scrEl.parentNode;\n\n var el = null;\n for (var i = 0; i < qs.length - 1; i++) {\n if (window.matchMedia(qs[i]).matches) {\n el = parent.querySelector(":scope > ." + mainCls + "." + clss[i]);\n break;\n }\n }\n if (!el) {\n var defaultClass = clss.pop();\n el = parent.querySelector(":scope > ." + mainCls + "." + defaultClass);\n }\n el.removeAttribute("class");\n\n parent.querySelectorAll(":scope > ." + mainCls).forEach(function (e) {\n parent.removeChild(e);\n });\n})();`}function wn(e){return"ssmq-"+e.replace(/[!\"#$%&'\(\)\*\+,\.\/:;<=>\?\@\[\\\]\^`\{\|\}~\s]/g,"").toLowerCase()}function En(){const e=r.useContext(Cn);return e?r.createElement(jn,Object.assign({},e)):null}function jn({editorStep:e,setFocus:t}){const n=s(e,["preset","presetConfig"]);return r.createElement(_t,Object.assign({},n,{onTabClick:e=>{t({fileName:e,focus:null,id:""})}}))}const Cn=r.createContext(null);function Nn(e){return r.createElement(bn,{match:[[e.codeConfig.staticMediaQuery,r.createElement(On,Object.assign({},e))],["default",r.createElement(Sn,Object.assign({},e))]]})}function On(e){var t,{children:n,hasPreviewSteps:o,editorSteps:i}=e,a=s(e,["children","hasPreviewSteps","editorSteps"]);const{stepsChildren:l,previewChildren:c}=an(n,o);return r.createElement("section",{className:"ch-scrollycoding-static","data-ch-theme":null===(t=null==a?void 0:a.codeConfig)||void 0===t?void 0:t.themeName},l.map(((e,t)=>r.createElement(kn,{key:t,editorStep:i[t],previewStep:c&&c[t],allProps:a},e))))}function kn({editorStep:e,previewStep:t,allProps:n,children:o}){const[i,s]=r.useState(Object.assign(Object.assign({},e),n)),a=({fileName:e,focus:t,id:n})=>{const r=Ft(i,e,t);s(Object.assign(Object.assign(Object.assign({},i),r),{selectedId:n}))};return r.createElement(Cn.Provider,{value:{editorStep:i,previewStep:t,allProps:n,setFocus:a}},r.createElement(Mt,{onActivation:a,onReset:()=>s(Object.assign(Object.assign({},e),n))},o))}function Sn(e){var{children:t,editorSteps:n,codeConfig:o,presetConfig:i,start:a=0,className:l,style:c,hasPreviewSteps:u}=e,d=s(e,["children","editorSteps","codeConfig","presetConfig","start","className","style","hasPreviewSteps"]);const{stepsChildren:h,previewChildren:f}=an(t,u),m=i||u,[p,v]=r.useState({stepIndex:a,step:n[a]}),g=p.step;function b(e){v({stepIndex:e,step:n[e]})}return r.createElement("section",{className:`ch-scrollycoding ${m?"ch-scrollycoding-with-preview":""} ${l||""}`,style:c,"data-ch-theme":null==o?void 0:o.themeName},r.createElement("div",{className:"ch-scrollycoding-content"},r.createElement(mn,{onStepChange:b,triggerPosition:null==o?void 0:o.triggerPosition},h.map(((e,t)=>r.createElement(pn,{as:"div",key:t,index:t,onClick:()=>b(t),className:"ch-scrollycoding-step-content","data-selected":t===p.stepIndex?"true":void 0},r.createElement(Mt,{onActivation:({fileName:e,focus:r})=>{!function(e,t,r){const o=Ft(n[e],t,r);v(Object.assign(Object.assign({},p),{stepIndex:e,step:o}))}(t,e,r)},onReset:()=>{b(t)}},e)))))),r.createElement("div",{className:"ch-scrollycoding-sticker"},r.createElement(_t,Object.assign({showExpandButton:!0},d,g,{codeConfig:o,onTabClick:function(e){const t=Ft(p.step,e,null);v(Object.assign(Object.assign({},p),{step:t}))}})),i?r.createElement(rn,{className:"ch-scrollycoding-preview",files:g.files,presetConfig:i}):u?r.createElement(rn,Object.assign({className:"ch-scrollycoding-preview"},f[p.stepIndex].props)):null))}const _n={box:function({children:e,data:t}){const n="string"==typeof t?t:void 0;return r.createElement("span",{className:"ch-code-box-annotation",style:{outlineColor:n}},e)},bg:Fn,label:function({children:e,data:t,style:n}){return r.createElement("div",{className:"ch-code-label-annotation",style:n},e,r.createElement("div",{className:"ch-code-label-annotation-text"},(null==t?void 0:t.children)||t))},link:function({children:e,isInline:t,style:n,data:o}){const i=(null==o?void 0:o.url)||o,s=null==o?void 0:o.title;return r.createElement("a",{href:i,title:s,className:t?"ch-code-inline-link":"ch-code-link",style:n},e)},mark:function(e){return e.isInline?r.createElement(Ln,Object.assign({},e)):r.createElement(Fn,Object.assign({},e))},withClass:function({children:e,data:t,style:n}){return r.createElement("span",{style:n,className:t},e)}};function Fn({children:e,data:t,style:n,lines:o}){const i=function(e){return e.map((e=>e.annotatedGroups.flatMap((e=>{var t;return null===(t=e.prev)||void 0===t?void 0:t.groups.flatMap((e=>e.tokens.map((e=>e.content))))})).join(""))).join("\n")}(o),s="ch-code-multiline-mark "+(null!=t?t:"");return r.createElement("div",{style:n,className:s},r.createElement("span",{className:"ch-code-multiline-mark-border"}),e,r.createElement(ye,{className:"ch-code-button",content:i}))}function Ln({children:e,data:t}){const n="ch-code-inline-mark "+(null!=t?t:"");return r.createElement("span",{className:n,style:{background:Pn(e)||void 0}},e)}function Pn(e){var t,n,o;try{const i=r.Children.toArray(e)[0],s=r.Children.toArray((null===(t=null==i?void 0:i.props)||void 0===t?void 0:t.children)||[])[0],a=r.Children.toArray((null===(n=null==s?void 0:s.props)||void 0===n?void 0:n.children)||[])[0],{color:l}=(null===(o=null==a?void 0:a.props)||void 0===o?void 0:o.style)||{};return l?d(l,.2):void 0}catch(i){return}}function Mn(e){var{className:t,codeConfig:n,children:o,code:i}=e,a=s(e,["className","codeConfig","children","code"]);const{lines:l}=i,c=l.flatMap((e=>e.tokens));return r.createElement("span",Object.assign({"data-ch-theme":n.themeName,className:"ch-inline-code not-prose"+(t?" "+t:"")},a),r.createElement("code",null,c.map(((e,t)=>r.createElement("span",Object.assign({key:t},e.props),e.content)))))}},8453:(e,t,n)=>{n.d(t,{RP:()=>i,xA:()=>a});var r=n(6540);const o=r.createContext({});function i(e){const t=r.useContext(o);return r.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const s={};function a({components:e,children:t,disableParentContext:n}){let a;return a=n?"function"==typeof e?e({}):e||s:i(e),r.createElement(o.Provider,{value:a},t)}}}]);
\ No newline at end of file
diff --git a/assets/js/7b760bf1.7f16ae29.js b/assets/js/7b760bf1.7f16ae29.js
deleted file mode 100644
index bae8616eff..0000000000
--- a/assets/js/7b760bf1.7f16ae29.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3250],{7533:(e,n,t)=>{t.d(n,{A:()=>r});var o=t(6540),s=t(1122),i=t(6025),a=t(4848);const r=e=>{let{alt:n,sources:t,style:r}=e;const[l,c]=(0,o.useState)(!1),d=e=>{"Escape"===e.key&&c(!1)};(0,o.useEffect)((()=>(l?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[l]);return(0,a.jsx)("div",{className:"zoomable-image "+(l?"fullscreen":""),onClick:()=>{c(!l)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...r},children:(0,a.jsx)(s.A,{className:"zoomable-image-inner",alt:n,sources:{light:(0,i.Ay)(t.light),dark:(0,i.Ay)(t.dark)}})})}},6670:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>g,assets:()=>h,chCodeConfig:()=>p,contentTitle:()=>c,default:()=>m,frontMatter:()=>l,metadata:()=>d,toc:()=>u});t(6540);var o=t(4848),s=t(8453),i=t(4754),a=(t(1122),t(6025),t(7533)),r=t(7293);const l={},c="\ud83d\udce6 Install Langflow",d={id:"getting-started/install-langflow",title:"\ud83d\udce6 Install Langflow",description:"Langflow requires Python version 3.10 or greater and",source:"@site/docs/getting-started/install-langflow.mdx",sourceDirName:"getting-started",slug:"/getting-started/install-langflow",permalink:"/getting-started/install-langflow",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"\ud83d\udc4b Welcome to Langflow",permalink:"/"},next:{title:"\u26a1\ufe0f Quickstart",permalink:"/getting-started/quickstart"}},h={},g={annotations:i.hk,Code:i.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Having a problem?",id:"having-a-problem",level:2},{value:"\u26d3\ufe0f Run Langflow",id:"\ufe0f-run-langflow",level:2},{value:"HuggingFace Spaces",id:"huggingface-spaces",level:2}];function f(e){const n=Object.assign({h1:"h1",p:"p",strong:"strong",a:"a",code:"code",h2:"h2",ol:"ol",li:"li",ul:"ul"},(0,s.RP)(),e.components);return g||x("CH",!1),g.Code||x("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.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","\n",(0,o.jsx)(n.h1,{id:"-install-langflow",children:"\ud83d\udce6 Install Langflow"}),"\n",(0,o.jsx)(r.A,{type:"info",children:(0,o.jsxs)(n.p,{children:["Langflow ",(0,o.jsx)(n.strong,{children:"requires"})," Python version 3.10 or greater and\n",(0,o.jsx)(n.a,{href:"https://pypi.org/project/pip/",children:"pip"})," or\n",(0,o.jsx)(n.a,{href:"https://pipx.pypa.io/stable/installation/",children:"pipx"})," to be installed on your\nsystem."]})}),"\n",(0,o.jsx)(n.p,{children:"Install Langflow with pip:"}),"\n",(0,o.jsx)(g.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"pip install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"-U",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.p,{children:"Install Langflow with pipx:"}),"\n",(0,o.jsx)(g.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pipx ",props:{style:{color:"#FFA657"}}},{content:"install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--python ",props:{style:{color:"#79C0FF"}}},{content:"python3.",props:{style:{color:"#A5D6FF"}}},{content:"10 --fetch-missing-python",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsxs)(n.p,{children:["Pipx can fetch the missing Python version for you with ",(0,o.jsx)(n.code,{children:"--fetch-missing-python"}),", but you can also install the Python version manually. Use ",(0,o.jsx)(n.code,{children:"--force-reinstall"})," to ensure you have the latest version of Langflow and its dependencies."]}),"\n",(0,o.jsx)(n.h2,{id:"having-a-problem",children:"Having a problem?"}),"\n",(0,o.jsxs)(n.p,{children:["If you encounter a problem, see ",(0,o.jsx)(n.a,{href:"/getting-started/possible-installation-issues",children:"Common Installation Issues"}),"."]}),"\n",(0,o.jsx)(n.p,{children:"To get help in the Langflow CLI:"}),"\n",(0,o.jsx)(g.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--help",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(n.h2,{id:"\ufe0f-run-langflow",children:"\u26d3\ufe0f Run Langflow"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"To run Langflow, enter the following command."}),"\n"]}),"\n",(0,o.jsx)(g.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow run",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsxs)(n.ol,{start:"2",children:["\n",(0,o.jsxs)(n.li,{children:["Confirm that a local Langflow instance starts by visiting ",(0,o.jsx)(n.code,{children:"http://127.0.0.1:7860"})," in a Chromium-based browser."]}),"\n"]}),"\n",(0,o.jsx)(a.A,{alt:"Instructions for duplicating Langflow space on HuggingFace",sources:{light:"img/welcome-to-langflow.png",dark:"img/welcome-to-langflow.png"},style:{width:"80%",maxWidth:"800px",margin:"0 auto"}}),"\n",(0,o.jsxs)(n.ol,{start:"3",children:["\n",(0,o.jsxs)(n.li,{children:["Continue on to the ",(0,o.jsx)(n.a,{href:"./quickstart",children:"Quickstart"}),"."]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"huggingface-spaces",children:"HuggingFace Spaces"}),"\n",(0,o.jsx)(n.p,{children:"HuggingFace provides a great alternative for running Langflow in their Spaces environment. This means you can run Langflow in the cloud without any local installation required. Here's how you can get Langflow up and running on HuggingFace Spaces:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Access Langflow Space"}),": Open a Chromium-based browser and navigate to the ",(0,o.jsx)(n.a,{href:"https://huggingface.co/spaces/Langflow/Langflow?duplicate=true",children:"Langflow Space"}),". This link directs you to a pre-configured environment for Langflow."]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Duplicate the Space"}),": You'll encounter an option to duplicate the Langflow space. This step involves a few simple decisions:"]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Naming Your Space"}),": Assign a unique name to your new Space."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Visibility Settings"}),": Choose between Public or Private visibility for your Space."]}),"\n",(0,o.jsxs)(n.li,{children:["After setting these parameters, click on ",(0,o.jsx)(n.strong,{children:"Duplicate Space"})," to initiate the setup."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(a.A,{alt:"Instructions for duplicating Langflow space on HuggingFace",sources:{light:"img/duplicate-space.png",dark:"img/duplicate-space.png"},style:{width:"80%",maxWidth:"800px",margin:"0 auto"}}),"\n",(0,o.jsxs)(n.ol,{start:"3",children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Complete Installation"}),": The duplication and setup process begins immediately after you click ",(0,o.jsx)(n.strong,{children:"Duplicate Space"}),". Once completed, you will be automatically redirected to the main page of your new Space."]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Start Exploring Langflow"}),": With the setup complete, Langflow is now ready for use in your Space and you can start exploring its features and capabilities right away!"]}),"\n"]}),"\n"]})]})}const m=function(e={}){const{wrapper:n}=Object.assign({},(0,s.RP)(),e.components);return n?(0,o.jsx)(n,Object.assign({},e,{children:(0,o.jsx)(f,e)})):f(e)};function x(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/7b760bf1.b789cf41.js b/assets/js/7b760bf1.b789cf41.js
new file mode 100644
index 0000000000..33e2fbedc0
--- /dev/null
+++ b/assets/js/7b760bf1.b789cf41.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3250],{7293:(n,e,t)=>{t.d(e,{A:()=>S});var o=t(6540),i=t(4848);function s(n){const{mdxAdmonitionTitle:e,rest:t}=function(n){const e=o.Children.toArray(n),t=e.find((n=>o.isValidElement(n)&&"mdxAdmonitionTitle"===n.type)),s=e.filter((n=>n!==t)),a=t?.props.children;return{mdxAdmonitionTitle:a,rest:s.length>0?(0,i.jsx)(i.Fragment,{children:s}):null}}(n.children),s=n.title??e;return{...n,...s&&{title:s},children:t}}var a=t(8215),l=t(1312),r=t(7559);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(n){let{type:e,className:t,children:o}=n;return(0,i.jsx)("div",{className:(0,a.A)(r.G.common.admonition,r.G.common.admonitionType(e),c.admonition,t),children:o})}function h(n){let{icon:e,title:t}=n;return(0,i.jsxs)("div",{className:c.admonitionHeading,children:[(0,i.jsx)("span",{className:c.admonitionIcon,children:e}),t]})}function u(n){let{children:e}=n;return e?(0,i.jsx)("div",{className:c.admonitionContent,children:e}):null}function g(n){const{type:e,icon:t,title:o,children:s,className:a}=n;return(0,i.jsxs)(d,{type:e,className:a,children:[o||t?(0,i.jsx)(h,{title:o,icon:t}):null,(0,i.jsx)(u,{children:s})]})}function p(n){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const f={icon:(0,i.jsx)(p,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function m(n){return(0,i.jsx)(g,{...f,...n,className:(0,a.A)("alert alert--secondary",n.className),children:n.children})}function x(n){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const j={icon:(0,i.jsx)(x,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function y(n){return(0,i.jsx)(g,{...j,...n,className:(0,a.A)("alert alert--success",n.className),children:n.children})}function v(n){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,i.jsx)(v,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function b(n){return(0,i.jsx)(g,{...w,...n,className:(0,a.A)("alert alert--info",n.className),children:n.children})}function C(n){return(0,i.jsx)("svg",{viewBox:"0 0 16 16",...n,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const F={icon:(0,i.jsx)(C,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function k(n){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const A={icon:(0,i.jsx)(k,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const L={icon:(0,i.jsx)(C,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const N={...{note:m,tip:y,info:b,warning:function(n){return(0,i.jsx)(g,{...F,...n,className:(0,a.A)("alert alert--warning",n.className),children:n.children})},danger:function(n){return(0,i.jsx)(g,{...A,...n,className:(0,a.A)("alert alert--danger",n.className),children:n.children})}},...{secondary:n=>(0,i.jsx)(m,{title:"secondary",...n}),important:n=>(0,i.jsx)(b,{title:"important",...n}),success:n=>(0,i.jsx)(y,{title:"success",...n}),caution:function(n){return(0,i.jsx)(g,{...L,...n,className:(0,a.A)("alert alert--warning",n.className),children:n.children})}}};var H=t(6763);function S(n){const e=s(n),t=(o=e.type,N[o]||(H.warn(`No admonition component found for admonition type "${o}". Using Info as fallback.`),N.info));var o;return(0,i.jsx)(t,{...e})}},7533:(n,e,t)=>{t.d(e,{A:()=>l});var o=t(6540),i=t(1122),s=t(6025),a=t(4848);const l=n=>{let{alt:e,sources:t,style:l}=n;const[r,c]=(0,o.useState)(!1),d=n=>{"Escape"===n.key&&c(!1)};(0,o.useEffect)((()=>(r?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[r]);return(0,a.jsx)("div",{className:"zoomable-image "+(r?"fullscreen":""),onClick:()=>{c(!r)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,a.jsx)(i.A,{className:"zoomable-image-inner",alt:e,sources:{light:(0,s.Ay)(t.light),dark:(0,s.Ay)(t.dark)}})})}},6670:(n,e,t)=>{t.r(e),t.d(e,{CH:()=>u,assets:()=>h,chCodeConfig:()=>g,contentTitle:()=>c,default:()=>m,frontMatter:()=>r,metadata:()=>d,toc:()=>p});t(6540);var o=t(4848),i=t(8453),s=t(4754),a=(t(1122),t(6025),t(7533)),l=t(7293);const r={},c="\ud83d\udce6 Install Langflow",d={id:"getting-started/install-langflow",title:"\ud83d\udce6 Install Langflow",description:"Langflow requires Python version 3.10 or greater and",source:"@site/docs/getting-started/install-langflow.mdx",sourceDirName:"getting-started",slug:"/getting-started/install-langflow",permalink:"/getting-started/install-langflow",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"\ud83d\udc4b Welcome to Langflow",permalink:"/"},next:{title:"\u26a1\ufe0f Quickstart",permalink:"/getting-started/quickstart"}},h={},u={annotations:s.hk,Code:s.Cy},g={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Having a problem?",id:"having-a-problem",level:2},{value:"\u26d3\ufe0f Run Langflow",id:"\ufe0f-run-langflow",level:2},{value:"HuggingFace Spaces",id:"huggingface-spaces",level:2}];function f(n){const e=Object.assign({h1:"h1",p:"p",strong:"strong",a:"a",code:"code",h2:"h2",ol:"ol",li:"li",ul:"ul"},(0,i.RP)(),n.components);return u||x("CH",!1),u.Code||x("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.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","\n",(0,o.jsx)(e.h1,{id:"-install-langflow",children:"\ud83d\udce6 Install Langflow"}),"\n",(0,o.jsx)(l.A,{type:"info",children:(0,o.jsxs)(e.p,{children:["Langflow ",(0,o.jsx)(e.strong,{children:"requires"})," Python version 3.10 or greater and\n",(0,o.jsx)(e.a,{href:"https://pypi.org/project/pip/",children:"pip"})," or\n",(0,o.jsx)(e.a,{href:"https://pipx.pypa.io/stable/installation/",children:"pipx"})," to be installed on your\nsystem."]})}),"\n",(0,o.jsx)(e.p,{children:"Install Langflow with pip:"}),"\n",(0,o.jsx)(u.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"pip install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"-U",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(e.p,{children:"Install Langflow with pipx:"}),"\n",(0,o.jsx)(u.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"pipx ",props:{style:{color:"#FFA657"}}},{content:"install langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--python ",props:{style:{color:"#79C0FF"}}},{content:"python3.",props:{style:{color:"#A5D6FF"}}},{content:"10 --fetch-missing-python",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsxs)(e.p,{children:["Pipx can fetch the missing Python version for you with ",(0,o.jsx)(e.code,{children:"--fetch-missing-python"}),", but you can also install the Python version manually. Use ",(0,o.jsx)(e.code,{children:"--force-reinstall"})," to ensure you have the latest version of Langflow and its dependencies."]}),"\n",(0,o.jsx)(e.h2,{id:"having-a-problem",children:"Having a problem?"}),"\n",(0,o.jsxs)(e.p,{children:["If you encounter a problem, see ",(0,o.jsx)(e.a,{href:"/getting-started/possible-installation-issues",children:"Common Installation Issues"}),"."]}),"\n",(0,o.jsx)(e.p,{children:"To get help in the Langflow CLI:"}),"\n",(0,o.jsx)(u.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--help",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(e.h2,{id:"\ufe0f-run-langflow",children:"\u26d3\ufe0f Run Langflow"}),"\n",(0,o.jsxs)(e.ol,{children:["\n",(0,o.jsx)(e.li,{children:"To run Langflow, enter the following command."}),"\n"]}),"\n",(0,o.jsx)(u.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#FFA657"}}},{content:"-m ",props:{style:{color:"#79C0FF"}}},{content:"langflow run",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsxs)(e.ol,{start:"2",children:["\n",(0,o.jsxs)(e.li,{children:["Confirm that a local Langflow instance starts by visiting ",(0,o.jsx)(e.code,{children:"http://127.0.0.1:7860"})," in a Chromium-based browser."]}),"\n"]}),"\n",(0,o.jsx)(a.A,{alt:"Instructions for duplicating Langflow space on HuggingFace",sources:{light:"img/welcome-to-langflow.png",dark:"img/welcome-to-langflow.png"},style:{width:"80%",maxWidth:"800px",margin:"0 auto"}}),"\n",(0,o.jsxs)(e.ol,{start:"3",children:["\n",(0,o.jsxs)(e.li,{children:["Continue on to the ",(0,o.jsx)(e.a,{href:"./quickstart",children:"Quickstart"}),"."]}),"\n"]}),"\n",(0,o.jsx)(e.h2,{id:"huggingface-spaces",children:"HuggingFace Spaces"}),"\n",(0,o.jsx)(e.p,{children:"HuggingFace provides a great alternative for running Langflow in their Spaces environment. This means you can run Langflow in the cloud without any local installation required. Here's how you can get Langflow up and running on HuggingFace Spaces:"}),"\n",(0,o.jsxs)(e.ol,{children:["\n",(0,o.jsxs)(e.li,{children:["\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.strong,{children:"Access Langflow Space"}),": Open a Chromium-based browser and navigate to the ",(0,o.jsx)(e.a,{href:"https://huggingface.co/spaces/Langflow/Langflow?duplicate=true",children:"Langflow Space"}),". This link directs you to a pre-configured environment for Langflow."]}),"\n"]}),"\n",(0,o.jsxs)(e.li,{children:["\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.strong,{children:"Duplicate the Space"}),": You'll encounter an option to duplicate the Langflow space. This step involves a few simple decisions:"]}),"\n",(0,o.jsxs)(e.ul,{children:["\n",(0,o.jsxs)(e.li,{children:[(0,o.jsx)(e.strong,{children:"Naming Your Space"}),": Assign a unique name to your new Space."]}),"\n",(0,o.jsxs)(e.li,{children:[(0,o.jsx)(e.strong,{children:"Visibility Settings"}),": Choose between Public or Private visibility for your Space."]}),"\n",(0,o.jsxs)(e.li,{children:["After setting these parameters, click on ",(0,o.jsx)(e.strong,{children:"Duplicate Space"})," to initiate the setup."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(a.A,{alt:"Instructions for duplicating Langflow space on HuggingFace",sources:{light:"img/duplicate-space.png",dark:"img/duplicate-space.png"},style:{width:"80%",maxWidth:"800px",margin:"0 auto"}}),"\n",(0,o.jsxs)(e.ol,{start:"3",children:["\n",(0,o.jsxs)(e.li,{children:["\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.strong,{children:"Complete Installation"}),": The duplication and setup process begins immediately after you click ",(0,o.jsx)(e.strong,{children:"Duplicate Space"}),". Once completed, you will be automatically redirected to the main page of your new Space."]}),"\n"]}),"\n",(0,o.jsxs)(e.li,{children:["\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.strong,{children:"Start Exploring Langflow"}),": With the setup complete, Langflow is now ready for use in your Space and you can start exploring its features and capabilities right away!"]}),"\n"]}),"\n"]})]})}const m=function(n={}){const{wrapper:e}=Object.assign({},(0,i.RP)(),n.components);return e?(0,o.jsx)(e,Object.assign({},n,{children:(0,o.jsx)(f,n)})):f(n)};function x(n,e){throw new Error("Expected "+(e?"component":"object")+" `"+n+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/83d5bde4.372c8fad.js b/assets/js/83d5bde4.372c8fad.js
new file mode 100644
index 0000000000..639a08cac1
--- /dev/null
+++ b/assets/js/83d5bde4.372c8fad.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7368],{7533:(e,t,n)=>{n.d(t,{A:()=>i});var s=n(6540),o=n(1122),a=n(6025),r=n(4848);const i=e=>{let{alt:t,sources:n,style:i}=e;const[c,l]=(0,s.useState)(!1),d=e=>{"Escape"===e.key&&l(!1)};(0,s.useEffect)((()=>(c?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[c]);return(0,r.jsx)("div",{className:"zoomable-image "+(c?"fullscreen":""),onClick:()=>{l(!c)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...i},children:(0,r.jsx)(o.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,a.Ay)(n.light),dark:(0,a.Ay)(n.dark)}})})}},1441:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>l,default:()=>p,frontMatter:()=>c,metadata:()=>d,toc:()=>u});n(6540);var s=n(4848),o=n(8453),a=(n(1122),n(6025),n(7533),n(3554)),r=n.n(a),i=n(7293);const c={},l="Chat Memory",d={id:"examples/chat-memory",title:"Chat Memory",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/examples/chat-memory.mdx",sourceDirName:"examples",slug:"/examples/chat-memory",permalink:"/examples/chat-memory",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},m={},u=[];function h(e){const t=Object.assign({h1:"h1",p:"p",strong:"strong"},(0,o.RP)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"chat-memory",children:"Chat Memory"}),"\n",(0,s.jsx)(i.A,{type:"warning",title:"warning",children:(0,s.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Chat Memory"})," component restores previous messages given a Session ID, which can be any string."]}),"\n",(0,s.jsxs)(t.p,{children:["This component is available under the ",(0,s.jsx)(t.strong,{children:"Helpers"})," tab of the Langflow sidebar."]}),"\n",(0,s.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,s.jsx)(r(),{playing:!0,controls:!0,url:"/videos/chat_memory.mp4"})})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,o.RP)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(h,e)})):h(e)}},8453:(e,t,n)=>{n.d(t,{RP:()=>a,xA:()=>i});var s=n(6540);const o=s.createContext({});function a(e){const t=s.useContext(o);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const r={};function i({components:e,children:t,disableParentContext:n}){let i;return i=n?"function"==typeof e?e({}):e||r:a(e),s.createElement(o.Provider,{value:i},t)}}}]);
\ No newline at end of file
diff --git a/assets/js/83d5bde4.9cb9edb7.js b/assets/js/83d5bde4.9cb9edb7.js
deleted file mode 100644
index aed542a578..0000000000
--- a/assets/js/83d5bde4.9cb9edb7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7368],{7293:(n,e,t)=>{t.d(e,{A:()=>H});var i=t(6540),o=t(4848);function s(n){const{mdxAdmonitionTitle:e,rest:t}=function(n){const e=i.Children.toArray(n),t=e.find((n=>i.isValidElement(n)&&"mdxAdmonitionTitle"===n.type)),s=e.filter((n=>n!==t)),a=t?.props.children;return{mdxAdmonitionTitle:a,rest:s.length>0?(0,o.jsx)(o.Fragment,{children:s}):null}}(n.children),s=n.title??e;return{...n,...s&&{title:s},children:t}}var a=t(8215),r=t(1312),c=t(7559);const l={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(n){let{type:e,className:t,children:i}=n;return(0,o.jsx)("div",{className:(0,a.A)(c.G.common.admonition,c.G.common.admonitionType(e),l.admonition,t),children:i})}function m(n){let{icon:e,title:t}=n;return(0,o.jsxs)("div",{className:l.admonitionHeading,children:[(0,o.jsx)("span",{className:l.admonitionIcon,children:e}),t]})}function h(n){let{children:e}=n;return e?(0,o.jsx)("div",{className:l.admonitionContent,children:e}):null}function u(n){const{type:e,icon:t,title:i,children:s,className:a}=n;return(0,o.jsxs)(d,{type:e,className:a,children:[i||t?(0,o.jsx)(m,{title:i,icon:t}):null,(0,o.jsx)(h,{children:s})]})}function f(n){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const x={icon:(0,o.jsx)(f,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function p(n){return(0,o.jsx)(u,{...x,...n,className:(0,a.A)("alert alert--secondary",n.className),children:n.children})}function j(n){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const g={icon:(0,o.jsx)(j,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(n){return(0,o.jsx)(u,{...g,...n,className:(0,a.A)("alert alert--success",n.className),children:n.children})}function y(n){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,o.jsx)(y,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function A(n){return(0,o.jsx)(u,{...w,...n,className:(0,a.A)("alert alert--info",n.className),children:n.children})}function b(n){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const N={icon:(0,o.jsx)(b,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function C(n){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const z={icon:(0,o.jsx)(C,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const M={icon:(0,o.jsx)(b,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const T={...{note:p,tip:v,info:A,warning:function(n){return(0,o.jsx)(u,{...N,...n,className:(0,a.A)("alert alert--warning",n.className),children:n.children})},danger:function(n){return(0,o.jsx)(u,{...z,...n,className:(0,a.A)("alert alert--danger",n.className),children:n.children})}},...{secondary:n=>(0,o.jsx)(p,{title:"secondary",...n}),important:n=>(0,o.jsx)(A,{title:"important",...n}),success:n=>(0,o.jsx)(v,{title:"success",...n}),caution:function(n){return(0,o.jsx)(u,{...M,...n,className:(0,a.A)("alert alert--warning",n.className),children:n.children})}}};var k=t(6763);function H(n){const e=s(n),t=(i=e.type,T[i]||(k.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),T.info));var i;return(0,o.jsx)(t,{...e})}},7533:(n,e,t)=>{t.d(e,{A:()=>r});var i=t(6540),o=t(1122),s=t(6025),a=t(4848);const r=n=>{let{alt:e,sources:t,style:r}=n;const[c,l]=(0,i.useState)(!1),d=n=>{"Escape"===n.key&&l(!1)};(0,i.useEffect)((()=>(c?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[c]);return(0,a.jsx)("div",{className:"zoomable-image "+(c?"fullscreen":""),onClick:()=>{l(!c)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...r},children:(0,a.jsx)(o.A,{className:"zoomable-image-inner",alt:e,sources:{light:(0,s.Ay)(t.light),dark:(0,s.Ay)(t.dark)}})})}},1441:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>m,contentTitle:()=>l,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>h});t(6540);var i=t(4848),o=t(8453),s=(t(1122),t(6025),t(7533),t(3554)),a=t.n(s),r=t(7293);const c={},l="Chat Memory",d={id:"examples/chat-memory",title:"Chat Memory",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/examples/chat-memory.mdx",sourceDirName:"examples",slug:"/examples/chat-memory",permalink:"/examples/chat-memory",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},m={},h=[];function u(n){const e=Object.assign({h1:"h1",p:"p",strong:"strong"},(0,o.RP)(),n.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.h1,{id:"chat-memory",children:"Chat Memory"}),"\n",(0,i.jsx)(r.A,{type:"warning",title:"warning",children:(0,i.jsx)(e.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,i.jsxs)(e.p,{children:["The ",(0,i.jsx)(e.strong,{children:"Chat Memory"})," component restores previous messages given a Session ID, which can be any string."]}),"\n",(0,i.jsxs)(e.p,{children:["This component is available under the ",(0,i.jsx)(e.strong,{children:"Helpers"})," tab of the Langflow sidebar."]}),"\n",(0,i.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,i.jsx)(a(),{playing:!0,controls:!0,url:"/videos/chat_memory.mp4"})})]})}const f=function(n={}){const{wrapper:e}=Object.assign({},(0,o.RP)(),n.components);return e?(0,i.jsx)(e,Object.assign({},n,{children:(0,i.jsx)(u,n)})):u(n)}},8453:(n,e,t)=>{t.d(e,{RP:()=>s,xA:()=>r});var i=t(6540);const o=i.createContext({});function s(n){const e=i.useContext(o);return i.useMemo((()=>"function"==typeof n?n(e):{...e,...n}),[e,n])}const a={};function r({components:n,children:e,disableParentContext:t}){let r;return r=t?"function"==typeof n?n({}):n||a:s(n),i.createElement(o.Provider,{value:r},e)}}}]);
\ No newline at end of file
diff --git a/assets/js/88c438de.1ab4900a.js b/assets/js/88c438de.1ab4900a.js
deleted file mode 100644
index 43ebd519e7..0000000000
--- a/assets/js/88c438de.1ab4900a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8914],{7533:(e,t,n)=>{n.d(t,{A:()=>r});var s=n(6540),o=n(1122),i=n(6025),a=n(4848);const r=e=>{let{alt:t,sources:n,style:r}=e;const[d,c]=(0,s.useState)(!1),l=e=>{"Escape"===e.key&&c(!1)};(0,s.useEffect)((()=>(d?document.addEventListener("keydown",l):document.removeEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)})),[d]);return(0,a.jsx)("div",{className:"zoomable-image "+(d?"fullscreen":""),onClick:()=>{c(!d)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...r},children:(0,a.jsx)(o.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,i.Ay)(n.light),dark:(0,i.Ay)(n.dark)}})})}},3158:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>u,assets:()=>p,chCodeConfig:()=>m,contentTitle:()=>l,default:()=>j,frontMatter:()=>c,metadata:()=>h,toc:()=>x});n(6540);var s=n(4848),o=n(8453),i=n(4754),a=n(7293),r=n(7533),d=n(6025);const c={},l="Inputs and Outputs",h={id:"components/inputs-and-outputs",title:"Inputs and Outputs",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/components/inputs-and-outputs.mdx",sourceDirName:"components",slug:"/components/inputs-and-outputs",permalink:"/components/inputs-and-outputs",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Chat Widget",permalink:"/administration/chat-widget"},next:{title:"Text and Data",permalink:"/components/text-and-record"}},p={},u={annotations:i.hk,Code:i.Cy},m={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Inputs",id:"inputs",level:2},{value:"Chat Input",id:"chat-input",level:3},{value:"Text Input",id:"text-input",level:3},{value:"Outputs",id:"outputs",level:2},{value:"Chat Output",id:"chat-output",level:3},{value:"Text Output",id:"text-output",level:3},{value:"Prompts",id:"prompts",level:2},{value:"Prompt",id:"prompt",level:3},{value:"PromptTemplate",id:"prompttemplate",level:3}];function g(e){const t=Object.assign({h1:"h1",p:"p",h2:"h2",code:"code",a:"a",h3:"h3",strong:"strong",ul:"ul",li:"li"},(0,o.RP)(),e.components);return u||f("CH",!1),u.Code||f("CH.Code",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,s.jsx)(t.h1,{id:"inputs-and-outputs",children:"Inputs and Outputs"}),"\n",(0,s.jsx)(a.A,{type:"warning",title:"warning",children:(0,s.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,s.jsx)(t.p,{children:"Inputs and Outputs are a category of components that are used to define where data comes in and out of your flow.\nThey also dynamically change the Playground and can be renamed to facilitate building and maintaining your flows."}),"\n",(0,s.jsx)(t.h2,{id:"inputs",children:"Inputs"}),"\n",(0,s.jsx)(t.p,{children:"Inputs are components used to define where data enters your flow. They can receive data from the user, a database, or any other source that can be converted to Text or Data."}),"\n",(0,s.jsx)(t.p,{children:"The difference between Chat Input and other Input components is the output format, the number of configurable fields, and the way they are displayed in the Playground."}),"\n",(0,s.jsxs)(t.p,{children:["Chat Input components can output ",(0,s.jsx)(t.code,{children:"Text"})," or ",(0,s.jsx)(t.code,{children:"Data"}),". When you want to pass the sender name or sender to the next component, use the ",(0,s.jsx)(t.code,{children:"Data"})," output. To pass only the message, use the ",(0,s.jsx)(t.code,{children:"Text"})," output, useful when saving the message to a database or memory system like Zep."]}),"\n",(0,s.jsxs)(t.p,{children:["You can find out more about Chat Input and other Inputs ",(0,s.jsx)(t.a,{href:"#chat-input",children:"here"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"chat-input",children:"Chat Input"}),"\n",(0,s.jsx)(t.p,{children:"This component collects user input from the chat."}),"\n",(0,s.jsx)(r.A,{alt:"Docusaurus themed image",sources:{light:"img/chat-input-expanded.png",dark:"img/chat-input-expanded.png"},style:{width:"40%",margin:"20px auto"}}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Parameters"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Sender Type:"})," Specifies the sender type. Defaults to ",(0,s.jsx)(t.code,{children:"User"}),". Options are ",(0,s.jsx)(t.code,{children:"Machine"})," and ",(0,s.jsx)(t.code,{children:"User"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Sender Name:"})," Specifies the name of the sender. Defaults to ",(0,s.jsx)(t.code,{children:"User"}),"."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Message:"})," Specifies the message text. It is a multiline text input."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Session ID:"})," Specifies the session ID of the chat history. If provided, the message will be saved in the Message History."]}),"\n"]}),"\n",(0,s.jsx)(a.A,{type:"note",title:"Note",children:(0,s.jsx)("p",{children:(0,s.jsxs)(t.p,{children:["If ",(0,s.jsx)(t.code,{children:"As Data"})," is ",(0,s.jsx)(t.code,{children:"true"})," and the ",(0,s.jsx)(t.code,{children:"Message"})," is a ",(0,s.jsx)(t.code,{children:"Data"}),", the data of the ",(0,s.jsx)(t.code,{children:"Data"}),"\nwill be updated with the ",(0,s.jsx)(t.code,{children:"Sender"}),", ",(0,s.jsx)(t.code,{children:"Sender Name"}),", and ",(0,s.jsx)(t.code,{children:"Session ID"}),"."]})})}),"\n",(0,s.jsx)(t.p,{children:"One significant capability of the Chat Input component is its ability to transform the Playground into a chat window. This feature is particularly valuable for scenarios requiring user input to initiate or influence the flow."}),"\n",(0,s.jsx)(r.A,{alt:"Docusaurus themed image",sources:{light:(0,d.Ay)("img/playground-chat.png"),dark:(0,d.Ay)("img/playground-chat.png")},style:{width:"100%",maxWidth:"800px",margin:"0 auto"}}),"\n",(0,s.jsx)(t.h3,{id:"text-input",children:"Text Input"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Text Input"})," component adds an ",(0,s.jsx)(t.strong,{children:"Input"})," field on the Playground. This enables you to define parameters while running and testing your flow."]}),"\n",(0,s.jsx)(r.A,{alt:"Docusaurus themed image",sources:{light:"img/text-input-expanded.png",dark:"img/text-input-expanded.png"},style:{width:"50%",margin:"20px auto"}}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Parameters"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Value:"})," Specifies the text input value. This is where the user inputs text data that will be passed to the next component in the sequence. If no value is provided, it defaults to an empty string."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Data Template:"})," Specifies how a ",(0,s.jsx)(t.code,{children:"Data"})," should be converted into ",(0,s.jsx)(t.code,{children:"Text"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Data Template"})," field is used to specify how a ",(0,s.jsx)(t.code,{children:"Data"})," should be converted into ",(0,s.jsx)(t.code,{children:"Text"}),". This is particularly useful when you want to extract specific information from a ",(0,s.jsx)(t.code,{children:"Data"})," and pass it as text to the next component in the sequence."]}),"\n",(0,s.jsxs)(t.p,{children:["For example, if you have a ",(0,s.jsx)(t.code,{children:"Data"})," with the following structure:"]}),"\n",(0,s.jsx)(u.Code,{codeConfig:m,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"John Doe"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "age"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"30",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "email"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"johndoe@email.com"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,s.jsxs)(t.p,{children:["A template with ",(0,s.jsx)(t.code,{children:"Name: {name}, Age: {age}"})," will convert the ",(0,s.jsx)(t.code,{children:"Data"})," into a text string of ",(0,s.jsx)(t.code,{children:"Name: John Doe, Age: 30"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["If you pass more than one ",(0,s.jsx)(t.code,{children:"Data"}),", the text will be concatenated with a new line separator."]}),"\n",(0,s.jsx)(t.h2,{id:"outputs",children:"Outputs"}),"\n",(0,s.jsx)(t.p,{children:"Outputs are components that are used to define where data comes out of your flow. They can be used to send data to the user, to the Playground, or to define how the data will be displayed in the Playground."}),"\n",(0,s.jsx)(t.p,{children:"The Chat Output works similarly to the Chat Input but does not have a field that allows for written input. It is used as an Output definition and can be used to send data to the user."}),"\n",(0,s.jsxs)(t.p,{children:["You can find out more about it and the other Outputs ",(0,s.jsx)(t.a,{href:"#chat-output",children:"here"}),"."]}),"\n",(0,s.jsx)(t.h3,{id:"chat-output",children:"Chat Output"}),"\n",(0,s.jsx)(t.p,{children:"This component sends a message to the chat."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Parameters"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Sender Type:"})," Specifies the sender type. Default is ",(0,s.jsx)(t.code,{children:'"Machine"'}),". Options are ",(0,s.jsx)(t.code,{children:'"Machine"'})," and ",(0,s.jsx)(t.code,{children:'"User"'}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Sender Name:"})," Specifies the sender's name. Default is ",(0,s.jsx)(t.code,{children:'"AI"'}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Session ID:"})," Specifies the session ID of the chat history. If provided, messages are saved in the Message History."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Message:"})," Specifies the text of the message."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(a.A,{type:"note",title:"Note",children:(0,s.jsx)("p",{children:(0,s.jsxs)(t.p,{children:["If ",(0,s.jsx)(t.code,{children:"As Data"})," is ",(0,s.jsx)(t.code,{children:"true"})," and the ",(0,s.jsx)(t.code,{children:"Message"})," is a ",(0,s.jsx)(t.code,{children:"Data"}),", the data in the ",(0,s.jsx)(t.code,{children:"Data"}),"\nis updated with the ",(0,s.jsx)(t.code,{children:"Sender"}),", ",(0,s.jsx)(t.code,{children:"Sender Name"}),", and ",(0,s.jsx)(t.code,{children:"Session ID"}),"."]})})}),"\n",(0,s.jsx)(t.h3,{id:"text-output",children:"Text Output"}),"\n",(0,s.jsx)(t.p,{children:"This component displays text data to the user. It is useful when you want to show text without sending it to the chat."}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Parameters"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Value:"})," Specifies the text data to be displayed. Defaults to an empty string."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"TextOutput"})," component provides a simple way to display text data. It allows textual data to be visible in the chat window during your interaction flow."]}),"\n",(0,s.jsx)(t.h2,{id:"prompts",children:"Prompts"}),"\n",(0,s.jsx)(t.p,{children:"A prompt is the input provided to a language model, consisting of multiple components and can be parameterized using prompt templates. A prompt template offers a reproducible method for generating prompts, enabling easy customization through input variables."}),"\n",(0,s.jsx)(t.h3,{id:"prompt",children:"Prompt"}),"\n",(0,s.jsx)(t.p,{children:"This component creates a prompt template with dynamic variables. This is useful for structuring prompts and passing dynamic data to a language model."}),"\n",(0,s.jsx)(r.A,{alt:"Docusaurus themed image",sources:{light:"img/prompt-with-template.png",dark:"img/prompt-with-template.png"},style:{width:"50%",margin:"20px auto"}}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.strong,{children:"Parameters"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"Template:"})," The template for the prompt. This field allows you to create other fields dynamically by using curly brackets ",(0,s.jsx)(t.code,{children:"{}"}),". For example, if you have a template like ",(0,s.jsx)(t.code,{children:"Hello {name}, how are you?"}),", a new field called ",(0,s.jsx)(t.code,{children:"name"})," will be created. Prompt variables can be created with any name inside curly brackets, e.g. ",(0,s.jsx)(t.code,{children:"{variable_name}"}),"."]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"prompttemplate",children:"PromptTemplate"}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"PromptTemplate"})," component enables users to create prompts and define variables that control how the model is instructed. Users can input a set of variables which the template uses to generate the prompt when a conversation starts."]}),"\n",(0,s.jsxs)(t.p,{children:["After defining a variable in the prompt template, it acts as its own component input. See ",(0,s.jsx)(t.a,{href:"../administration/prompt-customization",children:"Prompt Customization"})," for more details."]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.strong,{children:"template:"})," The template used to format an individual request."]}),"\n"]})]})}const j=function(e={}){const{wrapper:t}=Object.assign({},(0,o.RP)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(g,e)})):g(e)};function f(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/88c438de.593335e7.js b/assets/js/88c438de.593335e7.js
new file mode 100644
index 0000000000..9e3e0fd315
--- /dev/null
+++ b/assets/js/88c438de.593335e7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8914],{7293:(e,t,n)=>{n.d(t,{A:()=>S});var i=n(6540),s=n(4848);function o(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=i.Children.toArray(e),n=t.find((e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),o=t.filter((e=>e!==n)),a=n?.props.children;return{mdxAdmonitionTitle:a,rest:o.length>0?(0,s.jsx)(s.Fragment,{children:o}):null}}(e.children),o=e.title??t;return{...e,...o&&{title:o},children:n}}var a=n(8215),r=n(1312),d=n(7559);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function l(e){let{type:t,className:n,children:i}=e;return(0,s.jsx)("div",{className:(0,a.A)(d.G.common.admonition,d.G.common.admonitionType(t),c.admonition,n),children:i})}function h(e){let{icon:t,title:n}=e;return(0,s.jsxs)("div",{className:c.admonitionHeading,children:[(0,s.jsx)("span",{className:c.admonitionIcon,children:t}),n]})}function u(e){let{children:t}=e;return t?(0,s.jsx)("div",{className:c.admonitionContent,children:t}):null}function p(e){const{type:t,icon:n,title:i,children:o,className:a}=e;return(0,s.jsxs)(l,{type:t,className:a,children:[i||n?(0,s.jsx)(h,{title:i,icon:n}):null,(0,s.jsx)(u,{children:o})]})}function m(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const x={icon:(0,s.jsx)(m,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function j(e){return(0,s.jsx)(p,{...x,...e,className:(0,a.A)("alert alert--secondary",e.className),children:e.children})}function g(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const f={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function y(e){return(0,s.jsx)(p,{...f,...e,className:(0,a.A)("alert alert--success",e.className),children:e.children})}function v(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,s.jsx)(v,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function b(e){return(0,s.jsx)(p,{...w,...e,className:(0,a.A)("alert alert--info",e.className),children:e.children})}function T(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const D={icon:(0,s.jsx)(T,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function k(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const C={icon:(0,s.jsx)(k,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const I={icon:(0,s.jsx)(T,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const A={...{note:j,tip:y,info:b,warning:function(e){return(0,s.jsx)(p,{...D,...e,className:(0,a.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,s.jsx)(p,{...C,...e,className:(0,a.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,s.jsx)(j,{title:"secondary",...e}),important:e=>(0,s.jsx)(b,{title:"important",...e}),success:e=>(0,s.jsx)(y,{title:"success",...e}),caution:function(e){return(0,s.jsx)(p,{...I,...e,className:(0,a.A)("alert alert--warning",e.className),children:e.children})}}};var N=n(6763);function S(e){const t=o(e),n=(i=t.type,A[i]||(N.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),A.info));var i;return(0,s.jsx)(n,{...t})}},7533:(e,t,n)=>{n.d(t,{A:()=>r});var i=n(6540),s=n(1122),o=n(6025),a=n(4848);const r=e=>{let{alt:t,sources:n,style:r}=e;const[d,c]=(0,i.useState)(!1),l=e=>{"Escape"===e.key&&c(!1)};(0,i.useEffect)((()=>(d?document.addEventListener("keydown",l):document.removeEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)})),[d]);return(0,a.jsx)("div",{className:"zoomable-image "+(d?"fullscreen":""),onClick:()=>{c(!d)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...r},children:(0,a.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,o.Ay)(n.light),dark:(0,o.Ay)(n.dark)}})})}},3158:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>p,assets:()=>u,chCodeConfig:()=>m,contentTitle:()=>l,default:()=>g,frontMatter:()=>c,metadata:()=>h,toc:()=>x});n(6540);var i=n(4848),s=n(8453),o=n(4754),a=n(7293),r=n(7533),d=n(6025);const c={},l="Inputs and Outputs",h={id:"components/inputs-and-outputs",title:"Inputs and Outputs",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/components/inputs-and-outputs.mdx",sourceDirName:"components",slug:"/components/inputs-and-outputs",permalink:"/components/inputs-and-outputs",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Chat Widget",permalink:"/administration/chat-widget"},next:{title:"Text and Data",permalink:"/components/text-and-record"}},u={},p={annotations:o.hk,Code:o.Cy},m={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},x=[{value:"Inputs",id:"inputs",level:2},{value:"Chat Input",id:"chat-input",level:3},{value:"Text Input",id:"text-input",level:3},{value:"Outputs",id:"outputs",level:2},{value:"Chat Output",id:"chat-output",level:3},{value:"Text Output",id:"text-output",level:3},{value:"Prompts",id:"prompts",level:2},{value:"Prompt",id:"prompt",level:3},{value:"PromptTemplate",id:"prompttemplate",level:3}];function j(e){const t=Object.assign({h1:"h1",p:"p",h2:"h2",code:"code",a:"a",h3:"h3",strong:"strong",ul:"ul",li:"li"},(0,s.RP)(),e.components);return p||f("CH",!1),p.Code||f("CH.Code",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.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","\n",(0,i.jsx)(t.h1,{id:"inputs-and-outputs",children:"Inputs and Outputs"}),"\n",(0,i.jsx)(a.A,{type:"warning",title:"warning",children:(0,i.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,i.jsx)(t.p,{children:"Inputs and Outputs are a category of components that are used to define where data comes in and out of your flow.\nThey also dynamically change the Playground and can be renamed to facilitate building and maintaining your flows."}),"\n",(0,i.jsx)(t.h2,{id:"inputs",children:"Inputs"}),"\n",(0,i.jsx)(t.p,{children:"Inputs are components used to define where data enters your flow. They can receive data from the user, a database, or any other source that can be converted to Text or Data."}),"\n",(0,i.jsx)(t.p,{children:"The difference between Chat Input and other Input components is the output format, the number of configurable fields, and the way they are displayed in the Playground."}),"\n",(0,i.jsxs)(t.p,{children:["Chat Input components can output ",(0,i.jsx)(t.code,{children:"Text"})," or ",(0,i.jsx)(t.code,{children:"Data"}),". When you want to pass the sender name or sender to the next component, use the ",(0,i.jsx)(t.code,{children:"Data"})," output. To pass only the message, use the ",(0,i.jsx)(t.code,{children:"Text"})," output, useful when saving the message to a database or memory system like Zep."]}),"\n",(0,i.jsxs)(t.p,{children:["You can find out more about Chat Input and other Inputs ",(0,i.jsx)(t.a,{href:"#chat-input",children:"here"}),"."]}),"\n",(0,i.jsx)(t.h3,{id:"chat-input",children:"Chat Input"}),"\n",(0,i.jsx)(t.p,{children:"This component collects user input from the chat."}),"\n",(0,i.jsx)(r.A,{alt:"Docusaurus themed image",sources:{light:"img/chat-input-expanded.png",dark:"img/chat-input-expanded.png"},style:{width:"40%",margin:"20px auto"}}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Parameters"})}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Sender Type:"})," Specifies the sender type. Defaults to ",(0,i.jsx)(t.code,{children:"User"}),". Options are ",(0,i.jsx)(t.code,{children:"Machine"})," and ",(0,i.jsx)(t.code,{children:"User"}),"."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Sender Name:"})," Specifies the name of the sender. Defaults to ",(0,i.jsx)(t.code,{children:"User"}),"."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Message:"})," Specifies the message text. It is a multiline text input."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Session ID:"})," Specifies the session ID of the chat history. If provided, the message will be saved in the Message History."]}),"\n"]}),"\n",(0,i.jsx)(a.A,{type:"note",title:"Note",children:(0,i.jsx)("p",{children:(0,i.jsxs)(t.p,{children:["If ",(0,i.jsx)(t.code,{children:"As Data"})," is ",(0,i.jsx)(t.code,{children:"true"})," and the ",(0,i.jsx)(t.code,{children:"Message"})," is a ",(0,i.jsx)(t.code,{children:"Data"}),", the data of the ",(0,i.jsx)(t.code,{children:"Data"}),"\nwill be updated with the ",(0,i.jsx)(t.code,{children:"Sender"}),", ",(0,i.jsx)(t.code,{children:"Sender Name"}),", and ",(0,i.jsx)(t.code,{children:"Session ID"}),"."]})})}),"\n",(0,i.jsx)(t.p,{children:"One significant capability of the Chat Input component is its ability to transform the Playground into a chat window. This feature is particularly valuable for scenarios requiring user input to initiate or influence the flow."}),"\n",(0,i.jsx)(r.A,{alt:"Docusaurus themed image",sources:{light:(0,d.Ay)("img/playground-chat.png"),dark:(0,d.Ay)("img/playground-chat.png")},style:{width:"100%",maxWidth:"800px",margin:"0 auto"}}),"\n",(0,i.jsx)(t.h3,{id:"text-input",children:"Text Input"}),"\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)(t.strong,{children:"Text Input"})," component adds an ",(0,i.jsx)(t.strong,{children:"Input"})," field on the Playground. This enables you to define parameters while running and testing your flow."]}),"\n",(0,i.jsx)(r.A,{alt:"Docusaurus themed image",sources:{light:"img/text-input-expanded.png",dark:"img/text-input-expanded.png"},style:{width:"50%",margin:"20px auto"}}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Parameters"})}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Value:"})," Specifies the text input value. This is where the user inputs text data that will be passed to the next component in the sequence. If no value is provided, it defaults to an empty string."]}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Data Template:"})," Specifies how a ",(0,i.jsx)(t.code,{children:"Data"})," should be converted into ",(0,i.jsx)(t.code,{children:"Text"}),"."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)(t.strong,{children:"Data Template"})," field is used to specify how a ",(0,i.jsx)(t.code,{children:"Data"})," should be converted into ",(0,i.jsx)(t.code,{children:"Text"}),". This is particularly useful when you want to extract specific information from a ",(0,i.jsx)(t.code,{children:"Data"})," and pass it as text to the next component in the sequence."]}),"\n",(0,i.jsxs)(t.p,{children:["For example, if you have a ",(0,i.jsx)(t.code,{children:"Data"})," with the following structure:"]}),"\n",(0,i.jsx)(p.Code,{codeConfig:m,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "name"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"John Doe"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "age"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"30",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "email"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"johndoe@email.com"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,i.jsxs)(t.p,{children:["A template with ",(0,i.jsx)(t.code,{children:"Name: {name}, Age: {age}"})," will convert the ",(0,i.jsx)(t.code,{children:"Data"})," into a text string of ",(0,i.jsx)(t.code,{children:"Name: John Doe, Age: 30"}),"."]}),"\n",(0,i.jsxs)(t.p,{children:["If you pass more than one ",(0,i.jsx)(t.code,{children:"Data"}),", the text will be concatenated with a new line separator."]}),"\n",(0,i.jsx)(t.h2,{id:"outputs",children:"Outputs"}),"\n",(0,i.jsx)(t.p,{children:"Outputs are components that are used to define where data comes out of your flow. They can be used to send data to the user, to the Playground, or to define how the data will be displayed in the Playground."}),"\n",(0,i.jsx)(t.p,{children:"The Chat Output works similarly to the Chat Input but does not have a field that allows for written input. It is used as an Output definition and can be used to send data to the user."}),"\n",(0,i.jsxs)(t.p,{children:["You can find out more about it and the other Outputs ",(0,i.jsx)(t.a,{href:"#chat-output",children:"here"}),"."]}),"\n",(0,i.jsx)(t.h3,{id:"chat-output",children:"Chat Output"}),"\n",(0,i.jsx)(t.p,{children:"This component sends a message to the chat."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Parameters"})}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Sender Type:"})," Specifies the sender type. Default is ",(0,i.jsx)(t.code,{children:'"Machine"'}),". Options are ",(0,i.jsx)(t.code,{children:'"Machine"'})," and ",(0,i.jsx)(t.code,{children:'"User"'}),"."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Sender Name:"})," Specifies the sender's name. Default is ",(0,i.jsx)(t.code,{children:'"AI"'}),"."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Session ID:"})," Specifies the session ID of the chat history. If provided, messages are saved in the Message History."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Message:"})," Specifies the text of the message."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(a.A,{type:"note",title:"Note",children:(0,i.jsx)("p",{children:(0,i.jsxs)(t.p,{children:["If ",(0,i.jsx)(t.code,{children:"As Data"})," is ",(0,i.jsx)(t.code,{children:"true"})," and the ",(0,i.jsx)(t.code,{children:"Message"})," is a ",(0,i.jsx)(t.code,{children:"Data"}),", the data in the ",(0,i.jsx)(t.code,{children:"Data"}),"\nis updated with the ",(0,i.jsx)(t.code,{children:"Sender"}),", ",(0,i.jsx)(t.code,{children:"Sender Name"}),", and ",(0,i.jsx)(t.code,{children:"Session ID"}),"."]})})}),"\n",(0,i.jsx)(t.h3,{id:"text-output",children:"Text Output"}),"\n",(0,i.jsx)(t.p,{children:"This component displays text data to the user. It is useful when you want to show text without sending it to the chat."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Parameters"})}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Value:"})," Specifies the text data to be displayed. Defaults to an empty string."]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)(t.code,{children:"TextOutput"})," component provides a simple way to display text data. It allows textual data to be visible in the chat window during your interaction flow."]}),"\n",(0,i.jsx)(t.h2,{id:"prompts",children:"Prompts"}),"\n",(0,i.jsx)(t.p,{children:"A prompt is the input provided to a language model, consisting of multiple components and can be parameterized using prompt templates. A prompt template offers a reproducible method for generating prompts, enabling easy customization through input variables."}),"\n",(0,i.jsx)(t.h3,{id:"prompt",children:"Prompt"}),"\n",(0,i.jsx)(t.p,{children:"This component creates a prompt template with dynamic variables. This is useful for structuring prompts and passing dynamic data to a language model."}),"\n",(0,i.jsx)(r.A,{alt:"Docusaurus themed image",sources:{light:"img/prompt-with-template.png",dark:"img/prompt-with-template.png"},style:{width:"50%",margin:"20px auto"}}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.strong,{children:"Parameters"})}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Template:"})," The template for the prompt. This field allows you to create other fields dynamically by using curly brackets ",(0,i.jsx)(t.code,{children:"{}"}),". For example, if you have a template like ",(0,i.jsx)(t.code,{children:"Hello {name}, how are you?"}),", a new field called ",(0,i.jsx)(t.code,{children:"name"})," will be created. Prompt variables can be created with any name inside curly brackets, e.g. ",(0,i.jsx)(t.code,{children:"{variable_name}"}),"."]}),"\n"]}),"\n",(0,i.jsx)(t.h3,{id:"prompttemplate",children:"PromptTemplate"}),"\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)(t.code,{children:"PromptTemplate"})," component enables users to create prompts and define variables that control how the model is instructed. Users can input a set of variables which the template uses to generate the prompt when a conversation starts."]}),"\n",(0,i.jsxs)(t.p,{children:["After defining a variable in the prompt template, it acts as its own component input. See ",(0,i.jsx)(t.a,{href:"../administration/prompt-customization",children:"Prompt Customization"})," for more details."]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"template:"})," The template used to format an individual request."]}),"\n"]})]})}const g=function(e={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),e.components);return t?(0,i.jsx)(t,Object.assign({},e,{children:(0,i.jsx)(j,e)})):j(e)};function f(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/8ab63353.2cee38f6.js b/assets/js/8ab63353.2cee38f6.js
new file mode 100644
index 0000000000..ecca79150a
--- /dev/null
+++ b/assets/js/8ab63353.2cee38f6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5916],{7293:(e,n,t)=>{t.d(n,{A:()=>L});var o=t(6540),s=t(4848);function r(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=o.Children.toArray(e),t=n.find((e=>o.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),r=n.filter((e=>e!==t)),i=t?.props.children;return{mdxAdmonitionTitle:i,rest:r.length>0?(0,s.jsx)(s.Fragment,{children:r}):null}}(e.children),r=e.title??n;return{...e,...r&&{title:r},children:t}}var i=t(8215),l=t(1312),c=t(7559);const d={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function a(e){let{type:n,className:t,children:o}=e;return(0,s.jsx)("div",{className:(0,i.A)(c.G.common.admonition,c.G.common.admonitionType(n),d.admonition,t),children:o})}function h(e){let{icon:n,title:t}=e;return(0,s.jsxs)("div",{className:d.admonitionHeading,children:[(0,s.jsx)("span",{className:d.admonitionIcon,children:n}),t]})}function p(e){let{children:n}=e;return n?(0,s.jsx)("div",{className:d.admonitionContent,children:n}):null}function u(e){const{type:n,icon:t,title:o,children:r,className:i}=e;return(0,s.jsxs)(a,{type:n,className:i,children:[o||t?(0,s.jsx)(h,{title:o,icon:t}):null,(0,s.jsx)(p,{children:r})]})}function g(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const m={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function x(e){return(0,s.jsx)(u,{...m,...e,className:(0,i.A)("alert alert--secondary",e.className),children:e.children})}function j(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const f={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function y(e){return(0,s.jsx)(u,{...f,...e,className:(0,i.A)("alert alert--success",e.className),children:e.children})}function b(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const v={icon:(0,s.jsx)(b,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function C(e){return(0,s.jsx)(u,{...v,...e,className:(0,i.A)("alert alert--info",e.className),children:e.children})}function k(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const _={icon:(0,s.jsx)(k,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function A(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const T={icon:(0,s.jsx)(A,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const D={icon:(0,s.jsx)(k,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const w={...{note:x,tip:y,info:C,warning:function(e){return(0,s.jsx)(u,{..._,...e,className:(0,i.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,s.jsx)(u,{...T,...e,className:(0,i.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,s.jsx)(x,{title:"secondary",...e}),important:e=>(0,s.jsx)(C,{title:"important",...e}),success:e=>(0,s.jsx)(y,{title:"success",...e}),caution:function(e){return(0,s.jsx)(u,{...D,...e,className:(0,i.A)("alert alert--warning",e.className),children:e.children})}}};var F=t(6763);function L(e){const n=r(e),t=(o=n.type,w[o]||(F.warn(`No admonition component found for admonition type "${o}". Using Info as fallback.`),w.info));var o;return(0,s.jsx)(t,{...n})}},5364:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>h,assets:()=>a,chCodeConfig:()=>p,contentTitle:()=>c,default:()=>m,frontMatter:()=>l,metadata:()=>d,toc:()=>u});t(6540);var o=t(4848),s=t(8453),r=t(4754),i=t(7293);const l={},c="Large Language Models (LLMs)",d={id:"components/model_specs",title:"Large Language Models (LLMs)",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/components/model_specs.mdx",sourceDirName:"components",slug:"/components/model_specs",permalink:"/components/model_specs",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},a={},h={annotations:r.hk,Code:r.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Anthropic",id:"anthropic",level:2},{value:"ChatAnthropic",id:"chatanthropic",level:2},{value:"CTransformers",id:"ctransformers",level:2},{value:"ChatOpenAI Component",id:"chatopenai-component",level:2},{value:"Cohere Component",id:"cohere-component",level:2},{value:"HuggingFaceHub Component",id:"huggingfacehub-component",level:2},{value:"LlamaCpp Component",id:"llamacpp-component",level:2},{value:"VertexAI Component",id:"vertexai-component",level:2}];function g(e){const n=Object.assign({h1:"h1",p:"p",hr:"hr",h2:"h2",a:"a",ul:"ul",li:"li",strong:"strong",code:"code"},(0,s.RP)(),e.components);return h||x("CH",!1),h.Code||x("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.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","\n",(0,o.jsx)(n.h1,{id:"large-language-models-llms",children:"Large Language Models (LLMs)"}),"\n",(0,o.jsx)(i.A,{type:"warning",title:"warning",children:(0,o.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,o.jsx)(n.p,{children:"A Large Language Model (LLM) is a foundational component of Langflow. It provides a uniform interface for interacting with LLMs from various providers, including OpenAI, Cohere, and HuggingFace. Langflow extensively uses LLMs across its chains and agents, employing them to generate text based on specific prompts or inputs."}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"anthropic",children:"Anthropic"}),"\n",(0,o.jsxs)(n.p,{children:["This is a wrapper for Anthropic's large language models. Learn more at ",(0,o.jsx)(n.a,{href:"https://www.anthropic.com",children:"Anthropic"}),"."]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"anthropic_api_key:"})," This key authenticates and authorizes access to the Anthropic API."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"anthropic_api_url:"})," This URL connects to the Anthropic API."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"temperature:"})," This parameter adjusts the randomness level in text generation. Set this to a non-negative number."]}),"\n"]}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"chatanthropic",children:"ChatAnthropic"}),"\n",(0,o.jsxs)(n.p,{children:["This is a wrapper for Anthropic's large language model designed for chat-based interactions. Learn more at ",(0,o.jsx)(n.a,{href:"https://www.anthropic.com",children:"Anthropic"}),"."]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"anthropic_api_key:"})," This key authenticates and authorizes access to the Anthropic API."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"anthropic_api_url:"})," This URL connects to the Anthropic API."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"temperature:"})," This parameter adjusts the randomness level in text generation. Set this to a non-negative number."]}),"\n"]}),"\n",(0,o.jsx)(n.hr,{}),"\n",(0,o.jsx)(n.h2,{id:"ctransformers",children:"CTransformers"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"CTransformers"})," provides access to Transformer models implemented in C/C++ using the ",(0,o.jsx)(n.a,{href:"https://github.com/ggerganov/ggml",children:"GGML"})," library."]}),"\n",(0,o.jsx)(i.A,{type:"info",children:(0,o.jsxs)(n.p,{children:["Ensure the ",(0,o.jsx)(n.code,{children:"ctransformers"})," Python package is installed. Discover more about\ninstallation, supported models, and usage\n",(0,o.jsx)(n.a,{href:"https://github.com/marella/ctransformers",children:"here"}),"."]})}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"config:"})," This configuration is for the Transformer models. Check the default settings and possible configurations at ",(0,o.jsx)(n.a,{href:"https://github.com/marella/ctransformers#config",children:"config"}),"."]}),"\n"]}),"\n",(0,o.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "top_k"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"40",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "top_p"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0.95",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "temperature"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0.8",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "repetition_penalty"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"1.1",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "last_n_tokens"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"64",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "seed"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"-1",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "max_new_tokens"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"256",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "stop"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "stream"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "reset"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "batch_size"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"8",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "threads"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"-1",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "context_length"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"-1",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gpu_layers"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"model"}),": The file path, directory, or Hugging Face Hub model repository name."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"model_file"}),": The specific model file name within the repository or directory."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"model_type"}),": The type of transformer model used. For further information, visit ",(0,o.jsx)(n.a,{href:"https://github.com/marella/ctransformers",children:"ctransformers"}),"."]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"chatopenai-component",children:"ChatOpenAI Component"}),"\n",(0,o.jsxs)(n.p,{children:["This component interfaces with ",(0,o.jsx)(n.a,{href:"https://openai.com",children:"OpenAI's"})," large language models, supporting a variety of tasks such as chatbots, generative question-answering, and summarization."]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"max_tokens"}),": The maximum number of tokens to generate for each completion. Set to ",(0,o.jsx)(n.code,{children:"-1"})," to generate as many tokens as possible, based on the model's context size. The default is ",(0,o.jsx)(n.code,{children:"256"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"model_kwargs"}),": A dictionary containing any additional model parameters for undefined calls."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"model_name"}),": Specifies the OpenAI chat model in use."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"openai_api_base"}),": The base URL for accessing the OpenAI API."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"openai_api_key"}),": The API key required for authentication with the OpenAI API."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"temperature"}),": Adjusts the randomness level of the text generation. This should be a non-negative number, defaulting to ",(0,o.jsx)(n.code,{children:"0.7"}),"."]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"cohere-component",children:"Cohere Component"}),"\n",(0,o.jsxs)(n.p,{children:["A wrapper for accessing ",(0,o.jsx)(n.a,{href:"https://cohere.com",children:"Cohere's"})," large language models."]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"cohere_api_key"}),": The API key needed for Cohere service authentication."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"max_tokens"}),": The limit on the number of tokens to generate per request, defaulting to ",(0,o.jsx)(n.code,{children:"256"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"temperature"}),": Adjusts the randomness level in text generations. This should be a non-negative number, defaulting to ",(0,o.jsx)(n.code,{children:"0.75"}),"."]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"huggingfacehub-component",children:"HuggingFaceHub Component"}),"\n",(0,o.jsxs)(n.p,{children:["A component facilitating access to models hosted on the ",(0,o.jsx)(n.a,{href:"https://www.huggingface.co/models",children:"HuggingFace Hub"}),"."]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"huggingfacehub_api_token"}),": The token required for API authentication."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"model_kwargs"}),": Parameters passed to the model."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"repo_id"}),": Specifies the model repository, defaulting to ",(0,o.jsx)(n.code,{children:"gpt2"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"task"}),": The specific task to execute with the model, returning either ",(0,o.jsx)(n.code,{children:"generated_text"})," or ",(0,o.jsx)(n.code,{children:"summary_text"}),"."]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"llamacpp-component",children:"LlamaCpp Component"}),"\n",(0,o.jsxs)(n.p,{children:["This component provides access to ",(0,o.jsx)(n.code,{children:"llama.cpp"})," models, ensuring high performance and flexibility."]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"echo"}),": Whether to echo the input prompt, defaulting to ",(0,o.jsx)(n.code,{children:"False"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"f16_kv"}),": Indicates if half-precision should be used for the key/value cache, defaulting to ",(0,o.jsx)(n.code,{children:"True"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"last_n_tokens_size"}),": The lookback size for applying repeat penalties, defaulting to ",(0,o.jsx)(n.code,{children:"64"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"logits_all"}),": Whether to return logits for all tokens or just the last one, defaulting to ",(0,o.jsx)(n.code,{children:"False"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"logprobs"}),": The number of log probabilities to return. If set to None, no probabilities are returned."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"lora_base"}),": The path to the base Llama LoRA model."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"lora_path"}),": The specific path to the Llama LoRA model. If set to None, no LoRA model is loaded."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"max_tokens"}),": The maximum number of tokens to generate in one session, defaulting to ",(0,o.jsx)(n.code,{children:"256"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"model_path"}),": The file path to the Llama model."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"n_batch"}),": The number of tokens processed in parallel, defaulting to ",(0,o.jsx)(n.code,{children:"8"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"n_ctx"}),": The context window size for tokens, defaulting to ",(0,o.jsx)(n.code,{children:"512"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"repeat_penalty"}),": The penalty applied to repeated tokens, defaulting to ",(0,o.jsx)(n.code,{children:"1.1"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"seed"}),": The seed for random number generation. If set to ",(0,o.jsx)(n.code,{children:"-1"}),", a random seed is used."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"stop"}),": A list of stop strings that terminate generation when encountered."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"streaming"}),": Indicates whether to stream results token by token, defaulting to ",(0,o.jsx)(n.code,{children:"True"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"suffix"}),": A suffix appended to generated text. If None, no suffix is appended."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"tags"}),": Tags added to the execution trace for monitoring."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"temperature"}),": The sampling temperature, defaulting to ",(0,o.jsx)(n.code,{children:"0.8"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"top_k"}),": The top-k sampling setting, defaulting to ",(0,o.jsx)(n.code,{children:"40"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"top_p"}),": The cumulative probability threshold for top-p sampling, defaulting to ",(0,o.jsx)(n.code,{children:"0.95"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"use_mlock"}),": Forces the system to retain the model in RAM, defaulting to ",(0,o.jsx)(n.code,{children:"False"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"use_mmap"}),": Indicates whether to maintain the model loaded in RAM, defaulting to ",(0,o.jsx)(n.code,{children:"True"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"verbose"}),": Controls the verbosity of output details. When enabled, it provides insights into internal states to aid debugging and understanding, defaulting to ",(0,o.jsx)(n.code,{children:"False"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"vocab_only"}),": Loads only the vocabulary without model weights, defaulting to ",(0,o.jsx)(n.code,{children:"False"}),"."]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"vertexai-component",children:"VertexAI Component"}),"\n",(0,o.jsxs)(n.p,{children:["This component integrates with ",(0,o.jsx)(n.a,{href:"https://cloud.google.com/vertex-ai",children:"Google Vertex AI"})," large language models to enhance AI capabilities."]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"credentials"}),": Custom"]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"credentials used for API interactions."}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"location"}),": The default location for API calls, defaulting to ",(0,o.jsx)(n.code,{children:"us-central1"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"max_output_tokens"}),": Limits the output tokens per prompt, defaulting to ",(0,o.jsx)(n.code,{children:"128"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"model_name"}),": The name of the Vertex AI model in use, defaulting to ",(0,o.jsx)(n.code,{children:"text-bison"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"project"}),": The default Google Cloud Platform project for API calls."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"request_parallelism"}),": The level of request parallelism for VertexAI model interactions, defaulting to ",(0,o.jsx)(n.code,{children:"5"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"temperature"}),": Adjusts the randomness level in text generations, defaulting to ",(0,o.jsx)(n.code,{children:"0"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"top_k"}),": The setting for selecting the top-k tokens for outputs."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"top_p"}),": The threshold for summing probabilities of the most likely tokens, defaulting to ",(0,o.jsx)(n.code,{children:"0.95"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"tuned_model_name"}),": Specifies a tuned model name, which overrides the default model name if provided."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"verbose"}),": Controls the output verbosity to assist in debugging and understanding the operational details, defaulting to ",(0,o.jsx)(n.code,{children:"False"}),"."]}),"\n"]}),"\n",(0,o.jsx)(n.hr,{})]})}const m=function(e={}){const{wrapper:n}=Object.assign({},(0,s.RP)(),e.components);return n?(0,o.jsx)(n,Object.assign({},e,{children:(0,o.jsx)(g,e)})):g(e)};function x(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/8ab63353.6e690e13.js b/assets/js/8ab63353.6e690e13.js
deleted file mode 100644
index 7a95435523..0000000000
--- a/assets/js/8ab63353.6e690e13.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5916],{5364:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>h,assets:()=>a,chCodeConfig:()=>p,contentTitle:()=>c,default:()=>x,frontMatter:()=>l,metadata:()=>d,toc:()=>g});o(6540);var t=o(4848),s=o(8453),r=o(4754),i=o(7293);const l={},c="Large Language Models (LLMs)",d={id:"components/model_specs",title:"Large Language Models (LLMs)",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/components/model_specs.mdx",sourceDirName:"components",slug:"/components/model_specs",permalink:"/components/model_specs",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},a={},h={annotations:r.hk,Code:r.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},g=[{value:"Anthropic",id:"anthropic",level:2},{value:"ChatAnthropic",id:"chatanthropic",level:2},{value:"CTransformers",id:"ctransformers",level:2},{value:"ChatOpenAI Component",id:"chatopenai-component",level:2},{value:"Cohere Component",id:"cohere-component",level:2},{value:"HuggingFaceHub Component",id:"huggingfacehub-component",level:2},{value:"LlamaCpp Component",id:"llamacpp-component",level:2},{value:"VertexAI Component",id:"vertexai-component",level:2}];function u(e){const n=Object.assign({h1:"h1",p:"p",hr:"hr",h2:"h2",a:"a",ul:"ul",li:"li",strong:"strong",code:"code"},(0,s.RP)(),e.components);return h||m("CH",!1),h.Code||m("CH.Code",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.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","\n",(0,t.jsx)(n.h1,{id:"large-language-models-llms",children:"Large Language Models (LLMs)"}),"\n",(0,t.jsx)(i.A,{type:"warning",title:"warning",children:(0,t.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,t.jsx)(n.p,{children:"A Large Language Model (LLM) is a foundational component of Langflow. It provides a uniform interface for interacting with LLMs from various providers, including OpenAI, Cohere, and HuggingFace. Langflow extensively uses LLMs across its chains and agents, employing them to generate text based on specific prompts or inputs."}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"anthropic",children:"Anthropic"}),"\n",(0,t.jsxs)(n.p,{children:["This is a wrapper for Anthropic's large language models. Learn more at ",(0,t.jsx)(n.a,{href:"https://www.anthropic.com",children:"Anthropic"}),"."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"anthropic_api_key:"})," This key authenticates and authorizes access to the Anthropic API."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"anthropic_api_url:"})," This URL connects to the Anthropic API."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"temperature:"})," This parameter adjusts the randomness level in text generation. Set this to a non-negative number."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"chatanthropic",children:"ChatAnthropic"}),"\n",(0,t.jsxs)(n.p,{children:["This is a wrapper for Anthropic's large language model designed for chat-based interactions. Learn more at ",(0,t.jsx)(n.a,{href:"https://www.anthropic.com",children:"Anthropic"}),"."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"anthropic_api_key:"})," This key authenticates and authorizes access to the Anthropic API."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"anthropic_api_url:"})," This URL connects to the Anthropic API."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"temperature:"})," This parameter adjusts the randomness level in text generation. Set this to a non-negative number."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"ctransformers",children:"CTransformers"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"CTransformers"})," provides access to Transformer models implemented in C/C++ using the ",(0,t.jsx)(n.a,{href:"https://github.com/ggerganov/ggml",children:"GGML"})," library."]}),"\n",(0,t.jsx)(i.A,{type:"info",children:(0,t.jsxs)(n.p,{children:["Ensure the ",(0,t.jsx)(n.code,{children:"ctransformers"})," Python package is installed. Discover more about\ninstallation, supported models, and usage\n",(0,t.jsx)(n.a,{href:"https://github.com/marella/ctransformers",children:"here"}),"."]})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"config:"})," This configuration is for the Transformer models. Check the default settings and possible configurations at ",(0,t.jsx)(n.a,{href:"https://github.com/marella/ctransformers#config",children:"config"}),"."]}),"\n"]}),"\n",(0,t.jsx)(h.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"{",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "top_k"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"40",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "top_p"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0.95",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "temperature"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0.8",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "repetition_penalty"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"1.1",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "last_n_tokens"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"64",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "seed"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"-1",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "max_new_tokens"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"256",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "stop"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"null",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "stream"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "reset"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "batch_size"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"8",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "threads"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"-1",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "context_length"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"-1",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "gpu_layers"',props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"}",props:{style:{color:"#C9D1D9"}}}]}],lang:"json"},annotations:[]}]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"model"}),": The file path, directory, or Hugging Face Hub model repository name."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"model_file"}),": The specific model file name within the repository or directory."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"model_type"}),": The type of transformer model used. For further information, visit ",(0,t.jsx)(n.a,{href:"https://github.com/marella/ctransformers",children:"ctransformers"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"chatopenai-component",children:"ChatOpenAI Component"}),"\n",(0,t.jsxs)(n.p,{children:["This component interfaces with ",(0,t.jsx)(n.a,{href:"https://openai.com",children:"OpenAI's"})," large language models, supporting a variety of tasks such as chatbots, generative question-answering, and summarization."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"max_tokens"}),": The maximum number of tokens to generate for each completion. Set to ",(0,t.jsx)(n.code,{children:"-1"})," to generate as many tokens as possible, based on the model's context size. The default is ",(0,t.jsx)(n.code,{children:"256"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"model_kwargs"}),": A dictionary containing any additional model parameters for undefined calls."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"model_name"}),": Specifies the OpenAI chat model in use."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"openai_api_base"}),": The base URL for accessing the OpenAI API."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"openai_api_key"}),": The API key required for authentication with the OpenAI API."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"temperature"}),": Adjusts the randomness level of the text generation. This should be a non-negative number, defaulting to ",(0,t.jsx)(n.code,{children:"0.7"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"cohere-component",children:"Cohere Component"}),"\n",(0,t.jsxs)(n.p,{children:["A wrapper for accessing ",(0,t.jsx)(n.a,{href:"https://cohere.com",children:"Cohere's"})," large language models."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"cohere_api_key"}),": The API key needed for Cohere service authentication."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"max_tokens"}),": The limit on the number of tokens to generate per request, defaulting to ",(0,t.jsx)(n.code,{children:"256"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"temperature"}),": Adjusts the randomness level in text generations. This should be a non-negative number, defaulting to ",(0,t.jsx)(n.code,{children:"0.75"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"huggingfacehub-component",children:"HuggingFaceHub Component"}),"\n",(0,t.jsxs)(n.p,{children:["A component facilitating access to models hosted on the ",(0,t.jsx)(n.a,{href:"https://www.huggingface.co/models",children:"HuggingFace Hub"}),"."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"huggingfacehub_api_token"}),": The token required for API authentication."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"model_kwargs"}),": Parameters passed to the model."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"repo_id"}),": Specifies the model repository, defaulting to ",(0,t.jsx)(n.code,{children:"gpt2"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"task"}),": The specific task to execute with the model, returning either ",(0,t.jsx)(n.code,{children:"generated_text"})," or ",(0,t.jsx)(n.code,{children:"summary_text"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"llamacpp-component",children:"LlamaCpp Component"}),"\n",(0,t.jsxs)(n.p,{children:["This component provides access to ",(0,t.jsx)(n.code,{children:"llama.cpp"})," models, ensuring high performance and flexibility."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"echo"}),": Whether to echo the input prompt, defaulting to ",(0,t.jsx)(n.code,{children:"False"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"f16_kv"}),": Indicates if half-precision should be used for the key/value cache, defaulting to ",(0,t.jsx)(n.code,{children:"True"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"last_n_tokens_size"}),": The lookback size for applying repeat penalties, defaulting to ",(0,t.jsx)(n.code,{children:"64"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"logits_all"}),": Whether to return logits for all tokens or just the last one, defaulting to ",(0,t.jsx)(n.code,{children:"False"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"logprobs"}),": The number of log probabilities to return. If set to None, no probabilities are returned."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"lora_base"}),": The path to the base Llama LoRA model."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"lora_path"}),": The specific path to the Llama LoRA model. If set to None, no LoRA model is loaded."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"max_tokens"}),": The maximum number of tokens to generate in one session, defaulting to ",(0,t.jsx)(n.code,{children:"256"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"model_path"}),": The file path to the Llama model."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"n_batch"}),": The number of tokens processed in parallel, defaulting to ",(0,t.jsx)(n.code,{children:"8"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"n_ctx"}),": The context window size for tokens, defaulting to ",(0,t.jsx)(n.code,{children:"512"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"repeat_penalty"}),": The penalty applied to repeated tokens, defaulting to ",(0,t.jsx)(n.code,{children:"1.1"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"seed"}),": The seed for random number generation. If set to ",(0,t.jsx)(n.code,{children:"-1"}),", a random seed is used."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"stop"}),": A list of stop strings that terminate generation when encountered."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"streaming"}),": Indicates whether to stream results token by token, defaulting to ",(0,t.jsx)(n.code,{children:"True"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"suffix"}),": A suffix appended to generated text. If None, no suffix is appended."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"tags"}),": Tags added to the execution trace for monitoring."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"temperature"}),": The sampling temperature, defaulting to ",(0,t.jsx)(n.code,{children:"0.8"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"top_k"}),": The top-k sampling setting, defaulting to ",(0,t.jsx)(n.code,{children:"40"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"top_p"}),": The cumulative probability threshold for top-p sampling, defaulting to ",(0,t.jsx)(n.code,{children:"0.95"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"use_mlock"}),": Forces the system to retain the model in RAM, defaulting to ",(0,t.jsx)(n.code,{children:"False"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"use_mmap"}),": Indicates whether to maintain the model loaded in RAM, defaulting to ",(0,t.jsx)(n.code,{children:"True"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"verbose"}),": Controls the verbosity of output details. When enabled, it provides insights into internal states to aid debugging and understanding, defaulting to ",(0,t.jsx)(n.code,{children:"False"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"vocab_only"}),": Loads only the vocabulary without model weights, defaulting to ",(0,t.jsx)(n.code,{children:"False"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"vertexai-component",children:"VertexAI Component"}),"\n",(0,t.jsxs)(n.p,{children:["This component integrates with ",(0,t.jsx)(n.a,{href:"https://cloud.google.com/vertex-ai",children:"Google Vertex AI"})," large language models to enhance AI capabilities."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"credentials"}),": Custom"]}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"credentials used for API interactions."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"location"}),": The default location for API calls, defaulting to ",(0,t.jsx)(n.code,{children:"us-central1"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"max_output_tokens"}),": Limits the output tokens per prompt, defaulting to ",(0,t.jsx)(n.code,{children:"128"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"model_name"}),": The name of the Vertex AI model in use, defaulting to ",(0,t.jsx)(n.code,{children:"text-bison"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"project"}),": The default Google Cloud Platform project for API calls."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"request_parallelism"}),": The level of request parallelism for VertexAI model interactions, defaulting to ",(0,t.jsx)(n.code,{children:"5"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"temperature"}),": Adjusts the randomness level in text generations, defaulting to ",(0,t.jsx)(n.code,{children:"0"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"top_k"}),": The setting for selecting the top-k tokens for outputs."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"top_p"}),": The threshold for summing probabilities of the most likely tokens, defaulting to ",(0,t.jsx)(n.code,{children:"0.95"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"tuned_model_name"}),": Specifies a tuned model name, which overrides the default model name if provided."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"verbose"}),": Controls the output verbosity to assist in debugging and understanding the operational details, defaulting to ",(0,t.jsx)(n.code,{children:"False"}),"."]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{})]})}const x=function(e={}){const{wrapper:n}=Object.assign({},(0,s.RP)(),e.components);return n?(0,t.jsx)(n,Object.assign({},e,{children:(0,t.jsx)(u,e)})):u(e)};function m(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/8e3f8f79.389a16c0.js b/assets/js/8e3f8f79.389a16c0.js
deleted file mode 100644
index 143279e33f..0000000000
--- a/assets/js/8e3f8f79.389a16c0.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2143],{2531:(o,n,e)=>{e.r(n),e.d(n,{CH:()=>d,assets:()=>a,chCodeConfig:()=>p,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>g});e(6540);var t=e(4848),l=e(8453),s=e(4754);e(7293);const r={},c="\u2757\ufe0f Common Installation Issues",i={id:"getting-started/possible-installation-issues",title:"\u2757\ufe0f Common Installation Issues",description:"This is a list of possible issues that you may encounter when installing Langflow and how to solve them.",source:"@site/docs/getting-started/possible-installation-issues.mdx",sourceDirName:"getting-started",slug:"/getting-started/possible-installation-issues",permalink:"/getting-started/possible-installation-issues",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"\ud83c\udfa8 Langflow Workspace",permalink:"/getting-started/workspace"},next:{title:"\ud83d\udcda New to LLMs?",permalink:"/getting-started/new-to-llms"}},a={},d={annotations:s.hk,InlineCode:s.R0,Code:s.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},g=[{value:"No module named 'langflow.__main__'",id:"no-module-named-langflow__main__",level:2},{value:"Something went wrong running migrations. Please, run 'langflow migration --fix'",id:"something-went-wrong-running-migrations-please-run-langflow-migration---fix",level:2}];function h(o){const n=Object.assign({h1:"h1",p:"p",h2:"h2",ol:"ol",li:"li",code:"code",ul:"ul",strong:"strong"},(0,l.RP)(),o.components);return d||f("CH",!1),d.Code||f("CH.Code",!0),d.InlineCode||f("CH.InlineCode",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.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","\n",(0,t.jsx)(n.h1,{id:"\ufe0f-common-installation-issues",children:"\u2757\ufe0f Common Installation Issues"}),"\n",(0,t.jsx)(n.p,{children:"This is a list of possible issues that you may encounter when installing Langflow and how to solve them."}),"\n",(0,t.jsx)(n.h2,{id:"no-module-named-langflow__main__",children:(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"No ",props:{style:{color:"#C9D1D9"}}},{content:"module ",props:{style:{color:"#FF7B72"}}},{content:"named ",props:{style:{color:"#FFA657"}}},{content:"'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:"No module named 'langflow.__main__'"})}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Run ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"m langflow run",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"python -m langflow run"})," instead of ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"langflow run",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"langflow run"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["If that doesn't work, reinstall Langflow with ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"_python ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"m pip install langflow ",props:{style:{color:"#C9D1D9"}}},{content:"--",props:{style:{color:"#FF7B72"}}},{content:"pre ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"U",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"_python -m pip install langflow --pre -U"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["If that doesn't work, reinstall Langflow and its dependencies with ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"m pip install langflow ",props:{style:{color:"#C9D1D9"}}},{content:"--",props:{style:{color:"#FF7B72"}}},{content:"pre ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"U ",props:{style:{color:"#79C0FF"}}},{content:"--",props:{style:{color:"#FF7B72"}}},{content:"force",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"reinstall",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"python -m pip install langflow --pre -U --force-reinstall"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["When you try to run Langflow using the command ",(0,t.jsx)(n.code,{children:"langflow run"}),", you may encounter the following error:"]}),"\n",(0,t.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" langflow run",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"Traceback",props:{style:{color:"#FFA657"}}},{content:" (most ",props:{style:{color:"#C9D1D9"}}},{content:"recent call last",props:{style:{color:"#A5D6FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" File ",props:{style:{color:"#FFA657"}}},{content:'".../langflow", line 5, in ',props:{style:{color:"#A5D6FF"}}},{content:"<",props:{style:{color:"#FF7B72"}}},{content:"modul",props:{style:{color:"#A5D6FF"}}},{content:"e",props:{style:{color:"#C9D1D9"}}},{content:">",props:{style:{color:"#FF7B72"}}}]},{tokens:[{content:" from ",props:{style:{color:"#FFA657"}}},{content:"langflow.__main__ import main",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"ModuleNotFoundError: ",props:{style:{color:"#FFA657"}}},{content:"No module named 'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,t.jsx)(n.p,{children:"There are two possible reasons for this error:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["You've installed Langflow using ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"pip install langflow",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"pip install langflow"})," but you already had a previous version of Langflow installed in your system.\nIn this case, you might be running the wrong executable.\nTo solve this issue, run the correct executable by running ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"m langflow run",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"python -m langflow run"})," instead of ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"langflow run",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"langflow run"}),".\nIf that doesn't work, try uninstalling and reinstalling Langflow with ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"m pip install langflow ",props:{style:{color:"#C9D1D9"}}},{content:"--",props:{style:{color:"#FF7B72"}}},{content:"pre ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"U",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"python -m pip install langflow --pre -U"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Some version conflicts might have occurred during the installation process.\nRun ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"m pip install langflow ",props:{style:{color:"#C9D1D9"}}},{content:"--",props:{style:{color:"#FF7B72"}}},{content:"pre ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"U ",props:{style:{color:"#79C0FF"}}},{content:"--",props:{style:{color:"#FF7B72"}}},{content:"force",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"reinstall",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"python -m pip install langflow --pre -U --force-reinstall"})," to reinstall Langflow and its dependencies."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"something-went-wrong-running-migrations-please-run-langflow-migration---fix",children:(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"Something went wrong running migrations. Please, run ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow migration --fix'",props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:"Something went wrong running migrations. Please, run 'langflow migration --fix'"})}),"\n",(0,t.jsx)(n.p,{children:"Clear the cache by deleting the contents of the cache folder."}),"\n",(0,t.jsx)(n.p,{children:"This folder can be found at:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Linux or WSL2 on Windows"}),": ",(0,t.jsx)(n.code,{children:"home//.cache/langflow/"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"MacOS"}),": ",(0,t.jsx)(n.code,{children:"/Users//Library/Caches/langflow/"})]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["This error can occur during Langflow upgrades when the new version can't override ",(0,t.jsx)(n.code,{children:"langflow-pre.db"})," in ",(0,t.jsx)(n.code,{children:".cache/langflow/"}),". Clearing the cache removes this file but will also erase your settings."]}),"\n",(0,t.jsx)(n.p,{children:"If you wish to retain your files, back them up before clearing the folder."})]})}const u=function(o={}){const{wrapper:n}=Object.assign({},(0,l.RP)(),o.components);return n?(0,t.jsx)(n,Object.assign({},o,{children:(0,t.jsx)(h,o)})):h(o)};function f(o,n){throw new Error("Expected "+(n?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/8e3f8f79.c72fac85.js b/assets/js/8e3f8f79.c72fac85.js
new file mode 100644
index 0000000000..316f9d6c18
--- /dev/null
+++ b/assets/js/8e3f8f79.c72fac85.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[2143],{7293:(n,o,e)=>{e.d(o,{A:()=>I});var t=e(6540),l=e(4848);function s(n){const{mdxAdmonitionTitle:o,rest:e}=function(n){const o=t.Children.toArray(n),e=o.find((n=>t.isValidElement(n)&&"mdxAdmonitionTitle"===n.type)),s=o.filter((n=>n!==e)),i=e?.props.children;return{mdxAdmonitionTitle:i,rest:s.length>0?(0,l.jsx)(l.Fragment,{children:s}):null}}(n.children),s=n.title??o;return{...n,...s&&{title:s},children:e}}var i=e(8215),r=e(1312),c=e(7559);const a={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(n){let{type:o,className:e,children:t}=n;return(0,l.jsx)("div",{className:(0,i.A)(c.G.common.admonition,c.G.common.admonitionType(o),a.admonition,e),children:t})}function p(n){let{icon:o,title:e}=n;return(0,l.jsxs)("div",{className:a.admonitionHeading,children:[(0,l.jsx)("span",{className:a.admonitionIcon,children:o}),e]})}function h(n){let{children:o}=n;return o?(0,l.jsx)("div",{className:a.admonitionContent,children:o}):null}function u(n){const{type:o,icon:e,title:t,children:s,className:i}=n;return(0,l.jsxs)(d,{type:o,className:i,children:[t||e?(0,l.jsx)(p,{title:t,icon:e}):null,(0,l.jsx)(h,{children:s})]})}function g(n){return(0,l.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,l.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const f={icon:(0,l.jsx)(g,{}),title:(0,l.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function m(n){return(0,l.jsx)(u,{...f,...n,className:(0,i.A)("alert alert--secondary",n.className),children:n.children})}function y(n){return(0,l.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,l.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const x={icon:(0,l.jsx)(y,{}),title:(0,l.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function w(n){return(0,l.jsx)(u,{...x,...n,className:(0,i.A)("alert alert--success",n.className),children:n.children})}function j(n){return(0,l.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,l.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const C={icon:(0,l.jsx)(j,{}),title:(0,l.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function F(n){return(0,l.jsx)(u,{...C,...n,className:(0,i.A)("alert alert--info",n.className),children:n.children})}function D(n){return(0,l.jsx)("svg",{viewBox:"0 0 16 16",...n,children:(0,l.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const v={icon:(0,l.jsx)(D,{}),title:(0,l.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function b(n){return(0,l.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,l.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const k={icon:(0,l.jsx)(b,{}),title:(0,l.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const B={icon:(0,l.jsx)(D,{}),title:(0,l.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const _={...{note:m,tip:w,info:F,warning:function(n){return(0,l.jsx)(u,{...v,...n,className:(0,i.A)("alert alert--warning",n.className),children:n.children})},danger:function(n){return(0,l.jsx)(u,{...k,...n,className:(0,i.A)("alert alert--danger",n.className),children:n.children})}},...{secondary:n=>(0,l.jsx)(m,{title:"secondary",...n}),important:n=>(0,l.jsx)(F,{title:"important",...n}),success:n=>(0,l.jsx)(w,{title:"success",...n}),caution:function(n){return(0,l.jsx)(u,{...B,...n,className:(0,i.A)("alert alert--warning",n.className),children:n.children})}}};var A=e(6763);function I(n){const o=s(n),e=(t=o.type,_[t]||(A.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),_.info));var t;return(0,l.jsx)(e,{...o})}},2531:(n,o,e)=>{e.r(o),e.d(o,{CH:()=>d,assets:()=>a,chCodeConfig:()=>p,contentTitle:()=>r,default:()=>g,frontMatter:()=>i,metadata:()=>c,toc:()=>h});e(6540);var t=e(4848),l=e(8453),s=e(4754);e(7293);const i={},r="\u2757\ufe0f Common Installation Issues",c={id:"getting-started/possible-installation-issues",title:"\u2757\ufe0f Common Installation Issues",description:"This is a list of possible issues that you may encounter when installing Langflow and how to solve them.",source:"@site/docs/getting-started/possible-installation-issues.mdx",sourceDirName:"getting-started",slug:"/getting-started/possible-installation-issues",permalink:"/getting-started/possible-installation-issues",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"\ud83c\udfa8 Langflow Workspace",permalink:"/getting-started/workspace"},next:{title:"\ud83d\udcda New to LLMs?",permalink:"/getting-started/new-to-llms"}},a={},d={annotations:s.hk,InlineCode:s.R0,Code:s.Cy},p={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"No module named 'langflow.__main__'",id:"no-module-named-langflow__main__",level:2},{value:"Something went wrong running migrations. Please, run 'langflow migration --fix'",id:"something-went-wrong-running-migrations-please-run-langflow-migration---fix",level:2}];function u(n){const o=Object.assign({h1:"h1",p:"p",h2:"h2",ol:"ol",li:"li",code:"code",ul:"ul",strong:"strong"},(0,l.RP)(),n.components);return d||f("CH",!1),d.Code||f("CH.Code",!0),d.InlineCode||f("CH.InlineCode",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.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","\n",(0,t.jsx)(o.h1,{id:"\ufe0f-common-installation-issues",children:"\u2757\ufe0f Common Installation Issues"}),"\n",(0,t.jsx)(o.p,{children:"This is a list of possible issues that you may encounter when installing Langflow and how to solve them."}),"\n",(0,t.jsx)(o.h2,{id:"no-module-named-langflow__main__",children:(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"No ",props:{style:{color:"#C9D1D9"}}},{content:"module ",props:{style:{color:"#FF7B72"}}},{content:"named ",props:{style:{color:"#FFA657"}}},{content:"'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:"No module named 'langflow.__main__'"})}),"\n",(0,t.jsxs)(o.ol,{children:["\n",(0,t.jsxs)(o.li,{children:["Run ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"m langflow run",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"python -m langflow run"})," instead of ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"langflow run",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"langflow run"}),"."]}),"\n",(0,t.jsxs)(o.li,{children:["If that doesn't work, reinstall Langflow with ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"_python ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"m pip install langflow ",props:{style:{color:"#C9D1D9"}}},{content:"--",props:{style:{color:"#FF7B72"}}},{content:"pre ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"U",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"_python -m pip install langflow --pre -U"}),"."]}),"\n",(0,t.jsxs)(o.li,{children:["If that doesn't work, reinstall Langflow and its dependencies with ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"m pip install langflow ",props:{style:{color:"#C9D1D9"}}},{content:"--",props:{style:{color:"#FF7B72"}}},{content:"pre ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"U ",props:{style:{color:"#79C0FF"}}},{content:"--",props:{style:{color:"#FF7B72"}}},{content:"force",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"reinstall",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"python -m pip install langflow --pre -U --force-reinstall"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(o.p,{children:["When you try to run Langflow using the command ",(0,t.jsx)(o.code,{children:"langflow run"}),", you may encounter the following error:"]}),"\n",(0,t.jsx)(d.Code,{codeConfig:p,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:">",props:{style:{color:"#FF7B72"}}},{content:" langflow run",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"Traceback",props:{style:{color:"#FFA657"}}},{content:" (most ",props:{style:{color:"#C9D1D9"}}},{content:"recent call last",props:{style:{color:"#A5D6FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" File ",props:{style:{color:"#FFA657"}}},{content:'".../langflow", line 5, in ',props:{style:{color:"#A5D6FF"}}},{content:"<",props:{style:{color:"#FF7B72"}}},{content:"modul",props:{style:{color:"#A5D6FF"}}},{content:"e",props:{style:{color:"#C9D1D9"}}},{content:">",props:{style:{color:"#FF7B72"}}}]},{tokens:[{content:" from ",props:{style:{color:"#FFA657"}}},{content:"langflow.__main__ import main",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"ModuleNotFoundError: ",props:{style:{color:"#FFA657"}}},{content:"No module named 'langflow.__main__'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,t.jsx)(o.p,{children:"There are two possible reasons for this error:"}),"\n",(0,t.jsxs)(o.ol,{children:["\n",(0,t.jsxs)(o.li,{children:["You've installed Langflow using ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"pip install langflow",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"pip install langflow"})," but you already had a previous version of Langflow installed in your system.\nIn this case, you might be running the wrong executable.\nTo solve this issue, run the correct executable by running ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"m langflow run",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"python -m langflow run"})," instead of ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"langflow run",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"langflow run"}),".\nIf that doesn't work, try uninstalling and reinstalling Langflow with ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"m pip install langflow ",props:{style:{color:"#C9D1D9"}}},{content:"--",props:{style:{color:"#FF7B72"}}},{content:"pre ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"U",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"python -m pip install langflow --pre -U"}),"."]}),"\n",(0,t.jsxs)(o.li,{children:["Some version conflicts might have occurred during the installation process.\nRun ",(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"python ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"m pip install langflow ",props:{style:{color:"#C9D1D9"}}},{content:"--",props:{style:{color:"#FF7B72"}}},{content:"pre ",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"U ",props:{style:{color:"#79C0FF"}}},{content:"--",props:{style:{color:"#FF7B72"}}},{content:"force",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"reinstall",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"python -m pip install langflow --pre -U --force-reinstall"})," to reinstall Langflow and its dependencies."]}),"\n"]}),"\n",(0,t.jsx)(o.h2,{id:"something-went-wrong-running-migrations-please-run-langflow-migration---fix",children:(0,t.jsx)(d.InlineCode,{codeConfig:p,code:{lines:[{tokens:[{content:"Something went wrong running migrations. Please, run ",props:{style:{color:"#C9D1D9"}}},{content:"'langflow migration --fix'",props:{style:{color:"#A5D6FF"}}}]}],lang:"jsx"},children:"Something went wrong running migrations. Please, run 'langflow migration --fix'"})}),"\n",(0,t.jsx)(o.p,{children:"Clear the cache by deleting the contents of the cache folder."}),"\n",(0,t.jsx)(o.p,{children:"This folder can be found at:"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsxs)(o.li,{children:[(0,t.jsx)(o.strong,{children:"Linux or WSL2 on Windows"}),": ",(0,t.jsx)(o.code,{children:"home//.cache/langflow/"})]}),"\n",(0,t.jsxs)(o.li,{children:[(0,t.jsx)(o.strong,{children:"MacOS"}),": ",(0,t.jsx)(o.code,{children:"/Users//Library/Caches/langflow/"})]}),"\n"]}),"\n",(0,t.jsxs)(o.p,{children:["This error can occur during Langflow upgrades when the new version can't override ",(0,t.jsx)(o.code,{children:"langflow-pre.db"})," in ",(0,t.jsx)(o.code,{children:".cache/langflow/"}),". Clearing the cache removes this file but will also erase your settings."]}),"\n",(0,t.jsx)(o.p,{children:"If you wish to retain your files, back them up before clearing the folder."})]})}const g=function(n={}){const{wrapper:o}=Object.assign({},(0,l.RP)(),n.components);return o?(0,t.jsx)(o,Object.assign({},n,{children:(0,t.jsx)(u,n)})):u(n)};function f(n,o){throw new Error("Expected "+(o?"component":"object")+" `"+n+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/8eb611e5.076aa1ce.js b/assets/js/8eb611e5.076aa1ce.js
new file mode 100644
index 0000000000..d3df8bb3ea
--- /dev/null
+++ b/assets/js/8eb611e5.076aa1ce.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[310],{7533:(e,s,t)=>{t.d(s,{A:()=>r});var n=t(6540),o=t(1122),a=t(6025),i=t(4848);const r=e=>{let{alt:s,sources:t,style:r}=e;const[l,c]=(0,n.useState)(!1),d=e=>{"Escape"===e.key&&c(!1)};(0,n.useEffect)((()=>(l?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[l]);return(0,i.jsx)("div",{className:"zoomable-image "+(l?"fullscreen":""),onClick:()=>{c(!l)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...r},children:(0,i.jsx)(o.A,{className:"zoomable-image-inner",alt:s,sources:{light:(0,a.Ay)(t.light),dark:(0,a.Ay)(t.dark)}})})}},1968:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>p,contentTitle:()=>c,default:()=>f,frontMatter:()=>l,metadata:()=>d,toc:()=>u});t(6540);var n=t(4848),o=t(8453),a=(t(1122),t(6025),t(7533),t(3554)),i=t.n(a),r=t(7293);const l={},c="Pass",d={id:"examples/pass",title:"Pass",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/examples/pass.mdx",sourceDirName:"examples",slug:"/examples/pass",permalink:"/examples/pass",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},p={},u=[];function m(e){const s=Object.assign({h1:"h1",p:"p",strong:"strong"},(0,o.RP)(),e.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"pass",children:"Pass"}),"\n",(0,n.jsx)(r.A,{type:"warning",title:"warning",children:(0,n.jsx)(s.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsx)(s.p,{children:"Sometimes all you need to do is\u2026 nothing!"}),"\n",(0,n.jsxs)(s.p,{children:["The ",(0,n.jsx)(s.strong,{children:"Pass"})," component enables you to ignore one input and move forward with another one. This is super helpful to swap routes for A/B testing!"]}),"\n",(0,n.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,n.jsx)(i(),{playing:!0,controls:!0,url:"/videos/pass.mp4"})})]})}const f=function(e={}){const{wrapper:s}=Object.assign({},(0,o.RP)(),e.components);return s?(0,n.jsx)(s,Object.assign({},e,{children:(0,n.jsx)(m,e)})):m(e)}},8453:(e,s,t)=>{t.d(s,{RP:()=>a,xA:()=>r});var n=t(6540);const o=n.createContext({});function a(e){const s=n.useContext(o);return n.useMemo((()=>"function"==typeof e?e(s):{...s,...e}),[s,e])}const i={};function r({components:e,children:s,disableParentContext:t}){let r;return r=t?"function"==typeof e?e({}):e||i:a(e),n.createElement(o.Provider,{value:r},s)}}}]);
\ No newline at end of file
diff --git a/assets/js/8eb611e5.abf9898b.js b/assets/js/8eb611e5.abf9898b.js
deleted file mode 100644
index c2e85b051d..0000000000
--- a/assets/js/8eb611e5.abf9898b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[310],{7293:(n,e,t)=>{t.d(e,{A:()=>H});var i=t(6540),o=t(4848);function s(n){const{mdxAdmonitionTitle:e,rest:t}=function(n){const e=i.Children.toArray(n),t=e.find((n=>i.isValidElement(n)&&"mdxAdmonitionTitle"===n.type)),s=e.filter((n=>n!==t)),a=t?.props.children;return{mdxAdmonitionTitle:a,rest:s.length>0?(0,o.jsx)(o.Fragment,{children:s}):null}}(n.children),s=n.title??e;return{...n,...s&&{title:s},children:t}}var a=t(8215),c=t(1312),r=t(7559);const l={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(n){let{type:e,className:t,children:i}=n;return(0,o.jsx)("div",{className:(0,a.A)(r.G.common.admonition,r.G.common.admonitionType(e),l.admonition,t),children:i})}function u(n){let{icon:e,title:t}=n;return(0,o.jsxs)("div",{className:l.admonitionHeading,children:[(0,o.jsx)("span",{className:l.admonitionIcon,children:e}),t]})}function m(n){let{children:e}=n;return e?(0,o.jsx)("div",{className:l.admonitionContent,children:e}):null}function h(n){const{type:e,icon:t,title:i,children:s,className:a}=n;return(0,o.jsxs)(d,{type:e,className:a,children:[i||t?(0,o.jsx)(u,{title:i,icon:t}):null,(0,o.jsx)(m,{children:s})]})}function f(n){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const p={icon:(0,o.jsx)(f,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function x(n){return(0,o.jsx)(h,{...p,...n,className:(0,a.A)("alert alert--secondary",n.className),children:n.children})}function j(n){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const g={icon:(0,o.jsx)(j,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(n){return(0,o.jsx)(h,{...g,...n,className:(0,a.A)("alert alert--success",n.className),children:n.children})}function y(n){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,o.jsx)(y,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function A(n){return(0,o.jsx)(h,{...w,...n,className:(0,a.A)("alert alert--info",n.className),children:n.children})}function N(n){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const b={icon:(0,o.jsx)(N,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function C(n){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const z={icon:(0,o.jsx)(C,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const T={icon:(0,o.jsx)(N,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const k={...{note:x,tip:v,info:A,warning:function(n){return(0,o.jsx)(h,{...b,...n,className:(0,a.A)("alert alert--warning",n.className),children:n.children})},danger:function(n){return(0,o.jsx)(h,{...z,...n,className:(0,a.A)("alert alert--danger",n.className),children:n.children})}},...{secondary:n=>(0,o.jsx)(x,{title:"secondary",...n}),important:n=>(0,o.jsx)(A,{title:"important",...n}),success:n=>(0,o.jsx)(v,{title:"success",...n}),caution:function(n){return(0,o.jsx)(h,{...T,...n,className:(0,a.A)("alert alert--warning",n.className),children:n.children})}}};var M=t(6763);function H(n){const e=s(n),t=(i=e.type,k[i]||(M.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),k.info));var i;return(0,o.jsx)(t,{...e})}},7533:(n,e,t)=>{t.d(e,{A:()=>c});var i=t(6540),o=t(1122),s=t(6025),a=t(4848);const c=n=>{let{alt:e,sources:t,style:c}=n;const[r,l]=(0,i.useState)(!1),d=n=>{"Escape"===n.key&&l(!1)};(0,i.useEffect)((()=>(r?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[r]);return(0,a.jsx)("div",{className:"zoomable-image "+(r?"fullscreen":""),onClick:()=>{l(!r)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...c},children:(0,a.jsx)(o.A,{className:"zoomable-image-inner",alt:e,sources:{light:(0,s.Ay)(t.light),dark:(0,s.Ay)(t.dark)}})})}},1968:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>u,contentTitle:()=>l,default:()=>f,frontMatter:()=>r,metadata:()=>d,toc:()=>m});t(6540);var i=t(4848),o=t(8453),s=(t(1122),t(6025),t(7533),t(3554)),a=t.n(s),c=t(7293);const r={},l="Pass",d={id:"examples/pass",title:"Pass",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/examples/pass.mdx",sourceDirName:"examples",slug:"/examples/pass",permalink:"/examples/pass",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},u={},m=[];function h(n){const e=Object.assign({h1:"h1",p:"p",strong:"strong"},(0,o.RP)(),n.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.h1,{id:"pass",children:"Pass"}),"\n",(0,i.jsx)(c.A,{type:"warning",title:"warning",children:(0,i.jsx)(e.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,i.jsx)(e.p,{children:"Sometimes all you need to do is\u2026 nothing!"}),"\n",(0,i.jsxs)(e.p,{children:["The ",(0,i.jsx)(e.strong,{children:"Pass"})," component enables you to ignore one input and move forward with another one. This is super helpful to swap routes for A/B testing!"]}),"\n",(0,i.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,i.jsx)(a(),{playing:!0,controls:!0,url:"/videos/pass.mp4"})})]})}const f=function(n={}){const{wrapper:e}=Object.assign({},(0,o.RP)(),n.components);return e?(0,i.jsx)(e,Object.assign({},n,{children:(0,i.jsx)(h,n)})):h(n)}},8453:(n,e,t)=>{t.d(e,{RP:()=>s,xA:()=>c});var i=t(6540);const o=i.createContext({});function s(n){const e=i.useContext(o);return i.useMemo((()=>"function"==typeof n?n(e):{...e,...n}),[e,n])}const a={};function c({components:n,children:e,disableParentContext:t}){let c;return c=t?"function"==typeof n?n({}):n||a:s(n),i.createElement(o.Provider,{value:c},e)}}}]);
\ No newline at end of file
diff --git a/assets/js/900.f808a411.js b/assets/js/900.f808a411.js
new file mode 100644
index 0000000000..2577e0f92d
--- /dev/null
+++ b/assets/js/900.f808a411.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[900],{4754:(e,t,n)=>{n.d(t,{Cy:()=>St,Fk:()=>On,R0:()=>Mn,W_:()=>Pt,Wu:()=>En,hk:()=>_n});var r=n(6540),o=n(961),i=n(6763);function s(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o/^#([A-Fa-f0-9]{3,4}){1,2}$/.test(e),l=(e,t)=>e.match(new RegExp(`.{${t}}`,"g")),c=e=>parseInt(e.repeat(2/e.length),16);function u(e,t){return void 0!==e?e/255:"number"!=typeof t||t<0||t>1?1:t}function d(e,t){if(!e)return e;const{r:n,g:r,b:o,a:i}=function(e){if(!e)return;if(!a(e))throw new Error("Invalid color string, must be a valid hex color");const t=Math.floor((e.length-1)/3),n=l(e.slice(1),t),[r,o,i,s]=n.map(c);return{r:r,g:o,b:i,a:u(s,1)}}(e);return function(e){if(!e)return;const{r:t,g:n,b:r,a:o}=e,i=Math.round(255*o);return`#${t.toString(16).padStart(2,"0")}${n.toString(16).padStart(2,"0")}${r.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`}({r:n,g:r,b:o,a:i*t})}function h(e,t){return{prev:t(e.prev,"prev"),next:t(e.next,"next")}}function f(e,t){return{prev:void 0===(null==e?void 0:e.prev)?t:e.prev,next:void 0===(null==e?void 0:e.next)?t:e.next}}function p(e,t,n){return h(f(e,t),n)}function m(e,t){return t(e.prev)||t(e.next)}function v(e){return e.lines.map((e=>e.tokens.map((e=>e.content)).join(""))).join("\n")}function g(e){return e.split(/,(?![^\[]*\])/g)}function b(e){return e.reduce(((e,t)=>Object.assign(e,t)),{})}function y(e){const t=e.match(/(\d+)\[(.+)\]/);if(t){const[,e,n]=t,r=n.split(",").map(x),o=Number(e);return{[o]:r}}return b(j(e).map((e=>({[e]:!0}))))}function x(e){const[t,n]=e.split(":");if(!C(t))throw new N(t);const r=Number(t);if(r<1)throw new O;if(n){if(!C(n))throw new N(n);return{start:r,end:+n}}return{start:r,end:r}}function w(e){if(!e)throw new Error("Focus cannot be empty");try{return function(e){const t={};let n=-1,r=null==e?0:e.length;for(;++ne-1))]]}return j(e).map((e=>[e-1,!0]))}function j(e){const[t,n]=e.split(":");if(!C(t))throw new N(t);const r=Number(t);if(r<1)throw new O;if(n){if(!C(n))throw new N(n);const e=[];for(let t=r;t<=+n;t++)e.push(t);return e}return[r]}function C(e){e=e.toString();var t=Math.abs(e),n=parseInt(e,10);return!isNaN(t)&&n===t&&t.toString()===e}class O extends Error{constructor(){super("Invalid line or column number in focus string"),Object.setPrototypeOf(this,new.target.prototype)}}class N extends Error{constructor(e){super(`Invalid number "${e}" in focus string`),this.number=e,Object.setPrototypeOf(this,new.target.prototype)}}const k="undefined"!=typeof window?r.useLayoutEffect:r.useEffect;const S=200;function _(e,t,n,o,i,s){const[a,l]=r.useState(null),[c,u]=r.useState(0),d=function(){const[e,t]=r.useState(void 0);return r.useEffect((()=>{function e(){t(window.innerWidth)}return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[]),e}(),h=r.useRef(null),{prevLongestLine:f,nextLongestLine:p,element:m}=r.useMemo((()=>{const n=P(e.prev,t.prev),s=P(e.next,t.next),a=(e.prev||e.next).trimEnd().split(F),l=Math.max(a.length,10);if(i){const e="focus"===i?function(e,t){const[n,r]=function(e,t){if(e){const t=w(e),n=Object.keys(t).map((e=>parseInt(e,10)));return[Math.min(...n),Math.max(...n)]}return[0,t.length-1]}(e.prev,t);return r-n+1}(t,a):i;let r=a.length;for(;re;)a.pop(),r--;n&&!a.includes(n)&&(a[a.length-1]=n)}let c=!1;const u=r.createElement("code",{className:"ch-code-scroll-parent"},r.createElement("br",null),a.map(((e,t)=>{const i=c||e!==n?void 0:h;return c=c||null!=i,r.createElement("div",{ref:i,key:t},o?r.createElement("span",{className:"ch-code-line-number"},"_",l):void 0,r.createElement("div",{style:{display:"inline-block",marginLeft:16}},r.createElement("span",null,e)))})),r.createElement("br",null));return{prevLongestLine:n,nextLongestLine:s,element:u}}),[e]),v=[...s,d,f,p,n,c];return k((()=>{var e;if(h.current){const t=h.current,r=null==t?void 0:t.parentElement,o=r.parentElement,{width:i}=o.getBoundingClientRect();if(!i&&0===c){const e=new ResizeObserver((([t])=>{const{width:n}=t.contentRect;n&&(e.disconnect(),u(1))}));return e.observe(o),()=>e.disconnect()}const s=null==t?void 0:t.querySelector(":scope > div"),a=null==t?void 0:t.querySelector(":scope > span"),d=a?function(e){const t=getComputedStyle(e);return parseFloat(t.width)}(a):0,m=L(s),g=m/f.length||1,b=p.length*g,y=null!==(e=M(s))&&void 0!==e?e:20,x={containerWidth:L(o.parentElement),containerHeight:M(o.parentElement),contentWidth:L(r.parentElement),contentHeight:M(r.parentElement),lineWidths:[m||b||S,b||m||S],lineWidth:[Math.max(m||b||S,g*n),Math.max(b||m||S,g*n)],lineHeight:y,colWidth:g,lineNumberWidth:d,deps:v};l(x)}return()=>{}}),v),!a||function(e,t){for(let n=0;nparseInt(e,10)))}return[...t.keys()]}(t,n);let o="";return n.forEach(((e,t)=>{r.includes(t)&&e.length>o.length&&(o=e)})),o}function L(e){const t=getComputedStyle(e);return parseFloat(t.width)-parseFloat(t.paddingLeft)-parseFloat(t.paddingRight)}function M(e){if(!e)return null;const t=getComputedStyle(e);return parseFloat(t.height)-parseFloat(t.paddingTop)-parseFloat(t.paddingBottom)}function I(){}function $(e,t,n,r,o){for(var i=0,s=t.length,a=0,l=0;ie.length?n:e})),c.value=e.join(d)}else c.value=e.join(n.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var h=t[s-1];return s>1&&"string"==typeof h.value&&(h.added||h.removed)&&e.equals("",h.value)&&(t[s-2].value+=h.value,t.pop()),t}I.prototype={diff:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.callback;"function"==typeof n&&(r=n,n={}),this.options=n;var o=this;function i(e){return r?(setTimeout((function(){r(void 0,e)}),0),!0):e}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e));var s=(t=this.removeEmpty(this.tokenize(t))).length,a=e.length,l=1,c=s+a,u=[{newPos:-1,components:[]}],d=this.extractCommon(u[0],t,e,0);if(u[0].newPos+1>=s&&d+1>=a)return i([{value:this.join(t),count:t.length}]);function h(){for(var n=-1*l;n<=l;n+=2){var r=void 0,c=u[n-1],d=u[n+1],h=(d?d.newPos:0)-n;c&&(u[n-1]=void 0);var f=c&&c.newPos+1=s&&h+1>=a)return i($(o,r.components,t,e,o.useLongestToken));u[n]=r}else u[n]=void 0}var m;l++}if(r)!function e(){setTimeout((function(){if(l>c)return r();h()||e()}),0)}();else for(;l<=c;){var f=h();if(f)return f}},pushComponent:function(e,t,n){var r=e[e.length-1];r&&r.added===t&&r.removed===n?e[e.length-1]={count:r.count+1,added:t,removed:n}:e.push({count:1,added:t,removed:n})},extractCommon:function(e,t,n,r){for(var o=t.length,i=n.length,s=e.newPos,a=s-r,l=0;s+1{if(e.added)for(let t=0;tvoid 0===e.next?Object.assign(Object.assign({},t.prev[e.prev]),{lineNumber:{prev:e.prev+1},move:"exit",enterIndex:null,exitIndex:r++}):void 0===e.prev?Object.assign(Object.assign({},t.next[e.next]),{lineNumber:{next:e.next+1},move:"enter",enterIndex:n++,exitIndex:null}):Object.assign(Object.assign({},t.prev[e.prev]),{lineNumber:{prev:e.prev+1,next:e.next+1},move:"stay",enterIndex:null,exitIndex:null}))),enterCount:n,exitCount:r}}function D(e,t,n){const{lines:r}=e,o=s(e,["lines"]),i=h(t,((e,t)=>function(e,t){return b(e?g(e).map(y):[...t.keys()].map((e=>({[e+1]:!0}))))}(e,"prev"===t?r.filter((e=>"enter"!==e.move)):r.filter((e=>"exit"!==e.move))))),a=r.map((e=>{const{tokens:t}=e,r=s(e,["tokens"]),o={prev:!!e.lineNumber.prev&&i.prev[e.lineNumber.prev],next:!!e.lineNumber.next&&i.next[e.lineNumber.next]},a={prev:e.lineNumber.prev&&n.prev[e.lineNumber.prev]||[],next:e.lineNumber.next&&n.next[e.lineNumber.next]||[]};return Object.assign({focused:h(o,(e=>!!e)),groups:Z(t,o,a)},r)})),l=h(i,(e=>Object.keys(e).map((e=>Number(e))))),c=h(l,(e=>Math.min(...e))),u=h(l,(e=>Math.max(...e)));return Object.assign({lines:a,firstFocusedLineNumber:c,lastFocusedLineNumber:u},o)}function Z(e,t,n){const r=h(t,(e=>Array.isArray(e)?e:[])),o=h(n,(e=>e.map((({columnNumbers:e})=>e)))),i=function(e,t){const n=[...t.map((e=>e.start-1)),...t.map((e=>e.end))];let r=e;return n.forEach((e=>{const t=[];let n=0;r.forEach((r=>{const o=n,i=n+r.content.length;if(o{const r=K(s,t.prev),o=K(s,t.next),i=Y(s,n.prev),c=Y(s,n.next);a&&a.focused.prev===r&&a.focused.next===o&&a.annotation.prev===i&&a.annotation.next===c||(a={focused:{prev:r,next:o},tokens:[],annotation:{prev:i,next:c}},l.push(a)),null==a||a.tokens.push(e),s+=e.content.length})),l.map((e=>({focused:e.focused,tokens:e.tokens,element:G(e)})))}function G(e){return r.createElement(r.Fragment,null,e.tokens.map((({content:e,props:t},n)=>r.createElement("span",Object.assign({},t,{key:n+1}),e))))}function K(e,t){return Array.isArray(t)?t.some((({start:t,end:n})=>t-1<=e&&et.start-1<=e&&er)return i;const s=(t-n)/(r-n);return o+(e.ease||Q.linear)(s)*(i-o)}}function J([e,t],n,r){if(r<=1)return[e,t];const o=t-e,i=o/Math.pow(r,1/8),s=e+(o-i)/(r-1)*n;return[s,s+i]}U.tokenize=function(e){return e.slice()},U.join=U.removeEmpty=function(e){return e};const Q={linear:function(e){return e},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return e*(2-e)},easeInOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1}};function ee(e,t,n,r){const[o,i]=t;return e.map((e=>{const t=h(e.lineNumber,(e=>e&&e-1)),{enterIndex:s,exitIndex:a}=e,l="exit"===e.move?{fixed:!0,value:t.prev}:"enter"===e.move?{fixed:!0,value:t.next}:{fixed:!1,extremes:[t.prev,t.next],interval:[o,i],ease:Q.easeInOutCubic},c="exit"===e.move?{fixed:!1,extremes:[0,-1],ease:Q.easeInQuad,interval:J([0,o],a,r)}:"enter"===e.move?{fixed:!1,extremes:[1,0],ease:Q.easeOutQuad,interval:J([i,1],s,n)}:{fixed:!0,value:0};return Object.assign(Object.assign({},e),{tweenX:c,tweenY:l})}))}function te(e){const t=p(e,[],(e=>e.flatMap((e=>g(e.focus).map((t=>Object.assign(Object.assign({},e),{focus:t}))))))),n=p(t,[],(e=>e.filter(ne))),r=p(t,[],(e=>e.filter((e=>!ne(e)))));return{inlineAnnotations:h(n,(e=>function(e){const t={};return e.forEach((e=>{const n=y(e.focus),r=+Object.keys(n)[0],o=n[r],i=t[r]||[];i.push({columnNumbers:o[0],data:e.data,Component:e.Component}),t[r]=i})),t}(e))),multilineAnnotations:h(r,(e=>function(e){return e.map((e=>({lineNumbers:x(e.focus),data:e.data,Component:e.Component})))}(e)))}}function ne(e){return!!e.focus.match(/(\d+)\[(.+)\]/)}function re(e,t,n){const r=[...t];r.sort(((e,t)=>e.lineNumbers.start-t.lineNumbers.start));let o=0;const i=[];for(;ot.lineNumbers.start)throw"Code Hike can't handle two annotations for the same line";if(t&&n(s)===t.lineNumbers.start){const a={lines:[],annotation:t};for(;s&&(!n(s)||n(s)<=t.lineNumbers.end);)a.lines.push(s),s=e[++o];i.push(a),r.shift()}else if(t){const r={lines:[]};for(;s&&(!n(s)||n(s)0||r.length>0;){const e=o[0],t=i[0],c=e&&e.columnNumbers.start===a,u=t&&t.columnNumbers.start===l;if(al)if(u){const e=t.columnNumbers.end+1;s.push({next:{annotation:t,groups:ie(r,l,e)}}),l=e,i.shift()}else{const e=Math.min(a,(null==t?void 0:t.columnNumbers.start)||a);s.push({next:{groups:ie(r,l,e)}}),l=e}else if(a==l)if(c&&u&&e.columnNumbers.end===t.columnNumbers.end){const c=t.columnNumbers.end+1;s.push({prev:{annotation:e,groups:ie(n,a,c)},next:{annotation:t,groups:ie(r,l,c)}}),a=c,l=c,o.shift(),i.shift()}else if(c){const t=e.columnNumbers.end+1;s.push({prev:{annotation:e,groups:ie(n,a,t)}}),a=t,o.shift()}else if(u){const e=t.columnNumbers.end+1;s.push({next:{annotation:t,groups:ie(r,l,e)}}),l=e,i.shift()}else if(e||t){const o=Math.min((null==e?void 0:e.columnNumbers.start)||Number.MAX_VALUE,(null==t?void 0:t.columnNumbers.start)||Number.MAX_VALUE);s.push({prev:{groups:ie(n,a,o)},next:{groups:ie(r,l,o)}}),a=o,l=o}else s.push({prev:{groups:n},next:{groups:r}}),n=[],r=[]}return s}function ie(e,t,n){const r=[];let o=t;for(;o0;){const t=e.shift();r.push(t);o+=t.tokens.reduce(((e,t)=>e+t.content.length),0)}return r}function se(e){const{highlightedLines:t,focus:n}=e;return r.useMemo((()=>function({focus:e,annotations:t,highlightedLines:n,lang:r}){const o=function(e){return h(e,(e=>e.map((e=>e.tokens.map((e=>e.content)).join(""))).join("\n").trimEnd().concat("\n")))}(n),i=function(e,t){return X(e,t)}(o,n),{inlineAnnotations:a,multilineAnnotations:l}=function(e){return te(e)}(t),c=function(e,t,n){return D(e,t,n)}(i,f(e,null),a),u=function(e,t,n){var{lines:r}=e,o=s(e,["lines"]);const i=function(e,t){return e.map((e=>{var{groups:n}=e,r=s(e,["groups"]);const{lineNumber:o}=r,i={prev:o.prev&&t.prev[o.prev]||[],next:o.next&&t.next[o.next]||[]};return Object.assign(Object.assign({},r),{annotatedGroups:oe(n,i)})}))}(r,t),a=function(e,t){return{prev:re(e,t.prev,(e=>e.lineNumber.prev)),next:re(e,t.next,(e=>e.lineNumber.next))}}(i,n);return Object.assign(Object.assign({},o),{lineGroups:a,lineCount:{prev:r.filter((e=>null!=e.lineNumber.prev)).length,next:r.filter((e=>null!=e.lineNumber.next)).length}})}(c,a,l);return function(e,t,n){const r=(i=e.enterCount,s=e.exitCount,i<=0&&s<=0?[0,1]:i<=0&&s>=1?[.33,1]:i>=1&&s<=0?[0,.67]:[.25,.75]),o=h(e.lineGroups,(t=>t.map((t=>Object.assign(Object.assign({},t),{lines:ee(t.lines,r,e.enterCount,e.exitCount)})))));var i,s;return Object.assign(Object.assign({},e),{groups:o,verticalInterval:r,code:t,lang:n})}(u,o,r)}(e)),[t.prev,t.next,n.prev,n.next])}function ae({dimensions:e,codeStep:t,children:n,minZoom:o=0,maxZoom:i=1.2,center:a=!1,progress:l}){const{prev:c,next:u}=function(e){var{codeStep:t}=e,n=s(e,["codeStep"]);const{lineHeight:r,lineWidth:o}=n.dimensions,i={prev:{extremes:[t.firstFocusedLineNumber.prev-1,t.lastFocusedLineNumber.prev-1],originalContentHeight:t.lineCount.prev*r,lineWidth:o[0]},next:{extremes:[t.firstFocusedLineNumber.next-1,t.lastFocusedLineNumber.next-1],originalContentHeight:t.lineCount.next*r,lineWidth:o[1]}};return h(i,(({extremes:e,originalContentHeight:t,lineWidth:r})=>function({dimensions:e,lineWidth:t,minZoom:n,maxZoom:r,extremes:o,originalContentHeight:i,horizontalCenter:s}){const{lineHeight:a}=e,l=null==e?void 0:e.contentHeight,c=null==e?void 0:e.contentWidth,u=(o[1]-o[0]+3)*a,d=(null==e?void 0:e.lineNumberWidth)||16,h=16,f=Math.max(Math.min((c-d-h)/t,l/u,r),n),p=i*f,m=(o[0]-1)*a*f,v=(o[1]+2)*a*f,g=(v+m)/2,b=v-m,y=l>p?(l-p)/2:(w=l/2-g,E=Math.max(l-p,-m),j=0,w<=E?E:w>=j?j:w),x=s?Math.max(c/2-t*f/2,0):0;var w,E,j;return{zoom:f,dx:x,dy:y,focusHeight:b,focusWidth:t*f}}(Object.assign({extremes:e,originalContentHeight:t,lineWidth:r},n))))}({codeStep:t,dimensions:e,minZoom:o,maxZoom:i,horizontalCenter:a}),d=ue(c.zoom,u.zoom,l),f=ue(c.dx,u.dx,l),p=ue(c.dy,u.dy,l,t.verticalInterval),m=ue(c.focusHeight,u.focusHeight,l),v=ue(c.focusWidth,u.focusWidth,l),g=((null==e?void 0:e.lineNumberWidth)||0)*d||16,b=Math.max(v+g,e.contentWidth),y=g/d;return r.createElement(le,{width:e.containerWidth,height:e.containerHeight,lang:t.lang},r.createElement(ce,{dx:f,dy:p,scale:d,height:Math.max(m,e.contentHeight),width:b},n(v,y)))}function le({width:e,height:t,children:n,lang:o}){return r.createElement("code",{style:{width:e,height:t,position:"relative",overflow:"auto"},className:"ch-code-scroll-parent",children:n,"data-ch-lang":o})}function ce({dx:e,dy:t,scale:n,height:o,width:i,children:s}){return r.createElement("div",{style:{position:"absolute",top:0,left:0,transformOrigin:"top left",width:i,height:o,overflow:"hidden"},className:"ch-code-scroll-content"},r.createElement("div",{style:{position:"absolute",top:0,left:0,transform:`translateX(${e}px) translateY(${t}px) scale(${n})`,transformOrigin:"left top",width:i/n,height:(o-2*t)/n},children:s}))}function ue(e,t,n,r=[0,1]){return V({fixed:!1,interval:r,extremes:[e,t],ease:Q.easeInOutCubic},n)}function de(e){return r.createElement(ae,Object.assign({},e),((t,n)=>r.createElement(he,{codeStep:e.codeStep,focusWidth:t,lineHeight:e.dimensions.lineHeight,progress:e.progress,startX:n,lineNumberWidth:e.dimensions.lineNumberWidth})))}function he({codeStep:e,progress:t,focusWidth:n,lineHeight:o,startX:i,lineNumberWidth:s}){const a=t<.5?e.groups.prev:e.groups.next;return r.createElement(r.Fragment,null,a.map(((e,a)=>{if(!e.annotation)return r.createElement(fe,{lines:e.lines,t:t,focusWidth:n,lineHeight:o,startX:i,key:a,lineNumberWidth:s});const l=V(e.lines[0].tweenY,t),c=e.annotation.lineNumbers.end-e.annotation.lineNumbers.start+1,u=e.annotation.Component;return r.createElement(u,{style:{position:"absolute",height:c*o,width:"100%",transform:`translateY(${l*o}px)`},key:a,data:e.annotation.data,isInline:!1,lines:e.lines},r.createElement(fe,{lines:e.lines,t:t,focusWidth:n,lineHeight:o,startY:l,startX:i,lineNumberWidth:s}))})))}function fe({lines:e,focusWidth:t,lineHeight:n,t:o,startX:i,startY:s=0,lineNumberWidth:a}){return r.createElement(r.Fragment,null,e.map(((e,l)=>{const{tweenX:c,tweenY:u,focused:d}=e,h=V(c,o),f=V(u,o),p=be(d,o,h);return r.createElement(r.Fragment,{key:l},a?r.createElement("span",{className:"ch-code-line-number",style:{position:"absolute",top:0,left:0,transform:`translate(${h*t}px, ${(f-s)*n}px)`,width:a,opacity:p}},o<.5?e.lineNumber.prev:e.lineNumber.next):void 0,r.createElement(ve,{dx:i+h*t,dy:(f-s)*n,width:t,opacity:p},r.createElement(pe,{line:e,progress:o,dx:h})))})))}function pe({line:e,progress:t,dx:n}){return r.createElement("div",{style:{display:"inline-block",width:"100%"}},e.annotatedGroups.map(((e,o)=>r.createElement(me,{annotatedGroup:e,progress:t,dx:n,key:o}))),r.createElement("br",null))}function me({annotatedGroup:e,progress:t,dx:n}){var o,i;const s=t<.5?e.prev:e.next,a=(null==s?void 0:s.groups)||[],l=null===(o=null==s?void 0:s.annotation)||void 0===o?void 0:o.Component,c=a.map(((e,o)=>{const i=be(e.focused,t,n);return r.createElement("span",{style:{opacity:i},key:o+1},e.element)}));return l?r.createElement(l,{children:c,data:null===(i=null==s?void 0:s.annotation)||void 0===i?void 0:i.data,isInline:!0}):r.createElement(r.Fragment,null,c)}function ve({children:e,dx:t,dy:n,opacity:o,width:i}){return r.createElement("div",{style:{position:"absolute",top:0,left:0,transform:`translate(${t}px, ${n}px)`,width:i,display:o<=0?"none":void 0}},e)}const ge=.33;function be(e,t,n){return V({fixed:!1,extremes:[e.prev?.99:ge,e.next?.99:ge],interval:[0,1]},t)-1*Math.abs(n)}function ye({content:e,style:t,className:n}){const[o,i]=r.useState(!1);return r.createElement("button",{type:"button",title:"Copy code",className:n,style:t,onClick:()=>{!function(e){if(!navigator.clipboard)return void function(e){var t=document.createElement("textarea");t.value=e,t.style.top="0",t.style.left="0",t.style.position="fixed",document.body.appendChild(t),t.focus(),t.select();try{document.execCommand("copy")}catch(n){}document.body.removeChild(t)}(e);navigator.clipboard.writeText(e)}(e),i(!0),setTimeout((()=>{i(!1)}),1200)}},r.createElement("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},o?r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"}):r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.6px",d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})))}const xe=10;function we(e){var{tween:t,progress:n,config:o}=e,i=s(e,["tween","progress","config"]);const a=function({tween:e}){return se({highlightedLines:h(e,(e=>e.code.lines)),focus:h(e,(e=>e.focus)),annotations:h(e,(e=>e.annotations)),lang:m(e,(e=>{var t;return null===(t=null==e?void 0:e.code)||void 0===t?void 0:t.lang}))})}({tween:t}),{element:l,dimensions:c}=_(a.code,h(t,(e=>e.focus)),o.minColumns||xe,o.lineNumbers||!1,o.rows,[o.parentHeight]);return!c||o.debug?r.createElement(Ee,{element:l,htmlProps:i,debug:o.debug}):r.createElement(je,{dimensions:c,stepInfo:a,config:o,progress:n,htmlProps:i})}function Ee({element:e,htmlProps:t,debug:n}){return r.createElement(Ce,{htmlProps:t,measured:!1},e)}function je({config:{minZoom:e=1,maxZoom:t=1,horizontalCenter:n=!1},dimensions:o,stepInfo:i,progress:s,htmlProps:a,config:l}){var c;return r.createElement(Ce,{htmlProps:a,measured:!0},r.createElement(de,{codeStep:i,progress:s,dimensions:o,minZoom:e,maxZoom:t,center:n}),l.showCopyButton?r.createElement(ye,{className:"ch-code-button",content:null===(c=null==i?void 0:i.code)||void 0===c?void 0:c.prev}):void 0)}function Ce({htmlProps:e,children:t,measured:n}){return r.createElement("div",Object.assign({},e,{className:`ch-code-wrapper ${(null==e?void 0:e.className)||""}`,"data-ch-measured":n,children:t}))}function Oe(){return"undefined"!=typeof window?performance.now():0}function Ne(e,t){var n=t.stiffness,r=t.damping,o=t.mass,i=t.decimals,s=t.teleport;return{X:e,k:null!=n?n:170,c:null!=r?r:26,m:null!=o?o:1,teleport:null!=s&&s,decimals:null!=i?i:2}}function ke(e,t){var n=t.from,r=t.initialSpeed;return{x0:null!=n?n:e,v0:null!=r?r:0,t0:Oe(),raf:null}}var Se=Math.sqrt,_e=Math.exp,Fe=Math.sin,Pe=Math.cos;function Le(e){var t=e.x0,n=e.v0,r=e.t0,o=e.t,i=e.k,s=e.c,a=e.m,l=e.X,c=t-l,u=(o-r)/1e3,d=s*s-4*i*a;if(d>0){var h=(-s+Se(d))/(2*a),f=(-s-Se(d))/(2*a),p=(c*h-n)/(h-f),m=(n-c*f)/(h-f);return{x:l+p*_e(f*u)+m*_e(h*u),v:p*f*_e(f*u)+m*h*_e(h*u)}}if(d<0){var v=-s/(2*a),g=Se(-d)/(2*a),b=c,y=(n-v*c)/g;return{x:l+_e(v*u)*(b*Pe(g*u)+y*Fe(g*u)),v:_e(v*u)*((y*g+b*v)*Pe(g*u)-(b*g-y*v)*Fe(g*u))}}var x=-s/(2*a),w=c,E=n-x*c;return{x:l+(w+E*u)*_e(x*u),v:(E+w*x+E*x*u)*_e(x*u)}}var Me=[],Ie=null;function $e(e){var t=Me.push(e);return 1===t&&(Ie=requestAnimationFrame(Te)),[Ie,t-1]}function He(e){var t=e[0],n=e[1];t===Ie&&delete Me[n]}function Te(){var e=Oe(),t=Me;Me=[],(0,o.unstable_batchedUpdates)((function(){return t.forEach((function(t){return t&&t(e)}))}))}var ze="undefined"!=typeof window?r.useLayoutEffect:r.useEffect;function Ae(e,t){void 0===t&&(t={});var n=r.useState()[1],o=Ne(e,t),i=function(e,t){var n=r.useRef(null);return null==n.current&&(n.current={config:Ne(e,t),state:ke(e,t)}),n.current}(e,t),s=i.state,a=i.config,l=Oe(),c=s.x0,u=s.v0,d=s.t0,h=a.k,f=a.c,p=a.m,m=a.X,v=o.teleport?{x:m,v:0}:Le({x0:c,v0:u,t0:d,t:l,k:h,c:f,m:p,X:m}),g=v.x,b=v.v,y=function(e,t,n,r){var o=r.decimals,i=r.X,s=r.k,a=r.c,l=r.m;if(We(e,o)!==We(i,o))return!0;var c=n+.016,u=Le({x0:e,v0:t,t0:n,t:c,k:s,c:a,m:l,X:i});return We(u.x,o)!==We(i,o)}(g,b,l,o);return ze((function(){Object.assign(a,o)}),[o.X,o.k,o.c,o.m,o.teleport]),ze((function(){s.x0=g,s.v0=b,s.t0=l}),[g,b,l]),ze((function(){y&&null==s.raf?s.raf=$e((function e(t){var r=s.x0,o=s.v0,i=s.t0,l=a.k,c=a.c,u=a.m,d=a.X,h=a.decimals;We(Le({x0:r,v0:o,t0:i,t:t,k:l,c:c,m:u,X:d}).x,h)!==We(r,h)?(s.raf=null,n(t)):s.raf=$e(e)})):y||null==s.raf||(He(s.raf),s.raf=null)})),ze((function(){return function(){null!=s.raf&&He(s.raf)}}),[]),[We(g,o.decimals),y]}function We(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}const Be={stiffness:120,damping:24,mass:.2,decimals:3};function Re(e){var{step:t,config:n}=e,o=s(e,["step","config"]);const{tween:i,t:a}=function(e,t=Be){const[{target:n,steps:o,index:i},s]=r.useState({target:2,steps:[e,e,e],index:0});r.useEffect((()=>{o[o.length-1]!=e&&s((t=>function(e,t,n){const{steps:r,target:o,index:i}=e,s=r.slice(),a=n-i;return a<1?(s[2]=t,Object.assign(Object.assign({},e),{steps:s})):(s[0]=r[1],s[1]=r[2],s[2]=t,Object.assign(Object.assign({},e),{steps:s,target:o+1,index:i+1}))}(t,e,a)))}),[e]);const[a]=Ae(n,t),l=a-i;return l<=1?{tween:{prev:o[0],next:o[1]},t:l}:{tween:{prev:o[1],next:o[2]},t:l-1}}(t,n.spring);return r.createElement(we,Object.assign({tween:i,progress:a,config:n},o))}const qe=r.forwardRef((function(e,t){var{title:n,children:o,titleBar:i,zoom:a=1,overflow:l}=e,c=s(e,["title","children","titleBar","zoom","overflow"]);const u=i||r.createElement(Ue,{title:n}),d={"--ch-frame-zoom":a,overflow:l};return r.createElement("div",Object.assign({},c,{ref:t}),r.createElement("div",{className:"ch-frame"},r.createElement("div",{className:"ch-frame-title-bar"},u),r.createElement("div",{className:"ch-frame-content"},r.createElement("div",{className:"ch-frame-zoom",style:d},o))))}));function Ue({title:e}){return r.createElement(r.Fragment,null,r.createElement("div",{className:"ch-frame-left-bar"},r.createElement(Xe,null)),r.createElement("div",{className:"ch-frame-middle-bar"},e),r.createElement("div",{className:"ch-frame-right-bar"}))}function Xe(){return r.createElement("div",{className:"ch-frame-buttons"},r.createElement("div",{className:"ch-frame-button ch-frame-button-left"}),r.createElement("div",{className:"ch-frame-button-space"}),r.createElement("div",{className:"ch-frame-button ch-frame-button-middle"}),r.createElement("div",{className:"ch-frame-button-space"}),r.createElement("div",{className:"ch-frame-button ch-frame-button-right"}))}r.forwardRef((function(e,t){var{title:n,children:o,titleBar:i,overflow:a}=e,l=s(e,["title","children","titleBar","overflow"]);const c=i||r.createElement(Ue,{title:n});return r.createElement("div",Object.assign({},l,{ref:t}),r.createElement("div",{className:"ch-simple-frame"},r.createElement("div",{className:"ch-frame-title-bar"},c),o))}));const De=r.forwardRef((function(e,t){var n,{northPanel:o,southPanel:i,terminalPanel:a,style:l,height:c,northButton:u,southButton:d,className:h,onTabClick:f}=e,p=s(e,["northPanel","southPanel","terminalPanel","style","height","northButton","southButton","className","onTabClick"]);return r.createElement("div",Object.assign({ref:t},p,{className:"ch-editor-frame",style:l}),r.createElement("div",{className:"ch-frame-title-bar"},r.createElement(Ze,{tabs:o.tabs,showFrameButtons:!0,button:u,panel:"north",onTabClick:f})),r.createElement("div",{"data-ch-panel":"north",style:o.style,children:o.children}),i&&r.createElement(r.Fragment,null,r.createElement("div",{className:"ch-frame-title-bar",style:{transform:null===(n=i.style)||void 0===n?void 0:n.transform}},r.createElement(Ze,{tabs:i.tabs,showFrameButtons:!1,button:d,topBorder:!0,panel:"south",onTabClick:f})),r.createElement("div",{"data-ch-panel":"south",children:i.children,style:i.style})))}));function Ze({tabs:e,button:t,showFrameButtons:n,topBorder:o,panel:i,onTabClick:s}){return r.createElement(r.Fragment,null,o&&r.createElement("div",{className:"ch-editor-group-border"}),n?r.createElement(Xe,null):r.createElement("div",null),e.map((({title:e,active:t,style:n})=>r.createElement("div",{key:e,title:e,"data-ch-tab":i,"data-active":t,className:"ch-editor-tab",style:n,onClick:s&&(()=>s(e))},r.createElement(Ge,{title:e})))),r.createElement("div",{style:{flex:1,minWidth:"0.8em"}}),t)}function Ge({title:e}){if(!e)return r.createElement("div",null);const t=e.lastIndexOf("/")+1,n=e.substring(t),o=e.substring(0,t);return r.createElement("div",null,r.createElement("span",{style:{opacity:.5}},o),n)}const Ke=r.createElement("span",{className:"ch-terminal-prompt"},"$");function Ye({text:e,progress:t=1,style:n}){const o=function(e,t){if(!e)return[];const n=Math.round(e.length*t),{commands:r}=function(e){const[,...t]=e.split(/^\$\s*/gm),n=t.map((e=>{const[t,...n]=e.split(/\r?\n/);return{run:t,output:n.length>0?n.join("\n"):null}})),r=n[n.length-1],o=n.length>0&&null!=r.output;return{title:o?r.run.split(/(\s+)/)[0]:"bash",isRunning:o,commands:n}}(e.slice(0,n));return r}(e,t);return r.createElement("pre",{style:n,className:"ch-terminal-content"},o.map((({run:e,output:t},n)=>r.createElement(r.Fragment,{key:n},r.createElement("div",null,Ke," ",r.createElement("span",null,e)),t&&r.createElement("div",{className:"ch-terminal-output"},t)))))}function Ve({prev:e="",prevKey:t,next:n="",nextKey:o,progress:i}){return r.createElement("div",{className:"ch-terminal"},r.createElement("div",{style:{position:"relative",transform:`translateY(-${100*i}%)`}},r.createElement(Ye,{text:e,progress:1,key:t}),r.createElement(Ye,{style:{position:"absolute"},text:n,progress:i,key:o})))}function Je({steps:e,progress:t}){const n=e.map((e=>e.text)),o=t%1,i=(s=Math.floor(t),a=0,l=e.length-1,Math.min(Math.max(s,a),l));var s,a,l;const c=i+1;return r.createElement(Ve,{prev:n[i],prevKey:i,next:n[c]||"",nextKey:c,progress:o})}function Qe({prev:e,next:t,t:n,backward:o}){const i=function({prev:e,next:t,t:n,backward:r}){return e||t?!e&&t?et*Math.min(4*n,1):e&&!t?et*Math.max(1-4*n,0):et:0}({prev:e,next:t,t:n,backward:o});return i?r.createElement("div",{className:"ch-editor-terminal",style:{height:i}},r.createElement("div",{className:"ch-editor-terminal-tab"},r.createElement("span",null,"Terminal")),r.createElement("div",{className:"ch-editor-terminal-content"},r.createElement(Je,{steps:[{text:e||""},{text:t||""}],progress:n}),")")):null}const et=150;function tt(e){return Array.isArray(e.rows)?Object.assign(Object.assign({},e),{rows:e.rows[0]}):e}function nt(e){return Array.isArray(e.rows)?Object.assign(Object.assign({},e),{rows:e.rows[1]}):e}function rt(e,t,n,o,i,s){const{prevSnapshot:a,nextSnapshot:l}=function(e,t,n){const[{prevSnapshot:o,nextSnapshot:i},s]=r.useState({prevSnapshot:null,nextSnapshot:null});return dt((()=>{(o||i)&&s({prevSnapshot:null,nextSnapshot:null})}),[t,n]),dt((()=>{if(o){if(!i){const t=e.current;s((e=>Object.assign(Object.assign({},e),{nextSnapshot:Object.assign(Object.assign({},ht(t,n)),ft(t,n))})))}}else{const n=e.current;s((e=>Object.assign(Object.assign({},e),{prevSnapshot:Object.assign(Object.assign({},ht(n,t)),ft(n,t))})))}})),{prevSnapshot:o,nextSnapshot:i}}(e,t,n);if(!a)return function(e,t,n){const o=e.northPanel,i=e.southPanel,{prevNorthFile:s,prevSouthFile:a,nextNorthFile:l,nextSouthFile:c}=at(e,t,!0);return{northContent:st(s),northPanel:{tabs:o.tabs.map((e=>({title:e,active:e===o.active,style:{}}))),style:{flexGrow:1,overflow:"hidden"},children:r.createElement(it,{codeConfig:tt(n),prevFile:s,nextFile:s,t:0,parentHeight:"0"})},southContent:st(a),southPanel:i&&{tabs:i.tabs.map((e=>({title:e,active:e===i.active,style:{}}))),style:{flexGrow:1,overflow:"hidden"},children:r.createElement(it,{codeConfig:nt(n),prevFile:a,nextFile:a,t:0,parentHeight:"0"})}}}(t,n,s);if(!l)return ot(t,n,s);if(1===o)return ot(t,n,s);const c=t.southPanel||n.southPanel,{prevNorthFile:u,prevSouthFile:d,nextNorthFile:h,nextSouthFile:f}=at(t,n,0==o||i),{northStyle:p,southStyle:m}=function(e,t,n){if(null===e.southHeight&&null===t.southHeight)return{northStyle:{minHeight:e.northHeight}};if(null!==e.southHeight&&null===t.southHeight&&t.northKey!==e.southKey)return{northStyle:{minHeight:lt(e.northHeight,t.northHeight,n)},southStyle:{minHeight:e.southHeight}};if(null!==e.southHeight&&null===t.southHeight&&e.southKey===t.northKey)return{northStyle:{minHeight:e.northHeight},southStyle:{position:"relative",minHeight:lt(e.southHeight,t.northHeight,n),transform:`translateY(${lt(0,-(e.northHeight+e.titleBarHeight),n)}px)`}};if(null===e.southHeight&&null!==t.southHeight&&e.northKey!==t.southKey)return{northStyle:{minHeight:lt(e.northHeight,t.northHeight,n)},southStyle:{position:"relative",minHeight:t.southHeight}};if(null===e.southHeight&&null!==t.southHeight&&e.northKey===t.southKey)return{northStyle:{minHeight:t.northHeight},southStyle:{position:"relative",minHeight:lt(e.northHeight,t.southHeight,n),transform:`translateY(${lt(-(t.northHeight+t.titleBarHeight),0,n)}px)`}};return{northStyle:{minHeight:lt(e.northHeight,t.northHeight,n)},southStyle:{minHeight:lt(e.southHeight,t.southHeight,n)}}}(a,l,o),{northTabs:v,southTabs:g}=function(e,t,n,r,o){if(!e.southTabs&&ut(r,e.northTabs))return{northTabs:ct(t.northTabs,t.southTabs,e.southTabs,e.northTabs,n,o),southTabs:ct(t.southTabs,t.northTabs,e.northTabs,e.southTabs,r,o)};if(!t.southTabs&&ut(r,t.northTabs))return{northTabs:ct(t.southTabs,t.northTabs,e.northTabs,e.southTabs,n,o),southTabs:ct(t.northTabs,t.southTabs,e.southTabs,e.northTabs,r,o)};return{northTabs:ct(t.northTabs,t.southTabs,e.northTabs,e.southTabs,n,o),southTabs:ct(t.southTabs,t.northTabs,e.southTabs,e.northTabs,r,o)}}(a,l,u.name,null==d?void 0:d.name,o);return{northContent:st(h),northPanel:{tabs:v,style:p,children:r.createElement(it,{codeConfig:tt(s),prevFile:u,nextFile:h,t:o,parentHeight:p.height||p.minHeight})},southContent:st(f),southPanel:c&&{tabs:g,style:m,children:r.createElement(it,{codeConfig:nt(s),prevFile:d,nextFile:f,t:o,parentHeight:(null==m?void 0:m.height)||(null==m?void 0:m.minHeight)})}}}function ot(e,t,n){var o;const i=t.northPanel,s=t.southPanel;let{prevNorthFile:a,prevSouthFile:l,nextNorthFile:c,nextSouthFile:u}=at(e,t,!1);return!s&&i.active===(null===(o=null==e?void 0:e.southPanel)||void 0===o?void 0:o.active)&&(c=u),{northContent:st(c),northPanel:{tabs:i.tabs.map((e=>({title:e,active:e===i.active,style:{}}))),style:{flexGrow:1,overflow:"hidden"},children:r.createElement(it,{codeConfig:tt(n),prevFile:c,nextFile:c,t:1,parentHeight:"1"})},southContent:st(u),southPanel:s&&{tabs:s.tabs.map((e=>({title:e,active:e===s.active,style:{}}))),style:{flexGrow:1,overflow:"hidden"},children:r.createElement(it,{codeConfig:nt(n),prevFile:u,nextFile:u,t:1,parentHeight:"1"})}}}function it({prevFile:e,nextFile:t,t:n,codeConfig:o,parentHeight:i}){var s;const a=Object.assign(Object.assign({},null==o?void 0:o.htmlProps),{style:Object.assign({height:"100%"},null===(s=null==o?void 0:o.htmlProps)||void 0===s?void 0:s.style)});return r.createElement(we,Object.assign({progress:n,tween:{prev:e,next:t},config:Object.assign(Object.assign({},o),{parentHeight:i})},a))}function st(e){return e?v(e.code):""}function at(e,t,n){var r,o;const i=e.northPanel.active,s=t.northPanel.active,a=null===(r=e.southPanel)||void 0===r?void 0:r.active,l=null===(o=t.southPanel)||void 0===o?void 0:o.active,c=e.files.find((e=>e.name===i)),u=t.files.find((e=>e.name===s)),d=a?e.files.find((e=>e.name===a)):null,h=l?t.files.find((e=>e.name===l)):null;if(!a&&i===l)return{prevNorthFile:u,nextNorthFile:u,prevSouthFile:c,nextSouthFile:h};if(!l&&s===a)return{prevNorthFile:c,nextNorthFile:c,prevSouthFile:d,nextSouthFile:u};return{prevNorthFile:i===s||n?c:u,nextNorthFile:i===s?u:n?c:u,prevSouthFile:a===l?d:n?d||h:h||d,nextSouthFile:a===l?h:n?d||h:h||d}}function lt(e,t,n){return e+(t-e)*n}function ct(e,t,n,r,o,i){const s=e?Object.keys(e).filter((e=>ut(e,n)||!n)).map((t=>{const r=n&&n[t],s=e[t],a=r?r.left+(s.left-r.left)*i:s.left,l=r?r.width+(s.width-r.width)*i:s.width;return{active:t===o,title:t,style:{position:"absolute",transform:`translateX(${a}px)`,width:l}}})):[],a=e?Object.keys(e).filter((e=>n&&!ut(e,n))).map((t=>{const n=e[t];return{active:t===o,title:t,style:{position:"absolute",transform:`translateX(${n.left}px)`,opacity:i,width:n.width}}})):[];!e||Object.keys(e).filter((e=>ut(e,r))).map((t=>{const n=r[t],i=e[t].left-n.left;return{active:t===o,title:t,style:{position:"absolute",transform:`translateX(${i}px)`}}}));return[...a,...s,...n?Object.keys(n).filter((t=>!ut(t,e))).map((e=>{const t=n[e];return{active:e===o,title:e,style:{position:"absolute",opacity:1-i,transform:`translateX(${t.left}px)`,width:t.width}}})):[]]}function ut(e,t){return t&&e&&e in t}const dt="undefined"!=typeof window?r.useLayoutEffect:r.useEffect;function ht(e,t){var n;const r=e.querySelector("[data-ch-panel='north']"),o=e.querySelector("[data-ch-panel='south']");return{titleBarHeight:e.querySelector(".ch-frame-title-bar").getBoundingClientRect().height,northHeight:r.getBoundingClientRect().height,northKey:t.northPanel.active,southHeight:(null==o?void 0:o.getBoundingClientRect().height)||null,southKey:null===(n=t.southPanel)||void 0===n?void 0:n.active}}function ft(e,t){var n;const r=Array.from(e.querySelectorAll("[data-ch-tab='north']")),o=Array.from(e.querySelectorAll("[data-ch-tab='south']"));return{northTabs:pt(r,t.northPanel.active),southTabs:pt(o,null===(n=t.southPanel)||void 0===n?void 0:n.active)}}function pt(e,t){if(!e[0])return null;const n=e[0].parentElement.getBoundingClientRect().left,r={};return e.forEach((e=>{const o=e.getAttribute("title"),i=e.getBoundingClientRect();r[o]={left:i.left-n,width:i.width,active:o===t}})),r}function mt({files:e,startingFileName:t}){const[n,o]=r.useState((()=>e.find((e=>e.name===t))));return r.createElement("div",{className:"ch-code-browser"},r.createElement(vt,{files:e,activeFile:n,setActiveFile:o}),r.createElement(yt,{file:n}))}function vt({files:e,activeFile:t,setActiveFile:n}){const o=r.useMemo((()=>function(e){let t=[];for(const n of e){const e=n.name.split("/");let r=t;for(let t=0;te.name===o));if(-1===s){const e={name:o,children:[],codeFile:void 0};i&&(e.codeFile=n),r.push(e),r=e.children}else r=r[s].children}}return t=xt(t),t}(e)),[e]);return r.createElement("div",{className:"ch-code-browser-sidebar"},r.createElement(gt,{tree:o,activeFile:t,setActiveFile:n}))}function gt({tree:e,activeFile:t,setActiveFile:n,level:o=0}){return r.createElement(r.Fragment,null,e.map((e=>r.createElement(bt,{key:e.name,node:e,activeFile:t,setActiveFile:n,level:o}))))}function bt({node:e,activeFile:t,setActiveFile:n,level:o}){const i=e.children&&e.children.length>0,s=e.codeFile===t;return i?r.createElement("div",null,r.createElement("div",{className:"ch-code-browser-sidebar-folder"},r.createElement("div",{style:{paddingLeft:1.5*o+"ch"}},e.name)),r.createElement(gt,{tree:e.children,activeFile:t,setActiveFile:n,level:o+1})):r.createElement("div",null,r.createElement("div",{className:"ch-code-browser-sidebar-file","data-selected":s,onClick:()=>n(e.codeFile)},r.createElement("div",{style:{paddingLeft:1.5*o+"ch"}},e.name)))}function yt({file:e}){return r.createElement("div",{className:"ch-code-browser-content"},r.createElement(ye,{className:"ch-code-browser-button",content:v(e.code)}),e.code.lines.map(((e,t)=>r.createElement("div",{key:t},e.tokens.map(((e,t)=>r.createElement("span",Object.assign({key:t},e.props),e.content))),r.createElement("br",null)))))}function xt(e){for(const t of e)t.children=xt(t.children);return e.sort(((e,t)=>{const n=e.children&&e.children.length>0,r=t.children&&t.children.length>0;return n&&r||!n&&!r?e.name.localeCompare(t.name):n?-1:1}))}function wt({style:e,step:t,className:n}){const[o,i]=r.useState(!1),[s,a]=r.useState(!0),l=r.useRef(null),c=t.files;return r.useEffect((()=>{l.current&&!l.current.showModal&&a(!1)}),[]),s?r.createElement(r.Fragment,null,r.createElement(Et,{className:n,style:e,onClick:()=>{l.current.showModal(),document.body.classList.add("ch-no-scroll"),i(!0)}}),r.createElement("dialog",{ref:l,className:"ch-expand-dialog",onClose:()=>{i(!1)},onClick:e=>{e.currentTarget===e.target&&(l.current.close(),document.body.classList.remove("ch-no-scroll"))}},r.createElement(jt,{onClick:()=>{l.current.close(),document.body.classList.remove("ch-no-scroll")}}),o?r.createElement("div",{className:"ch-expand-dialog-content"},r.createElement(mt,{files:c,startingFileName:t.northPanel.active})):void 0)):null}function Et({onClick:e,style:t,className:n}){return r.createElement("button",{type:"button",title:"Expand",style:t,onClick:e,className:n},r.createElement("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4"})))}function jt({onClick:e}){return r.createElement("button",{onClick:e,className:"ch-expand-close",type:"button",title:"Close"},r.createElement("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})))}const Ct={files:[{code:{lines:[],lang:"js"},focus:"",name:""}],northPanel:{active:"",tabs:[""],heightRatio:1}};function Ot(e){var{prev:t=Ct,next:n,t:o,backward:i,codeConfig:a,frameProps:l={}}=e,c=s(e,["prev","next","t","backward","codeConfig","frameProps"]);const u=r.createRef(),{showCopyButton:d,showExpandButton:h}=a,f=s(a,["showCopyButton","showExpandButton"]),{northPanel:p,southPanel:m,northContent:v,southContent:g}=rt(u,t,n||t,o,i,f),[b,y]=r.useState(void 0);k((()=>{var e;const t=null===(e=u.current)||void 0===e?void 0:e.getBoundingClientRect().height;y(t)}),[]);const x=Object.assign(Object.assign(Object.assign({},l),c),{style:Object.assign(Object.assign({},null==l?void 0:l.style),null==c?void 0:c.style)});b&&(x.style.height=b,x.style.maxHeight=b);const w=r.createElement(r.Fragment,null,d?r.createElement(ye,{className:"ch-editor-button",content:v}):void 0,h?r.createElement(wt,{className:"ch-editor-button",step:n||t}):void 0),E=d?r.createElement(ye,{className:"ch-editor-button",content:g}):void 0,j=r.createElement(Qe,{prev:t.terminal,next:(n||t).terminal,t:o,backward:i});return r.createElement(De,Object.assign({ref:u},x,{northPanel:p,southPanel:m,terminalPanel:j,northButton:w,southButton:E}))}const Nt={stiffness:120,damping:24,mass:.2,decimals:3};function kt(e){var{northPanel:t,southPanel:n,files:o,terminal:i,springConfig:a}=e,l=s(e,["northPanel","southPanel","files","terminal","springConfig"]);const c=r.useMemo((()=>({northPanel:t,southPanel:n,files:o,terminal:i})),[t,n,o,i]),{prev:u,next:d,t:h}=function(e,t=Nt){const[{target:n,steps:o,index:i},s]=r.useState({target:2,steps:[e,e,e],index:0});r.useEffect((()=>{o[o.length-1]!=e&&s((t=>function(e,t,n){const{steps:r,target:o,index:i}=e,s=r.slice(),a=n-i;return a<1?(s[2]=t,Object.assign(Object.assign({},e),{steps:s})):(s[0]=r[1],s[1]=r[2],s[2]=t,Object.assign(Object.assign({},e),{steps:s,target:o+1,index:i+1}))}(t,e,a)))}),[e]);const[a]=Ae(n,t),l=a-i;return l<=1?{prev:o[0],next:o[1],t:l}:{prev:o[1],next:o[2],t:l-1}}(c,a);return r.createElement(Ot,Object.assign({t:h,backward:!1,prev:u,next:d},l))}function St(e){const[t,n]=r.useState(e);return r.createElement(_t,Object.assign({},t,{onTabClick:function(e){const r=Ft(t,e,null);n(Object.assign(Object.assign({},t),r))}}))}function _t(e){var t,n,{onTabClick:o}=e,i=s(e,["onTabClick"]);const a=function(e){var t,n,r,o,i,a,l,c,u;const{lineNumbers:d,showCopyButton:h,showExpandButton:f,minZoom:p,maxZoom:m}=e,v=s(e,["lineNumbers","showCopyButton","showExpandButton","minZoom","maxZoom"]),g=Object.assign(Object.assign({},e.codeConfig),{maxZoom:null==m?null===(t=e.codeConfig)||void 0===t?void 0:t.maxZoom:m,minZoom:null==p?null===(n=e.codeConfig)||void 0===n?void 0:n.minZoom:p,horizontalCenter:null!==(o=null===(r=e.codeConfig)||void 0===r?void 0:r.horizontalCenter)&&void 0!==o?o:e.horizontalCenter,lineNumbers:null==d?null===(i=e.codeConfig)||void 0===i?void 0:i.lineNumbers:d,showCopyButton:null==h?null===(a=e.codeConfig)||void 0===a?void 0:a.showCopyButton:h,showExpandButton:null==f?null===(l=e.codeConfig)||void 0===l?void 0:l.showExpandButton:f,rows:e.rows,debug:null!==(c=e.debug)&&void 0!==c?c:null===(u=e.codeConfig)||void 0===u?void 0:u.debug});return Object.assign(Object.assign({},v),{codeConfig:g})}(i),{className:l,style:c,codeConfig:u}=a,d=s(a,["className","style","codeConfig"]);if(i.southPanel||1!==i.files.length||i.files[0].name){const e=Object.assign(Object.assign({},null==d?void 0:d.frameProps),{onTabClick:o});return r.createElement("div",{className:`ch-codegroup not-prose ${l||""}`,"data-ch-theme":null===(n=i.codeConfig)||void 0===n?void 0:n.themeName,style:c},r.createElement(kt,Object.assign({},d,{frameProps:e,codeConfig:u})))}return r.createElement("div",{className:`ch-codeblock not-prose ${l||""}`,"data-ch-theme":null===(t=i.codeConfig)||void 0===t?void 0:t.themeName,style:c},r.createElement(Re,{className:"ch-code",config:u,step:d.files[0]}))}function Ft(e,t,n){const r=t||e.northPanel.active,o=e.files.map((e=>e.name===r?Object.assign(Object.assign({},e),{focus:null===n?e.focus:n}):e));let i=Object.assign({},e.northPanel),s=e.southPanel&&Object.assign({},e.southPanel);return e.northPanel.tabs.includes(r)?i.active=r:s&&(s.active=r),{files:o,northPanel:i,southPanel:s}}r.createContext({props:null,setFocus:()=>{}});function Pt({focus:e,file:t,children:n,id:o}){const{activate:i,reset:s,activatedId:a}=r.useContext(Lt),l=a===o;return r.createElement("span",{className:"ch-section-link","data-active":l,children:n,onMouseOver:()=>i({fileName:t,focus:e,id:o}),onMouseOut:s})}const Lt=r.createContext({activatedId:void 0,activate:()=>{},reset:()=>{}});function Mt({onActivation:e,onReset:t,children:n}){const[o,i]=r.useState(void 0),s=r.useCallback((t=>{i(t.id),e(t)}),[e]),a=r.useCallback((()=>{i(void 0),t()}),[t]);return r.createElement(Lt.Provider,{value:{activate:s,reset:a,activatedId:o}},n)}function It(){return r.createElement("svg",{fill:"currentColor",preserveAspectRatio:"xMidYMid meet",height:"1em",viewBox:"13 10 14 23",className:"ch-browser-button ch-browser-back-button"},r.createElement("g",null,r.createElement("path",{d:"m26.5 12.1q0 0.3-0.2 0.6l-8.8 8.7 8.8 8.8q0.2 0.2 0.2 0.5t-0.2 0.5l-1.1 1.1q-0.3 0.3-0.6 0.3t-0.5-0.3l-10.4-10.4q-0.2-0.2-0.2-0.5t0.2-0.5l10.4-10.4q0.3-0.2 0.5-0.2t0.6 0.2l1.1 1.1q0.2 0.2 0.2 0.5z"})))}function $t(){return r.createElement("svg",{fill:"currentColor",preserveAspectRatio:"xMidYMid meet",height:"1em",viewBox:"13 10 14 23",className:"ch-browser-button ch-browser-forward-button"},r.createElement("g",null,r.createElement("path",{d:"m26.3 21.4q0 0.3-0.2 0.5l-10.4 10.4q-0.3 0.3-0.6 0.3t-0.5-0.3l-1.1-1.1q-0.2-0.2-0.2-0.5t0.2-0.5l8.8-8.8-8.8-8.7q-0.2-0.3-0.2-0.6t0.2-0.5l1.1-1.1q0.3-0.2 0.5-0.2t0.6 0.2l10.4 10.4q0.2 0.2 0.2 0.5z"})))}function Ht({href:e}){return r.createElement("a",{className:"ch-browser-button ch-browser-open-button",title:"Open in new tab",href:e,target:"_blank",rel:"noopener noreferrer"},r.createElement("svg",{stroke:"currentColor",fill:"currentColor",strokeWidth:"0",viewBox:"3 3 18 18",height:"1em",width:"1em",className:"ch-browser-open-icon",xmlns:"http://www.w3.org/2000/svg"},r.createElement("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"})))}function Tt({url:e,linkUrl:t}){return r.createElement(r.Fragment,null,r.createElement(Xe,null),r.createElement(It,null),r.createElement($t,null),r.createElement("input",{value:e||"",readOnly:!0}),r.createElement(Ht,{href:t}))}function zt(e){return r.useMemo((()=>e?e.map((e=>{const{displayUrl:t,loadUrl:n}=function(e,t,n){const r="undefined"!=typeof window?window.origin:"",o=e&&!0===n?r+e:e;return{displayUrl:o,loadUrl:t||o}}(e.url,e.loadUrl,e.prependOrigin);return{zoom:e.zoom||1,displayUrl:t,loadUrl:n,children:e.children}})):[{zoom:1}]),[e])}const At=r.forwardRef((function(e,t){var{progress:n=0,backward:o=!1,steps:i,transition:a="none"}=e,l=s(e,["progress","backward","steps","transition"]);const c=zt(i),u=Math.round(n),{zoom:d,displayUrl:h,loadUrl:f,children:p}=c[u];return r.createElement(qe,Object.assign({},l,{zoom:d,className:`ch-mini-browser ${l.className||""}`,style:Object.assign(Object.assign({},Wt({progress:n,transition:a})),l.style),titleBar:r.createElement(Tt,{url:h,linkUrl:f})}),p||r.createElement("iframe",{ref:t,src:f}))}));function Wt({progress:e,transition:t}){if("slide"===t){const t=50,n=e-Math.floor(e),r=n<=.5?-t*n:t-t*n,o=2*Math.abs(n-.5);return{transform:`translateX(${r}px)`,opacity:o*o}}return{}}function Bt(e){var{url:t,loadUrl:n,prependOrigin:o,children:i,zoom:a}=e,l=s(e,["url","loadUrl","prependOrigin","children","zoom"]);const[c,u]=function({url:e,loadUrl:t,prependOrigin:n,children:o,zoom:i}){const[s,a]=r.useState({target:0,steps:[{url:e,loadUrl:t,prependOrigin:n,children:o,zoom:i}]});r.useEffect((()=>{const r=s.steps[s.steps.length-1];r.url===e&&r.loadUrl===t&&r.prependOrigin===n&&r.children===o||a((r=>({target:r.target+1,steps:[...r.steps,{url:e,loadUrl:t,prependOrigin:n,children:o,zoom:i}]})))}),[e,t,n,o,i]);const[l]=Ae(s.target,{stiffness:100,decimals:3});return[s.steps,l]}({url:t,loadUrl:n,prependOrigin:o,children:i,zoom:a});return r.createElement(At,Object.assign({},l,{steps:c,progress:u}))}var Rt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},qt={};Object.defineProperty(qt,"__esModule",{value:!0}),qt.getMainFile=function(e){return"vue-cli"===e?"src/main.js":"angular-cli"===e?"src/main.ts":"create-react-app-typescript"===e?"src/index.tsx":"parcel"===e?"index.html":"gatsby"===e?"src/pages/index.js":"nuxt"===e||"next"===e||"apollo"===e||"reason"===e||"sapper"===e?"package.json":"nest"===e?"src/main.ts":"static"===e?"index.html":"src/index.js"};var Ut="sandbox.config.json";var Xt=qt.getTemplate=function(e,t){var n=t[Ut]||t["/"+Ut];if(n)try{var r=JSON.parse(n.content);if(r.template)return r.template}catch(f){}var o=e.dependencies,i=void 0===o?{}:o,s=e.devDependencies,a=void 0===s?{}:s,l=Object.keys(i).concat(Object.keys(a)),c=["nuxt","nuxt-edge"];if(l.some((function(e){return c.indexOf(e)>-1})))return"nuxt";if(l.indexOf("next")>-1)return"next";var u=["apollo-server","apollo-server-express","apollo-server-hapi","apollo-server-koa","apollo-server-lambda","apollo-server-micro"];if(l.some((function(e){return u.indexOf(e)>-1})))return"apollo";if(l.indexOf("ember-cli")>-1)return"ember";if(l.indexOf("sapper")>-1)return"sapper";var d=Object.keys(t);if(d.some((function(e){return e.endsWith(".vue")})))return"vue-cli";if(d.some((function(e){return e.endsWith(".re")})))return"reason";if(l.indexOf("gatsby")>-1)return"gatsby";if(l.indexOf("parcel-bundler")>-1)return"parcel";if(l.indexOf("react-scripts")>-1)return"create-react-app";if(l.indexOf("react-scripts-ts")>-1)return"create-react-app-typescript";if(l.indexOf("@angular/core")>-1)return"angular-cli";if(l.indexOf("preact-cli")>-1)return"preact-cli";if(l.indexOf("svelte")>-1)return"svelte";if(l.indexOf("vue")>-1)return"vue-cli";var h=["@dojo/core","@dojo/framework"];return l.some((function(e){return h.indexOf(e)>-1}))?"@dojo/cli-create-app":l.indexOf("cx")>-1?"cxjs":l.indexOf("@nestjs/core")>-1||l.indexOf("@nestjs/common")>-1?"nest":void 0},Dt={exports:{}};!function(e,t){var n="__lodash_hash_undefined__",r=1,o=2,i=9007199254740991,s="[object Arguments]",a="[object Array]",l="[object AsyncFunction]",c="[object Boolean]",u="[object Date]",d="[object Error]",h="[object Function]",f="[object GeneratorFunction]",p="[object Map]",m="[object Number]",v="[object Null]",g="[object Object]",b="[object Promise]",y="[object Proxy]",x="[object RegExp]",w="[object Set]",E="[object String]",j="[object Symbol]",C="[object Undefined]",O="[object WeakMap]",N="[object ArrayBuffer]",k="[object DataView]",S=/^\[object .+?Constructor\]$/,_=/^(?:0|[1-9]\d*)$/,F={};F["[object Float32Array]"]=F["[object Float64Array]"]=F["[object Int8Array]"]=F["[object Int16Array]"]=F["[object Int32Array]"]=F["[object Uint8Array]"]=F["[object Uint8ClampedArray]"]=F["[object Uint16Array]"]=F["[object Uint32Array]"]=!0,F[s]=F[a]=F[N]=F[c]=F[k]=F[u]=F[d]=F[h]=F[p]=F[m]=F[g]=F[x]=F[w]=F[E]=F[O]=!1;var P="object"==typeof Rt&&Rt&&Rt.Object===Object&&Rt,L="object"==typeof self&&self&&self.Object===Object&&self,M=P||L||Function("return this")(),I=t&&!t.nodeType&&t,$=I&&e&&!e.nodeType&&e,H=$&&$.exports===I,T=H&&P.process,z=function(){try{return T&&T.binding&&T.binding("util")}catch(e){}}(),A=z&&z.isTypedArray;function W(e,t){for(var n=-1,r=null==e?0:e.length;++nc))return!1;var d=a.get(e);if(d&&a.get(t))return d==t;var h=-1,f=!0,p=n&o?new Ne:void 0;for(a.set(e,t),a.set(t,e);++h-1},Ce.prototype.set=function(e,t){var n=this.__data__,r=_e(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Oe.prototype.clear=function(){this.size=0,this.__data__={hash:new je,map:new(de||Ce),string:new je}},Oe.prototype.delete=function(e){var t=Te(this,e).delete(e);return this.size-=t?1:0,t},Oe.prototype.get=function(e){return Te(this,e).get(e)},Oe.prototype.has=function(e){return Te(this,e).has(e)},Oe.prototype.set=function(e,t){var n=Te(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Ne.prototype.add=Ne.prototype.push=function(e){return this.__data__.set(e,n),this},Ne.prototype.has=function(e){return this.__data__.has(e)},ke.prototype.clear=function(){this.__data__=new Ce,this.size=0},ke.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},ke.prototype.get=function(e){return this.__data__.get(e)},ke.prototype.has=function(e){return this.__data__.has(e)},ke.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ce){var r=n.__data__;if(!de||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Oe(r)}return n.set(e,t),this.size=n.size,this};var Ae=ae?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n-1&&e%1==0&&e-1&&e%1==0&&e<=i}function Ke(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ye(e){return null!=e&&"object"==typeof e}var Ve=A?function(e){return function(t){return e(t)}}(A):function(e){return Ye(e)&&Ge(e.length)&&!!F[Fe(e)]};function Je(e){return null!=(t=e)&&Ge(t.length)&&!Ze(t)?Se(e):Ie(e);var t}e.exports=function(e,t){return Le(e,t)}}(Dt,Dt.exports);var Zt=Dt.exports,Gt=()=>Math.floor(1e6*Math.random()+1e6*Math.random()),Kt=class{constructor(e,t,n){this.type=e,this.handleMessage=t,this.target=n,this.outgoingMessages=new Set,this._messageListener=async e=>{var t;const{data:n}=e;if(n.$type!==this.getTypeId())return;if(this.outgoingMessages.has(n.$id))return;let r={$originId:this.internalId,$type:this.getTypeId(),$id:n.$id};try{const e=await this.handleMessage(n.$data);r.$data=e}catch(o){o.message||i.error(o),r.$error={message:null!=(t=o.message)?t:"Unknown error"}}e.source?e.source.postMessage(r,"*"):this._postMessage(r)},this.createConnection(),this.internalId=Gt(),this.isWorker="Worker"===(e=>{try{return e.constructor.name}catch(t){return""}})(n)}getTypeId(){return`p-${this.type}`}createConnection(){self.addEventListener("message",this._messageListener)}dispose(){self.removeEventListener("message",this._messageListener)}sendMessage(e){return new Promise((t=>{const n=Gt(),r={$originId:this.internalId,$type:this.getTypeId(),$data:e,$id:n};this.outgoingMessages.add(n);const o=e=>{const{data:r}=e;r.$type===this.getTypeId()&&r.$id===n&&r.$originId!==this.internalId&&(t(r.$data),self.removeEventListener("message",o))};self.addEventListener("message",o),this._postMessage(r)}))}_postMessage(e){this.isWorker||"undefined"!=typeof DedicatedWorkerGlobalScope&&this.target instanceof DedicatedWorkerGlobalScope?this.target.postMessage(e):this.target.postMessage(e,"*")}},Yt=class{constructor(e,t){this.globalListeners={},this.globalListenersCount=0,this.channelListeners={},this.channelListenersCount=0,this.channelId=Math.floor(1e6*Math.random()),this.frameWindow=e.contentWindow,this.origin=t,this.globalListeners=[],this.channelListeners=[],this.eventListener=this.eventListener.bind(this),"undefined"!=typeof window&&window.addEventListener("message",this.eventListener)}cleanup(){window.removeEventListener("message",this.eventListener),this.globalListeners={},this.channelListeners={},this.globalListenersCount=0,this.channelListenersCount=0}register(){this.frameWindow&&this.frameWindow.postMessage({type:"register-frame",origin:document.location.origin,id:this.channelId},this.origin)}dispatch(e){this.frameWindow&&this.frameWindow.postMessage({$id:this.channelId,codesandbox:!0,...e},this.origin)}globalListen(e){if("function"!=typeof e)return()=>{};const t=this.globalListenersCount;return this.globalListeners[t]=e,this.globalListenersCount++,()=>{delete this.globalListeners[t]}}channelListen(e){if("function"!=typeof e)return()=>{};const t=this.channelListenersCount;return this.channelListeners[t]=e,this.channelListenersCount++,()=>{delete this.channelListeners[t]}}eventListener(e){if(e.source!==this.frameWindow)return;const t=e.data;t.codesandbox&&(Object.values(this.globalListeners).forEach((e=>e(t))),t.$id===this.channelId&&Object.values(this.channelListeners).forEach((e=>e(t))))}};function Vt(e={},t={},n="/index.js"){return JSON.stringify({name:"sandpack-project",main:n,dependencies:e,devDependencies:t},null,2)}function Jt(e){if("SyntaxError"===e.title){const{title:t,path:n,message:r,line:o,column:i}=e;return{title:t,path:n,message:r,line:o,column:i}}const t=function(e){if(!e)return;return e.find((e=>!!e._originalFileName))}(e.payload.frames);if(!t)return{message:e.message};const n=function(e){const t=e._originalScriptCode[e._originalScriptCode.length-1].lineNumber.toString().length,n=2+t+3+e._originalColumnNumber;return e._originalScriptCode.reduce(((e,r)=>{const o=r.highlight?">":" ",i=r.lineNumber.toString().length===t?`${r.lineNumber}`:` ${r.lineNumber}`,s=r.highlight?"\n"+" ".repeat(n)+"^":"";return e+"\n"+o+" "+i+" | "+r.content+s}),"")}(t),r=(o=t)?` (${o._originalLineNumber}:${o._originalColumnNumber})`:"";var o;const i=function(e,t,n,r){return`${e}: ${t}${n}\n${r}`}(t._originalFileName,e.message,r,n);return{message:i,title:e.title,path:t._originalFileName,line:t._originalLineNumber,column:t._originalColumnNumber}}var Qt,en,tn=`https://${"0.19.0".replace(/\./g,"-")}-sandpack.codesandbox.io/`,nn=class{constructor(e,t,n={}){var r;if(this.getTranspilerContext=()=>new Promise((e=>{const t=this.listen((n=>{"transpiler-context"===n.type&&(e(n.data),t())}));this.dispatch({type:"get-transpiler-context"})})),this.options=n,this.sandboxInfo=t,this.bundlerURL=n.bundlerURL||tn,this.bundlerState=void 0,this.errors=[],this.status="initializing","string"==typeof e){this.selector=e;const t=document.querySelector(e);if(!t)throw new Error(`No element found for selector '${e}'`);this.element=t,this.iframe=document.createElement("iframe"),this.initializeElement()}else this.element=e,this.iframe=e;this.iframe.getAttribute("sandbox")||this.iframe.setAttribute("sandbox","allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts");const o=n.startRoute?new URL(n.startRoute,this.bundlerURL).toString():this.bundlerURL;null==(r=this.iframe.contentWindow)||r.location.replace(o),this.iframeProtocol=new Yt(this.iframe,this.bundlerURL),this.unsubscribeGlobalListener=this.iframeProtocol.globalListen((e=>{"initialized"===e.type&&this.iframe.contentWindow&&(this.iframeProtocol.register(),this.options.fileResolver&&(this.fileResolverProtocol=new Kt("file-resolver",(async e=>"isFile"===e.m?this.options.fileResolver.isFile(e.p):this.options.fileResolver.readFile(e.p)),this.iframe.contentWindow)),this.updatePreview(this.sandboxInfo,!0))})),this.unsubscribeChannelListener=this.iframeProtocol.channelListen((e=>{switch(e.type){case"start":this.errors=[];break;case"status":this.status=e.status;break;case"action":"show-error"===e.action&&(this.errors=[...this.errors,Jt(e)]);break;case"state":this.bundlerState=e.state}}))}cleanup(){this.unsubscribeChannelListener(),this.unsubscribeGlobalListener(),this.iframeProtocol.cleanup()}updateOptions(e){Zt(this.options,e)||(this.options=e,this.updatePreview())}updatePreview(e=this.sandboxInfo,t){var n,r,o,s;this.sandboxInfo={...this.sandboxInfo,...e};const a=this.getFiles(),l=Object.keys(a).reduce(((e,t)=>({...e,[t]:{code:a[t].code,path:t}})),{});let c=JSON.parse(Vt(this.sandboxInfo.dependencies,this.sandboxInfo.devDependencies,this.sandboxInfo.entry));try{c=JSON.parse(a["/package.json"].code)}catch(d){i.error("Could not parse package.json file: "+d.message)}const u=Object.keys(a).reduce(((e,t)=>({...e,[t]:{content:a[t].code,path:t}})),{});this.dispatch({type:"compile",codesandbox:!0,version:3,isInitializationCompile:t,modules:l,reactDevTools:this.options.reactDevTools,externalResources:this.options.externalResources||[],hasFileResolver:Boolean(this.options.fileResolver),disableDependencyPreprocessing:this.sandboxInfo.disableDependencyPreprocessing,template:this.sandboxInfo.template||Xt(c,u),showOpenInCodeSandbox:null==(n=this.options.showOpenInCodeSandbox)||n,showErrorScreen:null==(r=this.options.showErrorScreen)||r,showLoadingScreen:null==(o=this.options.showLoadingScreen)||o,skipEval:this.options.skipEval||!1,clearConsoleDisabled:!this.options.clearConsoleOnFirstCompile,logLevel:null!=(s=this.options.logLevel)?s:Qt.Info})}dispatch(e){this.iframeProtocol.dispatch(e)}listen(e){return this.iframeProtocol.channelListen(e)}getCodeSandboxURL(){const e=this.getFiles(),t=Object.keys(e).reduce(((t,n)=>({...t,[n.replace("/","")]:{content:e[n].code,isBinary:!1}})),{});return fetch("https://codesandbox.io/api/v1/sandboxes/define?json=1",{method:"POST",body:JSON.stringify({files:t}),headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>e.json())).then((e=>({sandboxId:e.sandbox_id,editorUrl:`https://codesandbox.io/s/${e.sandbox_id}`,embedUrl:`https://codesandbox.io/embed/${e.sandbox_id}`})))}getFiles(){const{sandboxInfo:e}=this;return void 0===e.files["/package.json"]?function(e,t,n,r){const o={...e};if(!o["/package.json"]){if(!t)throw new Error("No dependencies specified, please specify either a package.json or dependencies.");if(!r)throw new Error("Missing 'entry' parameter. Either specify an entry point, or pass in a package.json with the 'main' field set.");o["/package.json"]={code:Vt(t,n,r)}}return o}(e.files,e.dependencies,e.devDependencies,e.entry):this.sandboxInfo.files}initializeElement(){if(this.iframe.style.border="0",this.iframe.style.width=this.options.width||"100%",this.iframe.style.height=this.options.height||"100%",this.iframe.style.overflow="hidden",!this.element.parentNode)throw new Error("Given element does not have a parent.");this.element.parentNode.replaceChild(this.iframe,this.element)}};function rn(e){var{className:t,files:n,presetConfig:o,show:i,children:a,style:l,frameless:c,codeConfig:u}=e,d=s(e,["className","files","presetConfig","show","children","style","frameless","codeConfig"]);const h=o?r.createElement(on,{files:n,presetConfig:o}):a;return r.createElement("div",{className:"ch-preview"+(t?" "+t:""),style:l,"data-ch-theme":null==u?void 0:u.themeName},c?h:r.createElement(Bt,Object.assign({loadUrl:i},d,{children:h})))}function on({files:e,presetConfig:t}){const n=r.useRef(null),o=r.useRef(null);return r.useEffect((()=>{o.current=new nn(n.current,Object.assign(Object.assign({},t),{files:sn(t.files,e)}),{showOpenInCodeSandbox:!1})}),[]),r.useEffect((()=>{o.current&&o.current.updatePreview(Object.assign(Object.assign({},t),{files:sn(t.files,e)}))}),[e]),r.createElement("iframe",{ref:n})}function sn(e,t){const n=Object.assign({},e);return t.forEach((e=>{n["/"+e.name]={code:e.code.lines.map((e=>e.tokens.map((e=>e.content)).join(""))).join("\n")}})),n}function an(e,t){const n=r.Children.toArray(e);return{stepsChildren:t?n.slice(0,n.length/2):n,previewChildren:t?n.slice(n.length/2):void 0}}function ln(e){var t;const n=(null===(t=e.rootBounds)||void 0===t?void 0:t.height)||0;cn(e.rootBounds,{border:`${Math.min(10,n/2)}px solid ${un.rootColor}`,overflow:"hidden",boxSizing:"border-box"}),cn(e.boundingClientRect,{border:`${Math.min(10,e.boundingClientRect.height/2)}px solid ${e.isIntersecting?un.enterColor:un.exitColor}`,overflow:"hidden",boxSizing:"border-box"}),cn(e.intersectionRect,{backgroundColor:un.interColor,zIndex:2})}function cn(e,t={}){const{width:n,left:r,height:o,top:i}=e,s=document.createElement("div");return s.style.position="fixed",s.style.width=n+"px",s.style.left=r+"px",s.style.top=i+"px",s.style.height=o+"px",s.style.pointerEvents="none",s.style.transition="opacity 2s ease-in",Object.assign(s.style,t),requestAnimationFrame((()=>requestAnimationFrame((()=>{s.style.opacity="0"})))),s.addEventListener("transitionend",(()=>{document.body.removeChild(s)})),document.body.appendChild(s),s}(en=Qt||(Qt={}))[en.None=0]="None",en[en.Error=10]="Error",en[en.Warning=20]="Warning",en[en.Info=30]="Info",en[en.Debug=40]="Debug";const un={rootColor:"#9428AB",enterColor:"#B35C00",exitColor:"#035570",interColor:"#9CAF00BB"},dn="undefined"!=typeof window?r.useLayoutEffect:r.useEffect;const hn=r.createContext(void 0),fn="undefined"!=typeof window?r.useLayoutEffect:r.useEffect;function pn({onStepChange:e,children:t,getRootMargin:n=vn,triggerPosition:o,debug:i=!1}){const[s,a]=r.useState(),l=function(){const e="object"==typeof window;function t(){return e?document.documentElement.clientHeight:void 0}const[n,o]=r.useState(t);return r.useEffect((()=>{function e(){o(t())}return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[]),dn((()=>{o(t())}),[]),n}();return fn((()=>{const t=function(e,t){return new IntersectionObserver(e,{rootMargin:t,threshold:1e-6,root:null})}((t=>{(i||window.chDebugScroller)&&function(e){e.forEach(ln)}(t),t.forEach((t=>{if(t.intersectionRatio>0){const n=t.target;e(+n.stepIndex)}}))}),n(l||0,o));return a(t),()=>t.disconnect()}),[l]),r.createElement(hn.Provider,{value:s},t)}function mn(e){var{as:t="section",index:n}=e,o=s(e,["as","index"]);const i=r.useRef(null),a=r.useContext(hn);return fn((()=>(a&&a.observe(i.current),()=>a&&a.unobserve(i.current))),[a]),fn((()=>{i.current.stepIndex=n}),[n]),r.createElement(t,Object.assign(Object.assign({},o),{ref:i}))}function vn(e,t="50%"){let n=.5*e;if(t.endsWith("%")){n=e*(parseFloat(t.replace("%",""))/100)}else t.endsWith("px")&&(n=parseFloat(t.replace("px","")));return n<0&&(n=e+n),`-${n-2}px 0px -${e-n-2}px`}let gn=0;function bn({match:e}){const t=e.map((([e])=>e)),{isServer:n,matchedIndex:o}=function(e){const t="undefined"==typeof window,n=e.slice(0,-1);"default"!==e[e.length-1]&&i.warn("last media query should be 'default'");const[,o]=r.useState(0),s=t?[]:n.map((e=>window.matchMedia(e)));r.useEffect((()=>{const e=()=>o((e=>e+1));return s.forEach((t=>t.addListener(e))),()=>s.forEach((t=>t.removeListener(e)))}),[]);const a=s.findIndex((e=>e.matches));return{isServer:t,matchedIndex:a<0?e.length-1:a}}(t),s=n?"ssmq-"+gn++:"";return n?r.createElement(r.Fragment,null,r.createElement("style",{className:s,dangerouslySetInnerHTML:{__html:yn(t,s)}}),e.map((([e,t])=>r.createElement("div",{key:e,className:`${s} ${wn(e)}`},t))),r.createElement("script",{className:s,dangerouslySetInnerHTML:{__html:xn(e,s)}})):r.createElement(r.Fragment,null,r.createElement("div",null,e[o][1]))}function yn(e,t){return e.slice().reverse().map((e=>{const n=`.${t}.${wn(e)}{display:block}`,r=`.${t}:not(.${wn(e)}){display: none;}`;return"default"===e?`${n}${r}`:`@media ${e}{${n}${r}}`})).join("\n")}function xn(e,t){const n=e.map((([e])=>e)),r=n.map(wn);return`(function() {\n var qs = ${JSON.stringify(n)};\n var clss = ${JSON.stringify(r)};\n var mainCls = "${t}";\n\n var scrEls = document.getElementsByTagName("script");\n var scrEl = scrEls[scrEls.length - 1];\n var parent = scrEl.parentNode;\n\n var el = null;\n for (var i = 0; i < qs.length - 1; i++) {\n if (window.matchMedia(qs[i]).matches) {\n el = parent.querySelector(":scope > ." + mainCls + "." + clss[i]);\n break;\n }\n }\n if (!el) {\n var defaultClass = clss.pop();\n el = parent.querySelector(":scope > ." + mainCls + "." + defaultClass);\n }\n el.removeAttribute("class");\n\n parent.querySelectorAll(":scope > ." + mainCls).forEach(function (e) {\n parent.removeChild(e);\n });\n})();`}function wn(e){return"ssmq-"+e.replace(/[!\"#$%&'\(\)\*\+,\.\/:;<=>\?\@\[\\\]\^`\{\|\}~\s]/g,"").toLowerCase()}function En(){const e=r.useContext(Cn);return e?r.createElement(jn,Object.assign({},e)):null}function jn({editorStep:e,setFocus:t}){const n=s(e,["preset","presetConfig"]);return r.createElement(_t,Object.assign({},n,{onTabClick:e=>{t({fileName:e,focus:null,id:""})}}))}const Cn=r.createContext(null);function On(e){return r.createElement(bn,{match:[[e.codeConfig.staticMediaQuery,r.createElement(Nn,Object.assign({},e))],["default",r.createElement(Sn,Object.assign({},e))]]})}function Nn(e){var t,{children:n,hasPreviewSteps:o,editorSteps:i}=e,a=s(e,["children","hasPreviewSteps","editorSteps"]);const{stepsChildren:l,previewChildren:c}=an(n,o);return r.createElement("section",{className:"ch-scrollycoding-static","data-ch-theme":null===(t=null==a?void 0:a.codeConfig)||void 0===t?void 0:t.themeName},l.map(((e,t)=>r.createElement(kn,{key:t,editorStep:i[t],previewStep:c&&c[t],allProps:a},e))))}function kn({editorStep:e,previewStep:t,allProps:n,children:o}){const[i,s]=r.useState(Object.assign(Object.assign({},e),n)),a=({fileName:e,focus:t,id:n})=>{const r=Ft(i,e,t);s(Object.assign(Object.assign(Object.assign({},i),r),{selectedId:n}))};return r.createElement(Cn.Provider,{value:{editorStep:i,previewStep:t,allProps:n,setFocus:a}},r.createElement(Mt,{onActivation:a,onReset:()=>s(Object.assign(Object.assign({},e),n))},o))}function Sn(e){var{children:t,editorSteps:n,codeConfig:o,presetConfig:i,start:a=0,className:l,style:c,hasPreviewSteps:u}=e,d=s(e,["children","editorSteps","codeConfig","presetConfig","start","className","style","hasPreviewSteps"]);const{stepsChildren:h,previewChildren:f}=an(t,u),p=i||u,[m,v]=r.useState({stepIndex:a,step:n[a]}),g=m.step;function b(e){v({stepIndex:e,step:n[e]})}return r.createElement("section",{className:`ch-scrollycoding ${p?"ch-scrollycoding-with-preview":""} ${l||""}`,style:c,"data-ch-theme":null==o?void 0:o.themeName},r.createElement("div",{className:"ch-scrollycoding-content"},r.createElement(pn,{onStepChange:b,triggerPosition:null==o?void 0:o.triggerPosition},h.map(((e,t)=>r.createElement(mn,{as:"div",key:t,index:t,onClick:()=>b(t),className:"ch-scrollycoding-step-content","data-selected":t===m.stepIndex?"true":void 0},r.createElement(Mt,{onActivation:({fileName:e,focus:r})=>{!function(e,t,r){const o=Ft(n[e],t,r);v(Object.assign(Object.assign({},m),{stepIndex:e,step:o}))}(t,e,r)},onReset:()=>{b(t)}},e)))))),r.createElement("div",{className:"ch-scrollycoding-sticker"},r.createElement(_t,Object.assign({showExpandButton:!0},d,g,{codeConfig:o,onTabClick:function(e){const t=Ft(m.step,e,null);v(Object.assign(Object.assign({},m),{step:t}))}})),i?r.createElement(rn,{className:"ch-scrollycoding-preview",files:g.files,presetConfig:i}):u?r.createElement(rn,Object.assign({className:"ch-scrollycoding-preview"},f[m.stepIndex].props)):null))}const _n={box:function({children:e,data:t}){const n="string"==typeof t?t:void 0;return r.createElement("span",{className:"ch-code-box-annotation",style:{outlineColor:n}},e)},bg:Fn,label:function({children:e,data:t,style:n}){return r.createElement("div",{className:"ch-code-label-annotation",style:n},e,r.createElement("div",{className:"ch-code-label-annotation-text"},(null==t?void 0:t.children)||t))},link:function({children:e,isInline:t,style:n,data:o}){const i=(null==o?void 0:o.url)||o,s=null==o?void 0:o.title;return r.createElement("a",{href:i,title:s,className:t?"ch-code-inline-link":"ch-code-link",style:n},e)},mark:function(e){return e.isInline?r.createElement(Pn,Object.assign({},e)):r.createElement(Fn,Object.assign({},e))},withClass:function({children:e,data:t,style:n}){return r.createElement("span",{style:n,className:t},e)}};function Fn({children:e,data:t,style:n,lines:o}){const i=function(e){return e.map((e=>e.annotatedGroups.flatMap((e=>{var t;return null===(t=e.prev)||void 0===t?void 0:t.groups.flatMap((e=>e.tokens.map((e=>e.content))))})).join(""))).join("\n")}(o),s="ch-code-multiline-mark "+(null!=t?t:"");return r.createElement("div",{style:n,className:s},r.createElement("span",{className:"ch-code-multiline-mark-border"}),e,r.createElement(ye,{className:"ch-code-button",content:i}))}function Pn({children:e,data:t}){const n="ch-code-inline-mark "+(null!=t?t:"");return r.createElement("span",{className:n,style:{background:Ln(e)||void 0}},e)}function Ln(e){var t,n,o;try{const i=r.Children.toArray(e)[0],s=r.Children.toArray((null===(t=null==i?void 0:i.props)||void 0===t?void 0:t.children)||[])[0],a=r.Children.toArray((null===(n=null==s?void 0:s.props)||void 0===n?void 0:n.children)||[])[0],{color:l}=(null===(o=null==a?void 0:a.props)||void 0===o?void 0:o.style)||{};return l?d(l,.2):void 0}catch(i){return}}function Mn(e){var{className:t,codeConfig:n,children:o,code:i}=e,a=s(e,["className","codeConfig","children","code"]);const{lines:l}=i,c=l.flatMap((e=>e.tokens));return r.createElement("span",Object.assign({"data-ch-theme":n.themeName,className:"ch-inline-code not-prose"+(t?" "+t:"")},a),r.createElement("code",null,c.map(((e,t)=>r.createElement("span",Object.assign({key:t},e.props),e.content)))))}},8453:(e,t,n)=>{n.d(t,{RP:()=>i,xA:()=>a});var r=n(6540);const o=r.createContext({});function i(e){const t=r.useContext(o);return r.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const s={};function a({components:e,children:t,disableParentContext:n}){let a;return a=n?"function"==typeof e?e({}):e||s:i(e),r.createElement(o.Provider,{value:a},t)}}}]);
\ No newline at end of file
diff --git a/assets/js/9999b0cd.415c946c.js b/assets/js/9999b0cd.415c946c.js
deleted file mode 100644
index fac3c6bc1e..0000000000
--- a/assets/js/9999b0cd.415c946c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4116],{7293:(n,e,t)=>{t.d(e,{A:()=>H});var i=t(6540),o=t(4848);function s(n){const{mdxAdmonitionTitle:e,rest:t}=function(n){const e=i.Children.toArray(n),t=e.find((n=>i.isValidElement(n)&&"mdxAdmonitionTitle"===n.type)),s=e.filter((n=>n!==t)),a=t?.props.children;return{mdxAdmonitionTitle:a,rest:s.length>0?(0,o.jsx)(o.Fragment,{children:s}):null}}(n.children),s=n.title??e;return{...n,...s&&{title:s},children:t}}var a=t(8215),l=t(1312),c=t(7559);const r={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(n){let{type:e,className:t,children:i}=n;return(0,o.jsx)("div",{className:(0,a.A)(c.G.common.admonition,c.G.common.admonitionType(e),r.admonition,t),children:i})}function u(n){let{icon:e,title:t}=n;return(0,o.jsxs)("div",{className:r.admonitionHeading,children:[(0,o.jsx)("span",{className:r.admonitionIcon,children:e}),t]})}function m(n){let{children:e}=n;return e?(0,o.jsx)("div",{className:r.admonitionContent,children:e}):null}function h(n){const{type:e,icon:t,title:i,children:s,className:a}=n;return(0,o.jsxs)(d,{type:e,className:a,children:[i||t?(0,o.jsx)(u,{title:i,icon:t}):null,(0,o.jsx)(m,{children:s})]})}function f(n){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const x={icon:(0,o.jsx)(f,{}),title:(0,o.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function p(n){return(0,o.jsx)(h,{...x,...n,className:(0,a.A)("alert alert--secondary",n.className),children:n.children})}function j(n){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const v={icon:(0,o.jsx)(j,{}),title:(0,o.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function g(n){return(0,o.jsx)(h,{...v,...n,className:(0,a.A)("alert alert--success",n.className),children:n.children})}function w(n){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const y={icon:(0,o.jsx)(w,{}),title:(0,o.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function b(n){return(0,o.jsx)(h,{...y,...n,className:(0,a.A)("alert alert--info",n.className),children:n.children})}function A(n){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const N={icon:(0,o.jsx)(A,{}),title:(0,o.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function C(n){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const z={icon:(0,o.jsx)(C,{}),title:(0,o.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const T={icon:(0,o.jsx)(A,{}),title:(0,o.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const k={...{note:p,tip:g,info:b,warning:function(n){return(0,o.jsx)(h,{...N,...n,className:(0,a.A)("alert alert--warning",n.className),children:n.children})},danger:function(n){return(0,o.jsx)(h,{...z,...n,className:(0,a.A)("alert alert--danger",n.className),children:n.children})}},...{secondary:n=>(0,o.jsx)(p,{title:"secondary",...n}),important:n=>(0,o.jsx)(b,{title:"important",...n}),success:n=>(0,o.jsx)(g,{title:"success",...n}),caution:function(n){return(0,o.jsx)(h,{...T,...n,className:(0,a.A)("alert alert--warning",n.className),children:n.children})}}};var M=t(6763);function H(n){const e=s(n),t=(i=e.type,k[i]||(M.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),k.info));var i;return(0,o.jsx)(t,{...e})}},7533:(n,e,t)=>{t.d(e,{A:()=>l});var i=t(6540),o=t(1122),s=t(6025),a=t(4848);const l=n=>{let{alt:e,sources:t,style:l}=n;const[c,r]=(0,i.useState)(!1),d=n=>{"Escape"===n.key&&r(!1)};(0,i.useEffect)((()=>(c?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[c]);return(0,a.jsx)("div",{className:"zoomable-image "+(c?"fullscreen":""),onClick:()=>{r(!c)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,a.jsx)(o.A,{className:"zoomable-image-inner",alt:e,sources:{light:(0,s.Ay)(t.light),dark:(0,s.Ay)(t.dark)}})})}},7716:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>u,contentTitle:()=>r,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>m});t(6540);var i=t(4848),o=t(8453),s=(t(1122),t(6025),t(7533),t(3554)),a=t.n(s),l=t(7293);const c={},r="Sub Flow",d={id:"examples/sub-flow",title:"Sub Flow",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/examples/sub-flow.mdx",sourceDirName:"examples",slug:"/examples/sub-flow",permalink:"/examples/sub-flow",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},u={},m=[];function h(n){const e=Object.assign({h1:"h1",p:"p",strong:"strong"},(0,o.RP)(),n.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.h1,{id:"sub-flow",children:"Sub Flow"}),"\n",(0,i.jsx)(l.A,{type:"warning",title:"warning",children:(0,i.jsx)(e.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,i.jsxs)(e.p,{children:["The ",(0,i.jsx)(e.strong,{children:"Sub Flow"})," component enables a user to select a previously built flow and dynamically generate a component out of it."]}),"\n",(0,i.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,i.jsx)(a(),{playing:!0,controls:!0,url:"/videos/sub_flow.mp4"})})]})}const f=function(n={}){const{wrapper:e}=Object.assign({},(0,o.RP)(),n.components);return e?(0,i.jsx)(e,Object.assign({},n,{children:(0,i.jsx)(h,n)})):h(n)}},8453:(n,e,t)=>{t.d(e,{RP:()=>s,xA:()=>l});var i=t(6540);const o=i.createContext({});function s(n){const e=i.useContext(o);return i.useMemo((()=>"function"==typeof n?n(e):{...e,...n}),[e,n])}const a={};function l({components:n,children:e,disableParentContext:t}){let l;return l=t?"function"==typeof n?n({}):n||a:s(n),i.createElement(o.Provider,{value:l},e)}}}]);
\ No newline at end of file
diff --git a/assets/js/9999b0cd.94e081c2.js b/assets/js/9999b0cd.94e081c2.js
new file mode 100644
index 0000000000..e00b50751d
--- /dev/null
+++ b/assets/js/9999b0cd.94e081c2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4116],{7533:(e,t,n)=>{n.d(t,{A:()=>r});var s=n(6540),o=n(1122),a=n(6025),l=n(4848);const r=e=>{let{alt:t,sources:n,style:r}=e;const[i,c]=(0,s.useState)(!1),u=e=>{"Escape"===e.key&&c(!1)};(0,s.useEffect)((()=>(i?document.addEventListener("keydown",u):document.removeEventListener("keydown",u),()=>{document.removeEventListener("keydown",u)})),[i]);return(0,l.jsx)("div",{className:"zoomable-image "+(i?"fullscreen":""),onClick:()=>{c(!i)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...r},children:(0,l.jsx)(o.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,a.Ay)(n.light),dark:(0,a.Ay)(n.dark)}})})}},7716:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>f,frontMatter:()=>i,metadata:()=>u,toc:()=>m});n(6540);var s=n(4848),o=n(8453),a=(n(1122),n(6025),n(7533),n(3554)),l=n.n(a),r=n(7293);const i={},c="Sub Flow",u={id:"examples/sub-flow",title:"Sub Flow",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/examples/sub-flow.mdx",sourceDirName:"examples",slug:"/examples/sub-flow",permalink:"/examples/sub-flow",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},d={},m=[];function p(e){const t=Object.assign({h1:"h1",p:"p",strong:"strong"},(0,o.RP)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"sub-flow",children:"Sub Flow"}),"\n",(0,s.jsx)(r.A,{type:"warning",title:"warning",children:(0,s.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Sub Flow"})," component enables a user to select a previously built flow and dynamically generate a component out of it."]}),"\n",(0,s.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,s.jsx)(l(),{playing:!0,controls:!0,url:"/videos/sub_flow.mp4"})})]})}const f=function(e={}){const{wrapper:t}=Object.assign({},(0,o.RP)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(p,e)})):p(e)}},8453:(e,t,n)=>{n.d(t,{RP:()=>a,xA:()=>r});var s=n(6540);const o=s.createContext({});function a(e){const t=s.useContext(o);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const l={};function r({components:e,children:t,disableParentContext:n}){let r;return r=n?"function"==typeof e?e({}):e||l:a(e),s.createElement(o.Provider,{value:r},t)}}}]);
\ No newline at end of file
diff --git a/assets/js/9f23f473.117c770f.js b/assets/js/9f23f473.117c770f.js
new file mode 100644
index 0000000000..7ab395df0d
--- /dev/null
+++ b/assets/js/9f23f473.117c770f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7123],{7293:(o,e,t)=>{t.d(e,{A:()=>_});var n=t(6540),s=t(4848);function r(o){const{mdxAdmonitionTitle:e,rest:t}=function(o){const e=n.Children.toArray(o),t=e.find((o=>n.isValidElement(o)&&"mdxAdmonitionTitle"===o.type)),r=e.filter((o=>o!==t)),c=t?.props.children;return{mdxAdmonitionTitle:c,rest:r.length>0?(0,s.jsx)(s.Fragment,{children:r}):null}}(o.children),r=o.title??e;return{...o,...r&&{title:r},children:t}}var c=t(8215),l=t(1312),p=t(7559);const i={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function a(o){let{type:e,className:t,children:n}=o;return(0,s.jsx)("div",{className:(0,c.A)(p.G.common.admonition,p.G.common.admonitionType(e),i.admonition,t),children:n})}function d(o){let{icon:e,title:t}=o;return(0,s.jsxs)("div",{className:i.admonitionHeading,children:[(0,s.jsx)("span",{className:i.admonitionIcon,children:e}),t]})}function h(o){let{children:e}=o;return e?(0,s.jsx)("div",{className:i.admonitionContent,children:e}):null}function y(o){const{type:e,icon:t,title:n,children:r,className:c}=o;return(0,s.jsxs)(a,{type:e,className:c,children:[n||t?(0,s.jsx)(d,{title:n,icon:t}):null,(0,s.jsx)(h,{children:r})]})}function D(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const u={icon:(0,s.jsx)(D,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function F(o){return(0,s.jsx)(y,{...u,...o,className:(0,c.A)("alert alert--secondary",o.className),children:o.children})}function g(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const m={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function f(o){return(0,s.jsx)(y,{...m,...o,className:(0,c.A)("alert alert--success",o.className),children:o.children})}function C(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const x={icon:(0,s.jsx)(C,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function j(o){return(0,s.jsx)(y,{...x,...o,className:(0,c.A)("alert alert--info",o.className),children:o.children})}function k(o){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const v={icon:(0,s.jsx)(k,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function A(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const b={icon:(0,s.jsx)(A,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const w={icon:(0,s.jsx)(k,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const B={...{note:F,tip:f,info:j,warning:function(o){return(0,s.jsx)(y,{...v,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})},danger:function(o){return(0,s.jsx)(y,{...b,...o,className:(0,c.A)("alert alert--danger",o.className),children:o.children})}},...{secondary:o=>(0,s.jsx)(F,{title:"secondary",...o}),important:o=>(0,s.jsx)(j,{title:"important",...o}),success:o=>(0,s.jsx)(f,{title:"success",...o}),caution:function(o){return(0,s.jsx)(y,{...w,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})}}};var N=t(6763);function _(o){const e=r(o),t=(n=e.type,B[n]||(N.warn(`No admonition component found for admonition type "${n}". Using Info as fallback.`),B.info));var n;return(0,s.jsx)(t,{...e})}},7533:(o,e,t)=>{t.d(e,{A:()=>l});var n=t(6540),s=t(1122),r=t(6025),c=t(4848);const l=o=>{let{alt:e,sources:t,style:l}=o;const[p,i]=(0,n.useState)(!1),a=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[p]);return(0,c.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:e,sources:{light:(0,r.Ay)(t.light),dark:(0,r.Ay)(t.dark)}})})}},2872:(o,e,t)=>{t.r(e),t.d(e,{CH:()=>h,assets:()=>d,chCodeConfig:()=>y,contentTitle:()=>i,default:()=>F,frontMatter:()=>p,metadata:()=>a,toc:()=>D});t(6540);var n=t(4848),s=t(8453),r=t(4754),c=t(7293),l=(t(1122),t(6025),t(7533));const p={},i="Page Update",a={id:"integrations/notion/page-update",title:"Page Update",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/page-update.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/page-update",permalink:"/integrations/notion/page-update",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Add Content To Page",permalink:"/integrations/notion/add-content-to-page"},next:{title:"Page Content",permalink:"/integrations/notion/page-content-viewer"}},d={},h={annotations:r.hk,Code:r.Cy},y={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},D=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python Code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function u(o){const e=Object.assign({h1:"h1",p:"p",code:"code",a:"a",h2:"h2",ol:"ol",li:"li",ul:"ul"},(0,s.RP)(),o.components);return h||g("CH",!1),h.Code||g("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(e.h1,{id:"page-update",children:"Page Update"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(e.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(e.p,{children:["The ",(0,n.jsx)(e.code,{children:"NotionPageUpdate"})," component updates the properties of a Notion page. It provides a convenient way to integrate updating Notion page properties into your Langflow workflows."]}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.a,{href:"https://developers.notion.com/reference/patch-page",children:"Notion Reference"})}),"\n",(0,n.jsx)(e.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(e.p,{children:["To use the ",(0,n.jsx)(e.code,{children:"NotionPageUpdate"})," component in your Langflow flow:"]}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["Drag and drop the ",(0,n.jsx)(e.code,{children:"NotionPageUpdate"})," component onto the workspace."]}),"\n",(0,n.jsx)(e.li,{children:"Double-click the component to open its configuration."}),"\n",(0,n.jsxs)(e.li,{children:["Provide the required parameters as defined in the component's ",(0,n.jsx)(e.code,{children:"build_config"})," method."]}),"\n",(0,n.jsx)(e.li,{children:"Connect the component to other nodes in your flow as needed."}),"\n"]}),"\n",(0,n.jsx)(e.h2,{id:"component-python-code",children:"Component Python Code"}),"\n",(0,n.jsx)(h.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" json",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Dict, Any",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionPageUpdate",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Update Page Property [Notion]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Update the properties of a Notion page."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/page-update"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "page_id"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Page ID"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The ID of the Notion page to update."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Properties"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The properties to update on the page (as a JSON string)."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "multiline"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" properties: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> Data:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" url ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"https://api.notion.com/v1/pages/',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_id",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Content-Type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"application/json"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"# Use the latest supported version",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" try",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" parsed_properties ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" json.loads(properties)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" except",props:{style:{color:"#FF7B72"}}},{content:" json.JSONDecodeError ",props:{style:{color:"#C9D1D9"}}},{content:"as",props:{style:{color:"#FF7B72"}}},{content:" e:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" raise ",props:{style:{color:"#FF7B72"}}},{content:"ValueError",props:{style:{color:"#79C0FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:'"Invalid JSON format for properties"',props:{style:{color:"#A5D6FF"}}},{content:") ",props:{style:{color:"#C9D1D9"}}},{content:"from",props:{style:{color:"#FF7B72"}}},{content:" e",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#A5D6FF"}}},{content:": parsed_properties",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.patch(url, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"data)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response.raise_for_status()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" updated_page ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" output ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Updated page properties:',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" for",props:{style:{color:"#FF7B72"}}},{content:" prop_name, prop_value ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" updated_page[",props:{style:{color:"#C9D1D9"}}},{content:'"properties"',props:{style:{color:"#A5D6FF"}}},{content:"].items():",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" output ",props:{style:{color:"#C9D1D9"}}},{content:"+= f",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"prop_name",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:": ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"prop_value",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" output",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"updated_page)",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(e.p,{children:"Let's break down the key parts of this component:"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:["The ",(0,n.jsx)(e.code,{children:"build_config"})," method defines the configuration fields for the component. It specifies the required parameters and their properties, such as display names, field types, and any additional information or validation."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:["The ",(0,n.jsx)(e.code,{children:"build"})," method contains the main logic of the component. It takes the configured parameters as input and performs the necessary operations to update the properties of a Notion page."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsx)(e.p,{children:"The component interacts with the Notion API to update the page properties. It constructs the API URL, headers, and request data based on the provided parameters."}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:["The processed data is returned as a ",(0,n.jsx)(e.code,{children:"Data"})," object, which can be connected to other components in the Langflow flow. The ",(0,n.jsx)(e.code,{children:"Data"})," object contains the updated page data."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:["The component also stores the updated page properties in the ",(0,n.jsx)(e.code,{children:"status"})," attribute for logging and debugging purposes."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(e.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(c.A,{type:"info",title:"Example Usage",children:[(0,n.jsxs)(e.p,{children:["Here's an example of how to use the ",(0,n.jsx)(e.code,{children:"NotionPageUpdate"})," component in a Langflow flow using:"]}),(0,n.jsx)(l.A,{alt:"NotionPageUpdate Flow Example",sources:{light:"img/notion/NotionPageUpdate_flow_example.png",dark:"img/notion/NotionPageUpdate_flow_example_dark.png"},style:{width:"100%",margin:"20px 0"}})]}),"\n",(0,n.jsx)(e.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(e.p,{children:["When using the ",(0,n.jsx)(e.code,{children:"NotionPageUpdate"})," component, consider the following best practices:"]}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Ensure that you have a valid Notion integration token with the necessary permissions to update page properties."}),"\n",(0,n.jsx)(e.li,{children:"Handle edge cases and error scenarios gracefully, such as invalid JSON format for properties or API request failures."}),"\n",(0,n.jsx)(e.li,{children:"We recommend using an LLM to generate the inputs for this component, to allow flexibility"}),"\n"]}),"\n",(0,n.jsxs)(e.p,{children:["By leveraging the ",(0,n.jsx)(e.code,{children:"NotionPageUpdate"})," component in Langflow, you can easily integrate updating Notion page properties into your language model workflows and build powerful applications that extend Langflow's capabilities."]}),"\n",(0,n.jsx)(e.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(e.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(e.code,{children:"NotionPageUpdate"})," component, consider the following:"]}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Double-check that you have correctly configured the component with the required parameters, including the page ID, properties JSON, and Notion integration token."}),"\n",(0,n.jsx)(e.li,{children:"Verify that your Notion integration token has the necessary permissions to update page properties."}),"\n",(0,n.jsx)(e.li,{children:"Check the Langflow logs for any error messages or exceptions related to the component, such as invalid JSON format or API request failures."}),"\n",(0,n.jsxs)(e.li,{children:["Consult the ",(0,n.jsx)(e.a,{href:"https://developers.notion.com/reference/patch-page",children:"Notion API Documentation"})," for specific troubleshooting steps or common issues related to updating page properties."]}),"\n"]})]})}const F=function(o={}){const{wrapper:e}=Object.assign({},(0,s.RP)(),o.components);return e?(0,n.jsx)(e,Object.assign({},o,{children:(0,n.jsx)(u,o)})):u(o)};function g(o,e){throw new Error("Expected "+(e?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/9f23f473.274062cb.js b/assets/js/9f23f473.274062cb.js
deleted file mode 100644
index 54001fcd1a..0000000000
--- a/assets/js/9f23f473.274062cb.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[7123],{7533:(o,t,e)=>{e.d(t,{A:()=>p});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const p=o=>{let{alt:t,sources:e,style:p}=o;const[l,i]=(0,n.useState)(!1),a=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(l?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[l]);return(0,c.jsx)("div",{className:"zoomable-image "+(l?"fullscreen":""),onClick:()=>{i(!l)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...p},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},2872:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>y,assets:()=>d,chCodeConfig:()=>D,contentTitle:()=>i,default:()=>u,frontMatter:()=>l,metadata:()=>a,toc:()=>h});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=e(7293),p=(e(1122),e(6025),e(7533));const l={},i="Page Update",a={id:"integrations/notion/page-update",title:"Page Update",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/page-update.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/page-update",permalink:"/integrations/notion/page-update",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Add Content To Page",permalink:"/integrations/notion/add-content-to-page"},next:{title:"Page Content",permalink:"/integrations/notion/page-content-viewer"}},d={},y={annotations:r.hk,Code:r.Cy},D={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python Code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function F(o){const t=Object.assign({h1:"h1",p:"p",code:"code",a:"a",h2:"h2",ol:"ol",li:"li",ul:"ul"},(0,s.RP)(),o.components);return y||g("CH",!1),y.Code||g("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"page-update",children:"Page Update"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionPageUpdate"})," component updates the properties of a Notion page. It provides a convenient way to integrate updating Notion page properties into your Langflow workflows."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://developers.notion.com/reference/patch-page",children:"Notion Reference"})}),"\n",(0,n.jsx)(t.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(t.p,{children:["To use the ",(0,n.jsx)(t.code,{children:"NotionPageUpdate"})," component in your Langflow flow:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["Drag and drop the ",(0,n.jsx)(t.code,{children:"NotionPageUpdate"})," component onto the workspace."]}),"\n",(0,n.jsx)(t.li,{children:"Double-click the component to open its configuration."}),"\n",(0,n.jsxs)(t.li,{children:["Provide the required parameters as defined in the component's ",(0,n.jsx)(t.code,{children:"build_config"})," method."]}),"\n",(0,n.jsx)(t.li,{children:"Connect the component to other nodes in your flow as needed."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-python-code",children:"Component Python Code"}),"\n",(0,n.jsx)(y.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" json",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Dict, Any",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionPageUpdate",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Update Page Property [Notion]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Update the properties of a Notion page."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/page-update"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "page_id"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Page ID"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The ID of the Notion page to update."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Properties"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The properties to update on the page (as a JSON string)."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "multiline"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" properties: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> Data:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" url ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"https://api.notion.com/v1/pages/',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_id",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Content-Type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"application/json"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"# Use the latest supported version",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" try",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" parsed_properties ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" json.loads(properties)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" except",props:{style:{color:"#FF7B72"}}},{content:" json.JSONDecodeError ",props:{style:{color:"#C9D1D9"}}},{content:"as",props:{style:{color:"#FF7B72"}}},{content:" e:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" raise ",props:{style:{color:"#FF7B72"}}},{content:"ValueError",props:{style:{color:"#79C0FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:'"Invalid JSON format for properties"',props:{style:{color:"#A5D6FF"}}},{content:") ",props:{style:{color:"#C9D1D9"}}},{content:"from",props:{style:{color:"#FF7B72"}}},{content:" e",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#A5D6FF"}}},{content:": parsed_properties",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.patch(url, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"data)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response.raise_for_status()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" updated_page ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" output ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Updated page properties:',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" for",props:{style:{color:"#FF7B72"}}},{content:" prop_name, prop_value ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" updated_page[",props:{style:{color:"#C9D1D9"}}},{content:'"properties"',props:{style:{color:"#A5D6FF"}}},{content:"].items():",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" output ",props:{style:{color:"#C9D1D9"}}},{content:"+= f",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"prop_name",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:": ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"prop_value",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" output",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"updated_page)",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.p,{children:"Let's break down the key parts of this component:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"build_config"})," method defines the configuration fields for the component. It specifies the required parameters and their properties, such as display names, field types, and any additional information or validation."]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"build"})," method contains the main logic of the component. It takes the configured parameters as input and performs the necessary operations to update the properties of a Notion page."]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsx)(t.p,{children:"The component interacts with the Notion API to update the page properties. It constructs the API URL, headers, and request data based on the provided parameters."}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsxs)(t.p,{children:["The processed data is returned as a ",(0,n.jsx)(t.code,{children:"Data"})," object, which can be connected to other components in the Langflow flow. The ",(0,n.jsx)(t.code,{children:"Data"})," object contains the updated page data."]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:["\n",(0,n.jsxs)(t.p,{children:["The component also stores the updated page properties in the ",(0,n.jsx)(t.code,{children:"status"})," attribute for logging and debugging purposes."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(c.A,{type:"info",title:"Example Usage",children:[(0,n.jsxs)(t.p,{children:["Here's an example of how to use the ",(0,n.jsx)(t.code,{children:"NotionPageUpdate"})," component in a Langflow flow using:"]}),(0,n.jsx)(p.A,{alt:"NotionPageUpdate Flow Example",sources:{light:"img/notion/NotionPageUpdate_flow_example.png",dark:"img/notion/NotionPageUpdate_flow_example_dark.png"},style:{width:"100%",margin:"20px 0"}})]}),"\n",(0,n.jsx)(t.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(t.p,{children:["When using the ",(0,n.jsx)(t.code,{children:"NotionPageUpdate"})," component, consider the following best practices:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Ensure that you have a valid Notion integration token with the necessary permissions to update page properties."}),"\n",(0,n.jsx)(t.li,{children:"Handle edge cases and error scenarios gracefully, such as invalid JSON format for properties or API request failures."}),"\n",(0,n.jsx)(t.li,{children:"We recommend using an LLM to generate the inputs for this component, to allow flexibility"}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["By leveraging the ",(0,n.jsx)(t.code,{children:"NotionPageUpdate"})," component in Langflow, you can easily integrate updating Notion page properties into your language model workflows and build powerful applications that extend Langflow's capabilities."]}),"\n",(0,n.jsx)(t.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(t.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(t.code,{children:"NotionPageUpdate"})," component, consider the following:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Double-check that you have correctly configured the component with the required parameters, including the page ID, properties JSON, and Notion integration token."}),"\n",(0,n.jsx)(t.li,{children:"Verify that your Notion integration token has the necessary permissions to update page properties."}),"\n",(0,n.jsx)(t.li,{children:"Check the Langflow logs for any error messages or exceptions related to the component, such as invalid JSON format or API request failures."}),"\n",(0,n.jsxs)(t.li,{children:["Consult the ",(0,n.jsx)(t.a,{href:"https://developers.notion.com/reference/patch-page",children:"Notion API Documentation"})," for specific troubleshooting steps or common issues related to updating page properties."]}),"\n"]})]})}const u=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(F,o)})):F(o)};function g(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/a9b8ddbf.1e9c6577.js b/assets/js/a9b8ddbf.1e9c6577.js
deleted file mode 100644
index b3267558c1..0000000000
--- a/assets/js/a9b8ddbf.1e9c6577.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5971],{7533:(o,t,e)=>{e.d(t,{A:()=>r});var n=e(6540),s=e(1122),c=e(6025),l=e(4848);const r=o=>{let{alt:t,sources:e,style:r}=o;const[p,i]=(0,n.useState)(!1),y=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",y):document.removeEventListener("keydown",y),()=>{document.removeEventListener("keydown",y)})),[p]);return(0,l.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...r},children:(0,l.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,c.Ay)(e.light),dark:(0,c.Ay)(e.dark)}})})}},9851:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>D,assets:()=>a,chCodeConfig:()=>F,contentTitle:()=>i,default:()=>u,frontMatter:()=>p,metadata:()=>y,toc:()=>d});e(6540);var n=e(4848),s=e(8453),c=e(4754),l=e(7533),r=e(7293);const p={description:"Custom Components",hide_table_of_contents:!0},i="Custom Components",y={id:"tutorials/custom_components",title:"Custom Components",description:"Custom Components",source:"@site/docs/tutorials/custom_components.mdx",sourceDirName:"tutorials",slug:"/tutorials/custom_components",permalink:"/tutorials/custom_components",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{description:"Custom Components",hide_table_of_contents:!0},sidebar:"docs",previous:{title:"Build Chatbots with the System Message Component",permalink:"/tutorials/chatprompttemplate_guide"},next:{title:"Integrate Documents with Prompt Variables",permalink:"/tutorials/loading_document"}},a={},D={annotations:c.hk,InlineCode:c.R0,Code:c.Cy,Scrollycoding:c.Fk,CodeSlot:c.Wu,SectionLink:c.W_},F={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},d=[{value:"Rules",id:"rules",level:2},{value:"Rule 1",id:"rule-1",level:3},{value:"Rule 2",id:"rule-2",level:3},{value:"Rule 3",id:"rule-3",level:3},{value:"Example",id:"example",level:2},{value:"Pick a display name",id:"pick-a-display-name",level:3},{value:"Write a description",id:"write-a-description",level:3},{value:"Add the build method",id:"add-the-build-method",level:3},{value:"Customize the component fields",id:"customize-the-component-fields",level:3},{value:"Load Custom Components",id:"load-custom-components",level:2},{value:"Folder Structure",id:"folder-structure",level:3},{value:"Load Custom Components",id:"load-custom-components-1",level:3},{value:"Interact with Custom Components",id:"interact-with-custom-components",level:3}];function C(o){const t=Object.assign({h1:"h1",p:"p",strong:"strong",ul:"ul",li:"li",a:"a",hr:"hr",h2:"h2",h3:"h3",code:"code"},(0,s.RP)(),o.components);return D||m("CH",!1),D.Code||m("CH.Code",!0),D.CodeSlot||m("CH.CodeSlot",!0),D.InlineCode||m("CH.InlineCode",!0),D.Scrollycoding||m("CH.Scrollycoding",!0),D.SectionLink||m("CH.SectionLink",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"custom-components",children:"Custom Components"}),"\n",(0,n.jsx)(r.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsx)(t.p,{children:"In Langflow, a Custom Component is a special component type that allows users to extend the platform's functionality by creating their own reusable and configurable components."}),"\n",(0,n.jsxs)(t.p,{children:["A Custom Component is created from a user-defined Python script that uses the ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lines:[{tokens:[{content:"CustomComponent",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"CustomComponent"})," class provided by the Langflow library. These components can be as simple as a basic function that takes and returns a string or as complex as a combination of multiple sub-components and API calls."]}),"\n",(0,n.jsx)(t.p,{children:"Let's take a look at the basic rules and features. Then we'll go over an example."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"TL;DR"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Create a class that inherits from ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lines:[{tokens:[{content:"CustomComponent",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"CustomComponent"})," and contains a ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lines:[{tokens:[{content:"build",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"build"})," method."]}),"\n",(0,n.jsxs)(t.li,{children:["Use arguments with ",(0,n.jsx)(t.a,{href:"https://docs.python.org/3/library/typing.html",children:"Type Annotations (or Type Hints)"})," of the ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lines:[{tokens:[{content:"build",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"build"})," method to create component fields."]}),"\n",(0,n.jsxs)(t.li,{children:["Use the ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lines:[{tokens:[{content:"build_config",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"build_config"})," method to customize how these fields look and behave."]}),"\n",(0,n.jsx)(t.li,{children:"Set up a folder with your components to load them up in Langflow's sidebar."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Here is an example:"}),"\n",(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"center"},children:[(0,n.jsx)(D.Code,{linuNumbers:!1,codeConfig:F,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"DocumentProcessor",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Document Processor"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This component processes a document"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" options ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}},{content:'"Uppercase"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Lowercase"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Titlecase"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "function"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"options"',props:{style:{color:"#A5D6FF"}}},{content:": options,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "value"',props:{style:{color:"#A5D6FF"}}},{content:": options[",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"]}}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self, document: Document, function: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:") -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if ",props:{style:{color:"#FF7B72"}}},{content:"isinstance",props:{style:{color:"#79C0FF"}}},{content:"(document, ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" document ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document[",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document.page_content",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Uppercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.upper()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Lowercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.lower()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Titlecase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.title()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".repr_value ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Result of ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"function",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:" function: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_content",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Document(",props:{style:{color:"#C9D1D9"}}},{content:"page_content",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"page_content)",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}],children:(0,n.jsx)(D.Code,{codeConfig:F,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"DocumentProcessor",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Document Processor"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This component processes a document"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" options ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}},{content:'"Uppercase"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Lowercase"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Titlecase"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "function"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"options"',props:{style:{color:"#A5D6FF"}}},{content:": options,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "value"',props:{style:{color:"#A5D6FF"}}},{content:": options[",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"]}}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self, document: Document, function: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:") -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if ",props:{style:{color:"#FF7B72"}}},{content:"isinstance",props:{style:{color:"#79C0FF"}}},{content:"(document, ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" document ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document[",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document.page_content",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Uppercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.upper()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Lowercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.lower()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Titlecase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.title()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".repr_value ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Result of ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"function",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:" function: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_content",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Document(",props:{style:{color:"#C9D1D9"}}},{content:"page_content",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"page_content)",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]})}),(0,n.jsx)(l.A,{alt:"Document Processor Component",sources:{light:"img/document_processor.png",dark:"img/document_processor.png"},style:{margin:"0 auto",display:"flex",justifyContent:"center"}})]}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h2,{id:"rules",children:"Rules"}),"\n",(0,n.jsx)(t.p,{children:"The Python script for every Custom Component should follow a set of rules. Let's go over them one by one:"}),"\n",(0,n.jsxs)(D.Scrollycoding,{rows:20,className:"",codeConfig:F,editorSteps:[{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"MyComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Custom Component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This is a custom component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self, document: Document, function: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:") -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]}],lang:"python"},annotations:[]}]},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"11",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"MyComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Custom Component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This is a custom component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]}],lang:"python"},annotations:[{Component:D.annotations.mark,focus:"11",data:""}]}],southPanel:void 0},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"11[20:31]",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"MyComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Custom Component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This is a custom component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]}],lang:"python"},annotations:[{Component:D.annotations.mark,focus:"11",data:""}]}],southPanel:void 0},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"MyComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Custom Component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This is a custom component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]}],lang:"python"},annotations:[]}],southPanel:void 0},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"MyComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Custom Component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This is a custom component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]}],lang:"python"},annotations:[]}],southPanel:void 0},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"4,5",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"DocumentProcessor",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Document Processor"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This is a custom component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]}],lang:"python"},annotations:[]}],southPanel:void 0},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"DocumentProcessor",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Document Processor"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This component processes a document"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]}],lang:"python"},annotations:[]}],southPanel:void 0},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"DocumentProcessor",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Document Processor"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This component processes a document"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self, document: Document, function: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:") -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if ",props:{style:{color:"#FF7B72"}}},{content:"isinstance",props:{style:{color:"#79C0FF"}}},{content:"(document, ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" document ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document[",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document.page_content",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Uppercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.upper()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Lowercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.lower()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Titlecase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.title()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".repr_value ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Result of ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"function",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:" function: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_content",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Document(",props:{style:{color:"#C9D1D9"}}},{content:"page_content",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"page_content)",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}],southPanel:void 0},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"DocumentProcessor",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Document Processor"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This component processes a document"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" options ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}},{content:'"Uppercase"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Lowercase"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Titlecase"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "function"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"options"',props:{style:{color:"#A5D6FF"}}},{content:": options,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "value"',props:{style:{color:"#A5D6FF"}}},{content:": options[",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Function"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "document"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Document"',props:{style:{color:"#A5D6FF"}}},{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self, document: Document, function: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:") -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if ",props:{style:{color:"#FF7B72"}}},{content:"isinstance",props:{style:{color:"#79C0FF"}}},{content:"(document, ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" document ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document[",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document.page_content",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Uppercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.upper()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Lowercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.lower()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Titlecase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.title()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".repr_value ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Result of ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"function",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:" function: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_content",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Document(",props:{style:{color:"#C9D1D9"}}},{content:"page_content",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"page_content)",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}],southPanel:void 0}],children:[(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h3,{id:"rule-1",children:"Rule 1"}),(0,n.jsxs)(t.p,{children:["The script must contain a ",(0,n.jsx)(t.strong,{children:"single class"})," that inherits from ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"CustomComponent",props:{style:{color:"#C9D1D9"}}}]}]},children:"CustomComponent"}),"."]}),(0,n.jsx)(D.CodeSlot,{})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h3,{id:"rule-2",children:"Rule 2"}),(0,n.jsxs)(t.p,{children:["This class requires a ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"build",props:{style:{color:"#D2A8FF"}}}]}]},children:"build"})," method used to run the component and define its fields."]}),(0,n.jsx)(D.CodeSlot,{})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.a,{href:"https://docs.python.org/3/library/typing.html",children:"Return Type Annotation"})," of the ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"build",props:{style:{color:"#D2A8FF"}}}]}]},children:"build"})," method defines the component type (e.g., Chain, BaseLanguageModel, or basic Python types). Check out all supported types in the ",(0,n.jsx)(t.a,{href:"../components/custom",children:"component reference"}),"."]}),(0,n.jsx)(D.CodeSlot,{})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(D.CodeSlot,{}),(0,n.jsx)(t.h3,{id:"rule-3",children:"Rule 3"}),(0,n.jsxs)(t.p,{children:["The class can have a ",(0,n.jsx)(D.SectionLink,{focus:"8",id:"focus://8",children:(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"build_config",props:{style:{color:"#D2A8FF"}}}]}]},children:"build_config"})})," method, which defines configuration fields for the component. The ",(0,n.jsx)(D.SectionLink,{focus:"8",id:"focus://8",children:(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"build_config",props:{style:{color:"#D2A8FF"}}}]}]},children:"build_config"})})," method should always return a dictionary with specific keys representing the field names and their corresponding configurations. It must follow the format described below:"]}),(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Top-level keys are field names."}),"\n",(0,n.jsxs)(t.li,{children:["Their values are also of type ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"dict",props:{style:{color:"#79C0FF"}}}]}]},children:"dict"}),". They specify the behavior of the generated fields."]}),"\n"]}),(0,n.jsxs)(t.p,{children:["Check out the ",(0,n.jsx)(t.a,{href:"../components/custom",children:"component reference"})," for more details on the available field configurations."]})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(D.CodeSlot,{}),(0,n.jsx)(t.h2,{id:"example",children:"Example"}),(0,n.jsxs)(t.p,{children:["Let's create a custom component that processes a document (",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lines:[{tokens:[{content:"langchain.schema.Document",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},children:"langchain.schema.Document"}),") using a simple function."]})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h3,{id:"pick-a-display-name",children:"Pick a display name"}),(0,n.jsxs)(t.p,{children:["To start, let's choose a name for our component by adding a ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"display_name",props:{style:{color:"#C9D1D9"}}}]}]},children:"display_name"})," attribute. This name will appear on the workspace. The name of the class is not relevant, but let's call it ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"DocumentProcessor",props:{style:{color:"#FFA657"}}}]}]},children:"DocumentProcessor"}),"."]}),(0,n.jsx)(D.CodeSlot,{})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h3,{id:"write-a-description",children:"Write a description"}),(0,n.jsxs)(t.p,{children:["We can also write a description for it using a ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"description",props:{style:{color:"#C9D1D9"}}}]}]},children:"description"})," attribute."]}),(0,n.jsx)(D.CodeSlot,{})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(D.CodeSlot,{}),(0,n.jsx)(t.h3,{id:"add-the-build-method",children:"Add the build method"}),(0,n.jsxs)(t.p,{children:["Here, the build method takes two input parameters: ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"document",props:{style:{color:"#A5D6FF"}}}]}]},children:"document"}),", representing the input document to be processed, and ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"function",props:{style:{color:"#C9D1D9"}}}]}]},children:"function"}),', a string representing the selected text transformation to be applied (either "Uppercase," "Lowercase," or "Titlecase"). The method processes the text content of the input Document based on the selected function.']}),(0,n.jsxs)(t.p,{children:["The attribute ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"repr_value",props:{style:{color:"#C9D1D9"}}}]}]},children:"repr_value"})," is used to display the result of the component on the workspace. It is optional and can be used to display any string value."]}),(0,n.jsxs)(t.p,{children:["The return type is ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"Document",props:{style:{color:"#C9D1D9"}}}]}]},children:"Document"}),"."]})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h3,{id:"customize-the-component-fields",children:"Customize the component fields"}),(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"build_config",props:{style:{color:"#D2A8FF"}}}]}]},children:"build_config"})," method is here defined to customize the component fields."]}),(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"options",props:{style:{color:"#C9D1D9"}}}]}]},children:"options"})," determines that the field will be a dropdown menu. The list values and field type must be ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"str",props:{style:{color:"#79C0FF"}}}]}]},children:"str"}),"."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"value",props:{style:{color:"#A5D6FF"}}}]}]},children:"value"})," is the default value of the field."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lang:"python",lines:[{tokens:[{content:"display_name",props:{style:{color:"#C9D1D9"}}}]}]},children:"display_name"})," is the name of the field to be displayed."]}),"\n"]}),(0,n.jsx)(D.CodeSlot,{})]})]}),"\n",(0,n.jsx)(t.p,{children:"All done! This is what our script and brand-new custom component look like:"}),"\n",(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"center"},children:[(0,n.jsx)(l.A,{alt:"Document Processor Code",sources:{light:"img/document_processor_code.png",dark:"img/document_processor_code.png"},style:{maxWidth:"100%",margin:"0 auto",display:"flex",justifyContent:"center"}}),(0,n.jsx)(l.A,{alt:"Document Processor Component",sources:{light:"img/document_processor.png",dark:"img/document_processor.png"},style:{width:"40%",margin:"0 auto",display:"flex",justifyContent:"center"}})]}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h2,{id:"load-custom-components",children:"Load Custom Components"}),"\n",(0,n.jsx)(t.p,{children:"For advanced customization, Langflow offers the option to create and load custom components outside of the standard interface. This process involves creating the desired components using a text editor and loading them using the Langflow CLI."}),"\n",(0,n.jsx)(t.h3,{id:"folder-structure",children:"Folder Structure"}),"\n",(0,n.jsxs)(t.p,{children:["Create a folder that follows the same structural conventions as the ",(0,n.jsx)(t.a,{href:"https://github.com/langflow-ai/langflow/blob/dev/src/backend/base/langflow/config.yaml",children:"config.yaml"})," file. Inside this main directory, use a ",(0,n.jsx)(t.code,{children:"custom_components"})," subdirectory for your custom components."]}),"\n",(0,n.jsxs)(t.p,{children:["Inside ",(0,n.jsx)(t.code,{children:"custom_components"}),", you can create a Python file for each component. Similarly, any custom agents should be housed in an ",(0,n.jsx)(t.code,{children:"agents"})," subdirectory."]}),"\n",(0,n.jsxs)(t.p,{children:["If you use a subdirectory name that is not in our config.yaml file, your component will appear in an ",(0,n.jsx)(t.code,{children:"Other"})," category in the sidebar."]}),"\n",(0,n.jsx)(t.p,{children:"Your structure should look something like this:"}),"\n",(0,n.jsx)(D.Code,{codeConfig:F,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:".",props:{}}]},{tokens:[{content:"\u2514\u2500\u2500 custom_components",props:{}}]},{tokens:[{content:" \u251c\u2500\u2500 document_processor.py",props:{}}]},{tokens:[{content:" \u2514\u2500\u2500 ...",props:{}}]},{tokens:[{content:"\u2514\u2500\u2500 agents",props:{}}]},{tokens:[{content:" \u2514\u2500\u2500 ...",props:{}}]},{tokens:[{content:"\u2514\u2500\u2500 my_agents <-- Other category",props:{}}]},{tokens:[{content:" \u2514\u2500\u2500 ...",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,n.jsx)(t.h3,{id:"load-custom-components-1",children:"Load Custom Components"}),"\n",(0,n.jsxs)(t.p,{children:["The recommended way to load custom components is to set the ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lines:[{tokens:[{content:"LANGFLOW_COMPONENTS_PATH",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_COMPONENTS_PATH"})," environment variable to the path of your custom components directory. Then, run the Langflow CLI as usual."]}),"\n",(0,n.jsx)(D.Code,{codeConfig:F,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_COMPONENTS_PATH",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"'[\"/path/to/components\"]'",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"run",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:["Alternatively, you can specify the path to your custom components using the ",(0,n.jsx)(D.InlineCode,{codeConfig:F,code:{lines:[{tokens:[{content:"--",props:{style:{color:"#FF7B72"}}},{content:"components",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"path",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"--components-path"})," argument when running the Langflow CLI, as shown below:"]}),"\n",(0,n.jsx)(D.Code,{codeConfig:F,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"--components-path ",props:{style:{color:"#79C0FF"}}},{content:"/path/to/components",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsx)(t.p,{children:"Langflow will attempt to load all of the components found in the specified directory. If a component fails to load due to errors in the component's code, Langflow will print an error message to the console but will continue loading the rest of the components."}),"\n",(0,n.jsx)(t.h3,{id:"interact-with-custom-components",children:"Interact with Custom Components"}),"\n",(0,n.jsx)(t.p,{children:"Once your custom components have been loaded successfully, they will appear in Langflow's sidebar. From there, you can add them to your Langflow workspace for use. However, please note that components with errors will not be available for addition to the workspace. Always ensure your code is error-free before attempting to load components."}),"\n",(0,n.jsx)(t.p,{children:"Remember, creating custom components allows you to extend the functionality of Langflow to better suit your unique needs. Happy coding!"})]})}const u=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(C,o)})):C(o)};function m(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/a9b8ddbf.d57442be.js b/assets/js/a9b8ddbf.d57442be.js
new file mode 100644
index 0000000000..8b1911d79a
--- /dev/null
+++ b/assets/js/a9b8ddbf.d57442be.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[5971],{7293:(o,t,e)=>{e.d(t,{A:()=>T});var n=e(6540),s=e(4848);function c(o){const{mdxAdmonitionTitle:t,rest:e}=function(o){const t=n.Children.toArray(o),e=t.find((o=>n.isValidElement(o)&&"mdxAdmonitionTitle"===o.type)),c=t.filter((o=>o!==e)),l=e?.props.children;return{mdxAdmonitionTitle:l,rest:c.length>0?(0,s.jsx)(s.Fragment,{children:c}):null}}(o.children),c=o.title??t;return{...o,...c&&{title:c},children:e}}var l=e(8215),r=e(1312),p=e(7559);const i={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function a(o){let{type:t,className:e,children:n}=o;return(0,s.jsx)("div",{className:(0,l.A)(p.G.common.admonition,p.G.common.admonitionType(t),i.admonition,e),children:n})}function y(o){let{icon:t,title:e}=o;return(0,s.jsxs)("div",{className:i.admonitionHeading,children:[(0,s.jsx)("span",{className:i.admonitionIcon,children:t}),e]})}function d(o){let{children:t}=o;return t?(0,s.jsx)("div",{className:i.admonitionContent,children:t}):null}function D(o){const{type:t,icon:e,title:n,children:c,className:l}=o;return(0,s.jsxs)(a,{type:t,className:l,children:[n||e?(0,s.jsx)(y,{title:n,icon:e}):null,(0,s.jsx)(d,{children:c})]})}function F(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const u={icon:(0,s.jsx)(F,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function C(o){return(0,s.jsx)(D,{...u,...o,className:(0,l.A)("alert alert--secondary",o.className),children:o.children})}function m(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const h={icon:(0,s.jsx)(m,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function f(o){return(0,s.jsx)(D,{...h,...o,className:(0,l.A)("alert alert--success",o.className),children:o.children})}function g(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const k={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function x(o){return(0,s.jsx)(D,{...k,...o,className:(0,l.A)("alert alert--info",o.className),children:o.children})}function B(o){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const j={icon:(0,s.jsx)(B,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function A(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const b={icon:(0,s.jsx)(A,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const v={icon:(0,s.jsx)(B,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const _={...{note:C,tip:f,info:x,warning:function(o){return(0,s.jsx)(D,{...j,...o,className:(0,l.A)("alert alert--warning",o.className),children:o.children})},danger:function(o){return(0,s.jsx)(D,{...b,...o,className:(0,l.A)("alert alert--danger",o.className),children:o.children})}},...{secondary:o=>(0,s.jsx)(C,{title:"secondary",...o}),important:o=>(0,s.jsx)(x,{title:"important",...o}),success:o=>(0,s.jsx)(f,{title:"success",...o}),caution:function(o){return(0,s.jsx)(D,{...v,...o,className:(0,l.A)("alert alert--warning",o.className),children:o.children})}}};var w=e(6763);function T(o){const t=c(o),e=(n=t.type,_[n]||(w.warn(`No admonition component found for admonition type "${n}". Using Info as fallback.`),_.info));var n;return(0,s.jsx)(e,{...t})}},7533:(o,t,e)=>{e.d(t,{A:()=>r});var n=e(6540),s=e(1122),c=e(6025),l=e(4848);const r=o=>{let{alt:t,sources:e,style:r}=o;const[p,i]=(0,n.useState)(!1),a=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[p]);return(0,l.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...r},children:(0,l.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,c.Ay)(e.light),dark:(0,c.Ay)(e.dark)}})})}},9851:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>d,assets:()=>y,chCodeConfig:()=>D,contentTitle:()=>i,default:()=>C,frontMatter:()=>p,metadata:()=>a,toc:()=>F});e(6540);var n=e(4848),s=e(8453),c=e(4754),l=e(7533),r=e(7293);const p={description:"Custom Components",hide_table_of_contents:!0},i="Custom Components",a={id:"tutorials/custom_components",title:"Custom Components",description:"Custom Components",source:"@site/docs/tutorials/custom_components.mdx",sourceDirName:"tutorials",slug:"/tutorials/custom_components",permalink:"/tutorials/custom_components",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{description:"Custom Components",hide_table_of_contents:!0},sidebar:"docs",previous:{title:"Build Chatbots with the System Message Component",permalink:"/tutorials/chatprompttemplate_guide"},next:{title:"Integrate Documents with Prompt Variables",permalink:"/tutorials/loading_document"}},y={},d={annotations:c.hk,InlineCode:c.R0,Code:c.Cy,Scrollycoding:c.Fk,CodeSlot:c.Wu,SectionLink:c.W_},D={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},F=[{value:"Rules",id:"rules",level:2},{value:"Rule 1",id:"rule-1",level:3},{value:"Rule 2",id:"rule-2",level:3},{value:"Rule 3",id:"rule-3",level:3},{value:"Example",id:"example",level:2},{value:"Pick a display name",id:"pick-a-display-name",level:3},{value:"Write a description",id:"write-a-description",level:3},{value:"Add the build method",id:"add-the-build-method",level:3},{value:"Customize the component fields",id:"customize-the-component-fields",level:3},{value:"Load Custom Components",id:"load-custom-components",level:2},{value:"Folder Structure",id:"folder-structure",level:3},{value:"Load Custom Components",id:"load-custom-components-1",level:3},{value:"Interact with Custom Components",id:"interact-with-custom-components",level:3}];function u(o){const t=Object.assign({h1:"h1",p:"p",strong:"strong",ul:"ul",li:"li",a:"a",hr:"hr",h2:"h2",h3:"h3",code:"code"},(0,s.RP)(),o.components);return d||m("CH",!1),d.Code||m("CH.Code",!0),d.CodeSlot||m("CH.CodeSlot",!0),d.InlineCode||m("CH.InlineCode",!0),d.Scrollycoding||m("CH.Scrollycoding",!0),d.SectionLink||m("CH.SectionLink",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"custom-components",children:"Custom Components"}),"\n",(0,n.jsx)(r.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsx)(t.p,{children:"In Langflow, a Custom Component is a special component type that allows users to extend the platform's functionality by creating their own reusable and configurable components."}),"\n",(0,n.jsxs)(t.p,{children:["A Custom Component is created from a user-defined Python script that uses the ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lines:[{tokens:[{content:"CustomComponent",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"CustomComponent"})," class provided by the Langflow library. These components can be as simple as a basic function that takes and returns a string or as complex as a combination of multiple sub-components and API calls."]}),"\n",(0,n.jsx)(t.p,{children:"Let's take a look at the basic rules and features. Then we'll go over an example."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.strong,{children:"TL;DR"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Create a class that inherits from ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lines:[{tokens:[{content:"CustomComponent",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"CustomComponent"})," and contains a ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lines:[{tokens:[{content:"build",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"build"})," method."]}),"\n",(0,n.jsxs)(t.li,{children:["Use arguments with ",(0,n.jsx)(t.a,{href:"https://docs.python.org/3/library/typing.html",children:"Type Annotations (or Type Hints)"})," of the ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lines:[{tokens:[{content:"build",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"build"})," method to create component fields."]}),"\n",(0,n.jsxs)(t.li,{children:["Use the ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lines:[{tokens:[{content:"build_config",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"build_config"})," method to customize how these fields look and behave."]}),"\n",(0,n.jsx)(t.li,{children:"Set up a folder with your components to load them up in Langflow's sidebar."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Here is an example:"}),"\n",(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"center"},children:[(0,n.jsx)(d.Code,{linuNumbers:!1,codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"DocumentProcessor",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Document Processor"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This component processes a document"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" options ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}},{content:'"Uppercase"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Lowercase"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Titlecase"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "function"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"options"',props:{style:{color:"#A5D6FF"}}},{content:": options,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "value"',props:{style:{color:"#A5D6FF"}}},{content:": options[",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"]}}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self, document: Document, function: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:") -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if ",props:{style:{color:"#FF7B72"}}},{content:"isinstance",props:{style:{color:"#79C0FF"}}},{content:"(document, ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" document ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document[",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document.page_content",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Uppercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.upper()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Lowercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.lower()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Titlecase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.title()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".repr_value ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Result of ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"function",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:" function: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_content",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Document(",props:{style:{color:"#C9D1D9"}}},{content:"page_content",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"page_content)",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}],children:(0,n.jsx)(d.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"DocumentProcessor",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Document Processor"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This component processes a document"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" options ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}},{content:'"Uppercase"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Lowercase"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Titlecase"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "function"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"options"',props:{style:{color:"#A5D6FF"}}},{content:": options,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "value"',props:{style:{color:"#A5D6FF"}}},{content:": options[",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"]}}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self, document: Document, function: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:") -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if ",props:{style:{color:"#FF7B72"}}},{content:"isinstance",props:{style:{color:"#79C0FF"}}},{content:"(document, ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" document ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document[",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document.page_content",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Uppercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.upper()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Lowercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.lower()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Titlecase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.title()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".repr_value ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Result of ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"function",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:" function: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_content",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Document(",props:{style:{color:"#C9D1D9"}}},{content:"page_content",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"page_content)",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]})}),(0,n.jsx)(l.A,{alt:"Document Processor Component",sources:{light:"img/document_processor.png",dark:"img/document_processor.png"},style:{margin:"0 auto",display:"flex",justifyContent:"center"}})]}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h2,{id:"rules",children:"Rules"}),"\n",(0,n.jsx)(t.p,{children:"The Python script for every Custom Component should follow a set of rules. Let's go over them one by one:"}),"\n",(0,n.jsxs)(d.Scrollycoding,{rows:20,className:"",codeConfig:D,editorSteps:[{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"MyComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Custom Component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This is a custom component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self, document: Document, function: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:") -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]}],lang:"python"},annotations:[]}]},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"11",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"MyComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Custom Component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This is a custom component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]}],lang:"python"},annotations:[{Component:d.annotations.mark,focus:"11",data:""}]}],southPanel:void 0},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"11[20:31]",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"MyComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Custom Component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This is a custom component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]}],lang:"python"},annotations:[{Component:d.annotations.mark,focus:"11",data:""}]}],southPanel:void 0},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"MyComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Custom Component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This is a custom component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]}],lang:"python"},annotations:[]}],southPanel:void 0},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"MyComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Custom Component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This is a custom component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]}],lang:"python"},annotations:[]}],southPanel:void 0},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"4,5",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"DocumentProcessor",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Document Processor"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This is a custom component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]}],lang:"python"},annotations:[]}],southPanel:void 0},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"DocumentProcessor",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Document Processor"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This component processes a document"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]}],lang:"python"},annotations:[]}],southPanel:void 0},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"DocumentProcessor",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Document Processor"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This component processes a document"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ...",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self, document: Document, function: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:") -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if ",props:{style:{color:"#FF7B72"}}},{content:"isinstance",props:{style:{color:"#79C0FF"}}},{content:"(document, ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" document ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document[",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document.page_content",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Uppercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.upper()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Lowercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.lower()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Titlecase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.title()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".repr_value ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Result of ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"function",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:" function: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_content",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Document(",props:{style:{color:"#C9D1D9"}}},{content:"page_content",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"page_content)",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}],southPanel:void 0},{northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langchain.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Document",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"DocumentProcessor",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Document Processor"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"This component processes a document"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> ",props:{style:{color:"#C9D1D9"}}},{content:"dict",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" options ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}},{content:'"Uppercase"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Lowercase"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Titlecase"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "function"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"options"',props:{style:{color:"#A5D6FF"}}},{content:": options,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "value"',props:{style:{color:"#A5D6FF"}}},{content:": options[",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Function"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "document"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Document"',props:{style:{color:"#A5D6FF"}}},{content:"}",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(self, document: Document, function: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:") -> Document:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if ",props:{style:{color:"#FF7B72"}}},{content:"isinstance",props:{style:{color:"#79C0FF"}}},{content:"(document, ",props:{style:{color:"#C9D1D9"}}},{content:"list",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" document ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document[",props:{style:{color:"#C9D1D9"}}},{content:"0",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" document.page_content",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Uppercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.upper()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Lowercase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.lower()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" function ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"Titlecase"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_content ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" page_content.title()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".repr_value ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Result of ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"function",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:" function: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_content",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Document(",props:{style:{color:"#C9D1D9"}}},{content:"page_content",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"page_content)",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}],southPanel:void 0}],children:[(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h3,{id:"rule-1",children:"Rule 1"}),(0,n.jsxs)(t.p,{children:["The script must contain a ",(0,n.jsx)(t.strong,{children:"single class"})," that inherits from ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"CustomComponent",props:{style:{color:"#C9D1D9"}}}]}]},children:"CustomComponent"}),"."]}),(0,n.jsx)(d.CodeSlot,{})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h3,{id:"rule-2",children:"Rule 2"}),(0,n.jsxs)(t.p,{children:["This class requires a ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"build",props:{style:{color:"#D2A8FF"}}}]}]},children:"build"})," method used to run the component and define its fields."]}),(0,n.jsx)(d.CodeSlot,{})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.a,{href:"https://docs.python.org/3/library/typing.html",children:"Return Type Annotation"})," of the ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"build",props:{style:{color:"#D2A8FF"}}}]}]},children:"build"})," method defines the component type (e.g., Chain, BaseLanguageModel, or basic Python types). Check out all supported types in the ",(0,n.jsx)(t.a,{href:"../components/custom",children:"component reference"}),"."]}),(0,n.jsx)(d.CodeSlot,{})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.CodeSlot,{}),(0,n.jsx)(t.h3,{id:"rule-3",children:"Rule 3"}),(0,n.jsxs)(t.p,{children:["The class can have a ",(0,n.jsx)(d.SectionLink,{focus:"8",id:"focus://8",children:(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"build_config",props:{style:{color:"#D2A8FF"}}}]}]},children:"build_config"})})," method, which defines configuration fields for the component. The ",(0,n.jsx)(d.SectionLink,{focus:"8",id:"focus://8",children:(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"build_config",props:{style:{color:"#D2A8FF"}}}]}]},children:"build_config"})})," method should always return a dictionary with specific keys representing the field names and their corresponding configurations. It must follow the format described below:"]}),(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Top-level keys are field names."}),"\n",(0,n.jsxs)(t.li,{children:["Their values are also of type ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"dict",props:{style:{color:"#79C0FF"}}}]}]},children:"dict"}),". They specify the behavior of the generated fields."]}),"\n"]}),(0,n.jsxs)(t.p,{children:["Check out the ",(0,n.jsx)(t.a,{href:"../components/custom",children:"component reference"})," for more details on the available field configurations."]})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.CodeSlot,{}),(0,n.jsx)(t.h2,{id:"example",children:"Example"}),(0,n.jsxs)(t.p,{children:["Let's create a custom component that processes a document (",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lines:[{tokens:[{content:"langchain.schema.Document",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},children:"langchain.schema.Document"}),") using a simple function."]})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h3,{id:"pick-a-display-name",children:"Pick a display name"}),(0,n.jsxs)(t.p,{children:["To start, let's choose a name for our component by adding a ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"display_name",props:{style:{color:"#C9D1D9"}}}]}]},children:"display_name"})," attribute. This name will appear on the workspace. The name of the class is not relevant, but let's call it ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"DocumentProcessor",props:{style:{color:"#FFA657"}}}]}]},children:"DocumentProcessor"}),"."]}),(0,n.jsx)(d.CodeSlot,{})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h3,{id:"write-a-description",children:"Write a description"}),(0,n.jsxs)(t.p,{children:["We can also write a description for it using a ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"description",props:{style:{color:"#C9D1D9"}}}]}]},children:"description"})," attribute."]}),(0,n.jsx)(d.CodeSlot,{})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.CodeSlot,{}),(0,n.jsx)(t.h3,{id:"add-the-build-method",children:"Add the build method"}),(0,n.jsxs)(t.p,{children:["Here, the build method takes two input parameters: ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"document",props:{style:{color:"#A5D6FF"}}}]}]},children:"document"}),", representing the input document to be processed, and ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"function",props:{style:{color:"#C9D1D9"}}}]}]},children:"function"}),', a string representing the selected text transformation to be applied (either "Uppercase," "Lowercase," or "Titlecase"). The method processes the text content of the input Document based on the selected function.']}),(0,n.jsxs)(t.p,{children:["The attribute ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"repr_value",props:{style:{color:"#C9D1D9"}}}]}]},children:"repr_value"})," is used to display the result of the component on the workspace. It is optional and can be used to display any string value."]}),(0,n.jsxs)(t.p,{children:["The return type is ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"Document",props:{style:{color:"#C9D1D9"}}}]}]},children:"Document"}),"."]})]}),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h3,{id:"customize-the-component-fields",children:"Customize the component fields"}),(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"build_config",props:{style:{color:"#D2A8FF"}}}]}]},children:"build_config"})," method is here defined to customize the component fields."]}),(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"options",props:{style:{color:"#C9D1D9"}}}]}]},children:"options"})," determines that the field will be a dropdown menu. The list values and field type must be ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"str",props:{style:{color:"#79C0FF"}}}]}]},children:"str"}),"."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"value",props:{style:{color:"#A5D6FF"}}}]}]},children:"value"})," is the default value of the field."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lang:"python",lines:[{tokens:[{content:"display_name",props:{style:{color:"#C9D1D9"}}}]}]},children:"display_name"})," is the name of the field to be displayed."]}),"\n"]}),(0,n.jsx)(d.CodeSlot,{})]})]}),"\n",(0,n.jsx)(t.p,{children:"All done! This is what our script and brand-new custom component look like:"}),"\n",(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"center"},children:[(0,n.jsx)(l.A,{alt:"Document Processor Code",sources:{light:"img/document_processor_code.png",dark:"img/document_processor_code.png"},style:{maxWidth:"100%",margin:"0 auto",display:"flex",justifyContent:"center"}}),(0,n.jsx)(l.A,{alt:"Document Processor Component",sources:{light:"img/document_processor.png",dark:"img/document_processor.png"},style:{width:"40%",margin:"0 auto",display:"flex",justifyContent:"center"}})]}),"\n",(0,n.jsx)(t.hr,{}),"\n",(0,n.jsx)(t.h2,{id:"load-custom-components",children:"Load Custom Components"}),"\n",(0,n.jsx)(t.p,{children:"For advanced customization, Langflow offers the option to create and load custom components outside of the standard interface. This process involves creating the desired components using a text editor and loading them using the Langflow CLI."}),"\n",(0,n.jsx)(t.h3,{id:"folder-structure",children:"Folder Structure"}),"\n",(0,n.jsxs)(t.p,{children:["Create a folder that follows the same structural conventions as the ",(0,n.jsx)(t.a,{href:"https://github.com/langflow-ai/langflow/blob/dev/src/backend/base/langflow/config.yaml",children:"config.yaml"})," file. Inside this main directory, use a ",(0,n.jsx)(t.code,{children:"custom_components"})," subdirectory for your custom components."]}),"\n",(0,n.jsxs)(t.p,{children:["Inside ",(0,n.jsx)(t.code,{children:"custom_components"}),", you can create a Python file for each component. Similarly, any custom agents should be housed in an ",(0,n.jsx)(t.code,{children:"agents"})," subdirectory."]}),"\n",(0,n.jsxs)(t.p,{children:["If you use a subdirectory name that is not in our config.yaml file, your component will appear in an ",(0,n.jsx)(t.code,{children:"Other"})," category in the sidebar."]}),"\n",(0,n.jsx)(t.p,{children:"Your structure should look something like this:"}),"\n",(0,n.jsx)(d.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:".",props:{}}]},{tokens:[{content:"\u2514\u2500\u2500 custom_components",props:{}}]},{tokens:[{content:" \u251c\u2500\u2500 document_processor.py",props:{}}]},{tokens:[{content:" \u2514\u2500\u2500 ...",props:{}}]},{tokens:[{content:"\u2514\u2500\u2500 agents",props:{}}]},{tokens:[{content:" \u2514\u2500\u2500 ...",props:{}}]},{tokens:[{content:"\u2514\u2500\u2500 my_agents <-- Other category",props:{}}]},{tokens:[{content:" \u2514\u2500\u2500 ...",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,n.jsx)(t.h3,{id:"load-custom-components-1",children:"Load Custom Components"}),"\n",(0,n.jsxs)(t.p,{children:["The recommended way to load custom components is to set the ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lines:[{tokens:[{content:"LANGFLOW_COMPONENTS_PATH",props:{style:{color:"#79C0FF"}}}]}],lang:"jsx"},children:"LANGFLOW_COMPONENTS_PATH"})," environment variable to the path of your custom components directory. Then, run the Langflow CLI as usual."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGFLOW_COMPONENTS_PATH",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"'[\"/path/to/components\"]'",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"run",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:["Alternatively, you can specify the path to your custom components using the ",(0,n.jsx)(d.InlineCode,{codeConfig:D,code:{lines:[{tokens:[{content:"--",props:{style:{color:"#FF7B72"}}},{content:"components",props:{style:{color:"#C9D1D9"}}},{content:"-",props:{style:{color:"#FF7B72"}}},{content:"path",props:{style:{color:"#C9D1D9"}}}]}],lang:"jsx"},children:"--components-path"})," argument when running the Langflow CLI, as shown below:"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow ",props:{style:{color:"#FFA657"}}},{content:"run ",props:{style:{color:"#A5D6FF"}}},{content:"--components-path ",props:{style:{color:"#79C0FF"}}},{content:"/path/to/components",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsx)(t.p,{children:"Langflow will attempt to load all of the components found in the specified directory. If a component fails to load due to errors in the component's code, Langflow will print an error message to the console but will continue loading the rest of the components."}),"\n",(0,n.jsx)(t.h3,{id:"interact-with-custom-components",children:"Interact with Custom Components"}),"\n",(0,n.jsx)(t.p,{children:"Once your custom components have been loaded successfully, they will appear in Langflow's sidebar. From there, you can add them to your Langflow workspace for use. However, please note that components with errors will not be available for addition to the workspace. Always ensure your code is error-free before attempting to load components."}),"\n",(0,n.jsx)(t.p,{children:"Remember, creating custom components allows you to extend the functionality of Langflow to better suit your unique needs. Happy coding!"})]})}const C=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(u,o)})):u(o)};function m(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/b7466e5a.a424c8c8.js b/assets/js/b7466e5a.a424c8c8.js
deleted file mode 100644
index 27c64a440e..0000000000
--- a/assets/js/b7466e5a.a424c8c8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[25],{7533:(o,e,t)=>{t.d(e,{A:()=>l});var n=t(6540),s=t(1122),r=t(6025),c=t(4848);const l=o=>{let{alt:e,sources:t,style:l}=o;const[p,i]=(0,n.useState)(!1),a=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[p]);return(0,c.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:e,sources:{light:(0,r.Ay)(t.light),dark:(0,r.Ay)(t.dark)}})})}},5751:(o,e,t)=>{t.r(e),t.d(e,{CH:()=>y,assets:()=>d,chCodeConfig:()=>D,contentTitle:()=>i,default:()=>u,frontMatter:()=>p,metadata:()=>a,toc:()=>h});t(6540);var n=t(4848),s=t(8453),r=t(4754),c=t(7293),l=(t(1122),t(6025),t(7533));const p={},i="Database Properties",a={id:"integrations/notion/list-database-properties",title:"Database Properties",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/list-database-properties.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/list-database-properties",permalink:"/integrations/notion/list-database-properties",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Notion Search",permalink:"/integrations/notion/search"},next:{title:"List Pages",permalink:"/integrations/notion/list-pages"}},d={},y={annotations:r.hk,Code:r.Cy},D={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},h=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function F(o){const e=Object.assign({h1:"h1",p:"p",code:"code",a:"a",ul:"ul",li:"li",h2:"h2",ol:"ol"},(0,s.RP)(),o.components);return y||g("CH",!1),y.Code||g("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(e.h1,{id:"database-properties",children:"Database Properties"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(e.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(e.p,{children:["The ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component retrieves properties of a Notion database. It provides a convenient way to integrate Notion database information into your Langflow workflows."]}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.a,{href:"https://developers.notion.com/reference/post-database-query",children:"Notion Reference"})}),"\n",(0,n.jsxs)(c.A,{type:"tip",title:"Component Functionality",children:[(0,n.jsxs)(e.p,{children:["The ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component enables you to:"]}),(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Retrieve properties of a Notion database"}),"\n",(0,n.jsx)(e.li,{children:"Access the retrieved properties in your Langflow flows"}),"\n",(0,n.jsx)(e.li,{children:"Integrate Notion database information seamlessly into your workflows"}),"\n"]})]}),"\n",(0,n.jsx)(e.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(e.p,{children:["To use the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component in a Langflow flow, follow these steps:"]}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["Add the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component to your flow."]}),"\n",(0,n.jsxs)(e.li,{children:["Configure the component by providing the required inputs:","\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.code,{children:"database_id"}),": The ID of the Notion database you want to retrieve properties from."]}),"\n",(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.code,{children:"notion_secret"}),": The Notion integration token for authentication."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["Connect the output of the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component to other components in your flow as needed."]}),"\n"]}),"\n",(0,n.jsx)(e.h2,{id:"component-python-code",children:"Component Python code"}),"\n",(0,n.jsx)(y.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Dict",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionDatabaseProperties",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"List Database Properties [Notion]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Retrieve properties of a Notion database."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/list-database-properties"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "database_id"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Database ID"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The ID of the Notion database."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" database_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> Data:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" url ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"https://api.notion.com/v1/databases/',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"database_id",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"# Use the latest supported version",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.get(url, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response.raise_for_status()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" properties ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" data.get(",props:{style:{color:"#C9D1D9"}}},{content:'"properties"',props:{style:{color:"#A5D6FF"}}},{content:", {})",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" record ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:"(response.json()), ",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"properties)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Retrieved ',props:{style:{color:"#A5D6FF"}}},{content:"{len",props:{style:{color:"#79C0FF"}}},{content:"(properties)",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:" properties from the Notion database.",props:{style:{color:"#A5D6FF"}}},{content:"\\n {",props:{style:{color:"#79C0FF"}}},{content:"record.text",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" record",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(e.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(c.A,{type:"info",title:"Example Usage",children:[(0,n.jsxs)(e.p,{children:["Here's an example of how you can use the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component in a Langflow flow:"]}),(0,n.jsx)(l.A,{alt:"NotionDatabaseProperties Flow Example",sources:{light:"img/notion/NotionDatabaseProperties_flow_example.png",dark:"img/notion/NotionDatabaseProperties_flow_example_dark.png"},style:{width:"100%",margin:"20px 0"}}),(0,n.jsxs)(e.p,{children:["In this example, the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component retrieves the properties of a Notion database, and the retrieved properties are then used as input for subsequent components in the flow."]})]}),"\n",(0,n.jsx)(e.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(e.p,{children:["When using the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component, consider the following best practices:"]}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Ensure that you have a valid Notion integration token with the necessary permissions to access the desired database."}),"\n",(0,n.jsx)(e.li,{children:"Double-check the database ID to avoid retrieving properties from the wrong database."}),"\n",(0,n.jsx)(e.li,{children:"Handle potential errors gracefully by checking the response status and providing appropriate error messages."}),"\n"]}),"\n",(0,n.jsxs)(e.p,{children:["The ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component simplifies the process of retrieving properties from a Notion database and integrating them into your Langflow workflows. By leveraging this component, you can easily access and utilize Notion database information in your flows, enabling powerful integrations and automations."]}),"\n",(0,n.jsxs)(e.p,{children:["Feel free to explore the capabilities of the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component and experiment with different use cases to enhance your Langflow workflows!"]}),"\n",(0,n.jsx)(e.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(e.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component, consider the following:"]}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Verify that the Notion integration token is valid and has the required permissions."}),"\n",(0,n.jsx)(e.li,{children:"Check the database ID to ensure it matches the intended Notion database."}),"\n",(0,n.jsx)(e.li,{children:"Inspect the response from the Notion API for any error messages or status codes that may indicate the cause of the issue."}),"\n"]})]})}const u=function(o={}){const{wrapper:e}=Object.assign({},(0,s.RP)(),o.components);return e?(0,n.jsx)(e,Object.assign({},o,{children:(0,n.jsx)(F,o)})):F(o)};function g(o,e){throw new Error("Expected "+(e?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/b7466e5a.e12ea85c.js b/assets/js/b7466e5a.e12ea85c.js
new file mode 100644
index 0000000000..60614b8c4d
--- /dev/null
+++ b/assets/js/b7466e5a.e12ea85c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[25],{7293:(o,e,t)=>{t.d(e,{A:()=>_});var n=t(6540),s=t(4848);function r(o){const{mdxAdmonitionTitle:e,rest:t}=function(o){const e=n.Children.toArray(o),t=e.find((o=>n.isValidElement(o)&&"mdxAdmonitionTitle"===o.type)),r=e.filter((o=>o!==t)),c=t?.props.children;return{mdxAdmonitionTitle:c,rest:r.length>0?(0,s.jsx)(s.Fragment,{children:r}):null}}(o.children),r=o.title??e;return{...o,...r&&{title:r},children:t}}var c=t(8215),l=t(1312),i=t(7559);const a={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function p(o){let{type:e,className:t,children:n}=o;return(0,s.jsx)("div",{className:(0,c.A)(i.G.common.admonition,i.G.common.admonitionType(e),a.admonition,t),children:n})}function d(o){let{icon:e,title:t}=o;return(0,s.jsxs)("div",{className:a.admonitionHeading,children:[(0,s.jsx)("span",{className:a.admonitionIcon,children:e}),t]})}function h(o){let{children:e}=o;return e?(0,s.jsx)("div",{className:a.admonitionContent,children:e}):null}function y(o){const{type:e,icon:t,title:n,children:r,className:c}=o;return(0,s.jsxs)(p,{type:e,className:c,children:[n||t?(0,s.jsx)(d,{title:n,icon:t}):null,(0,s.jsx)(h,{children:r})]})}function u(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const D={icon:(0,s.jsx)(u,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function m(o){return(0,s.jsx)(y,{...D,...o,className:(0,c.A)("alert alert--secondary",o.className),children:o.children})}function F(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const f={icon:(0,s.jsx)(F,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function g(o){return(0,s.jsx)(y,{...f,...o,className:(0,c.A)("alert alert--success",o.className),children:o.children})}function x(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const C={icon:(0,s.jsx)(x,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function b(o){return(0,s.jsx)(y,{...C,...o,className:(0,c.A)("alert alert--info",o.className),children:o.children})}function j(o){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const k={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function v(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const w={icon:(0,s.jsx)(v,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const A={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const N={...{note:m,tip:g,info:b,warning:function(o){return(0,s.jsx)(y,{...k,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})},danger:function(o){return(0,s.jsx)(y,{...w,...o,className:(0,c.A)("alert alert--danger",o.className),children:o.children})}},...{secondary:o=>(0,s.jsx)(m,{title:"secondary",...o}),important:o=>(0,s.jsx)(b,{title:"important",...o}),success:o=>(0,s.jsx)(g,{title:"success",...o}),caution:function(o){return(0,s.jsx)(y,{...A,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})}}};var B=t(6763);function _(o){const e=r(o),t=(n=e.type,N[n]||(B.warn(`No admonition component found for admonition type "${n}". Using Info as fallback.`),N.info));var n;return(0,s.jsx)(t,{...e})}},7533:(o,e,t)=>{t.d(e,{A:()=>l});var n=t(6540),s=t(1122),r=t(6025),c=t(4848);const l=o=>{let{alt:e,sources:t,style:l}=o;const[i,a]=(0,n.useState)(!1),p=o=>{"Escape"===o.key&&a(!1)};(0,n.useEffect)((()=>(i?document.addEventListener("keydown",p):document.removeEventListener("keydown",p),()=>{document.removeEventListener("keydown",p)})),[i]);return(0,c.jsx)("div",{className:"zoomable-image "+(i?"fullscreen":""),onClick:()=>{a(!i)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:e,sources:{light:(0,r.Ay)(t.light),dark:(0,r.Ay)(t.dark)}})})}},5751:(o,e,t)=>{t.r(e),t.d(e,{CH:()=>h,assets:()=>d,chCodeConfig:()=>y,contentTitle:()=>a,default:()=>m,frontMatter:()=>i,metadata:()=>p,toc:()=>u});t(6540);var n=t(4848),s=t(8453),r=t(4754),c=t(7293),l=(t(1122),t(6025),t(7533));const i={},a="Database Properties",p={id:"integrations/notion/list-database-properties",title:"Database Properties",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/list-database-properties.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/list-database-properties",permalink:"/integrations/notion/list-database-properties",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Notion Search",permalink:"/integrations/notion/search"},next:{title:"List Pages",permalink:"/integrations/notion/list-pages"}},d={},h={annotations:r.hk,Code:r.Cy},y={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},u=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function D(o){const e=Object.assign({h1:"h1",p:"p",code:"code",a:"a",ul:"ul",li:"li",h2:"h2",ol:"ol"},(0,s.RP)(),o.components);return h||F("CH",!1),h.Code||F("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(e.h1,{id:"database-properties",children:"Database Properties"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(e.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(e.p,{children:["The ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component retrieves properties of a Notion database. It provides a convenient way to integrate Notion database information into your Langflow workflows."]}),"\n",(0,n.jsx)(e.p,{children:(0,n.jsx)(e.a,{href:"https://developers.notion.com/reference/post-database-query",children:"Notion Reference"})}),"\n",(0,n.jsxs)(c.A,{type:"tip",title:"Component Functionality",children:[(0,n.jsxs)(e.p,{children:["The ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component enables you to:"]}),(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Retrieve properties of a Notion database"}),"\n",(0,n.jsx)(e.li,{children:"Access the retrieved properties in your Langflow flows"}),"\n",(0,n.jsx)(e.li,{children:"Integrate Notion database information seamlessly into your workflows"}),"\n"]})]}),"\n",(0,n.jsx)(e.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(e.p,{children:["To use the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component in a Langflow flow, follow these steps:"]}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["Add the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component to your flow."]}),"\n",(0,n.jsxs)(e.li,{children:["Configure the component by providing the required inputs:","\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.code,{children:"database_id"}),": The ID of the Notion database you want to retrieve properties from."]}),"\n",(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.code,{children:"notion_secret"}),": The Notion integration token for authentication."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["Connect the output of the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component to other components in your flow as needed."]}),"\n"]}),"\n",(0,n.jsx)(e.h2,{id:"component-python-code",children:"Component Python code"}),"\n",(0,n.jsx)(h.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Dict",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionDatabaseProperties",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"List Database Properties [Notion]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Retrieve properties of a Notion database."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/list-database-properties"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "database_id"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Database ID"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The ID of the Notion database."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" database_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> Data:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" url ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"https://api.notion.com/v1/databases/',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"database_id",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"# Use the latest supported version",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.get(url, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response.raise_for_status()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" properties ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" data.get(",props:{style:{color:"#C9D1D9"}}},{content:'"properties"',props:{style:{color:"#A5D6FF"}}},{content:", {})",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" record ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:"(response.json()), ",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"properties)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Retrieved ',props:{style:{color:"#A5D6FF"}}},{content:"{len",props:{style:{color:"#79C0FF"}}},{content:"(properties)",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:" properties from the Notion database.",props:{style:{color:"#A5D6FF"}}},{content:"\\n {",props:{style:{color:"#79C0FF"}}},{content:"record.text",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" record",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(e.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(c.A,{type:"info",title:"Example Usage",children:[(0,n.jsxs)(e.p,{children:["Here's an example of how you can use the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component in a Langflow flow:"]}),(0,n.jsx)(l.A,{alt:"NotionDatabaseProperties Flow Example",sources:{light:"img/notion/NotionDatabaseProperties_flow_example.png",dark:"img/notion/NotionDatabaseProperties_flow_example_dark.png"},style:{width:"100%",margin:"20px 0"}}),(0,n.jsxs)(e.p,{children:["In this example, the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component retrieves the properties of a Notion database, and the retrieved properties are then used as input for subsequent components in the flow."]})]}),"\n",(0,n.jsx)(e.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(e.p,{children:["When using the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component, consider the following best practices:"]}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Ensure that you have a valid Notion integration token with the necessary permissions to access the desired database."}),"\n",(0,n.jsx)(e.li,{children:"Double-check the database ID to avoid retrieving properties from the wrong database."}),"\n",(0,n.jsx)(e.li,{children:"Handle potential errors gracefully by checking the response status and providing appropriate error messages."}),"\n"]}),"\n",(0,n.jsxs)(e.p,{children:["The ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component simplifies the process of retrieving properties from a Notion database and integrating them into your Langflow workflows. By leveraging this component, you can easily access and utilize Notion database information in your flows, enabling powerful integrations and automations."]}),"\n",(0,n.jsxs)(e.p,{children:["Feel free to explore the capabilities of the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component and experiment with different use cases to enhance your Langflow workflows!"]}),"\n",(0,n.jsx)(e.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(e.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(e.code,{children:"NotionDatabaseProperties"})," component, consider the following:"]}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Verify that the Notion integration token is valid and has the required permissions."}),"\n",(0,n.jsx)(e.li,{children:"Check the database ID to ensure it matches the intended Notion database."}),"\n",(0,n.jsx)(e.li,{children:"Inspect the response from the Notion API for any error messages or status codes that may indicate the cause of the issue."}),"\n"]})]})}const m=function(o={}){const{wrapper:e}=Object.assign({},(0,s.RP)(),o.components);return e?(0,n.jsx)(e,Object.assign({},o,{children:(0,n.jsx)(D,o)})):D(o)};function F(o,e){throw new Error("Expected "+(e?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/bbc1c28c.01cc804d.js b/assets/js/bbc1c28c.01cc804d.js
deleted file mode 100644
index f9f15fcd2a..0000000000
--- a/assets/js/bbc1c28c.01cc804d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8991],{2614:(e,o,t)=>{t.r(o),t.d(o,{CH:()=>h,assets:()=>d,chCodeConfig:()=>u,contentTitle:()=>l,default:()=>b,frontMatter:()=>s,metadata:()=>a,toc:()=>p});t(6540);var n=t(4848),r=t(8453),c=t(4754),i=t(7293);const s={},l="How to Contribute?",a={id:"contributing/how-contribute",title:"How to Contribute?",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/contributing/how-contribute.mdx",sourceDirName:"contributing",slug:"/contributing/how-contribute",permalink:"/contributing/how-contribute",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Telemetry",permalink:"/contributing/telemetry"},next:{title:"GitHub Issues",permalink:"/contributing/github-issues"}},d={},h={annotations:c.hk,Code:c.Cy},u={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Local development",id:"local-development",level:2},{value:"Run locally",id:"run-locally",level:2},{value:"Docker compose",id:"docker-compose",level:2},{value:"Documentation",id:"documentation",level:2}];function g(e){const o=Object.assign({h1:"h1",p:"p",a:"a",hr:"hr",h2:"h2",code:"code",ul:"ul",li:"li"},(0,r.RP)(),e.components);return h||f("CH",!1),h.Code||f("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(o.h1,{id:"how-to-contribute",children:"How to Contribute?"}),"\n",(0,n.jsx)(i.A,{type:"warning",title:"warning",children:(0,n.jsx)(o.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(o.p,{children:["\ud83d\udc4b Hello there! We welcome contributions from developers of all levels to our open-source project on ",(0,n.jsx)(o.a,{href:"https://github.com/langflow-ai/langflow",children:"GitHub"}),". If you'd like to contribute, please check our contributing guidelines and help make Langflow more accessible."]}),"\n",(0,n.jsx)(o.p,{children:"As an open-source project in a rapidly developing field, we are extremely open\nto contributions, whether in the form of a new feature, improved infra, or better documentation."}),"\n",(0,n.jsxs)(o.p,{children:["To contribute to this project, please follow a ",(0,n.jsx)(o.a,{href:"https://docs.github.com/en/get-started/quickstart/contributing-to-projects",children:'"fork and pull request"'})," workflow."]}),"\n",(0,n.jsx)(o.p,{children:"Please do not try to push directly to this repo unless you are a maintainer."}),"\n",(0,n.jsx)(o.hr,{}),"\n",(0,n.jsx)(o.h2,{id:"local-development",children:"Local development"}),"\n",(0,n.jsx)(o.p,{children:"You can develop Langflow using docker compose, or locally."}),"\n",(0,n.jsxs)(o.p,{children:["We provide a ",(0,n.jsx)(o.code,{children:".vscode/launch.json"})," file for debugging the backend in VSCode, which is a lot faster than using docker compose."]}),"\n",(0,n.jsx)(o.p,{children:"Setting up hooks:"}),"\n",(0,n.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"make ",props:{style:{color:"#FFA657"}}},{content:"init",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsxs)(o.p,{children:["This will install the pre-commit hooks, which will run ",(0,n.jsx)(o.code,{children:"make format"})," on every commit."]}),"\n",(0,n.jsxs)(o.p,{children:["It is advised to run ",(0,n.jsx)(o.code,{children:"make lint"})," before pushing to the repository."]}),"\n",(0,n.jsx)(o.hr,{}),"\n",(0,n.jsx)(o.h2,{id:"run-locally",children:"Run locally"}),"\n",(0,n.jsx)(o.p,{children:"Langflow can run locally by cloning the repository and installing the dependencies. We recommend using a virtual environment to isolate the dependencies from your system."}),"\n",(0,n.jsx)(o.p,{children:"Before you start, make sure you have the following installed:"}),"\n",(0,n.jsxs)(o.ul,{children:["\n",(0,n.jsx)(o.li,{children:"Poetry (>=1.4)"}),"\n",(0,n.jsx)(o.li,{children:"Node.js"}),"\n"]}),"\n",(0,n.jsx)(o.p,{children:"Then, in the root folder, install the dependencies and start the development server for the backend:"}),"\n",(0,n.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"make ",props:{style:{color:"#FFA657"}}},{content:"backend",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsx)(o.p,{children:"And the frontend:"}),"\n",(0,n.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"make ",props:{style:{color:"#FFA657"}}},{content:"frontend",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsx)(o.hr,{}),"\n",(0,n.jsx)(o.h2,{id:"docker-compose",children:"Docker compose"}),"\n",(0,n.jsxs)(o.p,{children:["The following snippet will run the backend and frontend in separate containers. The frontend will be available at ",(0,n.jsx)(o.code,{children:"localhost:3000"})," and the backend at ",(0,n.jsx)(o.code,{children:"localhost:7860"}),"."]}),"\n",(0,n.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"compose up ",props:{style:{color:"#A5D6FF"}}},{content:"--build",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"make ",props:{style:{color:"#FFA657"}}},{content:"dev build=",props:{style:{color:"#A5D6FF"}}},{content:"1",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsx)(o.hr,{}),"\n",(0,n.jsx)(o.h2,{id:"documentation",children:"Documentation"}),"\n",(0,n.jsxs)(o.p,{children:["The documentation is built using ",(0,n.jsx)(o.a,{href:"https://docusaurus.io/",children:"Docusaurus"}),". To run the documentation locally, run the following commands:"]}),"\n",(0,n.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"cd ",props:{style:{color:"#79C0FF"}}},{content:"docs",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"npm ",props:{style:{color:"#FFA657"}}},{content:"install",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"npm ",props:{style:{color:"#FFA657"}}},{content:"run start",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsxs)(o.p,{children:["The documentation will be available at ",(0,n.jsx)(o.code,{children:"localhost:3000"})," and all the files are located in the ",(0,n.jsx)(o.code,{children:"docs/docs"})," folder.\nOnce you are done with your changes, you can create a Pull Request to the ",(0,n.jsx)(o.code,{children:"main"})," branch."]})]})}const b=function(e={}){const{wrapper:o}=Object.assign({},(0,r.RP)(),e.components);return o?(0,n.jsx)(o,Object.assign({},e,{children:(0,n.jsx)(g,e)})):g(e)};function f(e,o){throw new Error("Expected "+(o?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/bbc1c28c.4365f5fb.js b/assets/js/bbc1c28c.4365f5fb.js
new file mode 100644
index 0000000000..c5078aaf43
--- /dev/null
+++ b/assets/js/bbc1c28c.4365f5fb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8991],{7293:(e,n,o)=>{o.d(n,{A:()=>H});var t=o(6540),i=o(4848);function c(e){const{mdxAdmonitionTitle:n,rest:o}=function(e){const n=t.Children.toArray(e),o=n.find((e=>t.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),c=n.filter((e=>e!==o)),r=o?.props.children;return{mdxAdmonitionTitle:r,rest:c.length>0?(0,i.jsx)(i.Fragment,{children:c}):null}}(e.children),c=e.title??n;return{...e,...c&&{title:c},children:o}}var r=o(8215),s=o(1312),l=o(7559);const a={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:o,children:t}=e;return(0,i.jsx)("div",{className:(0,r.A)(l.G.common.admonition,l.G.common.admonitionType(n),a.admonition,o),children:t})}function h(e){let{icon:n,title:o}=e;return(0,i.jsxs)("div",{className:a.admonitionHeading,children:[(0,i.jsx)("span",{className:a.admonitionIcon,children:n}),o]})}function u(e){let{children:n}=e;return n?(0,i.jsx)("div",{className:a.admonitionContent,children:n}):null}function p(e){const{type:n,icon:o,title:t,children:c,className:r}=e;return(0,i.jsxs)(d,{type:n,className:r,children:[t||o?(0,i.jsx)(h,{title:t,icon:o}):null,(0,i.jsx)(u,{children:c})]})}function m(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const f={icon:(0,i.jsx)(m,{}),title:(0,i.jsx)(s.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function g(e){return(0,i.jsx)(p,{...f,...e,className:(0,r.A)("alert alert--secondary",e.className),children:e.children})}function x(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const j={icon:(0,i.jsx)(x,{}),title:(0,i.jsx)(s.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function b(e){return(0,i.jsx)(p,{...j,...e,className:(0,r.A)("alert alert--success",e.className),children:e.children})}function v(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const y={icon:(0,i.jsx)(v,{}),title:(0,i.jsx)(s.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function k(e){return(0,i.jsx)(p,{...y,...e,className:(0,r.A)("alert alert--info",e.className),children:e.children})}function w(e){return(0,i.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const F={icon:(0,i.jsx)(w,{}),title:(0,i.jsx)(s.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function C(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const A={icon:(0,i.jsx)(C,{}),title:(0,i.jsx)(s.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const N={icon:(0,i.jsx)(w,{}),title:(0,i.jsx)(s.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const T={...{note:g,tip:b,info:k,warning:function(e){return(0,i.jsx)(p,{...F,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,i.jsx)(p,{...A,...e,className:(0,r.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,i.jsx)(g,{title:"secondary",...e}),important:e=>(0,i.jsx)(k,{title:"important",...e}),success:e=>(0,i.jsx)(b,{title:"success",...e}),caution:function(e){return(0,i.jsx)(p,{...N,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})}}};var B=o(6763);function H(e){const n=c(e),o=(t=n.type,T[t]||(B.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),T.info));var t;return(0,i.jsx)(o,{...n})}},2614:(e,n,o)=>{o.r(n),o.d(n,{CH:()=>h,assets:()=>d,chCodeConfig:()=>u,contentTitle:()=>l,default:()=>f,frontMatter:()=>s,metadata:()=>a,toc:()=>p});o(6540);var t=o(4848),i=o(8453),c=o(4754),r=o(7293);const s={},l="How to Contribute?",a={id:"contributing/how-contribute",title:"How to Contribute?",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/contributing/how-contribute.mdx",sourceDirName:"contributing",slug:"/contributing/how-contribute",permalink:"/contributing/how-contribute",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Telemetry",permalink:"/contributing/telemetry"},next:{title:"GitHub Issues",permalink:"/contributing/github-issues"}},d={},h={annotations:c.hk,Code:c.Cy},u={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Local development",id:"local-development",level:2},{value:"Run locally",id:"run-locally",level:2},{value:"Docker compose",id:"docker-compose",level:2},{value:"Documentation",id:"documentation",level:2}];function m(e){const n=Object.assign({h1:"h1",p:"p",a:"a",hr:"hr",h2:"h2",code:"code",ul:"ul",li:"li"},(0,i.RP)(),e.components);return h||g("CH",!1),h.Code||g("CH.Code",!0),(0,t.jsxs)(t.Fragment,{children:[(0,t.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","\n",(0,t.jsx)(n.h1,{id:"how-to-contribute",children:"How to Contribute?"}),"\n",(0,t.jsx)(r.A,{type:"warning",title:"warning",children:(0,t.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,t.jsxs)(n.p,{children:["\ud83d\udc4b Hello there! We welcome contributions from developers of all levels to our open-source project on ",(0,t.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow",children:"GitHub"}),". If you'd like to contribute, please check our contributing guidelines and help make Langflow more accessible."]}),"\n",(0,t.jsx)(n.p,{children:"As an open-source project in a rapidly developing field, we are extremely open\nto contributions, whether in the form of a new feature, improved infra, or better documentation."}),"\n",(0,t.jsxs)(n.p,{children:["To contribute to this project, please follow a ",(0,t.jsx)(n.a,{href:"https://docs.github.com/en/get-started/quickstart/contributing-to-projects",children:'"fork and pull request"'})," workflow."]}),"\n",(0,t.jsx)(n.p,{children:"Please do not try to push directly to this repo unless you are a maintainer."}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"local-development",children:"Local development"}),"\n",(0,t.jsx)(n.p,{children:"You can develop Langflow using docker compose, or locally."}),"\n",(0,t.jsxs)(n.p,{children:["We provide a ",(0,t.jsx)(n.code,{children:".vscode/launch.json"})," file for debugging the backend in VSCode, which is a lot faster than using docker compose."]}),"\n",(0,t.jsx)(n.p,{children:"Setting up hooks:"}),"\n",(0,t.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"make ",props:{style:{color:"#FFA657"}}},{content:"init",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,t.jsxs)(n.p,{children:["This will install the pre-commit hooks, which will run ",(0,t.jsx)(n.code,{children:"make format"})," on every commit."]}),"\n",(0,t.jsxs)(n.p,{children:["It is advised to run ",(0,t.jsx)(n.code,{children:"make lint"})," before pushing to the repository."]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"run-locally",children:"Run locally"}),"\n",(0,t.jsx)(n.p,{children:"Langflow can run locally by cloning the repository and installing the dependencies. We recommend using a virtual environment to isolate the dependencies from your system."}),"\n",(0,t.jsx)(n.p,{children:"Before you start, make sure you have the following installed:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Poetry (>=1.4)"}),"\n",(0,t.jsx)(n.li,{children:"Node.js"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Then, in the root folder, install the dependencies and start the development server for the backend:"}),"\n",(0,t.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"make ",props:{style:{color:"#FFA657"}}},{content:"backend",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,t.jsx)(n.p,{children:"And the frontend:"}),"\n",(0,t.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"make ",props:{style:{color:"#FFA657"}}},{content:"frontend",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"docker-compose",children:"Docker compose"}),"\n",(0,t.jsxs)(n.p,{children:["The following snippet will run the backend and frontend in separate containers. The frontend will be available at ",(0,t.jsx)(n.code,{children:"localhost:3000"})," and the backend at ",(0,t.jsx)(n.code,{children:"localhost:7860"}),"."]}),"\n",(0,t.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"compose up ",props:{style:{color:"#A5D6FF"}}},{content:"--build",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"# or",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"make ",props:{style:{color:"#FFA657"}}},{content:"dev build=",props:{style:{color:"#A5D6FF"}}},{content:"1",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"documentation",children:"Documentation"}),"\n",(0,t.jsxs)(n.p,{children:["The documentation is built using ",(0,t.jsx)(n.a,{href:"https://docusaurus.io/",children:"Docusaurus"}),". To run the documentation locally, run the following commands:"]}),"\n",(0,t.jsx)(h.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"cd ",props:{style:{color:"#79C0FF"}}},{content:"docs",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"npm ",props:{style:{color:"#FFA657"}}},{content:"install",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"npm ",props:{style:{color:"#FFA657"}}},{content:"run start",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,t.jsxs)(n.p,{children:["The documentation will be available at ",(0,t.jsx)(n.code,{children:"localhost:3000"})," and all the files are located in the ",(0,t.jsx)(n.code,{children:"docs/docs"})," folder.\nOnce you are done with your changes, you can create a Pull Request to the ",(0,t.jsx)(n.code,{children:"main"})," branch."]})]})}const f=function(e={}){const{wrapper:n}=Object.assign({},(0,i.RP)(),e.components);return n?(0,t.jsx)(n,Object.assign({},e,{children:(0,t.jsx)(m,e)})):m(e)};function g(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/cdfe9fae.5a5bf6cb.js b/assets/js/cdfe9fae.5a5bf6cb.js
deleted file mode 100644
index 10889cc450..0000000000
--- a/assets/js/cdfe9fae.5a5bf6cb.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1494],{7533:(o,t,e)=>{e.d(t,{A:()=>l});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const l=o=>{let{alt:t,sources:e,style:l}=o;const[p,i]=(0,n.useState)(!1),d=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[p]);return(0,c.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},8010:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>y,assets:()=>a,chCodeConfig:()=>D,contentTitle:()=>i,default:()=>C,frontMatter:()=>p,metadata:()=>d,toc:()=>F});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=e(7293),l=(e(1122),e(6025),e(7533));const p={},i="Add Content To Page",d={id:"integrations/notion/add-content-to-page",title:"Add Content To Page",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/add-content-to-page.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/add-content-to-page",permalink:"/integrations/notion/add-content-to-page",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Page Create",permalink:"/integrations/notion/page-create"},next:{title:"Page Update",permalink:"/integrations/notion/page-update"}},a={},y={annotations:r.hk,Code:r.Cy},D={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},F=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python Code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function h(o){const t=Object.assign({h1:"h1",p:"p",code:"code",a:"a",ul:"ul",li:"li",h2:"h2",ol:"ol",strong:"strong"},(0,s.RP)(),o.components);return y||g("CH",!1),y.Code||g("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"add-content-to-page",children:"Add Content To Page"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component converts markdown text to Notion blocks and appends them to a Notion page."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://developers.notion.com/reference/patch-block-children",children:"Notion Reference"})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component enables you to:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Convert markdown text to Notion blocks."}),"\n",(0,n.jsx)(t.li,{children:"Append the converted blocks to a specified Notion page."}),"\n",(0,n.jsx)(t.li,{children:"Seamlessly integrate Notion content creation into Langflow workflows."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(t.p,{children:["To use the ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component in a Langflow flow:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsxs)(t.strong,{children:["Add the ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component"]})," to your flow."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Configure the component"})," by providing:","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"markdown_text"}),": The markdown text to convert."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"block_id"}),": The ID of the Notion page/block to append the content."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"notion_secret"}),": The Notion integration token for authentication."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Connect the component"})," to other nodes in your flow as needed."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Run the flow"})," to convert the markdown text and append it to the specified Notion page."]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-python-code",children:"Component Python Code"}),"\n",(0,n.jsx)(y.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" json",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Optional",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionPageCreator",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Create Page [Notion]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"A component for creating Notion pages."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/add-content-to-page"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "database_id"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Database ID"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The ID of the Notion database."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Properties"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"The properties of the new page. Depending on your database setup, this can change. E.G: {'Task name': {'id': 'title', 'type': 'title', 'title': [{'type': 'text', 'text': {'content': 'Send Notion Components to LF', 'link': null",props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" database_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" properties: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'\'{"Task name": {"id": "title", "type": "title", "title": [{"type": "text", "text": {"content": "Send Notion Components to LF", "link": null',props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:"'",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if not",props:{style:{color:"#FF7B72"}}},{content:" database_id ",props:{style:{color:"#C9D1D9"}}},{content:"or not",props:{style:{color:"#FF7B72"}}},{content:" properties:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" raise ",props:{style:{color:"#FF7B72"}}},{content:"ValueError",props:{style:{color:"#79C0FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"\"Invalid input. Please provide 'database_id' and 'properties'.\"",props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Content-Type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"application/json"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "parent"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"database_id"',props:{style:{color:"#A5D6FF"}}},{content:": database_id},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#A5D6FF"}}},{content:": json.loads(properties),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.post(",props:{style:{color:"#C9D1D9"}}},{content:'"https://api.notion.com/v1/pages"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"data)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" response.status_code ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:"200",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_id ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" response.json()[",props:{style:{color:"#C9D1D9"}}},{content:'"id"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Successfully created Notion page with ID: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_id",props:{style:{color:"#C9D1D9"}}},{content:"}\\n {str",props:{style:{color:"#79C0FF"}}},{content:"(response.json())",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" else",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" error_message ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Failed to create Notion page. Status code: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"response.status_code",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", Error: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"response.text",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" error_message",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" raise ",props:{style:{color:"#FF7B72"}}},{content:"Exception",props:{style:{color:"#79C0FF"}}},{content:"(error_message)",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Example of using the ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component in a Langflow flow using Markdown as input:"]}),"\n",(0,n.jsx)(l.A,{alt:"NotionDatabaseProperties Flow Example",sources:{light:"img/notion/AddContentToPage_flow_example.png",dark:"img/notion/AddContentToPage_flow_example.png"},style:{width:"100%",margin:"20px 0"}}),"\n",(0,n.jsxs)(t.p,{children:["In this example, the ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component connects to a ",(0,n.jsx)(t.code,{children:"MarkdownLoader"})," component to provide the markdown text input. The converted Notion blocks are appended to the specified Notion page using the provided ",(0,n.jsx)(t.code,{children:"block_id"})," and ",(0,n.jsx)(t.code,{children:"notion_secret"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(t.p,{children:["When using the ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Ensure markdown text is well-formatted."}),"\n",(0,n.jsxs)(t.li,{children:["Verify the ",(0,n.jsx)(t.code,{children:"block_id"})," corresponds to the right Notion page/block."]}),"\n",(0,n.jsx)(t.li,{children:"Keep your Notion integration token secure."}),"\n",(0,n.jsx)(t.li,{children:"Test with sample markdown text before production use."}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component is a powerful tool for integrating Notion content creation into Langflow workflows, facilitating easy conversion of markdown text to Notion blocks and appending them to specific pages."]}),"\n",(0,n.jsx)(t.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(t.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component, consider the following:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Verify the Notion integration token\u2019s validity and permissions."}),"\n",(0,n.jsx)(t.li,{children:"Check the Notion API documentation for updates."}),"\n",(0,n.jsx)(t.li,{children:"Ensure markdown text is properly formatted."}),"\n",(0,n.jsxs)(t.li,{children:["Double-check the ",(0,n.jsx)(t.code,{children:"block_id"})," for correctness."]}),"\n"]})]})}const C=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(h,o)})):h(o)};function g(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/cdfe9fae.82f3a17d.js b/assets/js/cdfe9fae.82f3a17d.js
new file mode 100644
index 0000000000..fe0a760b92
--- /dev/null
+++ b/assets/js/cdfe9fae.82f3a17d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[1494],{7293:(o,t,e)=>{e.d(t,{A:()=>T});var n=e(6540),s=e(4848);function r(o){const{mdxAdmonitionTitle:t,rest:e}=function(o){const t=n.Children.toArray(o),e=t.find((o=>n.isValidElement(o)&&"mdxAdmonitionTitle"===o.type)),r=t.filter((o=>o!==e)),c=e?.props.children;return{mdxAdmonitionTitle:c,rest:r.length>0?(0,s.jsx)(s.Fragment,{children:r}):null}}(o.children),r=o.title??t;return{...o,...r&&{title:r},children:e}}var c=e(8215),l=e(1312),p=e(7559);const i={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(o){let{type:t,className:e,children:n}=o;return(0,s.jsx)("div",{className:(0,c.A)(p.G.common.admonition,p.G.common.admonitionType(t),i.admonition,e),children:n})}function a(o){let{icon:t,title:e}=o;return(0,s.jsxs)("div",{className:i.admonitionHeading,children:[(0,s.jsx)("span",{className:i.admonitionIcon,children:t}),e]})}function y(o){let{children:t}=o;return t?(0,s.jsx)("div",{className:i.admonitionContent,children:t}):null}function h(o){const{type:t,icon:e,title:n,children:r,className:c}=o;return(0,s.jsxs)(d,{type:t,className:c,children:[n||e?(0,s.jsx)(a,{title:n,icon:e}):null,(0,s.jsx)(y,{children:r})]})}function D(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const F={icon:(0,s.jsx)(D,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function u(o){return(0,s.jsx)(h,{...F,...o,className:(0,c.A)("alert alert--secondary",o.className),children:o.children})}function C(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const g={icon:(0,s.jsx)(C,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function m(o){return(0,s.jsx)(h,{...g,...o,className:(0,c.A)("alert alert--success",o.className),children:o.children})}function f(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const x={icon:(0,s.jsx)(f,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function k(o){return(0,s.jsx)(h,{...x,...o,className:(0,c.A)("alert alert--info",o.className),children:o.children})}function j(o){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const A={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function b(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const v={icon:(0,s.jsx)(b,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const w={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const B={...{note:u,tip:m,info:k,warning:function(o){return(0,s.jsx)(h,{...A,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})},danger:function(o){return(0,s.jsx)(h,{...v,...o,className:(0,c.A)("alert alert--danger",o.className),children:o.children})}},...{secondary:o=>(0,s.jsx)(u,{title:"secondary",...o}),important:o=>(0,s.jsx)(k,{title:"important",...o}),success:o=>(0,s.jsx)(m,{title:"success",...o}),caution:function(o){return(0,s.jsx)(h,{...w,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})}}};var N=e(6763);function T(o){const t=r(o),e=(n=t.type,B[n]||(N.warn(`No admonition component found for admonition type "${n}". Using Info as fallback.`),B.info));var n;return(0,s.jsx)(e,{...t})}},7533:(o,t,e)=>{e.d(t,{A:()=>l});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const l=o=>{let{alt:t,sources:e,style:l}=o;const[p,i]=(0,n.useState)(!1),d=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[p]);return(0,c.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},8010:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>y,assets:()=>a,chCodeConfig:()=>h,contentTitle:()=>i,default:()=>u,frontMatter:()=>p,metadata:()=>d,toc:()=>D});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=e(7293),l=(e(1122),e(6025),e(7533));const p={},i="Add Content To Page",d={id:"integrations/notion/add-content-to-page",title:"Add Content To Page",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/add-content-to-page.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/add-content-to-page",permalink:"/integrations/notion/add-content-to-page",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Page Create",permalink:"/integrations/notion/page-create"},next:{title:"Page Update",permalink:"/integrations/notion/page-update"}},a={},y={annotations:r.hk,Code:r.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},D=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python Code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function F(o){const t=Object.assign({h1:"h1",p:"p",code:"code",a:"a",ul:"ul",li:"li",h2:"h2",ol:"ol",strong:"strong"},(0,s.RP)(),o.components);return y||C("CH",!1),y.Code||C("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"add-content-to-page",children:"Add Content To Page"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component converts markdown text to Notion blocks and appends them to a Notion page."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://developers.notion.com/reference/patch-block-children",children:"Notion Reference"})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component enables you to:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Convert markdown text to Notion blocks."}),"\n",(0,n.jsx)(t.li,{children:"Append the converted blocks to a specified Notion page."}),"\n",(0,n.jsx)(t.li,{children:"Seamlessly integrate Notion content creation into Langflow workflows."}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(t.p,{children:["To use the ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component in a Langflow flow:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsxs)(t.strong,{children:["Add the ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component"]})," to your flow."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Configure the component"})," by providing:","\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"markdown_text"}),": The markdown text to convert."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"block_id"}),": The ID of the Notion page/block to append the content."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"notion_secret"}),": The Notion integration token for authentication."]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Connect the component"})," to other nodes in your flow as needed."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Run the flow"})," to convert the markdown text and append it to the specified Notion page."]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-python-code",children:"Component Python Code"}),"\n",(0,n.jsx)(y.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" json",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Optional",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionPageCreator",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Create Page [Notion]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"A component for creating Notion pages."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/add-content-to-page"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "database_id"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Database ID"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The ID of the Notion database."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Properties"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"The properties of the new page. Depending on your database setup, this can change. E.G: {'Task name': {'id': 'title', 'type': 'title', 'title': [{'type': 'text', 'text': {'content': 'Send Notion Components to LF', 'link': null",props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" database_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" properties: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'\'{"Task name": {"id": "title", "type": "title", "title": [{"type": "text", "text": {"content": "Send Notion Components to LF", "link": null',props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:"]",props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:"'",props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if not",props:{style:{color:"#FF7B72"}}},{content:" database_id ",props:{style:{color:"#C9D1D9"}}},{content:"or not",props:{style:{color:"#FF7B72"}}},{content:" properties:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" raise ",props:{style:{color:"#FF7B72"}}},{content:"ValueError",props:{style:{color:"#79C0FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"\"Invalid input. Please provide 'database_id' and 'properties'.\"",props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Content-Type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"application/json"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "parent"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}},{content:'"database_id"',props:{style:{color:"#A5D6FF"}}},{content:": database_id},",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "properties"',props:{style:{color:"#A5D6FF"}}},{content:": json.loads(properties),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.post(",props:{style:{color:"#C9D1D9"}}},{content:'"https://api.notion.com/v1/pages"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"data)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" response.status_code ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:"200",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_id ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" response.json()[",props:{style:{color:"#C9D1D9"}}},{content:'"id"',props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Successfully created Notion page with ID: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page_id",props:{style:{color:"#C9D1D9"}}},{content:"}\\n {str",props:{style:{color:"#79C0FF"}}},{content:"(response.json())",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" else",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" error_message ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Failed to create Notion page. Status code: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"response.status_code",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", Error: ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"response.text",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" error_message",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" raise ",props:{style:{color:"#FF7B72"}}},{content:"Exception",props:{style:{color:"#79C0FF"}}},{content:"(error_message)",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"example-usage",children:"Example Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Example of using the ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component in a Langflow flow using Markdown as input:"]}),"\n",(0,n.jsx)(l.A,{alt:"NotionDatabaseProperties Flow Example",sources:{light:"img/notion/AddContentToPage_flow_example.png",dark:"img/notion/AddContentToPage_flow_example.png"},style:{width:"100%",margin:"20px 0"}}),"\n",(0,n.jsxs)(t.p,{children:["In this example, the ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component connects to a ",(0,n.jsx)(t.code,{children:"MarkdownLoader"})," component to provide the markdown text input. The converted Notion blocks are appended to the specified Notion page using the provided ",(0,n.jsx)(t.code,{children:"block_id"})," and ",(0,n.jsx)(t.code,{children:"notion_secret"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(t.p,{children:["When using the ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Ensure markdown text is well-formatted."}),"\n",(0,n.jsxs)(t.li,{children:["Verify the ",(0,n.jsx)(t.code,{children:"block_id"})," corresponds to the right Notion page/block."]}),"\n",(0,n.jsx)(t.li,{children:"Keep your Notion integration token secure."}),"\n",(0,n.jsx)(t.li,{children:"Test with sample markdown text before production use."}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component is a powerful tool for integrating Notion content creation into Langflow workflows, facilitating easy conversion of markdown text to Notion blocks and appending them to specific pages."]}),"\n",(0,n.jsx)(t.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(t.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(t.code,{children:"AddContentToPage"})," component, consider the following:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Verify the Notion integration token\u2019s validity and permissions."}),"\n",(0,n.jsx)(t.li,{children:"Check the Notion API documentation for updates."}),"\n",(0,n.jsx)(t.li,{children:"Ensure markdown text is properly formatted."}),"\n",(0,n.jsxs)(t.li,{children:["Double-check the ",(0,n.jsx)(t.code,{children:"block_id"})," for correctness."]}),"\n"]})]})}const u=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(F,o)})):F(o)};function C(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/d018f77e.798f0c01.js b/assets/js/d018f77e.798f0c01.js
new file mode 100644
index 0000000000..083e5c1800
--- /dev/null
+++ b/assets/js/d018f77e.798f0c01.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[9973],{7293:(e,n,t)=>{t.d(n,{A:()=>q});var i=t(6540),o=t(4848);function r(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=i.Children.toArray(e),t=n.find((e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),r=n.filter((e=>e!==t)),s=t?.props.children;return{mdxAdmonitionTitle:s,rest:r.length>0?(0,o.jsx)(o.Fragment,{children:r}):null}}(e.children),r=e.title??n;return{...e,...r&&{title:r},children:t}}var s=t(8215),c=t(1312),a=t(7559);const d={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function l(e){let{type:n,className:t,children:i}=e;return(0,o.jsx)("div",{className:(0,s.A)(a.G.common.admonition,a.G.common.admonitionType(n),d.admonition,t),children:i})}function h(e){let{icon:n,title:t}=e;return(0,o.jsxs)("div",{className:d.admonitionHeading,children:[(0,o.jsx)("span",{className:d.admonitionIcon,children:n}),t]})}function u(e){let{children:n}=e;return n?(0,o.jsx)("div",{className:d.admonitionContent,children:n}):null}function m(e){const{type:n,icon:t,title:i,children:r,className:s}=e;return(0,o.jsxs)(l,{type:n,className:s,children:[i||t?(0,o.jsx)(h,{title:i,icon:t}):null,(0,o.jsx)(u,{children:r})]})}function p(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const g={icon:(0,o.jsx)(p,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function x(e){return(0,o.jsx)(m,{...g,...e,className:(0,s.A)("alert alert--secondary",e.className),children:e.children})}function j(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const f={icon:(0,o.jsx)(j,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function b(e){return(0,o.jsx)(m,{...f,...e,className:(0,s.A)("alert alert--success",e.className),children:e.children})}function v(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,o.jsx)(v,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function y(e){return(0,o.jsx)(m,{...w,...e,className:(0,s.A)("alert alert--info",e.className),children:e.children})}function k(e){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const A={icon:(0,o.jsx)(k,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function C(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const N={icon:(0,o.jsx)(C,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const T={icon:(0,o.jsx)(k,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const I={...{note:x,tip:b,info:y,warning:function(e){return(0,o.jsx)(m,{...A,...e,className:(0,s.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,o.jsx)(m,{...N,...e,className:(0,s.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,o.jsx)(x,{title:"secondary",...e}),important:e=>(0,o.jsx)(y,{title:"important",...e}),success:e=>(0,o.jsx)(b,{title:"success",...e}),caution:function(e){return(0,o.jsx)(m,{...T,...e,className:(0,s.A)("alert alert--warning",e.className),children:e.children})}}};var B=t(6763);function q(e){const n=r(e),t=(i=n.type,I[i]||(B.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),I.info));var i;return(0,o.jsx)(t,{...n})}},7533:(e,n,t)=>{t.d(n,{A:()=>c});var i=t(6540),o=t(1122),r=t(6025),s=t(4848);const c=e=>{let{alt:n,sources:t,style:c}=e;const[a,d]=(0,i.useState)(!1),l=e=>{"Escape"===e.key&&d(!1)};(0,i.useEffect)((()=>(a?document.addEventListener("keydown",l):document.removeEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)})),[a]);return(0,s.jsx)("div",{className:"zoomable-image "+(a?"fullscreen":""),onClick:()=>{d(!a)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...c},children:(0,s.jsx)(o.A,{className:"zoomable-image-inner",alt:n,sources:{light:(0,r.Ay)(t.light),dark:(0,r.Ay)(t.dark)}})})}},7876:(e,n,t)=>{t.r(n),t.d(n,{CH:()=>u,assets:()=>h,chCodeConfig:()=>m,contentTitle:()=>d,default:()=>x,frontMatter:()=>a,metadata:()=>l,toc:()=>p});t(6540);var i=t(4848),o=t(8453),r=t(4754),s=(t(1122),t(6025),t(7533)),c=t(7293);const a={},d="Document QA",l={id:"starter-projects/document-qa",title:"Document QA",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/starter-projects/document-qa.mdx",sourceDirName:"starter-projects",slug:"/starter-projects/document-qa",permalink:"/starter-projects/document-qa",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Blog Writer",permalink:"/starter-projects/blog-writer"},next:{title:"Memory Chatbot",permalink:"/starter-projects/memory-chatbot"}},h={},u={annotations:r.hk,Code:r.Cy},m={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Create the Document QA project",id:"create-the-document-qa-project",level:2},{value:"Run the Document QA flow",id:"run-the-document-qa-flow",level:2}];function g(e){const n=Object.assign({h1:"h1",p:"p",h2:"h2",ul:"ul",li:"li",a:"a",ol:"ol",strong:"strong",code:"code"},(0,o.RP)(),e.components);return u||j("CH",!1),u.Code||j("CH.Code",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.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","\n",(0,i.jsx)(n.h1,{id:"document-qa",children:"Document QA"}),"\n",(0,i.jsx)(c.A,{type:"warning",title:"warning",children:(0,i.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,i.jsx)(n.p,{children:"Build a question-and-answer chatbot with a document loaded from local memory."}),"\n",(0,i.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"../getting-started/install-langflow",children:"Langflow installed and running"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.a,{href:"https://platform.openai.com",children:"OpenAI API key created"})}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"create-the-document-qa-project",children:"Create the Document QA project"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["From the Langflow dashboard, click ",(0,i.jsx)(n.strong,{children:"New Project"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["Select ",(0,i.jsx)(n.strong,{children:"Document QA"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["The ",(0,i.jsx)(n.strong,{children:"Document QA"})," flow is created."]}),"\n"]}),"\n",(0,i.jsx)(s.A,{alt:"Docusaurus themed image",sources:{light:"img/document-qa.png",dark:"img/document-qa.png"},style:{width:"100%",maxWidth:"800px",margin:"0 auto"}}),"\n",(0,i.jsxs)(n.p,{children:["This flow creates a basic chatbot with the ",(0,i.jsx)(n.strong,{children:"Chat Input"}),", ",(0,i.jsx)(n.strong,{children:"Prompt"}),", ",(0,i.jsx)(n.strong,{children:"OpenAI"}),", and ",(0,i.jsx)(n.strong,{children:"Chat Output"})," components.\nThis chatbot is augmented with the ",(0,i.jsx)(n.strong,{children:"Files"})," component, which loads a file from your local machine into the ",(0,i.jsx)(n.strong,{children:"Prompt"})," component as ",(0,i.jsx)(n.code,{children:"{Document}"}),".\nThe ",(0,i.jsx)(n.strong,{children:"Prompt"})," component is instructed to answer questions based on the contents of ",(0,i.jsx)(n.code,{children:"{Document}"}),".\nIncluding a file with the prompt gives the ",(0,i.jsx)(n.strong,{children:"OpenAI"})," component context it may not otherwise have access to."]}),"\n",(0,i.jsxs)(n.ol,{start:"4",children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To create an environment variable for the ",(0,i.jsx)(n.strong,{children:"OpenAI"})," component, in the ",(0,i.jsx)(n.strong,{children:"OpenAI API Key"})," field, click the ",(0,i.jsx)(n.strong,{children:"Globe"})," button, and then click ",(0,i.jsx)(n.strong,{children:"Add New Variable"}),"."]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["In the ",(0,i.jsx)(n.strong,{children:"Variable Name"})," field, enter ",(0,i.jsx)(n.code,{children:"openai_api_key"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["In the ",(0,i.jsx)(n.strong,{children:"Value"})," field, paste your OpenAI API Key (",(0,i.jsx)(n.code,{children:"sk-..."}),")."]}),"\n",(0,i.jsxs)(n.li,{children:["Click ",(0,i.jsx)(n.strong,{children:"Save Variable"}),"."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:["To select a document to load, in the ",(0,i.jsx)(n.strong,{children:"Files"})," component, click within the ",(0,i.jsx)(n.strong,{children:"Path"})," field."]}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Select a local file, and then click ",(0,i.jsx)(n.strong,{children:"Open"}),"."]}),"\n",(0,i.jsxs)(n.li,{children:["The file name appears in the field.","\n",(0,i.jsx)(c.A,{type:"tip",children:(0,i.jsxs)(n.p,{children:["The file must be of an extension type listed\n",(0,i.jsx)(n.a,{href:"https://github.com/langflow-ai/langflow/blob/dev/src/backend/base/langflow/base/data/utils.py#L13",children:"here"}),"."]})}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"run-the-document-qa-flow",children:"Run the Document QA flow"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsxs)(n.li,{children:["Click the ",(0,i.jsx)(n.strong,{children:"Run"})," button.\nThe ",(0,i.jsx)(n.strong,{children:"Interaction Panel"})," opens, where you can converse with your bot."]}),"\n",(0,i.jsxs)(n.li,{children:["Type a message and press Enter.\nFor this example, we loaded an error log ",(0,i.jsx)(n.code,{children:".txt"}),' file and asked, "What went wrong?"\nThe bot responded:']}),"\n"]}),"\n",(0,i.jsx)(u.Code,{codeConfig:m,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"The issue occurred during the execution of migrations in the application. Specifically, an error was raised by the Alembic library, indicating that new upgrade operations were detected that had not been accounted for in the existing migration scripts. The operation in question involved modifying the nullable property of a column (apikey, created_at) in the database, with details about the existing type (DATETIME()), existing server default, and other properties.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,i.jsx)(n.p,{children:"This result indicates that the bot received the loaded document and understood the context surrounding the vague question. It also correctly identified the issue in the error log, and followed up with appropriate troubleshooting suggestions. Nice!"})]})}const x=function(e={}){const{wrapper:n}=Object.assign({},(0,o.RP)(),e.components);return n?(0,i.jsx)(n,Object.assign({},e,{children:(0,i.jsx)(g,e)})):g(e)};function j(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/d018f77e.90d418e4.js b/assets/js/d018f77e.90d418e4.js
deleted file mode 100644
index 398c45c853..0000000000
--- a/assets/js/d018f77e.90d418e4.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[9973],{7533:(e,t,n)=>{n.d(t,{A:()=>c});var o=n(6540),r=n(1122),i=n(6025),s=n(4848);const c=e=>{let{alt:t,sources:n,style:c}=e;const[d,a]=(0,o.useState)(!1),l=e=>{"Escape"===e.key&&a(!1)};(0,o.useEffect)((()=>(d?document.addEventListener("keydown",l):document.removeEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)})),[d]);return(0,s.jsx)("div",{className:"zoomable-image "+(d?"fullscreen":""),onClick:()=>{a(!d)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...c},children:(0,s.jsx)(r.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,i.Ay)(n.light),dark:(0,i.Ay)(n.dark)}})})}},7876:(e,t,n)=>{n.r(t),n.d(t,{CH:()=>u,assets:()=>h,chCodeConfig:()=>g,contentTitle:()=>a,default:()=>x,frontMatter:()=>d,metadata:()=>l,toc:()=>p});n(6540);var o=n(4848),r=n(8453),i=n(4754),s=(n(1122),n(6025),n(7533)),c=n(7293);const d={},a="Document QA",l={id:"starter-projects/document-qa",title:"Document QA",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/starter-projects/document-qa.mdx",sourceDirName:"starter-projects",slug:"/starter-projects/document-qa",permalink:"/starter-projects/document-qa",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Blog Writer",permalink:"/starter-projects/blog-writer"},next:{title:"Memory Chatbot",permalink:"/starter-projects/memory-chatbot"}},h={},u={annotations:i.hk,Code:i.Cy},g={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Create the Document QA project",id:"create-the-document-qa-project",level:2},{value:"Run the Document QA flow",id:"run-the-document-qa-flow",level:2}];function m(e){const t=Object.assign({h1:"h1",p:"p",h2:"h2",ul:"ul",li:"li",a:"a",ol:"ol",strong:"strong",code:"code"},(0,r.RP)(),e.components);return u||j("CH",!1),u.Code||j("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.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","\n",(0,o.jsx)(t.h1,{id:"document-qa",children:"Document QA"}),"\n",(0,o.jsx)(c.A,{type:"warning",title:"warning",children:(0,o.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,o.jsx)(t.p,{children:"Build a question-and-answer chatbot with a document loaded from local memory."}),"\n",(0,o.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"../getting-started/install-langflow",children:"Langflow installed and running"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.a,{href:"https://platform.openai.com",children:"OpenAI API key created"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"create-the-document-qa-project",children:"Create the Document QA project"}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["From the Langflow dashboard, click ",(0,o.jsx)(t.strong,{children:"New Project"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Select ",(0,o.jsx)(t.strong,{children:"Document QA"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["The ",(0,o.jsx)(t.strong,{children:"Document QA"})," flow is created."]}),"\n"]}),"\n",(0,o.jsx)(s.A,{alt:"Docusaurus themed image",sources:{light:"img/document-qa.png",dark:"img/document-qa.png"},style:{width:"100%",maxWidth:"800px",margin:"0 auto"}}),"\n",(0,o.jsxs)(t.p,{children:["This flow creates a basic chatbot with the ",(0,o.jsx)(t.strong,{children:"Chat Input"}),", ",(0,o.jsx)(t.strong,{children:"Prompt"}),", ",(0,o.jsx)(t.strong,{children:"OpenAI"}),", and ",(0,o.jsx)(t.strong,{children:"Chat Output"})," components.\nThis chatbot is augmented with the ",(0,o.jsx)(t.strong,{children:"Files"})," component, which loads a file from your local machine into the ",(0,o.jsx)(t.strong,{children:"Prompt"})," component as ",(0,o.jsx)(t.code,{children:"{Document}"}),".\nThe ",(0,o.jsx)(t.strong,{children:"Prompt"})," component is instructed to answer questions based on the contents of ",(0,o.jsx)(t.code,{children:"{Document}"}),".\nIncluding a file with the prompt gives the ",(0,o.jsx)(t.strong,{children:"OpenAI"})," component context it may not otherwise have access to."]}),"\n",(0,o.jsxs)(t.ol,{start:"4",children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsxs)(t.p,{children:["To create an environment variable for the ",(0,o.jsx)(t.strong,{children:"OpenAI"})," component, in the ",(0,o.jsx)(t.strong,{children:"OpenAI API Key"})," field, click the ",(0,o.jsx)(t.strong,{children:"Globe"})," button, and then click ",(0,o.jsx)(t.strong,{children:"Add New Variable"}),"."]}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["In the ",(0,o.jsx)(t.strong,{children:"Variable Name"})," field, enter ",(0,o.jsx)(t.code,{children:"openai_api_key"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["In the ",(0,o.jsx)(t.strong,{children:"Value"})," field, paste your OpenAI API Key (",(0,o.jsx)(t.code,{children:"sk-..."}),")."]}),"\n",(0,o.jsxs)(t.li,{children:["Click ",(0,o.jsx)(t.strong,{children:"Save Variable"}),"."]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsxs)(t.p,{children:["To select a document to load, in the ",(0,o.jsx)(t.strong,{children:"Files"})," component, click within the ",(0,o.jsx)(t.strong,{children:"Path"})," field."]}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["Select a local file, and then click ",(0,o.jsx)(t.strong,{children:"Open"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["The file name appears in the field.","\n",(0,o.jsx)(c.A,{type:"tip",children:(0,o.jsxs)(t.p,{children:["The file must be of an extension type listed\n",(0,o.jsx)(t.a,{href:"https://github.com/langflow-ai/langflow/blob/dev/src/backend/base/langflow/base/data/utils.py#L13",children:"here"}),"."]})}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"run-the-document-qa-flow",children:"Run the Document QA flow"}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["Click the ",(0,o.jsx)(t.strong,{children:"Run"})," button.\nThe ",(0,o.jsx)(t.strong,{children:"Interaction Panel"})," opens, where you can converse with your bot."]}),"\n",(0,o.jsxs)(t.li,{children:["Type a message and press Enter.\nFor this example, we loaded an error log ",(0,o.jsx)(t.code,{children:".txt"}),' file and asked, "What went wrong?"\nThe bot responded:']}),"\n"]}),"\n",(0,o.jsx)(u.Code,{codeConfig:g,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"The issue occurred during the execution of migrations in the application. Specifically, an error was raised by the Alembic library, indicating that new upgrade operations were detected that had not been accounted for in the existing migration scripts. The operation in question involved modifying the nullable property of a column (apikey, created_at) in the database, with details about the existing type (DATETIME()), existing server default, and other properties.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,o.jsx)(t.p,{children:"This result indicates that the bot received the loaded document and understood the context surrounding the vague question. It also correctly identified the issue in the error log, and followed up with appropriate troubleshooting suggestions. Nice!"})]})}const x=function(e={}){const{wrapper:t}=Object.assign({},(0,r.RP)(),e.components);return t?(0,o.jsx)(t,Object.assign({},e,{children:(0,o.jsx)(m,e)})):m(e)};function j(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/d0c97127.06a4928d.js b/assets/js/d0c97127.06a4928d.js
new file mode 100644
index 0000000000..8eb75231d0
--- /dev/null
+++ b/assets/js/d0c97127.06a4928d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3794],{7533:(e,t,n)=>{n.d(t,{A:()=>r});var s=n(6540),o=n(1122),i=n(6025),a=n(4848);const r=e=>{let{alt:t,sources:n,style:r}=e;const[c,l]=(0,s.useState)(!1),d=e=>{"Escape"===e.key&&l(!1)};(0,s.useEffect)((()=>(c?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[c]);return(0,a.jsx)("div",{className:"zoomable-image "+(c?"fullscreen":""),onClick:()=>{l(!c)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...r},children:(0,a.jsx)(o.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,i.Ay)(n.light),dark:(0,i.Ay)(n.dark)}})})}},9730:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>l,default:()=>x,frontMatter:()=>c,metadata:()=>d,toc:()=>p});n(6540);var s=n(4848),o=n(8453),i=(n(1122),n(6025),n(7533),n(3554)),a=n.n(i),r=n(7293);const c={},l="Combine Text",d={id:"examples/combine-text",title:"Combine Text",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/examples/combine-text.mdx",sourceDirName:"examples",slug:"/examples/combine-text",permalink:"/examples/combine-text",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},m={},p=[];function u(e){const t=Object.assign({h1:"h1",p:"p",strong:"strong"},(0,o.RP)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"combine-text",children:"Combine Text"}),"\n",(0,s.jsx)(r.A,{type:"warning",title:"warning",children:(0,s.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,s.jsx)(t.p,{children:"With LLM pipelines, combining text from different sources may be as important as splitting text."}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.strong,{children:"Combine Text"})," component concatenates two text inputs into a single chunk using a specified delimiter, such as whitespace or a newline."]}),"\n",(0,s.jsxs)(t.p,{children:["Also, check out ",(0,s.jsx)(t.strong,{children:"Combine Texts (Unsorted)"})," as a similar alternative."]}),"\n",(0,s.jsxs)(t.p,{children:["This component is available under the ",(0,s.jsx)(t.strong,{children:"Helpers"})," tab of the Langflow sidebar."]}),"\n",(0,s.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,s.jsx)(a(),{playing:!0,controls:!0,url:"/videos/combine_text.mp4"})})]})}const x=function(e={}){const{wrapper:t}=Object.assign({},(0,o.RP)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(u,e)})):u(e)}},8453:(e,t,n)=>{n.d(t,{RP:()=>i,xA:()=>r});var s=n(6540);const o=s.createContext({});function i(e){const t=s.useContext(o);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const a={};function r({components:e,children:t,disableParentContext:n}){let r;return r=n?"function"==typeof e?e({}):e||a:i(e),s.createElement(o.Provider,{value:r},t)}}}]);
\ No newline at end of file
diff --git a/assets/js/d0c97127.e464c4d2.js b/assets/js/d0c97127.e464c4d2.js
deleted file mode 100644
index 7603caff95..0000000000
--- a/assets/js/d0c97127.e464c4d2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3794],{7293:(n,e,t)=>{t.d(e,{A:()=>H});var i=t(6540),o=t(4848);function s(n){const{mdxAdmonitionTitle:e,rest:t}=function(n){const e=i.Children.toArray(n),t=e.find((n=>i.isValidElement(n)&&"mdxAdmonitionTitle"===n.type)),s=e.filter((n=>n!==t)),a=t?.props.children;return{mdxAdmonitionTitle:a,rest:s.length>0?(0,o.jsx)(o.Fragment,{children:s}):null}}(n.children),s=n.title??e;return{...n,...s&&{title:s},children:t}}var a=t(8215),c=t(1312),r=t(7559);const l={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(n){let{type:e,className:t,children:i}=n;return(0,o.jsx)("div",{className:(0,a.A)(r.G.common.admonition,r.G.common.admonitionType(e),l.admonition,t),children:i})}function m(n){let{icon:e,title:t}=n;return(0,o.jsxs)("div",{className:l.admonitionHeading,children:[(0,o.jsx)("span",{className:l.admonitionIcon,children:e}),t]})}function u(n){let{children:e}=n;return e?(0,o.jsx)("div",{className:l.admonitionContent,children:e}):null}function h(n){const{type:e,icon:t,title:i,children:s,className:a}=n;return(0,o.jsxs)(d,{type:e,className:a,children:[i||t?(0,o.jsx)(m,{title:i,icon:t}):null,(0,o.jsx)(u,{children:s})]})}function x(n){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const f={icon:(0,o.jsx)(x,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function p(n){return(0,o.jsx)(h,{...f,...n,className:(0,a.A)("alert alert--secondary",n.className),children:n.children})}function j(n){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const g={icon:(0,o.jsx)(j,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(n){return(0,o.jsx)(h,{...g,...n,className:(0,a.A)("alert alert--success",n.className),children:n.children})}function b(n){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const y={icon:(0,o.jsx)(b,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function w(n){return(0,o.jsx)(h,{...y,...n,className:(0,a.A)("alert alert--info",n.className),children:n.children})}function A(n){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const C={icon:(0,o.jsx)(A,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function N(n){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const T={icon:(0,o.jsx)(N,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const z={icon:(0,o.jsx)(A,{}),title:(0,o.jsx)(c.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const k={...{note:p,tip:v,info:w,warning:function(n){return(0,o.jsx)(h,{...C,...n,className:(0,a.A)("alert alert--warning",n.className),children:n.children})},danger:function(n){return(0,o.jsx)(h,{...T,...n,className:(0,a.A)("alert alert--danger",n.className),children:n.children})}},...{secondary:n=>(0,o.jsx)(p,{title:"secondary",...n}),important:n=>(0,o.jsx)(w,{title:"important",...n}),success:n=>(0,o.jsx)(v,{title:"success",...n}),caution:function(n){return(0,o.jsx)(h,{...z,...n,className:(0,a.A)("alert alert--warning",n.className),children:n.children})}}};var M=t(6763);function H(n){const e=s(n),t=(i=e.type,k[i]||(M.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),k.info));var i;return(0,o.jsx)(t,{...e})}},7533:(n,e,t)=>{t.d(e,{A:()=>c});var i=t(6540),o=t(1122),s=t(6025),a=t(4848);const c=n=>{let{alt:e,sources:t,style:c}=n;const[r,l]=(0,i.useState)(!1),d=n=>{"Escape"===n.key&&l(!1)};(0,i.useEffect)((()=>(r?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[r]);return(0,a.jsx)("div",{className:"zoomable-image "+(r?"fullscreen":""),onClick:()=>{l(!r)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...c},children:(0,a.jsx)(o.A,{className:"zoomable-image-inner",alt:e,sources:{light:(0,s.Ay)(t.light),dark:(0,s.Ay)(t.dark)}})})}},9730:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>m,contentTitle:()=>l,default:()=>x,frontMatter:()=>r,metadata:()=>d,toc:()=>u});t(6540);var i=t(4848),o=t(8453),s=(t(1122),t(6025),t(7533),t(3554)),a=t.n(s),c=t(7293);const r={},l="Combine Text",d={id:"examples/combine-text",title:"Combine Text",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/examples/combine-text.mdx",sourceDirName:"examples",slug:"/examples/combine-text",permalink:"/examples/combine-text",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},m={},u=[];function h(n){const e=Object.assign({h1:"h1",p:"p",strong:"strong"},(0,o.RP)(),n.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.h1,{id:"combine-text",children:"Combine Text"}),"\n",(0,i.jsx)(c.A,{type:"warning",title:"warning",children:(0,i.jsx)(e.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,i.jsx)(e.p,{children:"With LLM pipelines, combining text from different sources may be as important as splitting text."}),"\n",(0,i.jsxs)(e.p,{children:["The ",(0,i.jsx)(e.strong,{children:"Combine Text"})," component concatenates two text inputs into a single chunk using a specified delimiter, such as whitespace or a newline."]}),"\n",(0,i.jsxs)(e.p,{children:["Also, check out ",(0,i.jsx)(e.strong,{children:"Combine Texts (Unsorted)"})," as a similar alternative."]}),"\n",(0,i.jsxs)(e.p,{children:["This component is available under the ",(0,i.jsx)(e.strong,{children:"Helpers"})," tab of the Langflow sidebar."]}),"\n",(0,i.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,i.jsx)(a(),{playing:!0,controls:!0,url:"/videos/combine_text.mp4"})})]})}const x=function(n={}){const{wrapper:e}=Object.assign({},(0,o.RP)(),n.components);return e?(0,i.jsx)(e,Object.assign({},n,{children:(0,i.jsx)(h,n)})):h(n)}},8453:(n,e,t)=>{t.d(e,{RP:()=>s,xA:()=>c});var i=t(6540);const o=i.createContext({});function s(n){const e=i.useContext(o);return i.useMemo((()=>"function"==typeof n?n(e):{...e,...n}),[e,n])}const a={};function c({components:n,children:e,disableParentContext:t}){let c;return c=t?"function"==typeof n?n({}):n||a:s(n),i.createElement(o.Provider,{value:c},e)}}}]);
\ No newline at end of file
diff --git a/assets/js/dbc18341.d592274a.js b/assets/js/dbc18341.d592274a.js
deleted file mode 100644
index 605d1dfb79..0000000000
--- a/assets/js/dbc18341.d592274a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[9887],{251:(o,e,t)=>{t.r(e),t.d(e,{CH:()=>d,assets:()=>i,chCodeConfig:()=>h,contentTitle:()=>a,default:()=>g,frontMatter:()=>c,metadata:()=>p,toc:()=>y});t(6540);var n=t(4848),l=t(8453),s=t(4754),r=t(7293);const c={},a="Kubernetes",p={id:"deployment/kubernetes",title:"Kubernetes",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/deployment/kubernetes.mdx",sourceDirName:"deployment",slug:"/deployment/kubernetes",permalink:"/deployment/kubernetes",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Backend-only",permalink:"/deployment/backend-only"},next:{title:"Deploy on Google Cloud Platform",permalink:"/deployment/gcp-deployment"}},i={},d={annotations:s.hk,Code:s.Cy},h={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},y=[{value:"LangFlow (IDE)",id:"langflow-ide",level:2},{value:"Prerequisites",id:"prerequisites",level:3},{value:"Step 0. Prepare a Kubernetes cluster",id:"step-0-prepare-a-kubernetes-cluster",level:3},{value:"Step 1. Install the LangFlow Helm chart",id:"step-1-install-the-langflow-helm-chart",level:3},{value:"Step 2. Access LangFlow",id:"step-2-access-langflow",level:3},{value:"LangFlow version",id:"langflow-version",level:3},{value:"Storage",id:"storage",level:3},{value:"Scaling",id:"scaling",level:3},{value:"Deploy on AWS EKS, Google GKE, or Azure AKS and other examples",id:"deploy-on-aws-eks-google-gke-or-azure-aks-and-other-examples",level:3},{value:"LangFlow (Runtime)",id:"langflow-runtime",level:2},{value:"Import a flow",id:"import-a-flow",level:2},{value:"Prerequisites",id:"prerequisites-1",level:3},{value:"Step 0. Prepare a Kubernetes cluster",id:"step-0-prepare-a-kubernetes-cluster-1",level:3},{value:"Step 1. Install the LangFlow runtime Helm chart",id:"step-1-install-the-langflow-runtime-helm-chart",level:3},{value:"Step 2. Access the LangFlow app API",id:"step-2-access-the-langflow-app-api",level:3},{value:"Storage",id:"storage-1",level:3},{value:"Log level and LangFlow configurations",id:"log-level-and-langflow-configurations",level:3},{value:"Configure secrets and variables",id:"configure-secrets-and-variables",level:3},{value:"Scaling",id:"scaling-1",level:3},{value:"Other examples",id:"other-examples",level:3}];function u(o){const e=Object.assign({h1:"h1",p:"p",ul:"ul",li:"li",a:"a",h2:"h2",h3:"h3",ol:"ol",code:"code",strong:"strong"},(0,l.RP)(),o.components);return d||f("CH",!1),d.Code||f("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(e.h1,{id:"kubernetes",children:"Kubernetes"}),"\n",(0,n.jsx)(r.A,{type:"warning",title:"warning",children:(0,n.jsx)(e.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsx)(e.p,{children:"This guide will help you get LangFlow up and running in Kubernetes cluster, including the following steps:"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsxs)(e.li,{children:["Install ",(0,n.jsx)(e.a,{href:"#langflow-ide",children:"LangFlow as IDE"})," in a Kubernetes cluster (for development)"]}),"\n",(0,n.jsxs)(e.li,{children:["Install ",(0,n.jsx)(e.a,{href:"#langflow-runtime",children:"LangFlow as a standalone application"})," in a Kubernetes cluster (for production runtime workloads)"]}),"\n"]}),"\n",(0,n.jsx)(e.h2,{id:"langflow-ide",children:"LangFlow (IDE)"}),"\n",(0,n.jsx)(e.p,{children:"This solution is designed to provide a complete environment for developers to create, test, and debug their flows. It includes both the API and the UI."}),"\n",(0,n.jsx)(e.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Kubernetes server"}),"\n",(0,n.jsx)(e.li,{children:"kubectl"}),"\n",(0,n.jsx)(e.li,{children:"Helm"}),"\n"]}),"\n",(0,n.jsx)(e.h3,{id:"step-0-prepare-a-kubernetes-cluster",children:"Step 0. Prepare a Kubernetes cluster"}),"\n",(0,n.jsxs)(e.p,{children:["We use ",(0,n.jsx)(e.a,{href:"https://minikube.sigs.k8s.io/docs/start/",children:"Minikube"})," for this example, but you can use any Kubernetes cluster."]}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["Create a Kubernetes cluster on Minikube.","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"minikube ",props:{style:{color:"#FFA657"}}},{content:"start",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["Set ",(0,n.jsx)(e.code,{children:"kubectl"})," to use Minikube.","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"kubectl ",props:{style:{color:"#FFA657"}}},{content:"config use-context minikube",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(e.h3,{id:"step-1-install-the-langflow-helm-chart",children:"Step 1. Install the LangFlow Helm chart"}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["Add the repository to Helm.","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"helm ",props:{style:{color:"#FFA657"}}},{content:"repo add langflow https://langflow-ai.github.io/langflow-helm-charts",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"helm ",props:{style:{color:"#FFA657"}}},{content:"repo update",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["Install LangFlow with the default options in the ",(0,n.jsx)(e.code,{children:"langflow"})," namespace.","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"helm ",props:{style:{color:"#FFA657"}}},{content:"install langflow-ide langflow/langflow-ide ",props:{style:{color:"#A5D6FF"}}},{content:"-n ",props:{style:{color:"#79C0FF"}}},{content:"langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--create-namespace",props:{style:{color:"#79C0FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["Check the status of the pods","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"kubectl ",props:{style:{color:"#FFA657"}}},{content:"get pods ",props:{style:{color:"#A5D6FF"}}},{content:"-n ",props:{style:{color:"#79C0FF"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"NAME READY STATUS RESTARTS AGE",props:{}}]},{tokens:[{content:"langflow-0 1/1 Running 0 33s",props:{}}]},{tokens:[{content:"langflow-frontend-5d9c558dbb-g7tc9 1/1 Running 0 38s",props:{}}]}],lang:"text"},annotations:[]}]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(e.h3,{id:"step-2-access-langflow",children:"Step 2. Access LangFlow"}),"\n",(0,n.jsx)(e.p,{children:"Enable local port forwarding to access LangFlow from your local machine."}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"kubectl ",props:{style:{color:"#FFA657"}}},{content:"port-forward ",props:{style:{color:"#A5D6FF"}}},{content:"-n ",props:{style:{color:"#79C0FF"}}},{content:"langflow svc/langflow-langflow-runtime 7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860",props:{style:{color:"#79C0FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,n.jsxs)(e.p,{children:["Now you can access LangFlow at ",(0,n.jsx)(e.a,{href:"http://localhost:7860/",children:"http://localhost:7860/"}),"."]}),"\n",(0,n.jsx)(e.h3,{id:"langflow-version",children:"LangFlow version"}),"\n",(0,n.jsxs)(e.p,{children:["To specify a different LangFlow version, you can set the ",(0,n.jsx)(e.code,{children:"langflow.backend.image.tag"})," and ",(0,n.jsx)(e.code,{children:"langflow.frontend.image.tag"})," values in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" backend",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tag",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1.0.0a59"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" frontend",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" image",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" tag",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1.0.0a59"',props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.h3,{id:"storage",children:"Storage"}),"\n",(0,n.jsxs)(e.p,{children:["By default, the chart will use a SQLLite database stored in a local persistent disk.\nIf you want to use an external PostgreSQL database, you can set the ",(0,n.jsx)(e.code,{children:"langflow.database"})," values in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Deploy postgresql. You can skip this section if you have an existing postgresql database.",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"postgresql",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" enabled",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" fullnameOverride",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow-ide-postgresql-service"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" auth",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" username",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" password",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow-postgres"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" database",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow-db"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"langflow",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" backend",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" externalDatabase",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" enabled",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"true",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" driver",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"postgresql"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" host",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow-ide-postgresql-service"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" port",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"5432"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" database",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow-db"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" user",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" value",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" password",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" valueFrom",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" secretKeyRef",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" key",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"password"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" name",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"langflow-ide-postgresql-service"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" sqlite",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" enabled",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"false",props:{style:{color:"#79C0FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.h3,{id:"scaling",children:"Scaling"}),"\n",(0,n.jsxs)(e.p,{children:["You can scale the number of replicas for the LangFlow backend and frontend services by changing the ",(0,n.jsx)(e.code,{children:"replicaCount"})," value in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" backend",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" replicaCount",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"3",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" frontend",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" replicaCount",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"3",props:{style:{color:"#79C0FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.p,{children:"You can scale frontend and backend services independently."}),"\n",(0,n.jsxs)(e.p,{children:["To scale vertically (increase the resources for the pods), you can set the ",(0,n.jsx)(e.code,{children:"resources"})," values in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"langflow",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" backend",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" resources",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" requests",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" memory",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2Gi"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" cpu",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1000m"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" frontend",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" resources",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" requests",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" memory",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1Gi"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" cpu",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1000m"',props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.h3,{id:"deploy-on-aws-eks-google-gke-or-azure-aks-and-other-examples",children:"Deploy on AWS EKS, Google GKE, or Azure AKS and other examples"}),"\n",(0,n.jsxs)(e.p,{children:["Visit the ",(0,n.jsx)(e.a,{href:"https://github.com/langflow-ai/langflow-helm-charts",children:"LangFlow Helm Charts repository"})," for more examples and configurations."]}),"\n",(0,n.jsxs)(e.p,{children:["Use the ",(0,n.jsx)(e.a,{href:"https://github.com/langflow-ai/langflow-helm-charts/blob/main/charts/langflow-ide/values.yaml",children:"default values file"})," as reference for all the options available."]}),"\n",(0,n.jsxs)(e.p,{children:["Visit the ",(0,n.jsx)(e.a,{href:"https://github.com/langflow-ai/langflow-helm-charts/tree/main/examples/langflow-ide",children:"examples directory"})," to learn more about different deployment options."]}),"\n",(0,n.jsx)(e.h2,{id:"langflow-runtime",children:"LangFlow (Runtime)"}),"\n",(0,n.jsx)(e.p,{children:"The runtime chart is tailored for deploying applications in a production environment. It is focused on stability, performance, isolation and security to ensure that applications run reliably and efficiently."}),"\n",(0,n.jsx)(e.p,{children:"Using a dedicated deployment for a set of flows is fundamental in production environments in order to have a granular resource control."}),"\n",(0,n.jsx)(e.h2,{id:"import-a-flow",children:"Import a flow"}),"\n",(0,n.jsx)(e.p,{children:"There are two ways to import a flow (or multiple flows) and deploy it with the LangFlow runtime Helm chart:"}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"From a remote location"}),": You can reference a flow stored in a remote location, such as a URL or a Git repository by customizing the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file in the section ",(0,n.jsx)(e.code,{children:"downloadFlows"}),":"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"downloadFlows",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" flows",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"url",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"https://raw.githubusercontent.com/langflow-ai/langflow/dev/src/backend/base/langflow/initial_setup/starter_projects/Basic%20Prompting%20(Hello%2C%20world!).json",props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsxs)(e.p,{children:["When the LangFlow runtime starts, it will download the flow from the specified URL and run it.\nThe flow UUID to use to call the API endpoints is the same as the one in the JSON file under the ",(0,n.jsx)(e.code,{children:"id"})," field.\nYou can also specify a ",(0,n.jsx)(e.code,{children:"endpoint_name"})," field to give a friendly name to the flow."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"Packaging the flow as docker image"}),": You can add a flow from to a docker image based on Langflow runtime and refer to it in the chart."]}),"\n",(0,n.jsx)(e.p,{children:"First you need a base Dockerfile to get the langflow image and add your local flows:"}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:" FROM langflowai/langflow-backend:latest",props:{}}]},{tokens:[{content:" RUN mkdir /app/flows",props:{}}]},{tokens:[{content:" COPY ./*json /app/flows/.",props:{}}]}],lang:"text"},annotations:[]}]}),"\n",(0,n.jsx)(e.p,{children:"Then you can build the image and push it to DockerHub (or any registry you prefer):"}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"# Create the Dockerfile",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"echo ",props:{style:{color:"#79C0FF"}}},{content:'"""FROM langflowai/langflow-backend:latest',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"RUN mkdir /app/flows",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"ENV LANGFLOW_LOAD_FLOWS_PATH=/app/flows",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:'COPY ./*json /app/flows/.""" ',props:{style:{color:"#A5D6FF"}}},{content:"> ",props:{style:{color:"#FF7B72"}}},{content:"Dockerfile",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# Download the flows",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"wget ",props:{style:{color:"#FFA657"}}},{content:"https://raw.githubusercontent.com/langflow-ai/langflow/dev/src/backend/base/langflow/initial_setup/starter_projects/Basic%20Prompting%",props:{style:{color:"#A5D6FF"}}},{content:"20",props:{style:{color:"#79C0FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"Hello%2C%20world!",props:{style:{color:"#FFA657"}}},{content:")",props:{style:{color:"#C9D1D9"}}},{content:".json",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# Build the docker image locally",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"build ",props:{style:{color:"#A5D6FF"}}},{content:"-t ",props:{style:{color:"#79C0FF"}}},{content:"myuser/langflow-just-chat:",props:{style:{color:"#A5D6FF"}}},{content:"1.0.0 -f ",props:{style:{color:"#79C0FF"}}},{content:"Dockerfile .",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"# Push the image to DockerHub",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:"docker ",props:{style:{color:"#FFA657"}}},{content:"push myuser/langflow-just-chat:",props:{style:{color:"#A5D6FF"}}},{content:"1.0.0",props:{style:{color:"#79C0FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(e.h3,{id:"prerequisites-1",children:"Prerequisites"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Kubernetes server"}),"\n",(0,n.jsx)(e.li,{children:"kubectl"}),"\n",(0,n.jsx)(e.li,{children:"Helm"}),"\n"]}),"\n",(0,n.jsx)(e.h3,{id:"step-0-prepare-a-kubernetes-cluster-1",children:"Step 0. Prepare a Kubernetes cluster"}),"\n",(0,n.jsx)(e.p,{children:"Follow the same steps as for the LangFlow IDE."}),"\n",(0,n.jsx)(e.h3,{id:"step-1-install-the-langflow-runtime-helm-chart",children:"Step 1. Install the LangFlow runtime Helm chart"}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["Add the repository to Helm.","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"helm ",props:{style:{color:"#FFA657"}}},{content:"repo add langflow https://langflow-ai.github.io/langflow-helm-charts",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"helm ",props:{style:{color:"#FFA657"}}},{content:"repo update",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["Install the LangFlow app with the default options in the ",(0,n.jsx)(e.code,{children:"langflow"})," namespace.\nIf you bundled the flow in a docker image, you can specify the image name in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file or with the ",(0,n.jsx)(e.code,{children:"--set"})," flag:","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"helm ",props:{style:{color:"#FFA657"}}},{content:"install my-langflow-app langflow/langflow-runtime ",props:{style:{color:"#A5D6FF"}}},{content:"-n ",props:{style:{color:"#79C0FF"}}},{content:"langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--create-namespace --set ",props:{style:{color:"#79C0FF"}}},{content:"image.repository=myuser/langflow-just-chat ",props:{style:{color:"#A5D6FF"}}},{content:"--set ",props:{style:{color:"#79C0FF"}}},{content:"image.tag=",props:{style:{color:"#A5D6FF"}}},{content:"1.0.0",props:{style:{color:"#79C0FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n","If you want to download the flow from a remote location, you can specify the URL in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file or with the ",(0,n.jsx)(e.code,{children:"--set"})," flag:","\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"helm ",props:{style:{color:"#FFA657"}}},{content:"install my-langflow-app langflow/langflow-runtime ",props:{style:{color:"#A5D6FF"}}},{content:"-n ",props:{style:{color:"#79C0FF"}}},{content:"langflow ",props:{style:{color:"#A5D6FF"}}},{content:"--create-namespace --set ",props:{style:{color:"#79C0FF"}}},{content:"downloadFlows.flows[0].url=https://raw.githubusercontent.com/langflow-ai/langflow/dev/src/backend/base/langflow/initial_setup/starter_projects/Basic%20Prompting%",props:{style:{color:"#A5D6FF"}}},{content:"20",props:{style:{color:"#79C0FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"Hello%2C%20world!",props:{style:{color:"#FFA657"}}},{content:")",props:{style:{color:"#C9D1D9"}}},{content:".json",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,n.jsxs)(e.ol,{start:"3",children:["\n",(0,n.jsx)(e.li,{children:"Check the status of the pods"}),"\n"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"kubectl ",props:{style:{color:"#FFA657"}}},{content:"get pods ",props:{style:{color:"#A5D6FF"}}},{content:"-n ",props:{style:{color:"#79C0FF"}}},{content:"langflow",props:{style:{color:"#A5D6FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(e.h3,{id:"step-2-access-the-langflow-app-api",children:"Step 2. Access the LangFlow app API"}),"\n",(0,n.jsx)(e.p,{children:"Enable local port forwarding to access LangFlow from your local machine."}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"kubectl ",props:{style:{color:"#FFA657"}}},{content:"port-forward ",props:{style:{color:"#A5D6FF"}}},{content:"-n ",props:{style:{color:"#79C0FF"}}},{content:"langflow svc/langflow-my-langflow-app 7860:",props:{style:{color:"#A5D6FF"}}},{content:"7860",props:{style:{color:"#79C0FF"}}}]}],lang:"shell"},annotations:[]}]}),"\n",(0,n.jsxs)(e.p,{children:["Now you can access the API at ",(0,n.jsx)(e.a,{href:"http://localhost:7860/api/v1/flows",children:"http://localhost:7860/api/v1/flows"})," and execute the flow:"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"id",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"$(",props:{style:{color:"#A5D6FF"}}},{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-s",props:{style:{color:"#79C0FF"}}},{content:" http://localhost:7860/api/v1/flows ",props:{style:{color:"#A5D6FF"}}},{content:"| ",props:{style:{color:"#FF7B72"}}},{content:"jq ",props:{style:{color:"#FFA657"}}},{content:"-r",props:{style:{color:"#79C0FF"}}},{content:" '.flows[0].id')",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"curl ",props:{style:{color:"#FFA657"}}},{content:"-X ",props:{style:{color:"#79C0FF"}}},{content:"POST ",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:' "http://localhost:7860/api/v1/run/',props:{style:{color:"#A5D6FF"}}},{content:"$id",props:{style:{color:"#C9D1D9"}}},{content:'?stream=false" ',props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -H ",props:{style:{color:"#79C0FF"}}},{content:"'Content-Type: application/json'",props:{style:{color:"#A5D6FF"}}},{content:"\\",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:" -d ",props:{style:{color:"#79C0FF"}}},{content:"'{",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_value": "Hello!",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "output_type": "chat",',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "input_type": "chat"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" }'",props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsx)(e.h3,{id:"storage-1",children:"Storage"}),"\n",(0,n.jsx)(e.p,{children:"In this case, the storage is not needed as our deployment is stateless."}),"\n",(0,n.jsx)(e.h3,{id:"log-level-and-langflow-configurations",children:"Log level and LangFlow configurations"}),"\n",(0,n.jsxs)(e.p,{children:["You can set the log level and other LangFlow configurations in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"env",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"LANGFLOW_LOG_LEVEL",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" value",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"INFO"',props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.h3,{id:"configure-secrets-and-variables",children:"Configure secrets and variables"}),"\n",(0,n.jsxs)(e.p,{children:["In order to inject secrets and LangFlow global variables, you can use the ",(0,n.jsx)(e.code,{children:"secrets"})," and ",(0,n.jsx)(e.code,{children:"env"})," sections in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsxs)(e.p,{children:["Let's say your flow uses a global variable which is a secret; when you export the flow as JSON, it's recommended to not include it.\nWhen importing the flow in the LangFlow runtime, you can set the global variable using the ",(0,n.jsx)(e.code,{children:"env"})," section in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file.\nAssuming you have a global variable called ",(0,n.jsx)(e.code,{children:"openai_key_var"}),", you can read it directly from a secret:"]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"env",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"openai_key_var",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" valueFrom",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" secretKeyRef",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"openai-key",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" key",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"openai-key",props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.p,{children:"or directly from the values file (not recommended for secret values!):"}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"env",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" - ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"openai_key_var",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" value",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"sk-...."',props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.h3,{id:"scaling-1",children:"Scaling"}),"\n",(0,n.jsxs)(e.p,{children:["You can scale the number of replicas for the LangFlow app by changing the ",(0,n.jsx)(e.code,{children:"replicaCount"})," value in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"replicaCount",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"3",props:{style:{color:"#79C0FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsxs)(e.p,{children:["To scale vertically (increase the resources for the pods), you can set the ",(0,n.jsx)(e.code,{children:"resources"})," values in the ",(0,n.jsx)(e.code,{children:"values.yaml"})," file."]}),"\n",(0,n.jsx)(d.Code,{codeConfig:h,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"resources",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" requests",props:{style:{color:"#7EE787"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" memory",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2Gi"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" cpu",props:{style:{color:"#7EE787"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"1000m"',props:{style:{color:"#A5D6FF"}}}]}],lang:"yaml"},annotations:[]}]}),"\n",(0,n.jsx)(e.h3,{id:"other-examples",children:"Other examples"}),"\n",(0,n.jsxs)(e.p,{children:["Visit the ",(0,n.jsx)(e.a,{href:"https://github.com/langflow-ai/langflow-helm-charts",children:"LangFlow Helm Charts repository"})," for more examples and configurations."]}),"\n",(0,n.jsxs)(e.p,{children:["Use the ",(0,n.jsx)(e.a,{href:"https://github.com/langflow-ai/langflow-helm-charts/blob/main/charts/langflow-runtime/values.yaml",children:"default values file"})," as reference for all the options available."]}),"\n",(0,n.jsxs)(e.p,{children:["Visit the ",(0,n.jsx)(e.a,{href:"https://github.com/langflow-ai/langflow-helm-charts/tree/main/examples/langflow-runtime",children:"examples directory"})," to learn more about different deployment options."]})]})}const g=function(o={}){const{wrapper:e}=Object.assign({},(0,l.RP)(),o.components);return e?(0,n.jsx)(e,Object.assign({},o,{children:(0,n.jsx)(u,o)})):u(o)};function f(o,e){throw new Error("Expected "+(e?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/dc753f6c.79ca7698.js b/assets/js/dc753f6c.79ca7698.js
new file mode 100644
index 0000000000..3626779c87
--- /dev/null
+++ b/assets/js/dc753f6c.79ca7698.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4930],{7293:(o,t,e)=>{e.d(t,{A:()=>I});var n=e(6540),s=e(4848);function r(o){const{mdxAdmonitionTitle:t,rest:e}=function(o){const t=n.Children.toArray(o),e=t.find((o=>n.isValidElement(o)&&"mdxAdmonitionTitle"===o.type)),r=t.filter((o=>o!==e)),c=e?.props.children;return{mdxAdmonitionTitle:c,rest:r.length>0?(0,s.jsx)(s.Fragment,{children:r}):null}}(o.children),r=o.title??t;return{...o,...r&&{title:r},children:e}}var c=e(8215),l=e(1312),p=e(7559);const i={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function F(o){let{type:t,className:e,children:n}=o;return(0,s.jsx)("div",{className:(0,c.A)(p.G.common.admonition,p.G.common.admonitionType(t),i.admonition,e),children:n})}function a(o){let{icon:t,title:e}=o;return(0,s.jsxs)("div",{className:i.admonitionHeading,children:[(0,s.jsx)("span",{className:i.admonitionIcon,children:t}),e]})}function y(o){let{children:t}=o;return t?(0,s.jsx)("div",{className:i.admonitionContent,children:t}):null}function D(o){const{type:t,icon:e,title:n,children:r,className:c}=o;return(0,s.jsxs)(F,{type:t,className:c,children:[n||e?(0,s.jsx)(a,{title:n,icon:e}):null,(0,s.jsx)(y,{children:r})]})}function d(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const u={icon:(0,s.jsx)(d,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function C(o){return(0,s.jsx)(D,{...u,...o,className:(0,c.A)("alert alert--secondary",o.className),children:o.children})}function m(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const h={icon:(0,s.jsx)(m,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function f(o){return(0,s.jsx)(D,{...h,...o,className:(0,c.A)("alert alert--success",o.className),children:o.children})}function k(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const A={icon:(0,s.jsx)(k,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function B(o){return(0,s.jsx)(D,{...A,...o,className:(0,c.A)("alert alert--info",o.className),children:o.children})}function g(o){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const x={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function j(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const v={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const _={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const b={...{note:C,tip:f,info:B,warning:function(o){return(0,s.jsx)(D,{...x,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})},danger:function(o){return(0,s.jsx)(D,{...v,...o,className:(0,c.A)("alert alert--danger",o.className),children:o.children})}},...{secondary:o=>(0,s.jsx)(C,{title:"secondary",...o}),important:o=>(0,s.jsx)(B,{title:"important",...o}),success:o=>(0,s.jsx)(f,{title:"success",...o}),caution:function(o){return(0,s.jsx)(D,{..._,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})}}};var w=e(6763);function I(o){const t=r(o),e=(n=t.type,b[n]||(w.warn(`No admonition component found for admonition type "${n}". Using Info as fallback.`),b.info));var n;return(0,s.jsx)(e,{...t})}},7533:(o,t,e)=>{e.d(t,{A:()=>l});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const l=o=>{let{alt:t,sources:e,style:l}=o;const[p,i]=(0,n.useState)(!1),F=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",F):document.removeEventListener("keydown",F),()=>{document.removeEventListener("keydown",F)})),[p]);return(0,c.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},6361:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>a,assets:()=>F,chCodeConfig:()=>y,contentTitle:()=>p,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>D});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=(e(1122),e(6025),e(7533),e(7293));const l={},p="Custom Components",i={id:"components/custom",title:"Custom Components",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/components/custom.mdx",sourceDirName:"components",slug:"/components/custom",permalink:"/components/custom",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Embeddings",permalink:"/components/embeddings"},next:{title:"Build Chatbots with the System Message Component",permalink:"/tutorials/chatprompttemplate_guide"}},F={},a={annotations:r.hk,Code:r.Cy},y={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},D=[{value:"Basic Structure of a Custom Component",id:"basic-structure-of-a-custom-component",level:2},{value:"Create a Custom Component Step-by-Step",id:"create-a-custom-component-step-by-step",level:2},{value:"Advanced Example: Create a Conditional Router Component",id:"advanced-example-create-a-conditional-router-component",level:2}];function d(o){const t=Object.assign({h1:"h1",p:"p",h2:"h2",ol:"ol",li:"li",strong:"strong",code:"code",hr:"hr"},(0,s.RP)(),o.components);return a||C("CH",!1),a.Code||C("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"custom-components",children:"Custom Components"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsx)(t.p,{children:"Build custom components in Langflow for various data processing and transformation tasks."}),"\n",(0,n.jsx)(t.p,{children:"This guide provides a comprehensive overview of how to create custom components using Langflow."}),"\n",(0,n.jsx)(t.h2,{id:"basic-structure-of-a-custom-component",children:"Basic Structure of a Custom Component"}),"\n",(0,n.jsx)(t.p,{children:"A custom component in Langflow typically includes the following parts:"}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Class Definition"}),": Inherits from the\xa0",(0,n.jsx)(t.code,{children:"Component"}),"\xa0class."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Component Metadata"}),": Defines display name, description, and icon."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Inputs and Outputs"}),": Specifies the inputs and outputs for the component."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Processing Logic"}),": Implements the logic for processing data within the component."]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"A custom component in Python looks like this:"}),"\n",(0,n.jsx)(a.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Component",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.inputs ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" MessageTextInput, IntInput, BoolInput, DropdownInput, HandleInput",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.template ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Output",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data, Message",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" List, Optional",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"ExampleComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"Component",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Example Component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"A template for creating custom components."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"icon-name"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MessageTextInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Text input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" IntInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_number"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Number"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Numeric input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" BoolInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_boolean"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Boolean"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Boolean input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" DropdownInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_choice"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Choice"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" options",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}},{content:'"Option1"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Option2"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Option3"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Dropdown input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" outputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" Output(",props:{style:{color:"#C9D1D9"}}},{content:"display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Output Data"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"output_data"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"method",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"process_data"',props:{style:{color:"#A5D6FF"}}},{content:"),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"process_data",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Data:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_text ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_number ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_number",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_boolean ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_boolean",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_choice ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_choice",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # Implement your processing logic here",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" result ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Processed: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_text",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_number",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_boolean",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_choice",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" result",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"result"',props:{style:{color:"#A5D6FF"}}},{content:": result})",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"create-a-custom-component-step-by-step",children:"Create a Custom Component Step-by-Step"}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["Create a class that inherits from the\xa0",(0,n.jsx)(t.code,{children:"Component"}),"\xa0class."]}),"\n"]}),"\n",(0,n.jsx)(a.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"ExampleComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"Component",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # Class content",props:{style:{color:"#8B949E"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(t.ol,{start:"2",children:["\n",(0,n.jsxs)(t.li,{children:["Define metadata such as\xa0",(0,n.jsx)(t.code,{children:"display_name"}),",\xa0",(0,n.jsx)(t.code,{children:"description"}),", and\xa0",(0,n.jsx)(t.code,{children:"icon"}),"."]}),"\n"]}),"\n",(0,n.jsx)(a.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Example Component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"A template for creating custom components."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"icon-name"',props:{style:{color:"#A5D6FF"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(t.ol,{start:"3",children:["\n",(0,n.jsxs)(t.li,{children:["Define the inputs and outputs for the component using the\xa0",(0,n.jsx)(t.code,{children:"inputs"}),"\xa0and\xa0",(0,n.jsx)(t.code,{children:"outputs"}),"\xa0lists."]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Inputs"}),"\xa0can be of various types such as\xa0",(0,n.jsx)(t.code,{children:"TextInput"}),",\xa0",(0,n.jsx)(t.code,{children:"IntInput"}),",\xa0",(0,n.jsx)(t.code,{children:"BoolInput"}),",\xa0",(0,n.jsx)(t.code,{children:"DropdownInput"}),", etc."]}),"\n",(0,n.jsx)(a.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MessageTextInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Text input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" IntInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_number"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Number"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Numeric input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" BoolInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_boolean"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Boolean"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Boolean input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" DropdownInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_choice"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Choice"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" options",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}},{content:'"Option1"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Option2"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Option3"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Dropdown input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Outputs"}),"\xa0define the output methods for the component."]}),"\n",(0,n.jsx)(a.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"outputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" Output(",props:{style:{color:"#C9D1D9"}}},{content:"display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Output Data"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"output_data"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"method",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"process_data"',props:{style:{color:"#A5D6FF"}}},{content:"),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(t.ol,{start:"4",children:["\n",(0,n.jsx)(t.li,{children:"Implement the logic for processing data within the component. Define methods for processing data and returning results."}),"\n"]}),"\n",(0,n.jsx)(a.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"def ",props:{style:{color:"#FF7B72"}}},{content:"process_data",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Data:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_text ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_number ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_number",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_boolean ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_boolean",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_choice ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_choice",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # Implement your processing logic here",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" result ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Processed: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_text",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_number",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_boolean",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_choice",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" result",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"result"',props:{style:{color:"#A5D6FF"}}},{content:": result})",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"advanced-example-create-a-conditional-router-component",children:"Advanced Example: Create a Conditional Router Component"}),"\n",(0,n.jsx)(t.p,{children:"This example demonstrates a more complex component that routes data based on a condition."}),"\n",(0,n.jsxs)(t.p,{children:["Notice that this component has two outputs associated with the methods ",(0,n.jsx)(t.code,{children:"true_response"}),"\xa0and\xa0",(0,n.jsx)(t.code,{children:"false_response"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["These methods trigger ",(0,n.jsx)(t.code,{children:"self.stop"})," to block the transmission for the selected output, allowing for logic operations to be implemented visually."]}),"\n",(0,n.jsx)(a.Code,{codeConfig:y,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Component",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.inputs ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" MessageTextInput, DropdownInput, BoolInput",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.template ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Output",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.field_typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"ConditionalRouterComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"Component",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Conditional Router"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Routes input based on a specified condition."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"router"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MessageTextInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_value"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Value"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Value to be evaluated."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MessageTextInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"comparison_value"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Comparison Value"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Value to compare against."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" DropdownInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"operator"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Operator"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" options",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}},{content:'"equals"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"not equals"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"contains"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Comparison operator."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" outputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" Output(",props:{style:{color:"#C9D1D9"}}},{content:"display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"True Output"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"true_output"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"method",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"true_response"',props:{style:{color:"#A5D6FF"}}},{content:"),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" Output(",props:{style:{color:"#C9D1D9"}}},{content:"display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"False Output"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"false_response"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"method",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"false_response"',props:{style:{color:"#A5D6FF"}}},{content:"),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"evaluate_condition",props:{style:{color:"#D2A8FF"}}},{content:"(self, input_value: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:", comparison_value: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:", operator: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:") -> ",props:{style:{color:"#C9D1D9"}}},{content:"bool",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" operator ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"equals"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" input_value ",props:{style:{color:"#C9D1D9"}}},{content:"==",props:{style:{color:"#FF7B72"}}},{content:" comparison_value",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" operator ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"not equals"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" input_value ",props:{style:{color:"#C9D1D9"}}},{content:"!=",props:{style:{color:"#FF7B72"}}},{content:" comparison_value",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" operator ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"contains"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" comparison_value ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" input_value",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return ",props:{style:{color:"#FF7B72"}}},{content:"False",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"true_response",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Text:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".evaluate_condition(",props:{style:{color:"#C9D1D9"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_value, ",props:{style:{color:"#C9D1D9"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".comparison_value, ",props:{style:{color:"#C9D1D9"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".operator):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".stop(",props:{style:{color:"#C9D1D9"}}},{content:'"false_response"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_value",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" else",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".stop(",props:{style:{color:"#C9D1D9"}}},{content:'"true_response"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return ",props:{style:{color:"#FF7B72"}}},{content:'""',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"false_response",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Text:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if not ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".evaluate_condition(",props:{style:{color:"#C9D1D9"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_value, ",props:{style:{color:"#C9D1D9"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".comparison_value, ",props:{style:{color:"#C9D1D9"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".operator):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".stop(",props:{style:{color:"#C9D1D9"}}},{content:'"true_response"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_value",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" else",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".stop(",props:{style:{color:"#C9D1D9"}}},{content:'"false_response"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return ",props:{style:{color:"#FF7B72"}}},{content:'""',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.p,{children:"By following these steps and examples, you can create custom components in Langflow tailored to your specific needs. The modular structure of Custom Components allows for flexible and reusable components that can be easily integrated into your workflows."}),"\n",(0,n.jsx)(t.hr,{})]})}const u=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(d,o)})):d(o)};function C(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/dc753f6c.8d11e670.js b/assets/js/dc753f6c.8d11e670.js
deleted file mode 100644
index 58bf6c38d7..0000000000
--- a/assets/js/dc753f6c.8d11e670.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[4930],{7533:(o,t,e)=>{e.d(t,{A:()=>l});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const l=o=>{let{alt:t,sources:e,style:l}=o;const[p,F]=(0,n.useState)(!1),y=o=>{"Escape"===o.key&&F(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",y):document.removeEventListener("keydown",y),()=>{document.removeEventListener("keydown",y)})),[p]);return(0,c.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{F(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},6361:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>D,assets:()=>y,chCodeConfig:()=>i,contentTitle:()=>p,default:()=>C,frontMatter:()=>l,metadata:()=>F,toc:()=>a});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=(e(1122),e(6025),e(7533),e(7293));const l={},p="Custom Components",F={id:"components/custom",title:"Custom Components",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/components/custom.mdx",sourceDirName:"components",slug:"/components/custom",permalink:"/components/custom",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Embeddings",permalink:"/components/embeddings"},next:{title:"Build Chatbots with the System Message Component",permalink:"/tutorials/chatprompttemplate_guide"}},y={},D={annotations:r.hk,Code:r.Cy},i={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},a=[{value:"Basic Structure of a Custom Component",id:"basic-structure-of-a-custom-component",level:2},{value:"Create a Custom Component Step-by-Step",id:"create-a-custom-component-step-by-step",level:2},{value:"Advanced Example: Create a Conditional Router Component",id:"advanced-example-create-a-conditional-router-component",level:2}];function u(o){const t=Object.assign({h1:"h1",p:"p",h2:"h2",ol:"ol",li:"li",strong:"strong",code:"code",hr:"hr"},(0,s.RP)(),o.components);return D||d("CH",!1),D.Code||d("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"custom-components",children:"Custom Components"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsx)(t.p,{children:"Build custom components in Langflow for various data processing and transformation tasks."}),"\n",(0,n.jsx)(t.p,{children:"This guide provides a comprehensive overview of how to create custom components using Langflow."}),"\n",(0,n.jsx)(t.h2,{id:"basic-structure-of-a-custom-component",children:"Basic Structure of a Custom Component"}),"\n",(0,n.jsx)(t.p,{children:"A custom component in Langflow typically includes the following parts:"}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Class Definition"}),": Inherits from the\xa0",(0,n.jsx)(t.code,{children:"Component"}),"\xa0class."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Component Metadata"}),": Defines display name, description, and icon."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Inputs and Outputs"}),": Specifies the inputs and outputs for the component."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Processing Logic"}),": Implements the logic for processing data within the component."]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"A custom component in Python looks like this:"}),"\n",(0,n.jsx)(D.Code,{codeConfig:i,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Component",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.inputs ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" MessageTextInput, IntInput, BoolInput, DropdownInput, HandleInput",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.template ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Output",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data, Message",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" List, Optional",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"ExampleComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"Component",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Example Component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"A template for creating custom components."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"icon-name"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MessageTextInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Text input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" IntInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_number"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Number"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Numeric input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" BoolInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_boolean"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Boolean"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Boolean input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" DropdownInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_choice"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Choice"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" options",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}},{content:'"Option1"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Option2"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Option3"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Dropdown input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" outputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" Output(",props:{style:{color:"#C9D1D9"}}},{content:"display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Output Data"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"output_data"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"method",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"process_data"',props:{style:{color:"#A5D6FF"}}},{content:"),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"process_data",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Data:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_text ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_number ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_number",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_boolean ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_boolean",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_choice ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_choice",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # Implement your processing logic here",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" result ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Processed: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_text",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_number",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_boolean",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_choice",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" result",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"result"',props:{style:{color:"#A5D6FF"}}},{content:": result})",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"create-a-custom-component-step-by-step",children:"Create a Custom Component Step-by-Step"}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["Create a class that inherits from the\xa0",(0,n.jsx)(t.code,{children:"Component"}),"\xa0class."]}),"\n"]}),"\n",(0,n.jsx)(D.Code,{codeConfig:i,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"ExampleComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"Component",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # Class content",props:{style:{color:"#8B949E"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(t.ol,{start:"2",children:["\n",(0,n.jsxs)(t.li,{children:["Define metadata such as\xa0",(0,n.jsx)(t.code,{children:"display_name"}),",\xa0",(0,n.jsx)(t.code,{children:"description"}),", and\xa0",(0,n.jsx)(t.code,{children:"icon"}),"."]}),"\n"]}),"\n",(0,n.jsx)(D.Code,{codeConfig:i,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Example Component"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"A template for creating custom components."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"icon-name"',props:{style:{color:"#A5D6FF"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(t.ol,{start:"3",children:["\n",(0,n.jsxs)(t.li,{children:["Define the inputs and outputs for the component using the\xa0",(0,n.jsx)(t.code,{children:"inputs"}),"\xa0and\xa0",(0,n.jsx)(t.code,{children:"outputs"}),"\xa0lists."]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Inputs"}),"\xa0can be of various types such as\xa0",(0,n.jsx)(t.code,{children:"TextInput"}),",\xa0",(0,n.jsx)(t.code,{children:"IntInput"}),",\xa0",(0,n.jsx)(t.code,{children:"BoolInput"}),",\xa0",(0,n.jsx)(t.code,{children:"DropdownInput"}),", etc."]}),"\n",(0,n.jsx)(D.Code,{codeConfig:i,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MessageTextInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Text"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Text input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" IntInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_number"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Number"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Numeric input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" BoolInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_boolean"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Boolean"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Boolean input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" DropdownInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_choice"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Choice"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" options",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}},{content:'"Option1"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Option2"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"Option3"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Dropdown input for the component."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.strong,{children:"Outputs"}),"\xa0define the output methods for the component."]}),"\n",(0,n.jsx)(D.Code,{codeConfig:i,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"outputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" Output(",props:{style:{color:"#C9D1D9"}}},{content:"display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Output Data"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"output_data"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"method",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"process_data"',props:{style:{color:"#A5D6FF"}}},{content:"),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"]",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(t.ol,{start:"4",children:["\n",(0,n.jsx)(t.li,{children:"Implement the logic for processing data within the component. Define methods for processing data and returning results."}),"\n"]}),"\n",(0,n.jsx)(D.Code,{codeConfig:i,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"def ",props:{style:{color:"#FF7B72"}}},{content:"process_data",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Data:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_text ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_number ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_number",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_boolean ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_boolean",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" input_choice ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_choice",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" # Implement your processing logic here",props:{style:{color:"#8B949E"}}}]},{tokens:[{content:" result ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Processed: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_text",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_number",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_boolean",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:", ",props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"input_choice",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" result",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" Data(",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"{",props:{style:{color:"#C9D1D9"}}},{content:'"result"',props:{style:{color:"#A5D6FF"}}},{content:": result})",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.h2,{id:"advanced-example-create-a-conditional-router-component",children:"Advanced Example: Create a Conditional Router Component"}),"\n",(0,n.jsx)(t.p,{children:"This example demonstrates a more complex component that routes data based on a condition."}),"\n",(0,n.jsxs)(t.p,{children:["Notice that this component has two outputs associated with the methods ",(0,n.jsx)(t.code,{children:"true_response"}),"\xa0and\xa0",(0,n.jsx)(t.code,{children:"false_response"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["These methods trigger ",(0,n.jsx)(t.code,{children:"self.stop"})," to block the transmission for the selected output, allowing for logic operations to be implemented visually."]}),"\n",(0,n.jsx)(D.Code,{codeConfig:i,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Component",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.inputs ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" MessageTextInput, DropdownInput, BoolInput",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.template ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Output",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.field_typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"ConditionalRouterComponent",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"Component",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Conditional Router"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"Routes input based on a specified condition."',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"router"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" inputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MessageTextInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"input_value"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Input Value"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Value to be evaluated."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" MessageTextInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"comparison_value"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Comparison Value"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Value to compare against."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" DropdownInput(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"operator"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Operator"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" options",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[",props:{style:{color:"#C9D1D9"}}},{content:'"equals"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"not equals"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:'"contains"',props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" info",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"Comparison operator."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" outputs ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" Output(",props:{style:{color:"#C9D1D9"}}},{content:"display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"True Output"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"true_output"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"method",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"true_response"',props:{style:{color:"#A5D6FF"}}},{content:"),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" Output(",props:{style:{color:"#C9D1D9"}}},{content:"display_name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"False Output"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"name",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"false_response"',props:{style:{color:"#A5D6FF"}}},{content:", ",props:{style:{color:"#C9D1D9"}}},{content:"method",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"false_response"',props:{style:{color:"#A5D6FF"}}},{content:"),",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"evaluate_condition",props:{style:{color:"#D2A8FF"}}},{content:"(self, input_value: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:", comparison_value: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:", operator: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:") -> ",props:{style:{color:"#C9D1D9"}}},{content:"bool",props:{style:{color:"#79C0FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" operator ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"equals"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" input_value ",props:{style:{color:"#C9D1D9"}}},{content:"==",props:{style:{color:"#FF7B72"}}},{content:" comparison_value",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" operator ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"not equals"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" input_value ",props:{style:{color:"#C9D1D9"}}},{content:"!=",props:{style:{color:"#FF7B72"}}},{content:" comparison_value",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" elif",props:{style:{color:"#FF7B72"}}},{content:" operator ",props:{style:{color:"#C9D1D9"}}},{content:"== ",props:{style:{color:"#FF7B72"}}},{content:'"contains"',props:{style:{color:"#A5D6FF"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" comparison_value ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" input_value",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return ",props:{style:{color:"#FF7B72"}}},{content:"False",props:{style:{color:"#79C0FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"true_response",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Text:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".evaluate_condition(",props:{style:{color:"#C9D1D9"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_value, ",props:{style:{color:"#C9D1D9"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".comparison_value, ",props:{style:{color:"#C9D1D9"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".operator):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".stop(",props:{style:{color:"#C9D1D9"}}},{content:'"false_response"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_value",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" else",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".stop(",props:{style:{color:"#C9D1D9"}}},{content:'"true_response"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return ",props:{style:{color:"#FF7B72"}}},{content:'""',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"false_response",props:{style:{color:"#D2A8FF"}}},{content:"(self) -> Text:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if not ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".evaluate_condition(",props:{style:{color:"#C9D1D9"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_value, ",props:{style:{color:"#C9D1D9"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".comparison_value, ",props:{style:{color:"#C9D1D9"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".operator):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".stop(",props:{style:{color:"#C9D1D9"}}},{content:'"true_response"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return ",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".input_value",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" else",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".stop(",props:{style:{color:"#C9D1D9"}}},{content:'"false_response"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return ",props:{style:{color:"#FF7B72"}}},{content:'""',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsx)(t.p,{children:"By following these steps and examples, you can create custom components in Langflow tailored to your specific needs. The modular structure of Custom Components allows for flexible and reusable components that can be easily integrated into your workflows."}),"\n",(0,n.jsx)(t.hr,{})]})}const C=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(u,o)})):u(o)};function d(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/e1fd28b8.0a1335ab.js b/assets/js/e1fd28b8.0a1335ab.js
deleted file mode 100644
index 3bffa93d33..0000000000
--- a/assets/js/e1fd28b8.0a1335ab.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[6051],{7293:(e,n,o)=>{o.d(n,{A:()=>z});var t=o(6540),i=o(4848);function s(e){const{mdxAdmonitionTitle:n,rest:o}=function(e){const n=t.Children.toArray(e),o=n.find((e=>t.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),s=n.filter((e=>e!==o)),r=o?.props.children;return{mdxAdmonitionTitle:r,rest:s.length>0?(0,i.jsx)(i.Fragment,{children:s}):null}}(e.children),s=e.title??n;return{...e,...s&&{title:s},children:o}}var r=o(8215),l=o(1312),c=o(7559);const a={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:o,children:t}=e;return(0,i.jsx)("div",{className:(0,r.A)(c.G.common.admonition,c.G.common.admonitionType(n),a.admonition,o),children:t})}function h(e){let{icon:n,title:o}=e;return(0,i.jsxs)("div",{className:a.admonitionHeading,children:[(0,i.jsx)("span",{className:a.admonitionIcon,children:n}),o]})}function j(e){let{children:n}=e;return n?(0,i.jsx)("div",{className:a.admonitionContent,children:n}):null}function p(e){const{type:n,icon:o,title:t,children:s,className:r}=e;return(0,i.jsxs)(d,{type:n,className:r,children:[t||o?(0,i.jsx)(h,{title:t,icon:o}):null,(0,i.jsx)(j,{children:s})]})}function u(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const m={icon:(0,i.jsx)(u,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function x(e){return(0,i.jsx)(p,{...m,...e,className:(0,r.A)("alert alert--secondary",e.className),children:e.children})}function g(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const f={icon:(0,i.jsx)(g,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function y(e){return(0,i.jsx)(p,{...f,...e,className:(0,r.A)("alert alert--success",e.className),children:e.children})}function v(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,i.jsx)(v,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function A(e){return(0,i.jsx)(p,{...w,...e,className:(0,r.A)("alert alert--info",e.className),children:e.children})}function C(e){return(0,i.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const I={icon:(0,i.jsx)(C,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function b(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const M={icon:(0,i.jsx)(b,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const N={icon:(0,i.jsx)(C,{}),title:(0,i.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const k={...{note:x,tip:y,info:A,warning:function(e){return(0,i.jsx)(p,{...I,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,i.jsx)(p,{...M,...e,className:(0,r.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,i.jsx)(x,{title:"secondary",...e}),important:e=>(0,i.jsx)(A,{title:"important",...e}),success:e=>(0,i.jsx)(y,{title:"success",...e}),caution:function(e){return(0,i.jsx)(p,{...N,...e,className:(0,r.A)("alert alert--warning",e.className),children:e.children})}}};var P=o(6763);function z(e){const n=s(e),o=(t=n.type,k[t]||(P.warn(`No admonition component found for admonition type "${t}". Using Info as fallback.`),k.info));var t;return(0,i.jsx)(o,{...n})}},7533:(e,n,o)=>{o.d(n,{A:()=>l});var t=o(6540),i=o(1122),s=o(6025),r=o(4848);const l=e=>{let{alt:n,sources:o,style:l}=e;const[c,a]=(0,t.useState)(!1),d=e=>{"Escape"===e.key&&a(!1)};(0,t.useEffect)((()=>(c?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[c]);return(0,r.jsx)("div",{className:"zoomable-image "+(c?"fullscreen":""),onClick:()=>{a(!c)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,r.jsx)(i.A,{className:"zoomable-image-inner",alt:n,sources:{light:(0,s.Ay)(o.light),dark:(0,s.Ay)(o.dark)}})})}},7844:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>p,contentTitle:()=>h,default:()=>x,frontMatter:()=>d,metadata:()=>j,toc:()=>u});o(6540);var t=o(4848),i=o(8453),s=(o(1122),o(6025)),r=o(7533),l=o(3554),c=o.n(l),a=o(7293);const d={},h="Collections and Projects",j={id:"administration/collections-projects",title:"Collections and Projects",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/administration/collections-projects.mdx",sourceDirName:"administration",slug:"/administration/collections-projects",permalink:"/administration/collections-projects",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Logs",permalink:"/administration/logs"},next:{title:"Settings",permalink:"/administration/settings"}},p={},u=[{value:"Collections",id:"collections",level:2},{value:"Project",id:"project",level:2},{value:"Project options menu",id:"project-options-menu",level:2},{value:"Project folders",id:"project-folders",level:2}];function m(e){const n=Object.assign({h1:"h1",p:"p",ul:"ul",li:"li",strong:"strong",h2:"h2",img:"img",code:"code",a:"a"},(0,i.RP)(),e.components);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"collections-and-projects",children:"Collections and Projects"}),"\n",(0,t.jsx)(a.A,{type:"warning",title:"warning",children:(0,t.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,t.jsx)(n.p,{children:"My Collection\xa0is a space in Langflow where users can manage, organize, and access their flows and components.\nFlows and components are displayed as individual cards that provide relevant information."}),"\n",(0,t.jsx)(r.A,{alt:"Docusaurus themed image",sources:{light:(0,s.Ay)("img/my-collection.png"),dark:(0,s.Ay)("img/my-collection.png")},style:{width:"30%",margin:"20px auto"}}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Folders"}),': Users can organize their projects into folders. Default folders include "My Projects" and the ability to create new folders. Hover over a folder to access options to download or delete it.']}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Search Bar"})," Enables users to quickly search through their flows and components."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Select All"}),": This feature allows users to select all projects displayed on the page for batch actions like moving, deleting, or exporting."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["Click on a flow card to open it in Langflow Workspace or use the\xa0",(0,t.jsx)(n.strong,{children:"Playground Button"}),"\xa0for direct access to execute and interact with the flow\u2019s chatbot interface."]}),"\n",(0,t.jsx)(n.h2,{id:"collections",children:"Collections"}),"\n",(0,t.jsxs)(n.p,{children:["Components created or imported by the user are also displayed in ",(0,t.jsx)(n.strong,{children:"My Collection"})," and can be directly removed from here."]}),"\n",(0,t.jsx)(n.p,{children:"A collection is a snapshot of flows available in a database."}),"\n",(0,t.jsx)(n.p,{children:"Collections can be downloaded to local storage and uploaded for future use."}),"\n",(0,t.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,t.jsx)(c(),{playing:!0,controls:!0,url:"/videos/langflow_collection.mp4"})}),"\n",(0,t.jsx)(n.h2,{id:"project",children:"Project"}),"\n",(0,t.jsxs)(n.p,{children:["A ",(0,t.jsx)(n.strong,{children:"Project"})," can be a flow or a component. To view your saved projects, select ",(0,t.jsx)(n.strong,{children:"My Collection"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Your ",(0,t.jsx)(n.strong,{children:"Projects"})," are displayed."]}),"\n",(0,t.jsxs)(n.p,{children:["Click the ",(0,t.jsxs)(n.strong,{children:[(0,t.jsx)(n.img,{src:o(4757).A+"",loading:"lazy",alt:"Playground icon",width:"24",height:"24"})," Playground"]})," button to run a flow from the ",(0,t.jsx)(n.strong,{children:"My Collection"})," screen."]}),"\n",(0,t.jsxs)(n.p,{children:["In the top left corner of the screen are options for ",(0,t.jsx)(n.strong,{children:"Download Collection"}),", ",(0,t.jsx)(n.strong,{children:"Upload Collection"}),", and ",(0,t.jsx)(n.strong,{children:"New Project"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Select ",(0,t.jsx)(n.strong,{children:"Download Collection"})," to save your project to your local machine. This downloads all flows and components as a ",(0,t.jsx)(n.code,{children:".json"})," file."]}),"\n",(0,t.jsxs)(n.p,{children:["Select ",(0,t.jsx)(n.strong,{children:"Upload Collection"})," to upload a flow or component ",(0,t.jsx)(n.code,{children:".json"})," file from your local machine."]}),"\n",(0,t.jsxs)(n.p,{children:["Select ",(0,t.jsx)(n.strong,{children:"New Project"})," to create a new project. In addition to a blank workspace, ",(0,t.jsx)(n.a,{href:"../starter-projects/basic-prompting",children:"starter projects"})," are also available."]}),"\n",(0,t.jsx)(n.h2,{id:"project-options-menu",children:"Project options menu"}),"\n",(0,t.jsx)(n.p,{children:"To see options for your project, in the upper left corner of the workspace, select the dropdown menu."}),"\n",(0,t.jsx)(r.A,{alt:"Docusaurus themed image",sources:{light:(0,s.Ay)("img/project-options-menu-light.png"),dark:(0,s.Ay)("img/project-options-menu-dark.png")},style:{width:"30%",margin:"20px auto"}}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"New"})," - Start a new project."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Duplicate"})," - Duplicate the current flow as a new project."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Settings"})," - Modify the project's ",(0,t.jsx)(n.strong,{children:"Name"})," or ",(0,t.jsx)(n.strong,{children:"Description"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Import"})," - Upload a flow ",(0,t.jsx)(n.code,{children:".json"})," file from your local machine."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Export"})," - Download your current project to your local machine as a ",(0,t.jsx)(n.code,{children:".json"})," file."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Undo"})," or ",(0,t.jsx)(n.strong,{children:"Redo"})," - Undo or redo your last action."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"project-folders",children:"Project folders"}),"\n",(0,t.jsxs)(n.p,{children:["Multiple projects can be stored in ",(0,t.jsx)(n.strong,{children:"folders"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"Folders allow you to categorize flows and components into manageable groups. This makes it easier to find and access specific projects quickly."}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"My Projects"})," is a default folder where all new projects and components are initially stored unless specified otherwise. Users can create custom folders to better organize their work according to specific needs."]}),"\n",(0,t.jsx)(n.p,{children:"Hovering over a folder in Langflow provides options to either remove or download the entire folder, allowing you to keep an offline copy or migrate projects between environments"}),"\n",(0,t.jsxs)(n.p,{children:["Create new folders with the ",(0,t.jsx)(n.strong,{children:"New folder"})," button. One folder can store multiple projects (as the default My Projects folder does)."]}),"\n",(0,t.jsx)(n.p,{children:"You can download folders of projects as a single JSON file, and upload files and flows to your folder."}),"\n",(0,t.jsxs)(n.p,{children:["Click the ",(0,t.jsx)(n.strong,{children:"Trash"})," icon to delete a folder."]})]})}const x=function(e={}){const{wrapper:n}=Object.assign({},(0,i.RP)(),e.components);return n?(0,t.jsx)(n,Object.assign({},e,{children:(0,t.jsx)(m,e)})):m(e)}},4757:(e,n,o)=>{o.d(n,{A:()=>t});const t="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgY2xhc3M9Imx1Y2lkZSBsdWNpZGUtYm90LW1lc3NhZ2Utc3F1YXJlIj4KICA8cGF0aCBkPSJNMTIgNlYySDgiIC8+CiAgPHBhdGggZD0ibTggMTgtNCA0VjhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMloiIC8+CiAgPHBhdGggZD0iTTIgMTJoMiIgLz4KICA8cGF0aCBkPSJNOSAxMXYyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxMXYyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgo8L3N2Zz4g"},8453:(e,n,o)=>{o.d(n,{RP:()=>s,xA:()=>l});var t=o(6540);const i=t.createContext({});function s(e){const n=t.useContext(i);return t.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const r={};function l({components:e,children:n,disableParentContext:o}){let l;return l=o?"function"==typeof e?e({}):e||r:s(e),t.createElement(i.Provider,{value:l},n)}}}]);
\ No newline at end of file
diff --git a/assets/js/e1fd28b8.b543a76f.js b/assets/js/e1fd28b8.b543a76f.js
new file mode 100644
index 0000000000..dce01802b3
--- /dev/null
+++ b/assets/js/e1fd28b8.b543a76f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[6051],{7533:(e,n,o)=>{o.d(n,{A:()=>i});var s=o(6540),t=o(1122),r=o(6025),l=o(4848);const i=e=>{let{alt:n,sources:o,style:i}=e;const[c,a]=(0,s.useState)(!1),d=e=>{"Escape"===e.key&&a(!1)};(0,s.useEffect)((()=>(c?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[c]);return(0,l.jsx)("div",{className:"zoomable-image "+(c?"fullscreen":""),onClick:()=>{a(!c)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...i},children:(0,l.jsx)(t.A,{className:"zoomable-image-inner",alt:n,sources:{light:(0,r.Ay)(o.light),dark:(0,r.Ay)(o.dark)}})})}},7844:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>j,contentTitle:()=>h,default:()=>x,frontMatter:()=>d,metadata:()=>p,toc:()=>g});o(6540);var s=o(4848),t=o(8453),r=(o(1122),o(6025)),l=o(7533),i=o(3554),c=o.n(i),a=o(7293);const d={},h="Collections and Projects",p={id:"administration/collections-projects",title:"Collections and Projects",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/administration/collections-projects.mdx",sourceDirName:"administration",slug:"/administration/collections-projects",permalink:"/administration/collections-projects",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Logs",permalink:"/administration/logs"},next:{title:"Settings",permalink:"/administration/settings"}},j={},g=[{value:"Collections",id:"collections",level:2},{value:"Project",id:"project",level:2},{value:"Project options menu",id:"project-options-menu",level:2},{value:"Project folders",id:"project-folders",level:2}];function u(e){const n=Object.assign({h1:"h1",p:"p",ul:"ul",li:"li",strong:"strong",h2:"h2",img:"img",code:"code",a:"a"},(0,t.RP)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"collections-and-projects",children:"Collections and Projects"}),"\n",(0,s.jsx)(a.A,{type:"warning",title:"warning",children:(0,s.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,s.jsx)(n.p,{children:"My Collection\xa0is a space in Langflow where users can manage, organize, and access their flows and components.\nFlows and components are displayed as individual cards that provide relevant information."}),"\n",(0,s.jsx)(l.A,{alt:"Docusaurus themed image",sources:{light:(0,r.Ay)("img/my-collection.png"),dark:(0,r.Ay)("img/my-collection.png")},style:{width:"30%",margin:"20px auto"}}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Folders"}),': Users can organize their projects into folders. Default folders include "My Projects" and the ability to create new folders. Hover over a folder to access options to download or delete it.']}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Search Bar"})," Enables users to quickly search through their flows and components."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Select All"}),": This feature allows users to select all projects displayed on the page for batch actions like moving, deleting, or exporting."]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Click on a flow card to open it in Langflow Workspace or use the\xa0",(0,s.jsx)(n.strong,{children:"Playground Button"}),"\xa0for direct access to execute and interact with the flow\u2019s chatbot interface."]}),"\n",(0,s.jsx)(n.h2,{id:"collections",children:"Collections"}),"\n",(0,s.jsxs)(n.p,{children:["Components created or imported by the user are also displayed in ",(0,s.jsx)(n.strong,{children:"My Collection"})," and can be directly removed from here."]}),"\n",(0,s.jsx)(n.p,{children:"A collection is a snapshot of flows available in a database."}),"\n",(0,s.jsx)(n.p,{children:"Collections can be downloaded to local storage and uploaded for future use."}),"\n",(0,s.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,s.jsx)(c(),{playing:!0,controls:!0,url:"/videos/langflow_collection.mp4"})}),"\n",(0,s.jsx)(n.h2,{id:"project",children:"Project"}),"\n",(0,s.jsxs)(n.p,{children:["A ",(0,s.jsx)(n.strong,{children:"Project"})," can be a flow or a component. To view your saved projects, select ",(0,s.jsx)(n.strong,{children:"My Collection"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Your ",(0,s.jsx)(n.strong,{children:"Projects"})," are displayed."]}),"\n",(0,s.jsxs)(n.p,{children:["Click the ",(0,s.jsxs)(n.strong,{children:[(0,s.jsx)(n.img,{src:o(4757).A+"",loading:"lazy",alt:"Playground icon",width:"24",height:"24"})," Playground"]})," button to run a flow from the ",(0,s.jsx)(n.strong,{children:"My Collection"})," screen."]}),"\n",(0,s.jsxs)(n.p,{children:["In the top left corner of the screen are options for ",(0,s.jsx)(n.strong,{children:"Download Collection"}),", ",(0,s.jsx)(n.strong,{children:"Upload Collection"}),", and ",(0,s.jsx)(n.strong,{children:"New Project"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Select ",(0,s.jsx)(n.strong,{children:"Download Collection"})," to save your project to your local machine. This downloads all flows and components as a ",(0,s.jsx)(n.code,{children:".json"})," file."]}),"\n",(0,s.jsxs)(n.p,{children:["Select ",(0,s.jsx)(n.strong,{children:"Upload Collection"})," to upload a flow or component ",(0,s.jsx)(n.code,{children:".json"})," file from your local machine."]}),"\n",(0,s.jsxs)(n.p,{children:["Select ",(0,s.jsx)(n.strong,{children:"New Project"})," to create a new project. In addition to a blank workspace, ",(0,s.jsx)(n.a,{href:"../starter-projects/basic-prompting",children:"starter projects"})," are also available."]}),"\n",(0,s.jsx)(n.h2,{id:"project-options-menu",children:"Project options menu"}),"\n",(0,s.jsx)(n.p,{children:"To see options for your project, in the upper left corner of the workspace, select the dropdown menu."}),"\n",(0,s.jsx)(l.A,{alt:"Docusaurus themed image",sources:{light:(0,r.Ay)("img/project-options-menu-light.png"),dark:(0,r.Ay)("img/project-options-menu-dark.png")},style:{width:"30%",margin:"20px auto"}}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"New"})," - Start a new project."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Duplicate"})," - Duplicate the current flow as a new project."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Settings"})," - Modify the project's ",(0,s.jsx)(n.strong,{children:"Name"})," or ",(0,s.jsx)(n.strong,{children:"Description"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Import"})," - Upload a flow ",(0,s.jsx)(n.code,{children:".json"})," file from your local machine."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Export"})," - Download your current project to your local machine as a ",(0,s.jsx)(n.code,{children:".json"})," file."]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Undo"})," or ",(0,s.jsx)(n.strong,{children:"Redo"})," - Undo or redo your last action."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"project-folders",children:"Project folders"}),"\n",(0,s.jsxs)(n.p,{children:["Multiple projects can be stored in ",(0,s.jsx)(n.strong,{children:"folders"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Folders allow you to categorize flows and components into manageable groups. This makes it easier to find and access specific projects quickly."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"My Projects"})," is a default folder where all new projects and components are initially stored unless specified otherwise. Users can create custom folders to better organize their work according to specific needs."]}),"\n",(0,s.jsx)(n.p,{children:"Hovering over a folder in Langflow provides options to either remove or download the entire folder, allowing you to keep an offline copy or migrate projects between environments"}),"\n",(0,s.jsxs)(n.p,{children:["Create new folders with the ",(0,s.jsx)(n.strong,{children:"New folder"})," button. One folder can store multiple projects (as the default My Projects folder does)."]}),"\n",(0,s.jsx)(n.p,{children:"You can download folders of projects as a single JSON file, and upload files and flows to your folder."}),"\n",(0,s.jsxs)(n.p,{children:["Click the ",(0,s.jsx)(n.strong,{children:"Trash"})," icon to delete a folder."]})]})}const x=function(e={}){const{wrapper:n}=Object.assign({},(0,t.RP)(),e.components);return n?(0,s.jsx)(n,Object.assign({},e,{children:(0,s.jsx)(u,e)})):u(e)}},4757:(e,n,o)=>{o.d(n,{A:()=>s});const s="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgY2xhc3M9Imx1Y2lkZSBsdWNpZGUtYm90LW1lc3NhZ2Utc3F1YXJlIj4KICA8cGF0aCBkPSJNMTIgNlYySDgiIC8+CiAgPHBhdGggZD0ibTggMTgtNCA0VjhhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMloiIC8+CiAgPHBhdGggZD0iTTIgMTJoMiIgLz4KICA8cGF0aCBkPSJNOSAxMXYyIiAvPgogIDxwYXRoIGQ9Ik0xNSAxMXYyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgo8L3N2Zz4g"},8453:(e,n,o)=>{o.d(n,{RP:()=>r,xA:()=>i});var s=o(6540);const t=s.createContext({});function r(e){const n=s.useContext(t);return s.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const l={};function i({components:e,children:n,disableParentContext:o}){let i;return i=o?"function"==typeof e?e({}):e||l:r(e),s.createElement(t.Provider,{value:i},n)}}}]);
\ No newline at end of file
diff --git a/assets/js/e6a76a83.bc3f974b.js b/assets/js/e6a76a83.bc3f974b.js
new file mode 100644
index 0000000000..ba840e7fb8
--- /dev/null
+++ b/assets/js/e6a76a83.bc3f974b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3558],{7533:(e,t,n)=>{n.d(t,{A:()=>c});var a=n(6540),s=n(1122),o=n(6025),r=n(4848);const c=e=>{let{alt:t,sources:n,style:c}=e;const[i,l]=(0,a.useState)(!1),d=e=>{"Escape"===e.key&&l(!1)};(0,a.useEffect)((()=>(i?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[i]);return(0,r.jsx)("div",{className:"zoomable-image "+(i?"fullscreen":""),onClick:()=>{l(!i)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...c},children:(0,r.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,o.Ay)(n.light),dark:(0,o.Ay)(n.dark)}})})}},5593:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>p});n(6540);var a=n(4848),s=n(8453),o=(n(1122),n(6025),n(7533),n(3554)),r=n.n(o),c=n(7293);const i={},l="Create Data",d={id:"examples/create-record",title:"Create Data",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/examples/create-record.mdx",sourceDirName:"examples",slug:"/examples/create-record",permalink:"/examples/create-record",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},u={},p=[];function m(e){const t=Object.assign({h1:"h1",p:"p",code:"code",strong:"strong"},(0,s.RP)(),e.components);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h1,{id:"create-data",children:"Create Data"}),"\n",(0,a.jsx)(c.A,{type:"warning",title:"warning",children:(0,a.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,a.jsxs)(t.p,{children:["In Langflow, a ",(0,a.jsx)(t.code,{children:"Data"})," has a structure very similar to a Python dictionary. It is a key-value pair data structure."]}),"\n",(0,a.jsxs)(t.p,{children:["The ",(0,a.jsx)(t.strong,{children:"Create Data"})," component allows you to dynamically create a ",(0,a.jsx)(t.code,{children:"Data"})," from a specified number of inputs. You can add as many key-value pairs as you want (as long as it is less than 15 \ud83d\ude05). Once you've chosen the number of ",(0,a.jsx)(t.code,{children:"Data"}),", add keys and fill up values, or pass on values from other components to the component using the input handles."]}),"\n",(0,a.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,a.jsx)(r(),{playing:!0,controls:!0,url:"/videos/create_record.mp4"})})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),e.components);return t?(0,a.jsx)(t,Object.assign({},e,{children:(0,a.jsx)(m,e)})):m(e)}},8453:(e,t,n)=>{n.d(t,{RP:()=>o,xA:()=>c});var a=n(6540);const s=a.createContext({});function o(e){const t=a.useContext(s);return a.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const r={};function c({components:e,children:t,disableParentContext:n}){let c;return c=n?"function"==typeof e?e({}):e||r:o(e),a.createElement(s.Provider,{value:c},t)}}}]);
\ No newline at end of file
diff --git a/assets/js/e6a76a83.ddf2a6ae.js b/assets/js/e6a76a83.ddf2a6ae.js
deleted file mode 100644
index 324f6c81b6..0000000000
--- a/assets/js/e6a76a83.ddf2a6ae.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3558],{7293:(e,n,t)=>{t.d(n,{A:()=>H});var i=t(6540),o=t(4848);function a(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=i.Children.toArray(e),t=n.find((e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=n.filter((e=>e!==t)),s=t?.props.children;return{mdxAdmonitionTitle:s,rest:a.length>0?(0,o.jsx)(o.Fragment,{children:a}):null}}(e.children),a=e.title??n;return{...e,...a&&{title:a},children:t}}var s=t(8215),r=t(1312),c=t(7559);const l={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:t,children:i}=e;return(0,o.jsx)("div",{className:(0,s.A)(c.G.common.admonition,c.G.common.admonitionType(n),l.admonition,t),children:i})}function u(e){let{icon:n,title:t}=e;return(0,o.jsxs)("div",{className:l.admonitionHeading,children:[(0,o.jsx)("span",{className:l.admonitionIcon,children:n}),t]})}function m(e){let{children:n}=e;return n?(0,o.jsx)("div",{className:l.admonitionContent,children:n}):null}function h(e){const{type:n,icon:t,title:i,children:a,className:s}=e;return(0,o.jsxs)(d,{type:n,className:s,children:[i||t?(0,o.jsx)(u,{title:i,icon:t}):null,(0,o.jsx)(m,{children:a})]})}function f(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const x={icon:(0,o.jsx)(f,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function p(e){return(0,o.jsx)(h,{...x,...e,className:(0,s.A)("alert alert--secondary",e.className),children:e.children})}function j(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const v={icon:(0,o.jsx)(j,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function g(e){return(0,o.jsx)(h,{...v,...e,className:(0,s.A)("alert alert--success",e.className),children:e.children})}function y(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const w={icon:(0,o.jsx)(y,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function A(e){return(0,o.jsx)(h,{...w,...e,className:(0,s.A)("alert alert--info",e.className),children:e.children})}function N(e){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const C={icon:(0,o.jsx)(N,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function b(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const z={icon:(0,o.jsx)(b,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const k={icon:(0,o.jsx)(N,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const T={...{note:p,tip:g,info:A,warning:function(e){return(0,o.jsx)(h,{...C,...e,className:(0,s.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,o.jsx)(h,{...z,...e,className:(0,s.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,o.jsx)(p,{title:"secondary",...e}),important:e=>(0,o.jsx)(A,{title:"important",...e}),success:e=>(0,o.jsx)(g,{title:"success",...e}),caution:function(e){return(0,o.jsx)(h,{...k,...e,className:(0,s.A)("alert alert--warning",e.className),children:e.children})}}};var M=t(6763);function H(e){const n=a(e),t=(i=n.type,T[i]||(M.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),T.info));var i;return(0,o.jsx)(t,{...n})}},7533:(e,n,t)=>{t.d(n,{A:()=>r});var i=t(6540),o=t(1122),a=t(6025),s=t(4848);const r=e=>{let{alt:n,sources:t,style:r}=e;const[c,l]=(0,i.useState)(!1),d=e=>{"Escape"===e.key&&l(!1)};(0,i.useEffect)((()=>(c?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[c]);return(0,s.jsx)("div",{className:"zoomable-image "+(c?"fullscreen":""),onClick:()=>{l(!c)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...r},children:(0,s.jsx)(o.A,{className:"zoomable-image-inner",alt:n,sources:{light:(0,a.Ay)(t.light),dark:(0,a.Ay)(t.dark)}})})}},5593:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>l,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>m});t(6540);var i=t(4848),o=t(8453),a=(t(1122),t(6025),t(7533),t(3554)),s=t.n(a),r=t(7293);const c={},l="Create Data",d={id:"examples/create-record",title:"Create Data",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/examples/create-record.mdx",sourceDirName:"examples",slug:"/examples/create-record",permalink:"/examples/create-record",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{}},u={},m=[];function h(e){const n=Object.assign({h1:"h1",p:"p",code:"code",strong:"strong"},(0,o.RP)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"create-data",children:"Create Data"}),"\n",(0,i.jsx)(r.A,{type:"warning",title:"warning",children:(0,i.jsx)(n.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,i.jsxs)(n.p,{children:["In Langflow, a ",(0,i.jsx)(n.code,{children:"Data"})," has a structure very similar to a Python dictionary. It is a key-value pair data structure."]}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.strong,{children:"Create Data"})," component allows you to dynamically create a ",(0,i.jsx)(n.code,{children:"Data"})," from a specified number of inputs. You can add as many key-value pairs as you want (as long as it is less than 15 \ud83d\ude05). Once you've chosen the number of ",(0,i.jsx)(n.code,{children:"Data"}),", add keys and fill up values, or pass on values from other components to the component using the input handles."]}),"\n",(0,i.jsx)("div",{style:{marginBottom:"20px",display:"flex",justifyContent:"center"},children:(0,i.jsx)(s(),{playing:!0,controls:!0,url:"/videos/create_record.mp4"})})]})}const f=function(e={}){const{wrapper:n}=Object.assign({},(0,o.RP)(),e.components);return n?(0,i.jsx)(n,Object.assign({},e,{children:(0,i.jsx)(h,e)})):h(e)}},8453:(e,n,t)=>{t.d(n,{RP:()=>a,xA:()=>r});var i=t(6540);const o=i.createContext({});function a(e){const n=i.useContext(o);return i.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const s={};function r({components:e,children:n,disableParentContext:t}){let r;return r=t?"function"==typeof e?e({}):e||s:a(e),i.createElement(o.Provider,{value:r},n)}}}]);
\ No newline at end of file
diff --git a/assets/js/f60effff.22e5c962.js b/assets/js/f60effff.22e5c962.js
new file mode 100644
index 0000000000..92e88aedf2
--- /dev/null
+++ b/assets/js/f60effff.22e5c962.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[954],{7293:(o,t,e)=>{e.d(t,{A:()=>_});var n=e(6540),s=e(4848);function r(o){const{mdxAdmonitionTitle:t,rest:e}=function(o){const t=n.Children.toArray(o),e=t.find((o=>n.isValidElement(o)&&"mdxAdmonitionTitle"===o.type)),r=t.filter((o=>o!==e)),c=e?.props.children;return{mdxAdmonitionTitle:c,rest:r.length>0?(0,s.jsx)(s.Fragment,{children:r}):null}}(o.children),r=o.title??t;return{...o,...r&&{title:r},children:e}}var c=e(8215),l=e(1312),p=e(7559);const i={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function a(o){let{type:t,className:e,children:n}=o;return(0,s.jsx)("div",{className:(0,c.A)(p.G.common.admonition,p.G.common.admonitionType(t),i.admonition,e),children:n})}function d(o){let{icon:t,title:e}=o;return(0,s.jsxs)("div",{className:i.admonitionHeading,children:[(0,s.jsx)("span",{className:i.admonitionIcon,children:t}),e]})}function y(o){let{children:t}=o;return t?(0,s.jsx)("div",{className:i.admonitionContent,children:t}):null}function D(o){const{type:t,icon:e,title:n,children:r,className:c}=o;return(0,s.jsxs)(a,{type:t,className:c,children:[n||e?(0,s.jsx)(d,{title:n,icon:e}):null,(0,s.jsx)(y,{children:r})]})}function F(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const h={icon:(0,s.jsx)(F,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function u(o){return(0,s.jsx)(D,{...h,...o,className:(0,c.A)("alert alert--secondary",o.className),children:o.children})}function C(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const g={icon:(0,s.jsx)(C,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function m(o){return(0,s.jsx)(D,{...g,...o,className:(0,c.A)("alert alert--success",o.className),children:o.children})}function f(o){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const x={icon:(0,s.jsx)(f,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function k(o){return(0,s.jsx)(D,{...x,...o,className:(0,c.A)("alert alert--info",o.className),children:o.children})}function A(o){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const j={icon:(0,s.jsx)(A,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function b(o){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...o,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const v={icon:(0,s.jsx)(b,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const B={icon:(0,s.jsx)(A,{}),title:(0,s.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const w={...{note:u,tip:m,info:k,warning:function(o){return(0,s.jsx)(D,{...j,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})},danger:function(o){return(0,s.jsx)(D,{...v,...o,className:(0,c.A)("alert alert--danger",o.className),children:o.children})}},...{secondary:o=>(0,s.jsx)(u,{title:"secondary",...o}),important:o=>(0,s.jsx)(k,{title:"important",...o}),success:o=>(0,s.jsx)(m,{title:"success",...o}),caution:function(o){return(0,s.jsx)(D,{...B,...o,className:(0,c.A)("alert alert--warning",o.className),children:o.children})}}};var N=e(6763);function _(o){const t=r(o),e=(n=t.type,w[n]||(N.warn(`No admonition component found for admonition type "${n}". Using Info as fallback.`),w.info));var n;return(0,s.jsx)(e,{...t})}},7533:(o,t,e)=>{e.d(t,{A:()=>l});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const l=o=>{let{alt:t,sources:e,style:l}=o;const[p,i]=(0,n.useState)(!1),a=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[p]);return(0,c.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},594:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>y,assets:()=>d,chCodeConfig:()=>D,contentTitle:()=>i,default:()=>u,frontMatter:()=>p,metadata:()=>a,toc:()=>F});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=e(7293),l=(e(1122),e(6025),e(7533));const p={},i="List Pages",a={id:"integrations/notion/list-pages",title:"List Pages",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/list-pages.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/list-pages",permalink:"/integrations/notion/list-pages",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Database Properties",permalink:"/integrations/notion/list-database-properties"},next:{title:"User List",permalink:"/integrations/notion/list-users"}},d={},y={annotations:r.hk,Code:r.Cy},D={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},F=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function h(o){const t=Object.assign({h1:"h1",p:"p",code:"code",a:"a",ul:"ul",li:"li",h2:"h2",ol:"ol",strong:"strong"},(0,s.RP)(),o.components);return y||C("CH",!1),y.Code||C("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"list-pages",children:"List Pages"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionListPages"})," component queries a Notion database with filtering and sorting. It provides a convenient way to integrate Notion database querying capabilities into your Langflow workflows."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://developers.notion.com/reference/post-database-query",children:"Notion Reference"})}),"\n",(0,n.jsxs)(c.A,{type:"tip",title:"Component Functionality",children:[(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionListPages"})," component enables you to:"]}),(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Query a Notion database with custom filters and sorting options"}),"\n",(0,n.jsx)(t.li,{children:"Retrieve specific pages from a Notion database based on the provided criteria"}),"\n",(0,n.jsx)(t.li,{children:"Integrate Notion database data seamlessly into your Langflow workflows"}),"\n"]})]}),"\n",(0,n.jsx)(t.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(t.p,{children:["To use the ",(0,n.jsx)(t.code,{children:"NotionListPages "})," component in a Langflow flow, follow these steps:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsxs)(t.strong,{children:["Add the ",(0,n.jsx)(t.code,{children:"NotionListPages "})," component to your flow."]})}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Configure the component by providing the required parameters:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"notion_secret"}),": The Notion integration token for authentication."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"database_id"}),": The ID of the Notion database you want to query."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"query_payload"}),": A JSON string containing the filters and sorting options for the query."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsxs)(t.strong,{children:["Connect the ",(0,n.jsx)(t.code,{children:"NotionListPages "})," component to other components in your flow as needed."]})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-python-code",children:"Component Python code"}),"\n",(0,n.jsx)(y.Code,{codeConfig:D,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" json",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Dict, Any, List",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionListPages",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"List Pages [Notion]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" (",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Query a Notion database with filtering and sorting. "',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" \"The input should be a JSON string containing the 'filter' and 'sorts' objects. \"",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "Example input:',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' \'{"filter": {"property": "Status", "select": {"equals": "Done"',props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:', "sorts": [{"timestamp": "created_time", "direction": "descending"}]}\'',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" )",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/list-pages"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" field_order ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "database_id"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "query_payload"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "database_id"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Database ID"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The ID of the Notion database to query."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "query_payload"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Database query"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"A JSON string containing the filters that will be used for querying the database. EG: {'filter': {'property': 'Status', 'status': {'equals': 'In progress'",props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:'}"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" database_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" query_payload: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"{}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> List[Data]:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" try",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" query_data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" json.loads(query_payload)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" filter_obj ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" query_data.get(",props:{style:{color:"#C9D1D9"}}},{content:'"filter"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sorts ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" query_data.get(",props:{style:{color:"#C9D1D9"}}},{content:'"sorts"',props:{style:{color:"#A5D6FF"}}},{content:", [])",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" url ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"https://api.notion.com/v1/databases/',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"database_id",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'/query"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Content-Type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"application/json"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sorts"',props:{style:{color:"#A5D6FF"}}},{content:": sorts,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" filter_obj:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data[",props:{style:{color:"#C9D1D9"}}},{content:'"filter"',props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" filter_obj",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.post(url, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"data)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response.raise_for_status()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" results ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" combined_text ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Pages found: ',props:{style:{color:"#A5D6FF"}}},{content:"{len",props:{style:{color:"#79C0FF"}}},{content:"(results[",props:{style:{color:"#C9D1D9"}}},{content:"'results'",props:{style:{color:"#A5D6FF"}}},{content:"])",props:{style:{color:"#C9D1D9"}}},{content:"}\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" for",props:{style:{color:"#FF7B72"}}},{content:" page ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" results[",props:{style:{color:"#C9D1D9"}}},{content:"'results'",props:{style:{color:"#A5D6FF"}}},{content:"]:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'id'",props:{style:{color:"#A5D6FF"}}},{content:": page[",props:{style:{color:"#C9D1D9"}}},{content:"'id'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'url'",props:{style:{color:"#A5D6FF"}}},{content:": page[",props:{style:{color:"#C9D1D9"}}},{content:"'url'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'created_time'",props:{style:{color:"#A5D6FF"}}},{content:": page[",props:{style:{color:"#C9D1D9"}}},{content:"'created_time'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'last_edited_time'",props:{style:{color:"#A5D6FF"}}},{content:": page[",props:{style:{color:"#C9D1D9"}}},{content:"'last_edited_time'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'properties'",props:{style:{color:"#A5D6FF"}}},{content:": page[",props:{style:{color:"#C9D1D9"}}},{content:"'properties'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" (",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" f",props:{style:{color:"#FF7B72"}}},{content:'"id: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page[",props:{style:{color:"#C9D1D9"}}},{content:"'id'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" f",props:{style:{color:"#FF7B72"}}},{content:'"url: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page[",props:{style:{color:"#C9D1D9"}}},{content:"'url'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" f",props:{style:{color:"#FF7B72"}}},{content:'"created_time: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page[",props:{style:{color:"#C9D1D9"}}},{content:"'created_time'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" f",props:{style:{color:"#FF7B72"}}},{content:'"last_edited_time: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page[",props:{style:{color:"#C9D1D9"}}},{content:"'last_edited_time'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" f",props:{style:{color:"#FF7B72"}}},{content:'"properties: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"json.dumps(page[",props:{style:{color:"#C9D1D9"}}},{content:"'properties'",props:{style:{color:"#A5D6FF"}}},{content:"], ",props:{style:{color:"#C9D1D9"}}},{content:"indent",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"2",props:{style:{color:"#79C0FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}},{content:"}\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" )",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" combined_text ",props:{style:{color:"#C9D1D9"}}},{content:"+=",props:{style:{color:"#FF7B72"}}},{content:" text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data.append(Data(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"text, ",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"page_data))",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" combined_text.strip()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" except ",props:{style:{color:"#FF7B72"}}},{content:"Exception ",props:{style:{color:"#79C0FF"}}},{content:"as",props:{style:{color:"#FF7B72"}}},{content:" e:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"An error occurred: ',props:{style:{color:"#A5D6FF"}}},{content:"{str",props:{style:{color:"#79C0FF"}}},{content:"(e)",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" [Data(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".status, ",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[])]",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(c.A,{type:"info",title:"Example Usage",children:[(0,n.jsx)(t.h2,{id:"example-usage",children:"Example Usage"}),(0,n.jsxs)(t.p,{children:["Here's an example of how you can use the ",(0,n.jsx)(t.code,{children:"NotionListPages"})," component in a Langflow flow and passing to the Prompt component:"]}),(0,n.jsx)(l.A,{alt:"NotionListPages\nFlow Example",sources:{light:"img/notion/NotionListPages_flow_example.png",dark:"img/notion/NotionListPages_flow_example_dark.png"},style:{width:"100%",margin:"20px 0"}}),(0,n.jsxs)(t.p,{children:["In this example, the ",(0,n.jsx)(t.code,{children:"NotionListPages"})," component is used to retrieve specific pages from a Notion database based on the provided filters and sorting options. The retrieved data can then be processed further in the subsequent components of the flow."]})]}),"\n",(0,n.jsx)(t.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(t.p,{children:["When using the ",(0,n.jsx)(t.code,{children:"NotionListPages "})," component, consider the following best practices:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Ensure that you have a valid Notion integration token with the necessary permissions to query the desired database."}),"\n",(0,n.jsxs)(t.li,{children:["Construct the ",(0,n.jsx)(t.code,{children:"query_payload"})," JSON string carefully, following the Notion API documentation for filtering and sorting options."]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionListPages "})," component provides a powerful way to integrate Notion database querying capabilities into your Langflow workflows. By leveraging this component, you can easily retrieve specific pages from a Notion database based on custom filters and sorting options, enabling you to build more dynamic and data-driven flows."]}),"\n",(0,n.jsxs)(t.p,{children:["We encourage you to explore the capabilities of the ",(0,n.jsx)(t.code,{children:"NotionListPages "})," component further and experiment with different querying scenarios to unlock the full potential of integrating Notion databases into your Langflow workflows."]}),"\n",(0,n.jsx)(t.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(t.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(t.code,{children:"NotionListPages"})," component, consider the following:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Double-check that the ",(0,n.jsx)(t.code,{children:"notion_secret"})," and ",(0,n.jsx)(t.code,{children:"database_id"})," are correct and valid."]}),"\n",(0,n.jsxs)(t.li,{children:["Verify that the ",(0,n.jsx)(t.code,{children:"query_payload"})," JSON string is properly formatted and contains valid filtering and sorting options."]}),"\n",(0,n.jsx)(t.li,{children:"Check the Notion API documentation for any updates or changes that may affect the component's functionality."}),"\n"]})]})}const u=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(h,o)})):h(o)};function C(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/f60effff.d5a3b68b.js b/assets/js/f60effff.d5a3b68b.js
deleted file mode 100644
index 84b6feba8a..0000000000
--- a/assets/js/f60effff.d5a3b68b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[954],{7533:(o,t,e)=>{e.d(t,{A:()=>l});var n=e(6540),s=e(1122),r=e(6025),c=e(4848);const l=o=>{let{alt:t,sources:e,style:l}=o;const[p,i]=(0,n.useState)(!1),a=o=>{"Escape"===o.key&&i(!1)};(0,n.useEffect)((()=>(p?document.addEventListener("keydown",a):document.removeEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)})),[p]);return(0,c.jsx)("div",{className:"zoomable-image "+(p?"fullscreen":""),onClick:()=>{i(!p)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...l},children:(0,c.jsx)(s.A,{className:"zoomable-image-inner",alt:t,sources:{light:(0,r.Ay)(e.light),dark:(0,r.Ay)(e.dark)}})})}},594:(o,t,e)=>{e.r(t),e.d(t,{CH:()=>D,assets:()=>y,chCodeConfig:()=>d,contentTitle:()=>i,default:()=>C,frontMatter:()=>p,metadata:()=>a,toc:()=>F});e(6540);var n=e(4848),s=e(8453),r=e(4754),c=e(7293),l=(e(1122),e(6025),e(7533));const p={},i="List Pages",a={id:"integrations/notion/list-pages",title:"List Pages",description:"This page may contain outdated information. It will be updated as soon as possible.",source:"@site/docs/integrations/notion/list-pages.md",sourceDirName:"integrations/notion",slug:"/integrations/notion/list-pages",permalink:"/integrations/notion/list-pages",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"Database Properties",permalink:"/integrations/notion/list-database-properties"},next:{title:"User List",permalink:"/integrations/notion/list-users"}},y={},D={annotations:r.hk,Code:r.Cy},d={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},F=[{value:"Component Usage",id:"component-usage",level:2},{value:"Component Python code",id:"component-python-code",level:2},{value:"Example Usage",id:"example-usage",level:2},{value:"Best Practices",id:"best-practices",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2}];function h(o){const t=Object.assign({h1:"h1",p:"p",code:"code",a:"a",ul:"ul",li:"li",h2:"h2",ol:"ol",strong:"strong"},(0,s.RP)(),o.components);return D||u("CH",!1),D.Code||u("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(t.h1,{id:"list-pages",children:"List Pages"}),"\n",(0,n.jsx)(c.A,{type:"warning",title:"warning",children:(0,n.jsx)(t.p,{children:"This page may contain outdated information. It will be updated as soon as possible."})}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionListPages"})," component queries a Notion database with filtering and sorting. It provides a convenient way to integrate Notion database querying capabilities into your Langflow workflows."]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.a,{href:"https://developers.notion.com/reference/post-database-query",children:"Notion Reference"})}),"\n",(0,n.jsxs)(c.A,{type:"tip",title:"Component Functionality",children:[(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionListPages"})," component enables you to:"]}),(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Query a Notion database with custom filters and sorting options"}),"\n",(0,n.jsx)(t.li,{children:"Retrieve specific pages from a Notion database based on the provided criteria"}),"\n",(0,n.jsx)(t.li,{children:"Integrate Notion database data seamlessly into your Langflow workflows"}),"\n"]})]}),"\n",(0,n.jsx)(t.h2,{id:"component-usage",children:"Component Usage"}),"\n",(0,n.jsxs)(t.p,{children:["To use the ",(0,n.jsx)(t.code,{children:"NotionListPages "})," component in a Langflow flow, follow these steps:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsxs)(t.strong,{children:["Add the ",(0,n.jsx)(t.code,{children:"NotionListPages "})," component to your flow."]})}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Configure the component by providing the required parameters:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"notion_secret"}),": The Notion integration token for authentication."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"database_id"}),": The ID of the Notion database you want to query."]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"query_payload"}),": A JSON string containing the filters and sorting options for the query."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsxs)(t.strong,{children:["Connect the ",(0,n.jsx)(t.code,{children:"NotionListPages "})," component to other components in your flow as needed."]})}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"component-python-code",children:"Component Python code"}),"\n",(0,n.jsx)(D.Code,{codeConfig:d,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" requests",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"import",props:{style:{color:"#FF7B72"}}},{content:" json",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" typing ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Dict, Any, List",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.custom ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" CustomComponent",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"from",props:{style:{color:"#FF7B72"}}},{content:" langflow.schema ",props:{style:{color:"#C9D1D9"}}},{content:"import",props:{style:{color:"#FF7B72"}}},{content:" Data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"class ",props:{style:{color:"#FF7B72"}}},{content:"NotionListPages",props:{style:{color:"#FFA657"}}},{content:"(",props:{style:{color:"#C9D1D9"}}},{content:"CustomComponent",props:{style:{color:"#79C0FF"}}},{content:"):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" display_name ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"List Pages [Notion]"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" description ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" (",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Query a Notion database with filtering and sorting. "',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" \"The input should be a JSON string containing the 'filter' and 'sorts' objects. \"",props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' "Example input:',props:{style:{color:"#A5D6FF"}}},{content:"\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:' \'{"filter": {"property": "Status", "select": {"equals": "Done"',props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:', "sorts": [{"timestamp": "created_time", "direction": "descending"}]}\'',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" )",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" documentation: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"https://docs.langflow.org/integrations/notion/list-pages"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" icon ",props:{style:{color:"#C9D1D9"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"NotionDirectoryLoader"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" field_order ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" [",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "database_id"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "query_payload"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ]",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build_config",props:{style:{color:"#D2A8FF"}}},{content:"(self):",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "notion_secret"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Notion Secret"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The Notion integration token."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "password"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"True",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "database_id"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Database ID"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"The ID of the Notion database to query."',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "query_payload"',props:{style:{color:"#A5D6FF"}}},{content:": {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "display_name"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"Database query"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "field_type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"str"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "info"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"\"A JSON string containing the filters that will be used for querying the database. EG: {'filter': {'property': 'Status', 'status': {'equals': 'In progress'",props:{style:{color:"#A5D6FF"}}},{content:"}}",props:{style:{color:"#79C0FF"}}},{content:'}"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" },",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" def ",props:{style:{color:"#FF7B72"}}},{content:"build",props:{style:{color:"#D2A8FF"}}},{content:"(",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" notion_secret: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" database_id: ",props:{style:{color:"#C9D1D9"}}},{content:"str",props:{style:{color:"#79C0FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" query_payload: ",props:{style:{color:"#C9D1D9"}}},{content:"str ",props:{style:{color:"#79C0FF"}}},{content:"= ",props:{style:{color:"#FF7B72"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:"{}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" ) -> List[Data]:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" try",props:{style:{color:"#FF7B72"}}},{content:":",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" query_data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" json.loads(query_payload)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" filter_obj ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" query_data.get(",props:{style:{color:"#C9D1D9"}}},{content:'"filter"',props:{style:{color:"#A5D6FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" sorts ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" query_data.get(",props:{style:{color:"#C9D1D9"}}},{content:'"sorts"',props:{style:{color:"#A5D6FF"}}},{content:", [])",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" url ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"https://api.notion.com/v1/databases/',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"database_id",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'/query"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" headers ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Authorization"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:"f",props:{style:{color:"#FF7B72"}}},{content:'"Bearer ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"notion_secret",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Content-Type"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"application/json"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "Notion-Version"',props:{style:{color:"#A5D6FF"}}},{content:": ",props:{style:{color:"#C9D1D9"}}},{content:'"2022-06-28"',props:{style:{color:"#A5D6FF"}}},{content:",",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:' "sorts"',props:{style:{color:"#A5D6FF"}}},{content:": sorts,",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" if",props:{style:{color:"#FF7B72"}}},{content:" filter_obj:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data[",props:{style:{color:"#C9D1D9"}}},{content:'"filter"',props:{style:{color:"#A5D6FF"}}},{content:"] ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" filter_obj",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" requests.post(url, ",props:{style:{color:"#C9D1D9"}}},{content:"headers",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"headers, ",props:{style:{color:"#C9D1D9"}}},{content:"json",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"data)",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" response.raise_for_status()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" results ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" response.json()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" []",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" combined_text ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"Pages found: ',props:{style:{color:"#A5D6FF"}}},{content:"{len",props:{style:{color:"#79C0FF"}}},{content:"(results[",props:{style:{color:"#C9D1D9"}}},{content:"'results'",props:{style:{color:"#A5D6FF"}}},{content:"])",props:{style:{color:"#C9D1D9"}}},{content:"}\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" for",props:{style:{color:"#FF7B72"}}},{content:" page ",props:{style:{color:"#C9D1D9"}}},{content:"in",props:{style:{color:"#FF7B72"}}},{content:" results[",props:{style:{color:"#C9D1D9"}}},{content:"'results'",props:{style:{color:"#A5D6FF"}}},{content:"]:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" page_data ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" {",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'id'",props:{style:{color:"#A5D6FF"}}},{content:": page[",props:{style:{color:"#C9D1D9"}}},{content:"'id'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'url'",props:{style:{color:"#A5D6FF"}}},{content:": page[",props:{style:{color:"#C9D1D9"}}},{content:"'url'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'created_time'",props:{style:{color:"#A5D6FF"}}},{content:": page[",props:{style:{color:"#C9D1D9"}}},{content:"'created_time'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'last_edited_time'",props:{style:{color:"#A5D6FF"}}},{content:": page[",props:{style:{color:"#C9D1D9"}}},{content:"'last_edited_time'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" 'properties'",props:{style:{color:"#A5D6FF"}}},{content:": page[",props:{style:{color:"#C9D1D9"}}},{content:"'properties'",props:{style:{color:"#A5D6FF"}}},{content:"],",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" }",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" text ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" (",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" f",props:{style:{color:"#FF7B72"}}},{content:'"id: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page[",props:{style:{color:"#C9D1D9"}}},{content:"'id'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" f",props:{style:{color:"#FF7B72"}}},{content:'"url: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page[",props:{style:{color:"#C9D1D9"}}},{content:"'url'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" f",props:{style:{color:"#FF7B72"}}},{content:'"created_time: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page[",props:{style:{color:"#C9D1D9"}}},{content:"'created_time'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" f",props:{style:{color:"#FF7B72"}}},{content:'"last_edited_time: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"page[",props:{style:{color:"#C9D1D9"}}},{content:"'last_edited_time'",props:{style:{color:"#A5D6FF"}}},{content:"]",props:{style:{color:"#C9D1D9"}}},{content:"}\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" f",props:{style:{color:"#FF7B72"}}},{content:'"properties: ',props:{style:{color:"#A5D6FF"}}},{content:"{",props:{style:{color:"#79C0FF"}}},{content:"json.dumps(page[",props:{style:{color:"#C9D1D9"}}},{content:"'properties'",props:{style:{color:"#A5D6FF"}}},{content:"], ",props:{style:{color:"#C9D1D9"}}},{content:"indent",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"2",props:{style:{color:"#79C0FF"}}},{content:")",props:{style:{color:"#C9D1D9"}}},{content:"}\\n\\n",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" )",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" combined_text ",props:{style:{color:"#C9D1D9"}}},{content:"+=",props:{style:{color:"#FF7B72"}}},{content:" text",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" data.append(Data(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"text, ",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"page_data))",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:" combined_text.strip()",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" data",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:"",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" except ",props:{style:{color:"#FF7B72"}}},{content:"Exception ",props:{style:{color:"#79C0FF"}}},{content:"as",props:{style:{color:"#FF7B72"}}},{content:" e:",props:{style:{color:"#C9D1D9"}}}]},{tokens:[{content:" self",props:{style:{color:"#79C0FF"}}},{content:".status ",props:{style:{color:"#C9D1D9"}}},{content:"= f",props:{style:{color:"#FF7B72"}}},{content:'"An error occurred: ',props:{style:{color:"#A5D6FF"}}},{content:"{str",props:{style:{color:"#79C0FF"}}},{content:"(e)",props:{style:{color:"#C9D1D9"}}},{content:"}",props:{style:{color:"#79C0FF"}}},{content:'"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:" return",props:{style:{color:"#FF7B72"}}},{content:" [Data(",props:{style:{color:"#C9D1D9"}}},{content:"text",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"self",props:{style:{color:"#79C0FF"}}},{content:".status, ",props:{style:{color:"#C9D1D9"}}},{content:"data",props:{style:{color:"#FFA657"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:"[])]",props:{style:{color:"#C9D1D9"}}}]}],lang:"python"},annotations:[]}]}),"\n",(0,n.jsxs)(c.A,{type:"info",title:"Example Usage",children:[(0,n.jsx)(t.h2,{id:"example-usage",children:"Example Usage"}),(0,n.jsxs)(t.p,{children:["Here's an example of how you can use the ",(0,n.jsx)(t.code,{children:"NotionListPages"})," component in a Langflow flow and passing to the Prompt component:"]}),(0,n.jsx)(l.A,{alt:"NotionListPages\nFlow Example",sources:{light:"img/notion/NotionListPages_flow_example.png",dark:"img/notion/NotionListPages_flow_example_dark.png"},style:{width:"100%",margin:"20px 0"}}),(0,n.jsxs)(t.p,{children:["In this example, the ",(0,n.jsx)(t.code,{children:"NotionListPages"})," component is used to retrieve specific pages from a Notion database based on the provided filters and sorting options. The retrieved data can then be processed further in the subsequent components of the flow."]})]}),"\n",(0,n.jsx)(t.h2,{id:"best-practices",children:"Best Practices"}),"\n",(0,n.jsxs)(t.p,{children:["When using the ",(0,n.jsx)(t.code,{children:"NotionListPages "})," component, consider the following best practices:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Ensure that you have a valid Notion integration token with the necessary permissions to query the desired database."}),"\n",(0,n.jsxs)(t.li,{children:["Construct the ",(0,n.jsx)(t.code,{children:"query_payload"})," JSON string carefully, following the Notion API documentation for filtering and sorting options."]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["The ",(0,n.jsx)(t.code,{children:"NotionListPages "})," component provides a powerful way to integrate Notion database querying capabilities into your Langflow workflows. By leveraging this component, you can easily retrieve specific pages from a Notion database based on custom filters and sorting options, enabling you to build more dynamic and data-driven flows."]}),"\n",(0,n.jsxs)(t.p,{children:["We encourage you to explore the capabilities of the ",(0,n.jsx)(t.code,{children:"NotionListPages "})," component further and experiment with different querying scenarios to unlock the full potential of integrating Notion databases into your Langflow workflows."]}),"\n",(0,n.jsx)(t.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,n.jsxs)(t.p,{children:["If you encounter any issues while using the ",(0,n.jsx)(t.code,{children:"NotionListPages"})," component, consider the following:"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["Double-check that the ",(0,n.jsx)(t.code,{children:"notion_secret"})," and ",(0,n.jsx)(t.code,{children:"database_id"})," are correct and valid."]}),"\n",(0,n.jsxs)(t.li,{children:["Verify that the ",(0,n.jsx)(t.code,{children:"query_payload"})," JSON string is properly formatted and contains valid filtering and sorting options."]}),"\n",(0,n.jsx)(t.li,{children:"Check the Notion API documentation for any updates or changes that may affect the component's functionality."}),"\n"]})]})}const C=function(o={}){const{wrapper:t}=Object.assign({},(0,s.RP)(),o.components);return t?(0,n.jsx)(t,Object.assign({},o,{children:(0,n.jsx)(h,o)})):h(o)};function u(o,t){throw new Error("Expected "+(t?"component":"object")+" `"+o+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/fad3d603.b509eff1.js b/assets/js/fad3d603.b509eff1.js
new file mode 100644
index 0000000000..563ab71efc
--- /dev/null
+++ b/assets/js/fad3d603.b509eff1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3022],{7293:(n,e,t)=>{t.d(e,{A:()=>H});var o=t(6540),i=t(4848);function r(n){const{mdxAdmonitionTitle:e,rest:t}=function(n){const e=o.Children.toArray(n),t=e.find((n=>o.isValidElement(n)&&"mdxAdmonitionTitle"===n.type)),r=e.filter((n=>n!==t)),a=t?.props.children;return{mdxAdmonitionTitle:a,rest:r.length>0?(0,i.jsx)(i.Fragment,{children:r}):null}}(n.children),r=n.title??e;return{...n,...r&&{title:r},children:t}}var a=t(8215),c=t(1312),s=t(7559);const l={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(n){let{type:e,className:t,children:o}=n;return(0,i.jsx)("div",{className:(0,a.A)(s.G.common.admonition,s.G.common.admonitionType(e),l.admonition,t),children:o})}function h(n){let{icon:e,title:t}=n;return(0,i.jsxs)("div",{className:l.admonitionHeading,children:[(0,i.jsx)("span",{className:l.admonitionIcon,children:e}),t]})}function u(n){let{children:e}=n;return e?(0,i.jsx)("div",{className:l.admonitionContent,children:e}):null}function m(n){const{type:e,icon:t,title:o,children:r,className:a}=n;return(0,i.jsxs)(d,{type:e,className:a,children:[o||t?(0,i.jsx)(h,{title:o,icon:t}):null,(0,i.jsx)(u,{children:r})]})}function g(n){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const p={icon:(0,i.jsx)(g,{}),title:(0,i.jsx)(c.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function f(n){return(0,i.jsx)(m,{...p,...n,className:(0,a.A)("alert alert--secondary",n.className),children:n.children})}function x(n){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const v={icon:(0,i.jsx)(x,{}),title:(0,i.jsx)(c.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function y(n){return(0,i.jsx)(m,{...v,...n,className:(0,a.A)("alert alert--success",n.className),children:n.children})}function j(n){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...n,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const b={icon:(0,i.jsx)(j,{}),title:(0,i.jsx)(c.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function C(n){return(0,i.jsx)(m,{...b,...n,className:(0,a.A)("alert alert--info",n.className),children:n.children})}function A(n){return(0,i.jsx)("svg",{viewBox:"0 0 16 16",...n,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const k={icon:(0,i.jsx)(A,{}),title:(0,i.jsx)(c.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function w(n){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...n,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const N={icon:(0,i.jsx)(w,{}),title:(0,i.jsx)(c.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const L={icon:(0,i.jsx)(A,{}),title:(0,i.jsx)(c.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const F={...{note:f,tip:y,info:C,warning:function(n){return(0,i.jsx)(m,{...k,...n,className:(0,a.A)("alert alert--warning",n.className),children:n.children})},danger:function(n){return(0,i.jsx)(m,{...N,...n,className:(0,a.A)("alert alert--danger",n.className),children:n.children})}},...{secondary:n=>(0,i.jsx)(f,{title:"secondary",...n}),important:n=>(0,i.jsx)(C,{title:"important",...n}),success:n=>(0,i.jsx)(y,{title:"success",...n}),caution:function(n){return(0,i.jsx)(m,{...L,...n,className:(0,a.A)("alert alert--warning",n.className),children:n.children})}}};var B=t(6763);function H(n){const e=r(n),t=(o=e.type,F[o]||(B.warn(`No admonition component found for admonition type "${o}". Using Info as fallback.`),F.info));var o;return(0,i.jsx)(t,{...e})}},7533:(n,e,t)=>{t.d(e,{A:()=>c});var o=t(6540),i=t(1122),r=t(6025),a=t(4848);const c=n=>{let{alt:e,sources:t,style:c}=n;const[s,l]=(0,o.useState)(!1),d=n=>{"Escape"===n.key&&l(!1)};(0,o.useEffect)((()=>(s?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[s]);return(0,a.jsx)("div",{className:"zoomable-image "+(s?"fullscreen":""),onClick:()=>{l(!s)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...c},children:(0,a.jsx)(i.A,{className:"zoomable-image-inner",alt:e,sources:{light:(0,r.Ay)(t.light),dark:(0,r.Ay)(t.dark)}})})}},9845:(n,e,t)=>{t.r(e),t.d(e,{CH:()=>u,assets:()=>h,chCodeConfig:()=>m,contentTitle:()=>l,default:()=>f,frontMatter:()=>s,metadata:()=>d,toc:()=>g});t(6540);var o=t(4848),i=t(8453),r=t(4754),a=(t(7293),t(1122),t(6025)),c=t(7533);const s={},l="LangSmith",d={id:"integrations/langsmith/intro",title:"LangSmith",description:"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, just add your LangChain API key as a Langflow environment variable and you are good to go!",source:"@site/docs/integrations/langsmith/intro.mdx",sourceDirName:"integrations/langsmith",slug:"/integrations/langsmith/intro",permalink:"/integrations/langsmith/intro",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"How to Contribute Components?",permalink:"/contributing/contribute-component"},next:{title:"Introduction to Notion in Langflow",permalink:"/integrations/notion/intro"}},h={},u={annotations:r.hk,Code:r.Cy},m={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},g=[{value:"Step-by-step Configuration",id:"step-by-step-configuration",level:2}];function p(n){const e=Object.assign({h1:"h1",p:"p",h2:"h2",ol:"ol",li:"li",a:"a",code:"code"},(0,i.RP)(),n.components);return u||x("CH",!1),u.Code||x("CH.Code",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.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","\n",(0,o.jsx)(e.h1,{id:"langsmith",children:"LangSmith"}),"\n",(0,o.jsx)(e.p,{children:"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, just add your LangChain API key as a Langflow environment variable and you are good to go!"}),"\n",(0,o.jsx)(e.h2,{id:"step-by-step-configuration",children:"Step-by-step Configuration"}),"\n",(0,o.jsxs)(e.ol,{children:["\n",(0,o.jsxs)(e.li,{children:["Obtain your LangChain API key from ",(0,o.jsx)(e.a,{href:"https://smith.langchain.com",children:"https://smith.langchain.com"})]}),"\n",(0,o.jsx)(e.li,{children:"Add the following keys to Langflow .env file:"}),"\n"]}),"\n",(0,o.jsx)(u.Code,{codeConfig:m,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGCHAIN_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"your-api-key"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"LANGCHAIN_PROJECT",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"your-project-name"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsx)(e.p,{children:"or export the environment variables in your terminal:"}),"\n",(0,o.jsx)(u.Code,{codeConfig:m,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGCHAIN_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"your-api-key"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGCHAIN_PROJECT",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"your-project-name"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,o.jsxs)(e.ol,{start:"3",children:["\n",(0,o.jsxs)(e.li,{children:["Restart Langflow using ",(0,o.jsx)(e.code,{children:"langflow run --env-file .env"})]}),"\n",(0,o.jsx)(e.li,{children:"Run any project and check the LangSmith dashboard for monitoring and observability."}),"\n"]}),"\n",(0,o.jsx)(c.A,{alt:"LangSmith Flow Example",sources:{light:(0,a.Ay)("img/langsmith-flow.png"),dark:(0,a.Ay)("img/langsmith-flow.png")},style:{width:"80%",margin:"20px auto"}}),"\n",(0,o.jsx)(c.A,{alt:"LangSmith Trace",sources:{light:(0,a.Ay)("img/langsmith-trace.png"),dark:(0,a.Ay)("img/langsmith-trace.png")},style:{width:"80%",margin:"20px auto"}})]})}const f=function(n={}){const{wrapper:e}=Object.assign({},(0,i.RP)(),n.components);return e?(0,o.jsx)(e,Object.assign({},n,{children:(0,o.jsx)(p,n)})):p(n)};function x(n,e){throw new Error("Expected "+(e?"component":"object")+" `"+n+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/fad3d603.f33a946b.js b/assets/js/fad3d603.f33a946b.js
deleted file mode 100644
index e91a70a9c6..0000000000
--- a/assets/js/fad3d603.f33a946b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[3022],{7533:(t,e,o)=>{o.d(e,{A:()=>s});var n=o(6540),r=o(1122),i=o(6025),a=o(4848);const s=t=>{let{alt:e,sources:o,style:s}=t;const[c,l]=(0,n.useState)(!1),d=t=>{"Escape"===t.key&&l(!1)};(0,n.useEffect)((()=>(c?document.addEventListener("keydown",d):document.removeEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)})),[c]);return(0,a.jsx)("div",{className:"zoomable-image "+(c?"fullscreen":""),onClick:()=>{l(!c)},style:{width:"50%",margin:"0 auto",display:"flex",justifyContent:"center",...s},children:(0,a.jsx)(r.A,{className:"zoomable-image-inner",alt:e,sources:{light:(0,i.Ay)(o.light),dark:(0,i.Ay)(o.dark)}})})}},9845:(t,e,o)=>{o.r(e),o.d(e,{CH:()=>g,assets:()=>h,chCodeConfig:()=>u,contentTitle:()=>l,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>p});o(6540);var n=o(4848),r=o(8453),i=o(4754),a=(o(7293),o(1122),o(6025)),s=o(7533);const c={},l="LangSmith",d={id:"integrations/langsmith/intro",title:"LangSmith",description:"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, just add your LangChain API key as a Langflow environment variable and you are good to go!",source:"@site/docs/integrations/langsmith/intro.mdx",sourceDirName:"integrations/langsmith",slug:"/integrations/langsmith/intro",permalink:"/integrations/langsmith/intro",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"docs",previous:{title:"How to Contribute Components?",permalink:"/contributing/contribute-component"},next:{title:"Introduction to Notion in Langflow",permalink:"/integrations/notion/intro"}},h={},g={annotations:i.hk,Code:i.Cy},u={staticMediaQuery:"not screen, (max-width: 768px)",lineNumbers:!0,showCopyButton:!0,themeName:"github-dark"},p=[{value:"Step-by-step Configuration",id:"step-by-step-configuration",level:2}];function m(t){const e=Object.assign({h1:"h1",p:"p",h2:"h2",ol:"ol",li:"li",a:"a",code:"code"},(0,r.RP)(),t.components);return g||y("CH",!1),g.Code||y("CH.Code",!0),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:'[data-ch-theme="github-dark"] { --ch-t-colorScheme: dark;--ch-t-foreground: #c9d1d9;--ch-t-background: #0d1117;--ch-t-lighter-inlineBackground: #0d1117e6;--ch-t-editor-background: #0d1117;--ch-t-editor-foreground: #c9d1d9;--ch-t-editor-lineHighlightBackground: #6e76811a;--ch-t-editor-rangeHighlightBackground: #ffffff0b;--ch-t-editor-infoForeground: #3794FF;--ch-t-editor-selectionBackground: #264F78;--ch-t-focusBorder: #1f6feb;--ch-t-tab-activeBackground: #0d1117;--ch-t-tab-activeForeground: #c9d1d9;--ch-t-tab-inactiveBackground: #010409;--ch-t-tab-inactiveForeground: #8b949e;--ch-t-tab-border: #30363d;--ch-t-tab-activeBorder: #0d1117;--ch-t-editorGroup-border: #30363d;--ch-t-editorGroupHeader-tabsBackground: #010409;--ch-t-editorLineNumber-foreground: #6e7681;--ch-t-input-background: #0d1117;--ch-t-input-foreground: #c9d1d9;--ch-t-input-border: #30363d;--ch-t-icon-foreground: #8b949e;--ch-t-sideBar-background: #010409;--ch-t-sideBar-foreground: #c9d1d9;--ch-t-sideBar-border: #30363d;--ch-t-list-activeSelectionBackground: #6e768166;--ch-t-list-activeSelectionForeground: #c9d1d9;--ch-t-list-hoverBackground: #6e76811a;--ch-t-list-hoverForeground: #c9d1d9; }'}}),"\n","\n","\n",(0,n.jsx)(e.h1,{id:"langsmith",children:"LangSmith"}),"\n",(0,n.jsx)(e.p,{children:"LangSmith is a full-lifecycle DevOps service from LangChain that provides monitoring and observability. To integrate with Langflow, just add your LangChain API key as a Langflow environment variable and you are good to go!"}),"\n",(0,n.jsx)(e.h2,{id:"step-by-step-configuration",children:"Step-by-step Configuration"}),"\n",(0,n.jsxs)(e.ol,{children:["\n",(0,n.jsxs)(e.li,{children:["Obtain your LangChain API key from ",(0,n.jsx)(e.a,{href:"https://smith.langchain.com",children:"https://smith.langchain.com"})]}),"\n",(0,n.jsx)(e.li,{children:"Add the following keys to Langflow .env file:"}),"\n"]}),"\n",(0,n.jsx)(g.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"LANGCHAIN_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"your-api-key"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"LANGCHAIN_PROJECT",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"your-project-name"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsx)(e.p,{children:"or export the environment variables in your terminal:"}),"\n",(0,n.jsx)(g.Code,{codeConfig:u,northPanel:{tabs:[""],active:"",heightRatio:1},files:[{name:"",focus:"",code:{lines:[{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGCHAIN_API_KEY",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"your-api-key"',props:{style:{color:"#A5D6FF"}}}]},{tokens:[{content:"export",props:{style:{color:"#FF7B72"}}},{content:" LANGCHAIN_PROJECT",props:{style:{color:"#C9D1D9"}}},{content:"=",props:{style:{color:"#FF7B72"}}},{content:'"your-project-name"',props:{style:{color:"#A5D6FF"}}}]}],lang:"bash"},annotations:[]}]}),"\n",(0,n.jsxs)(e.ol,{start:"3",children:["\n",(0,n.jsxs)(e.li,{children:["Restart Langflow using ",(0,n.jsx)(e.code,{children:"langflow run --env-file .env"})]}),"\n",(0,n.jsx)(e.li,{children:"Run any project and check the LangSmith dashboard for monitoring and observability."}),"\n"]}),"\n",(0,n.jsx)(s.A,{alt:"LangSmith Flow Example",sources:{light:(0,a.Ay)("img/langsmith-flow.png"),dark:(0,a.Ay)("img/langsmith-flow.png")},style:{width:"80%",margin:"20px auto"}}),"\n",(0,n.jsx)(s.A,{alt:"LangSmith Trace",sources:{light:(0,a.Ay)("img/langsmith-trace.png"),dark:(0,a.Ay)("img/langsmith-trace.png")},style:{width:"80%",margin:"20px auto"}})]})}const f=function(t={}){const{wrapper:e}=Object.assign({},(0,r.RP)(),t.components);return e?(0,n.jsx)(e,Object.assign({},t,{children:(0,n.jsx)(m,t)})):m(t)};function y(t,e){throw new Error("Expected "+(e?"component":"object")+" `"+t+"` to be defined: you likely forgot to import, pass, or provide it.")}}}]);
\ No newline at end of file
diff --git a/assets/js/main.51c58117.js b/assets/js/main.51c58117.js
deleted file mode 100644
index bdf27f804a..0000000000
--- a/assets/js/main.51c58117.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see main.51c58117.js.LICENSE.txt */
-(self.webpackChunklangflow_docs=self.webpackChunklangflow_docs||[]).push([[8792],{4148:(e,t,n)=>{"use strict";var r=n(5606),o=n(6763);function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function i(e,t){for(var n=0;n1?n-1:0),o=1;o1?n-1:0),o=1;o1?n-1:0),o=1;o1?n-1:0),o=1;o{"use strict";var r=n(5606);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;te.length)&&(n=e.length),e.substring(n-t.length,n)===t}var w="",k="",x="",S="",_={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function E(e){var t=Object.keys(e),n=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){n[t]=e[t]})),Object.defineProperty(n,"message",{value:e.message}),n}function C(e){return y(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function A(e,t,n){var o="",a="",i=0,s="",l=!1,c=C(e),u=c.split("\n"),p=C(t).split("\n"),d=0,f="";if("strictEqual"===n&&"object"===g(e)&&"object"===g(t)&&null!==e&&null!==t&&(n="strictEqualObject"),1===u.length&&1===p.length&&u[0]!==p[0]){var m=u[0].length+p[0].length;if(m<=10){if(!("object"===g(e)&&null!==e||"object"===g(t)&&null!==t||0===e&&0===t))return"".concat(_[n],"\n\n")+"".concat(u[0]," !== ").concat(p[0],"\n")}else if("strictEqualObject"!==n){if(m<(r.stderr&&r.stderr.isTTY?r.stderr.columns:80)){for(;u[0][d]===p[0][d];)d++;d>2&&(f="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var n=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,n-e.length)}(" ",d),"^"),d=0)}}}for(var h=u[u.length-1],y=p[p.length-1];h===y&&(d++<2?s="\n ".concat(h).concat(s):o=h,u.pop(),p.pop(),0!==u.length&&0!==p.length);)h=u[u.length-1],y=p[p.length-1];var b=Math.max(u.length,p.length);if(0===b){var E=c.split("\n");if(E.length>30)for(E[26]="".concat(w,"...").concat(S);E.length>27;)E.pop();return"".concat(_.notIdentical,"\n\n").concat(E.join("\n"),"\n")}d>3&&(s="\n".concat(w,"...").concat(S).concat(s),l=!0),""!==o&&(s="\n ".concat(o).concat(s),o="");var A=0,O=_[n]+"\n".concat(k,"+ actual").concat(S," ").concat(x,"- expected").concat(S),T=" ".concat(w,"...").concat(S," Lines skipped");for(d=0;d1&&d>2&&(P>4?(a+="\n".concat(w,"...").concat(S),l=!0):P>3&&(a+="\n ".concat(p[d-2]),A++),a+="\n ".concat(p[d-1]),A++),i=d,o+="\n".concat(x,"-").concat(S," ").concat(p[d]),A++;else if(p.length1&&d>2&&(P>4?(a+="\n".concat(w,"...").concat(S),l=!0):P>3&&(a+="\n ".concat(u[d-2]),A++),a+="\n ".concat(u[d-1]),A++),i=d,a+="\n".concat(k,"+").concat(S," ").concat(u[d]),A++;else{var j=p[d],N=u[d],R=N!==j&&(!v(N,",")||N.slice(0,-1)!==j);R&&v(j,",")&&j.slice(0,-1)===N&&(R=!1,N+=","),R?(P>1&&d>2&&(P>4?(a+="\n".concat(w,"...").concat(S),l=!0):P>3&&(a+="\n ".concat(u[d-2]),A++),a+="\n ".concat(u[d-1]),A++),i=d,a+="\n".concat(k,"+").concat(S," ").concat(N),o+="\n".concat(x,"-").concat(S," ").concat(j),A+=2):(a+=o,o="",1!==P&&0!==d||(a+="\n ".concat(N),A++))}if(A>20&&d30)for(f[26]="".concat(w,"...").concat(S);f.length>27;)f.pop();t=1===f.length?d.call(this,"".concat(p," ").concat(f[0])):d.call(this,"".concat(p,"\n\n").concat(f.join("\n"),"\n"))}else{var m=C(i),h="",y=_[o];"notDeepEqual"===o||"notEqual"===o?(m="".concat(_[o],"\n\n").concat(m)).length>1024&&(m="".concat(m.slice(0,1021),"...")):(h="".concat(C(s)),m.length>512&&(m="".concat(m.slice(0,509),"...")),h.length>512&&(h="".concat(h.slice(0,509),"...")),"deepEqual"===o||"equal"===o?m="".concat(y,"\n\n").concat(m,"\n\nshould equal\n\n"):h=" ".concat(o," ").concat(h)),t=d.call(this,"".concat(m).concat(h))}return Error.stackTraceLimit=l,t.generatedMessage=!n,Object.defineProperty(u(t),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),t.code="ERR_ASSERTION",t.actual=i,t.expected=s,t.operator=o,Error.captureStackTrace&&Error.captureStackTrace(u(t),a),t.stack,t.name="AssertionError",c(t)}return i=v,(l=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:t,value:function(e,t){return y(this,a(a({},t),{},{customInspect:!1,depth:0}))}}])&&s(i.prototype,l),p&&s(i,p),Object.defineProperty(i,"prototype",{writable:!1}),v}(p(Error),y.custom);e.exports=O},9597:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function o(e,t){for(var n=0;n2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}p("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),p("ERR_INVALID_ARG_TYPE",(function(e,t,o){var a,i,s,c;if(void 0===l&&(l=n(4148)),l("string"==typeof e,"'name' must be a string"),"string"==typeof t&&(i="not ",t.substr(!s||s<0?0:+s,i.length)===i)?(a="must not be",t=t.replace(/^not /,"")):a="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}(e," argument"))c="The ".concat(e," ").concat(a," ").concat(d(t,"type"));else{var u=function(e,t,n){return"number"!=typeof n&&(n=0),!(n+t.length>e.length)&&-1!==e.indexOf(t,n)}(e,".")?"property":"argument";c='The "'.concat(e,'" ').concat(u," ").concat(a," ").concat(d(t,"type"))}return c+=". Received type ".concat(r(o))}),TypeError),p("ERR_INVALID_ARG_VALUE",(function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===c&&(c=n(537));var o=c.inspect(t);return o.length>128&&(o="".concat(o.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(r,". Received ").concat(o)}),TypeError,RangeError),p("ERR_INVALID_RETURN_VALUE",(function(e,t,n){var o;return o=n&&n.constructor&&n.constructor.name?"instance of ".concat(n.constructor.name):"type ".concat(r(n)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(o,".")}),TypeError),p("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),r=0;r0,"At least one arg needs to be specified");var o="The ",a=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),a){case 1:o+="".concat(t[0]," argument");break;case 2:o+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:o+=t.slice(0,a-1).join(", "),o+=", and ".concat(t[a-1]," arguments")}return"".concat(o," must be specified")}),TypeError),e.exports.codes=u},2299:(e,t,n)=>{"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw o}}return s}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n10)return!0;for(var t=0;t57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function R(e){return Object.keys(e).filter(N).concat(u(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function L(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,o=0,a=Math.min(n,r);o{"use strict";n.d(t,{A:()=>d});n(6540);var r=n(3259),o=n.n(r),a=n(4054);const i={"07ddd41e":[()=>Promise.all([n.e(1869),n.e(2014)]).then(n.bind(n,1542)),"@site/docs/components/loaders.mdx",1542],"0b76dbbf":[()=>Promise.all([n.e(1869),n.e(7736),n.e(448)]).then(n.bind(n,4871)),"@site/docs/components/text-and-record.mdx",4871],"0c5f9a85":[()=>Promise.all([n.e(1869),n.e(7736),n.e(9366)]).then(n.bind(n,6462)),"@site/docs/components/models.mdx",6462],"0d3805f2":[()=>Promise.all([n.e(1869),n.e(2911)]).then(n.bind(n,4001)),"@site/docs/components/retrievers.mdx",4001],"10dc9ad3":[()=>Promise.all([n.e(1869),n.e(7736),n.e(9414)]).then(n.bind(n,791)),"@site/docs/administration/login.mdx",791],"1220ddb3":[()=>Promise.all([n.e(1869),n.e(7736),n.e(541)]).then(n.bind(n,8600)),"@site/docs/administration/api.mdx",8600],13572337:[()=>Promise.all([n.e(1869),n.e(3324)]).then(n.bind(n,7006)),"@site/docs/components/memories.mdx",7006],"155c6abe":[()=>Promise.all([n.e(1869),n.e(7736),n.e(3837)]).then(n.bind(n,7647)),"@site/docs/integrations/notion/search.md",7647],"16cb8a22":[()=>Promise.all([n.e(1869),n.e(7736),n.e(2584)]).then(n.bind(n,5105)),"@site/docs/integrations/notion/page-create.md",5105],17896441:[()=>Promise.all([n.e(1869),n.e(2771),n.e(8401)]).then(n.bind(n,6365)),"@theme/DocItem",6365],"1f391b9e":[()=>Promise.all([n.e(1869),n.e(2771),n.e(6061)]).then(n.bind(n,7973)),"@theme/MDXPage",7973],"22dd74f7":[()=>n.e(1567).then(n.t.bind(n,5226,19)),"@generated/docusaurus-plugin-content-docs/default/p/index-466.json",5226],"2851112f":[()=>Promise.all([n.e(1869),n.e(7736),n.e(5761)]).then(n.bind(n,3411)),"@site/docs/deployment/docker.mdx",3411],"30d90be0":[()=>Promise.all([n.e(1869),n.e(7736),n.e(4558)]).then(n.bind(n,8674)),"@site/docs/starter-projects/blog-writer.mdx",8674],"35155c61":[()=>Promise.all([n.e(1869),n.e(5110)]).then(n.bind(n,2875)),"@site/docs/getting-started/quickstart.mdx",2875],37999849:[()=>n.e(2589).then(n.bind(n,2655)),"@site/docs/getting-started/new-to-llms.mdx",2655],39102146:[()=>Promise.all([n.e(1869),n.e(7736),n.e(3085)]).then(n.bind(n,6756)),"@site/docs/tutorials/chatprompttemplate_guide.mdx",6756],"393be207":[()=>n.e(4134).then(n.bind(n,1193)),"@site/src/pages/markdown-page.md",1193],"3b7cd930":[()=>Promise.all([n.e(1869),n.e(3554),n.e(870)]).then(n.bind(n,7266)),"@site/docs/examples/store-message.mdx",7266],"3ba2a8d4":[()=>Promise.all([n.e(1869),n.e(7736),n.e(7198)]).then(n.bind(n,7878)),"@site/docs/administration/cli.mdx",7878],"3ddacc95":[()=>Promise.all([n.e(1869),n.e(6311)]).then(n.bind(n,892)),"@site/docs/administration/prompt-customization.mdx",892],"3e2f20fa":[()=>n.e(9966).then(n.bind(n,605)),"@site/docs/whats-new/a-new-chapter-langflow.mdx",605],"3fe772c5":[()=>Promise.all([n.e(1869),n.e(3554),n.e(667)]).then(n.bind(n,1573)),"@site/docs/examples/text-operator.mdx",1573],"401abcde":[()=>Promise.all([n.e(1869),n.e(3554),n.e(1129)]).then(n.bind(n,7761)),"@site/docs/administration/playground.mdx",7761],44896735:[()=>Promise.all([n.e(1869),n.e(3683)]).then(n.bind(n,7177)),"@site/docs/components/toolkits.mdx",7177],"44eadeb7":[()=>Promise.all([n.e(1869),n.e(4137)]).then(n.bind(n,3267)),"@site/docs/contributing/telemetry.mdx",3267],"488c345a":[()=>Promise.all([n.e(1869),n.e(7255)]).then(n.bind(n,3997)),"@site/docs/administration/settings.mdx",3997],"4eafabd3":[()=>Promise.all([n.e(1869),n.e(7736),n.e(5833)]).then(n.bind(n,5248)),"@site/docs/deployment/backend-only.mdx",5248],"4edc808e":[()=>Promise.all([n.e(1869),n.e(308)]).then(n.bind(n,6267)),"@site/docs/index.mdx",6267],"4f5bab73":[()=>Promise.all([n.e(1869),n.e(7736),n.e(4395)]).then(n.bind(n,1694)),"@site/docs/integrations/notion/list-users.md",1694],"5671a98d":[()=>Promise.all([n.e(1869),n.e(2900)]).then(n.bind(n,3385)),"@site/docs/deployment/gcp-deployment.mdx",3385],"5899e963":[()=>Promise.all([n.e(1869),n.e(1473)]).then(n.bind(n,2331)),"@site/docs/migration/migrating-to-one-point-zero.mdx",2331],"5ba3a843":[()=>Promise.all([n.e(1869),n.e(7190)]).then(n.bind(n,4192)),"@site/docs/contributing/contribute-component.mdx",4192],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"61f5b4a6":[()=>Promise.all([n.e(1869),n.e(4616)]).then(n.bind(n,8059)),"@site/docs/starter-projects/memory-chatbot.mdx",8059],"64615af5":[()=>Promise.all([n.e(1869),n.e(7736),n.e(3575)]).then(n.bind(n,2371)),"@site/docs/integrations/notion/page-content-viewer.md",2371],"661dd3b9":[()=>Promise.all([n.e(1869),n.e(7736),n.e(4468)]).then(n.bind(n,7836)),"@site/docs/starter-projects/vector-store-rag.mdx",7836],"767c2105":[()=>Promise.all([n.e(1869),n.e(2060)]).then(n.bind(n,6034)),"@site/docs/components/vector-stores.mdx",6034],"78e1a3fe":[()=>Promise.all([n.e(1869),n.e(8299)]).then(n.bind(n,847)),"@site/docs/administration/memories.mdx",847],"7b760bf1":[()=>Promise.all([n.e(1869),n.e(7736),n.e(3250)]).then(n.bind(n,6670)),"@site/docs/getting-started/install-langflow.mdx",6670],"7ce2fcfa":[()=>Promise.all([n.e(1869),n.e(7736),n.e(3554),n.e(9130)]).then(n.bind(n,2187)),"@site/docs/administration/chat-widget.mdx",2187],"80ef6df8":[()=>Promise.all([n.e(1869),n.e(7736),n.e(3554),n.e(8962)]).then(n.bind(n,3625)),"@site/docs/administration/global-env.mdx",3625],"83d5bde4":[()=>Promise.all([n.e(1869),n.e(3554),n.e(7368)]).then(n.bind(n,1441)),"@site/docs/examples/chat-memory.mdx",1441],"88c438de":[()=>Promise.all([n.e(1869),n.e(7736),n.e(8914)]).then(n.bind(n,3158)),"@site/docs/components/inputs-and-outputs.mdx",3158],"8ab63353":[()=>Promise.all([n.e(1869),n.e(7736),n.e(5916)]).then(n.bind(n,5364)),"@site/docs/components/model_specs.mdx",5364],"8e3f8f79":[()=>Promise.all([n.e(1869),n.e(7736),n.e(2143)]).then(n.bind(n,2531)),"@site/docs/getting-started/possible-installation-issues.mdx",2531],"8eb611e5":[()=>Promise.all([n.e(1869),n.e(3554),n.e(310)]).then(n.bind(n,1968)),"@site/docs/examples/pass.mdx",1968],"8f78125b":[()=>Promise.all([n.e(1869),n.e(9740)]).then(n.bind(n,9799)),"@site/docs/administration/logs.mdx",9799],"9999b0cd":[()=>Promise.all([n.e(1869),n.e(3554),n.e(4116)]).then(n.bind(n,7716)),"@site/docs/examples/sub-flow.mdx",7716],"99bf5e5a":[()=>Promise.all([n.e(1869),n.e(6257)]).then(n.bind(n,2198)),"@site/docs/components/embeddings.mdx",2198],"9f23f473":[()=>Promise.all([n.e(1869),n.e(7736),n.e(7123)]).then(n.bind(n,2872)),"@site/docs/integrations/notion/page-update.md",2872],a1fb5c6c:[()=>Promise.all([n.e(1869),n.e(2444)]).then(n.bind(n,7310)),"@site/docs/integrations/notion/setup.md",7310],a263b7c0:[()=>Promise.all([n.e(1869),n.e(8615)]).then(n.bind(n,7906)),"@site/docs/components/chains.mdx",7906],a7456010:[()=>n.e(1235).then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,4532)),"@theme/DocVersionRoot",4532],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,2559)),"@theme/DocRoot",2559],a9b8ddbf:[()=>Promise.all([n.e(1869),n.e(7736),n.e(5971)]).then(n.bind(n,9851)),"@site/docs/tutorials/custom_components.mdx",9851],aba21aa0:[()=>n.e(5742).then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],b175c02a:[()=>Promise.all([n.e(1869),n.e(5662)]).then(n.bind(n,6057)),"@site/docs/contributing/community.mdx",6057],b7466e5a:[()=>Promise.all([n.e(1869),n.e(7736),n.e(25)]).then(n.bind(n,5751)),"@site/docs/integrations/notion/list-database-properties.md",5751],bbc1c28c:[()=>Promise.all([n.e(1869),n.e(7736),n.e(8991)]).then(n.bind(n,2614)),"@site/docs/contributing/how-contribute.mdx",2614],c5150855:[()=>Promise.all([n.e(1869),n.e(7736),n.e(3554),n.e(2263)]).then(n.bind(n,649)),"@site/docs/getting-started/workspace.mdx",649],c8f417e0:[()=>Promise.all([n.e(1869),n.e(6031)]).then(n.bind(n,9706)),"@site/docs/components/utilities.mdx",9706],caf13020:[()=>Promise.all([n.e(1869),n.e(8703)]).then(n.bind(n,3993)),"@site/docs/starter-projects/basic-prompting.mdx",3993],cdfe9fae:[()=>Promise.all([n.e(1869),n.e(7736),n.e(1494)]).then(n.bind(n,8010)),"@site/docs/integrations/notion/add-content-to-page.md",8010],cf4c24fc:[()=>Promise.all([n.e(1869),n.e(9168)]).then(n.bind(n,4275)),"@site/docs/tutorials/loading_document.mdx",4275],d018f77e:[()=>Promise.all([n.e(1869),n.e(7736),n.e(9973)]).then(n.bind(n,7876)),"@site/docs/starter-projects/document-qa.mdx",7876],d0c97127:[()=>Promise.all([n.e(1869),n.e(3554),n.e(3794)]).then(n.bind(n,9730)),"@site/docs/examples/combine-text.mdx",9730],d2816040:[()=>Promise.all([n.e(1869),n.e(2758)]).then(n.bind(n,9573)),"@site/docs/components/helpers.mdx",9573],d3ee982f:[()=>Promise.all([n.e(1869),n.e(6817)]).then(n.bind(n,3954)),"@site/docs/tutorials/rag-with-astradb.mdx",3954],d763e754:[()=>Promise.all([n.e(1869),n.e(8758)]).then(n.bind(n,430)),"@site/docs/components/text-splitters.mdx",430],d8ea57d0:[()=>Promise.all([n.e(1869),n.e(6973)]).then(n.bind(n,2306)),"@site/docs/components/experimental.mdx",2306],d9046959:[()=>Promise.all([n.e(1869),n.e(7527)]).then(n.bind(n,1951)),"@site/docs/components/tools.mdx",1951],dbc18341:[()=>Promise.all([n.e(1869),n.e(7736),n.e(9887)]).then(n.bind(n,251)),"@site/docs/deployment/kubernetes.mdx",251],dc753f6c:[()=>Promise.all([n.e(1869),n.e(7736),n.e(4930)]).then(n.bind(n,6361)),"@site/docs/components/custom.mdx",6361],e1fd28b8:[()=>Promise.all([n.e(1869),n.e(3554),n.e(6051)]).then(n.bind(n,7844)),"@site/docs/administration/collections-projects.mdx",7844],e6a76a83:[()=>Promise.all([n.e(1869),n.e(3554),n.e(3558)]).then(n.bind(n,5593)),"@site/docs/examples/create-record.mdx",5593],eeb48f97:[()=>Promise.all([n.e(1869),n.e(5869)]).then(n.bind(n,5942)),"@site/docs/migration/compatibility.mdx",5942],f3261944:[()=>Promise.all([n.e(1869),n.e(4612)]).then(n.bind(n,744)),"@site/docs/components/data.mdx",744],f60effff:[()=>Promise.all([n.e(1869),n.e(7736),n.e(954)]).then(n.bind(n,594)),"@site/docs/integrations/notion/list-pages.md",594],f714a29d:[()=>Promise.all([n.e(1869),n.e(8383)]).then(n.bind(n,5826)),"@site/docs/components/agents.mdx",5826],f778864f:[()=>Promise.all([n.e(1869),n.e(5027)]).then(n.bind(n,2621)),"@site/docs/integrations/notion/intro.md",2621],f81bc1e9:[()=>Promise.all([n.e(1869),n.e(1562)]).then(n.bind(n,1844)),"@site/docs/contributing/github-issues.mdx",1844],fad3d603:[()=>Promise.all([n.e(1869),n.e(7736),n.e(3022)]).then(n.bind(n,9845)),"@site/docs/integrations/langsmith/intro.mdx",9845]};var s=n(4848);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(6921),u=n(3102);function p(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(2237).then(n.bind(n,2237)),modules:["@theme/NotFound"],webpack:()=>[2237],render(e,t){const n=e.default;return(0,s.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],p={},d=[],f=[],m=(0,c.A)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(p[t]=r[0],d.push(r[1]),f.push(r[2]))})),o().Map({loading:l,loader:p,modules:d,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;delete o.__context;const l=o.__props;return delete o.__props,(0,s.jsx)(u.W,{value:i,children:(0,s.jsx)(a,{...o,...l,...n})})}})}const d=[{path:"/markdown-page",component:p("/markdown-page","3d7"),exact:!0},{path:"/",component:p("/","56c"),routes:[{path:"/",component:p("/","a9b"),routes:[{path:"/",component:p("/","3dc"),routes:[{path:"/administration/api",component:p("/administration/api","a01"),exact:!0,sidebar:"docs"},{path:"/administration/chat-widget",component:p("/administration/chat-widget","b53"),exact:!0,sidebar:"docs"},{path:"/administration/cli",component:p("/administration/cli","b0b"),exact:!0,sidebar:"docs"},{path:"/administration/collections-projects",component:p("/administration/collections-projects","7c4"),exact:!0,sidebar:"docs"},{path:"/administration/global-env",component:p("/administration/global-env","453"),exact:!0,sidebar:"docs"},{path:"/administration/login",component:p("/administration/login","b9d"),exact:!0,sidebar:"docs"},{path:"/administration/logs",component:p("/administration/logs","92e"),exact:!0,sidebar:"docs"},{path:"/administration/memories",component:p("/administration/memories","2ef"),exact:!0,sidebar:"docs"},{path:"/administration/playground",component:p("/administration/playground","1a2"),exact:!0,sidebar:"docs"},{path:"/administration/prompt-customization",component:p("/administration/prompt-customization","6ff"),exact:!0},{path:"/administration/settings",component:p("/administration/settings","600"),exact:!0,sidebar:"docs"},{path:"/components/agents",component:p("/components/agents","df9"),exact:!0},{path:"/components/chains",component:p("/components/chains","aca"),exact:!0},{path:"/components/custom",component:p("/components/custom","994"),exact:!0,sidebar:"docs"},{path:"/components/data",component:p("/components/data","842"),exact:!0,sidebar:"docs"},{path:"/components/embeddings",component:p("/components/embeddings","93d"),exact:!0,sidebar:"docs"},{path:"/components/experimental",component:p("/components/experimental","3eb"),exact:!0},{path:"/components/helpers",component:p("/components/helpers","c07"),exact:!0,sidebar:"docs"},{path:"/components/inputs-and-outputs",component:p("/components/inputs-and-outputs","243"),exact:!0,sidebar:"docs"},{path:"/components/loaders",component:p("/components/loaders","a16"),exact:!0},{path:"/components/memories",component:p("/components/memories","70a"),exact:!0},{path:"/components/model_specs",component:p("/components/model_specs","169"),exact:!0},{path:"/components/models",component:p("/components/models","a96"),exact:!0,sidebar:"docs"},{path:"/components/retrievers",component:p("/components/retrievers","c1f"),exact:!0},{path:"/components/text-and-record",component:p("/components/text-and-record","9f5"),exact:!0,sidebar:"docs"},{path:"/components/text-splitters",component:p("/components/text-splitters","230"),exact:!0},{path:"/components/toolkits",component:p("/components/toolkits","0ac"),exact:!0},{path:"/components/tools",component:p("/components/tools","9e9"),exact:!0},{path:"/components/utilities",component:p("/components/utilities","07a"),exact:!0},{path:"/components/vector-stores",component:p("/components/vector-stores","1b1"),exact:!0,sidebar:"docs"},{path:"/contributing/community",component:p("/contributing/community","b2e"),exact:!0,sidebar:"docs"},{path:"/contributing/contribute-component",component:p("/contributing/contribute-component","2c5"),exact:!0,sidebar:"docs"},{path:"/contributing/github-issues",component:p("/contributing/github-issues","12a"),exact:!0,sidebar:"docs"},{path:"/contributing/how-contribute",component:p("/contributing/how-contribute","67e"),exact:!0,sidebar:"docs"},{path:"/contributing/telemetry",component:p("/contributing/telemetry","f20"),exact:!0,sidebar:"docs"},{path:"/deployment/backend-only",component:p("/deployment/backend-only","f07"),exact:!0,sidebar:"docs"},{path:"/deployment/docker",component:p("/deployment/docker","d5e"),exact:!0,sidebar:"docs"},{path:"/deployment/gcp-deployment",component:p("/deployment/gcp-deployment","32b"),exact:!0,sidebar:"docs"},{path:"/deployment/kubernetes",component:p("/deployment/kubernetes","9d5"),exact:!0,sidebar:"docs"},{path:"/examples/chat-memory",component:p("/examples/chat-memory","85b"),exact:!0},{path:"/examples/combine-text",component:p("/examples/combine-text","c0c"),exact:!0},{path:"/examples/create-record",component:p("/examples/create-record","1ce"),exact:!0},{path:"/examples/pass",component:p("/examples/pass","a9c"),exact:!0},{path:"/examples/store-message",component:p("/examples/store-message","2c6"),exact:!0},{path:"/examples/sub-flow",component:p("/examples/sub-flow","0ed"),exact:!0},{path:"/examples/text-operator",component:p("/examples/text-operator","acb"),exact:!0},{path:"/getting-started/install-langflow",component:p("/getting-started/install-langflow","0f2"),exact:!0,sidebar:"docs"},{path:"/getting-started/new-to-llms",component:p("/getting-started/new-to-llms","882"),exact:!0,sidebar:"docs"},{path:"/getting-started/possible-installation-issues",component:p("/getting-started/possible-installation-issues","c8b"),exact:!0,sidebar:"docs"},{path:"/getting-started/quickstart",component:p("/getting-started/quickstart","ace"),exact:!0,sidebar:"docs"},{path:"/getting-started/workspace",component:p("/getting-started/workspace","7a9"),exact:!0,sidebar:"docs"},{path:"/integrations/langsmith/intro",component:p("/integrations/langsmith/intro","1e3"),exact:!0,sidebar:"docs"},{path:"/integrations/notion/add-content-to-page",component:p("/integrations/notion/add-content-to-page","246"),exact:!0,sidebar:"docs"},{path:"/integrations/notion/intro",component:p("/integrations/notion/intro","142"),exact:!0,sidebar:"docs"},{path:"/integrations/notion/list-database-properties",component:p("/integrations/notion/list-database-properties","861"),exact:!0,sidebar:"docs"},{path:"/integrations/notion/list-pages",component:p("/integrations/notion/list-pages","8a9"),exact:!0,sidebar:"docs"},{path:"/integrations/notion/list-users",component:p("/integrations/notion/list-users","9e1"),exact:!0,sidebar:"docs"},{path:"/integrations/notion/page-content-viewer",component:p("/integrations/notion/page-content-viewer","ef6"),exact:!0,sidebar:"docs"},{path:"/integrations/notion/page-create",component:p("/integrations/notion/page-create","ec5"),exact:!0,sidebar:"docs"},{path:"/integrations/notion/page-update",component:p("/integrations/notion/page-update","023"),exact:!0,sidebar:"docs"},{path:"/integrations/notion/search",component:p("/integrations/notion/search","534"),exact:!0,sidebar:"docs"},{path:"/integrations/notion/setup",component:p("/integrations/notion/setup","724"),exact:!0,sidebar:"docs"},{path:"/migration/compatibility",component:p("/migration/compatibility","d0b"),exact:!0},{path:"/migration/migrating-to-one-point-zero",component:p("/migration/migrating-to-one-point-zero","79e"),exact:!0},{path:"/starter-projects/basic-prompting",component:p("/starter-projects/basic-prompting","201"),exact:!0,sidebar:"docs"},{path:"/starter-projects/blog-writer",component:p("/starter-projects/blog-writer","d6a"),exact:!0,sidebar:"docs"},{path:"/starter-projects/document-qa",component:p("/starter-projects/document-qa","b53"),exact:!0,sidebar:"docs"},{path:"/starter-projects/memory-chatbot",component:p("/starter-projects/memory-chatbot","421"),exact:!0,sidebar:"docs"},{path:"/starter-projects/vector-store-rag",component:p("/starter-projects/vector-store-rag","bb8"),exact:!0,sidebar:"docs"},{path:"/tutorials/chatprompttemplate_guide",component:p("/tutorials/chatprompttemplate_guide","9fc"),exact:!0,sidebar:"docs"},{path:"/tutorials/custom_components",component:p("/tutorials/custom_components","22f"),exact:!0,sidebar:"docs"},{path:"/tutorials/loading_document",component:p("/tutorials/loading_document","db7"),exact:!0,sidebar:"docs"},{path:"/tutorials/rag-with-astradb",component:p("/tutorials/rag-with-astradb","bfb"),exact:!0,sidebar:"docs"},{path:"/whats-new/a-new-chapter-langflow",component:p("/whats-new/a-new-chapter-langflow","c53"),exact:!0,sidebar:"docs"},{path:"/",component:p("/","c23"),exact:!0,sidebar:"docs"}]}]}]},{path:"*",component:p("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(6540),o=n(4848);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},8536:(e,t,n)=>{"use strict";var r=n(6540),o=n(5338),a=n(545),i=n(4625),s=n(4784),l=n(8193);const c=[n(1911),n(119),n(6134),n(6294),n(641),n(1043),n(1609)];var u=n(8328),p=n(6347),d=n(2831),f=n(4848);function m(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var h=n(5260),g=n(4586),y=n(6025),b=n(6342),v=n(1003),w=n(2131),k=n(4090),x=n(2967),S=n(440),_=n(1463);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,g.A)(),r=(0,w.o)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,f.jsxs)(h.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function C(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,g.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,g.A)(),{pathname:r}=(0,p.zy)();return e+(0,S.applyTrailingSlash)((0,y.Ay)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,f.jsxs)(h.A,{children:[(0,f.jsx)("meta",{property:"og:url",content:o}),(0,f.jsx)("link",{rel:"canonical",href:o})]})}function A(){const{i18n:{currentLocale:e}}=(0,g.A)(),{metadata:t,image:n}=(0,b.p)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(h.A,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:k.w})]}),n&&(0,f.jsx)(v.be,{image:n}),(0,f.jsx)(C,{}),(0,f.jsx)(E,{}),(0,f.jsx)(_.A,{tag:x.Cy,locale:e}),(0,f.jsx)(h.A,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const O=new Map;var T=n(6125),P=n(6988),j=n(205);function N(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const R=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,j.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),N("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function L(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.u)(u.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}var I=n(6763);class F extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.A.canUseDOM?N("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=N("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),L(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{I.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(R,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(p.qh,{location:t,render:()=>e})})}}const D=F,M="__docusaurus-base-url-issue-banner-container",z="__docusaurus-base-url-issue-banner",B="__docusaurus-base-url-issue-banner-suggestion-container";function $(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${M}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n\n
Your Docusaurus site did not load properly.
\n
A very common reason is a wrong site baseUrl configuration.
\n
Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}
\n
We suggest trying baseUrl =
\n
\n`}(e)).replace(/{let{route:t}=e;return!0===t.exact})))return O.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}((0,p.zy)());return(0,f.jsx)(D,{location:e,children:Y})}function Q(){return(0,f.jsx)(V.A,{children:(0,f.jsx)(P.l,{children:(0,f.jsxs)(T.x,{children:[(0,f.jsxs)(m,{children:[(0,f.jsx)(H,{}),(0,f.jsx)(A,{}),(0,f.jsx)(U,{}),(0,f.jsx)(K,{})]}),(0,f.jsx)(W,{})]})})})}var X=n(4054);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var J=n(6921);const ee=new Set,te=new Set,ne=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,re={prefetch:e=>{if(!(e=>!ne()&&!te.has(e)&&!ee.has(e))(e))return!1;ee.add(e);const t=(0,d.u)(u.A,e).flatMap((e=>{return t=e.route.path,Object.entries(X).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,J.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!ne()&&!te.has(e))(e)&&(te.add(e),L(e))},oe=Object.freeze(re);var ae=n(6763);function ie(e){let{children:t}=e;return"hash"===s.default.future.experimental_router?(0,f.jsx)(i.I9,{children:t}):(0,f.jsx)(i.Kd,{children:t})}const se=Boolean(!0);if(l.A.canUseDOM){window.docusaurus=oe;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(a.vd,{children:(0,f.jsx)(ie,{children:(0,f.jsx)(Q,{})})}),n=(e,t)=>{ae.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(se)window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n});else{const r=o.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};L(window.location.pathname).then((()=>{(0,r.startTransition)(i)}))}},6988:(e,t,n)=>{"use strict";n.d(t,{o:()=>p,l:()=>d});var r=n(6540),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"index","docs":[{"id":"administration/api","path":"/administration/api","sidebar":"docs"},{"id":"administration/chat-widget","path":"/administration/chat-widget","sidebar":"docs"},{"id":"administration/cli","path":"/administration/cli","sidebar":"docs"},{"id":"administration/collections-projects","path":"/administration/collections-projects","sidebar":"docs"},{"id":"administration/global-env","path":"/administration/global-env","sidebar":"docs"},{"id":"administration/login","path":"/administration/login","sidebar":"docs"},{"id":"administration/logs","path":"/administration/logs","sidebar":"docs"},{"id":"administration/memories","path":"/administration/memories","sidebar":"docs"},{"id":"administration/playground","path":"/administration/playground","sidebar":"docs"},{"id":"administration/prompt-customization","path":"/administration/prompt-customization"},{"id":"administration/settings","path":"/administration/settings","sidebar":"docs"},{"id":"components/agents","path":"/components/agents"},{"id":"components/chains","path":"/components/chains"},{"id":"components/custom","path":"/components/custom","sidebar":"docs"},{"id":"components/data","path":"/components/data","sidebar":"docs"},{"id":"components/embeddings","path":"/components/embeddings","sidebar":"docs"},{"id":"components/experimental","path":"/components/experimental"},{"id":"components/helpers","path":"/components/helpers","sidebar":"docs"},{"id":"components/inputs-and-outputs","path":"/components/inputs-and-outputs","sidebar":"docs"},{"id":"components/loaders","path":"/components/loaders"},{"id":"components/memories","path":"/components/memories"},{"id":"components/model_specs","path":"/components/model_specs"},{"id":"components/models","path":"/components/models","sidebar":"docs"},{"id":"components/retrievers","path":"/components/retrievers"},{"id":"components/text-and-record","path":"/components/text-and-record","sidebar":"docs"},{"id":"components/text-splitters","path":"/components/text-splitters"},{"id":"components/toolkits","path":"/components/toolkits"},{"id":"components/tools","path":"/components/tools"},{"id":"components/utilities","path":"/components/utilities"},{"id":"components/vector-stores","path":"/components/vector-stores","sidebar":"docs"},{"id":"contributing/community","path":"/contributing/community","sidebar":"docs"},{"id":"contributing/contribute-component","path":"/contributing/contribute-component","sidebar":"docs"},{"id":"contributing/github-issues","path":"/contributing/github-issues","sidebar":"docs"},{"id":"contributing/how-contribute","path":"/contributing/how-contribute","sidebar":"docs"},{"id":"contributing/telemetry","path":"/contributing/telemetry","sidebar":"docs"},{"id":"deployment/backend-only","path":"/deployment/backend-only","sidebar":"docs"},{"id":"deployment/docker","path":"/deployment/docker","sidebar":"docs"},{"id":"deployment/gcp-deployment","path":"/deployment/gcp-deployment","sidebar":"docs"},{"id":"deployment/kubernetes","path":"/deployment/kubernetes","sidebar":"docs"},{"id":"examples/chat-memory","path":"/examples/chat-memory"},{"id":"examples/combine-text","path":"/examples/combine-text"},{"id":"examples/create-record","path":"/examples/create-record"},{"id":"examples/pass","path":"/examples/pass"},{"id":"examples/store-message","path":"/examples/store-message"},{"id":"examples/sub-flow","path":"/examples/sub-flow"},{"id":"examples/text-operator","path":"/examples/text-operator"},{"id":"getting-started/install-langflow","path":"/getting-started/install-langflow","sidebar":"docs"},{"id":"getting-started/new-to-llms","path":"/getting-started/new-to-llms","sidebar":"docs"},{"id":"getting-started/possible-installation-issues","path":"/getting-started/possible-installation-issues","sidebar":"docs"},{"id":"getting-started/quickstart","path":"/getting-started/quickstart","sidebar":"docs"},{"id":"getting-started/workspace","path":"/getting-started/workspace","sidebar":"docs"},{"id":"index","path":"/","sidebar":"docs"},{"id":"integrations/langsmith/intro","path":"/integrations/langsmith/intro","sidebar":"docs"},{"id":"integrations/notion/add-content-to-page","path":"/integrations/notion/add-content-to-page","sidebar":"docs"},{"id":"integrations/notion/intro","path":"/integrations/notion/intro","sidebar":"docs"},{"id":"integrations/notion/list-database-properties","path":"/integrations/notion/list-database-properties","sidebar":"docs"},{"id":"integrations/notion/list-pages","path":"/integrations/notion/list-pages","sidebar":"docs"},{"id":"integrations/notion/list-users","path":"/integrations/notion/list-users","sidebar":"docs"},{"id":"integrations/notion/page-content-viewer","path":"/integrations/notion/page-content-viewer","sidebar":"docs"},{"id":"integrations/notion/page-create","path":"/integrations/notion/page-create","sidebar":"docs"},{"id":"integrations/notion/page-update","path":"/integrations/notion/page-update","sidebar":"docs"},{"id":"integrations/notion/search","path":"/integrations/notion/search","sidebar":"docs"},{"id":"integrations/notion/setup","path":"/integrations/notion/setup","sidebar":"docs"},{"id":"migration/compatibility","path":"/migration/compatibility"},{"id":"migration/migrating-to-one-point-zero","path":"/migration/migrating-to-one-point-zero"},{"id":"starter-projects/basic-prompting","path":"/starter-projects/basic-prompting","sidebar":"docs"},{"id":"starter-projects/blog-writer","path":"/starter-projects/blog-writer","sidebar":"docs"},{"id":"starter-projects/document-qa","path":"/starter-projects/document-qa","sidebar":"docs"},{"id":"starter-projects/memory-chatbot","path":"/starter-projects/memory-chatbot","sidebar":"docs"},{"id":"starter-projects/vector-store-rag","path":"/starter-projects/vector-store-rag","sidebar":"docs"},{"id":"tutorials/chatprompttemplate_guide","path":"/tutorials/chatprompttemplate_guide","sidebar":"docs"},{"id":"tutorials/custom_components","path":"/tutorials/custom_components","sidebar":"docs"},{"id":"tutorials/loading_document","path":"/tutorials/loading_document","sidebar":"docs"},{"id":"tutorials/rag-with-astradb","path":"/tutorials/rag-with-astradb","sidebar":"docs"},{"id":"whats-new/a-new-chapter-langflow","path":"/whats-new/a-new-chapter-langflow","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/whats-new/a-new-chapter-langflow","label":"whats-new/a-new-chapter-langflow"}}}}],"breadcrumbs":true}},"docusaurus-plugin-google-gtag":{"default":{"trackingID":["G-XHC7G628ZP"],"anonymizeIP":true,"id":"default"}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(2654);const l=JSON.parse('{"docusaurusVersion":"3.4.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.4.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.4.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.4.0"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"3.4.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.4.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.4.0"},"docusaurus-node-polyfills":{"type":"package","name":"docusaurus-node-polyfills","version":"1.0.0"},"docusaurus-plugin-image-zoom":{"type":"package","name":"docusaurus-plugin-image-zoom","version":"0.1.4"},"docusaurus-tailwindcss":{"type":"local"},"docusaurus-theme-mdx-v2":{"type":"package","name":"docusaurus-theme-mdx-v2","version":"0.1.2"}}}');var c=n(4848);const u={siteConfig:o.default,siteMetadata:l,globalData:a,i18n:i,codeTranslations:s},p=r.createContext(u);function d(e){let{children:t}=e;return(0,c.jsx)(p.Provider,{value:u,children:t})}},7489:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(6540),o=n(8193),a=n(5260),i=n(440),s=n(2644),l=n(3102),c=n(4848);function u(e){let{error:t,tryAgain:n}=e;return(0,c.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,c.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,c.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,c.jsx)(p,{error:t})]})}function p(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{children:t}=e;return(0,c.jsx)(l.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)(d,{children:(0,c.jsxs)(h,{fallback:()=>(0,c.jsx)(u,{error:t,tryAgain:n}),children:[(0,c.jsx)(a.A,{children:(0,c.jsx)("title",{children:"Page Error"})}),(0,c.jsx)(s.A,{children:(0,c.jsx)(u,{error:t,tryAgain:n})})]})})}const m=e=>(0,c.jsx)(f,{...e});class h extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??m)(e)}return e??null}}},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(545),o=n(4848);function a(e){return(0,o.jsx)(r.mg,{...e})}},8774:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),o=n(4625),a=n(440),i=n(4586),s=n(6654),l=n(8193),c=n(3427),u=n(6025),p=n(4848);function d(e,t){let{isNavLink:n,to:d,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:y=!0,...b}=e;const{siteConfig:v}=(0,i.A)(),{trailingSlash:w,baseUrl:k}=v,x=v.future.experimental_router,{withBaseUrl:S}=(0,u.hH)(),_=(0,c.A)(),E=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>E.current));const C=d||f;const A=(0,s.A)(C),O=C?.replace("pathname://","");let T=void 0!==O?(P=O,y&&(e=>e.startsWith("/"))(P)?S(P):P):void 0;var P;"hash"===x&&T?.startsWith("./")&&(T=T?.slice(1)),T&&A&&(T=(0,a.applyTrailingSlash)(T,{trailingSlash:w,baseUrl:k}));const j=(0,r.useRef)(!1),N=n?o.k2:o.N_,R=l.A.canUseIntersectionObserver,L=(0,r.useRef)(),I=()=>{j.current||null==T||(window.docusaurus.preload(T),j.current=!0)};(0,r.useEffect)((()=>(!R&&A&&null!=T&&window.docusaurus.prefetch(T),()=>{R&&L.current&&L.current.disconnect()})),[L,T,R,A]);const F=T?.startsWith("#")??!1,D=!b.target||"_self"===b.target,M=!T||!A||!D;return g||!F&&M||_.collectLink(T),b.id&&_.collectAnchor(b.id),M?(0,p.jsx)("a",{ref:E,href:T,...C&&!A&&{target:"_blank",rel:"noopener noreferrer"},...b}):(0,p.jsx)(N,{...b,onMouseEnter:I,onTouchStart:I,innerRef:e=>{E.current=e,R&&e&&A&&(L.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(L.current.unobserve(e),L.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),L.current.observe(e))},to:T,...n&&{isActive:h,activeClassName:m}})}const f=r.forwardRef(d)},418:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=()=>null},1312:(e,t,n)=>{"use strict";n.d(t,{A:()=>u,T:()=>c});var r=n(6540),o=n(4848);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(2654),s=n(6763);function l(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function c(e,t){let{message:n,id:r}=e;return a(l({message:n,id:r}),t)}function u(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw s.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const i=l({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},7065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},6654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},6025:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>s,hH:()=>i});var r=n(6540),o=n(4586),a=n(6654);function i(){const{siteConfig:e}=(0,o.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router,s=(0,r.useCallback)(((e,r)=>function(e){let{siteUrl:t,baseUrl:n,url:r,options:{forcePrependBaseUrl:o=!1,absolute:i=!1}={},router:s}=e;if(!r||r.startsWith("#")||(0,a.z)(r))return r;if("hash"===s)return r.startsWith("/")?`.${r}`:`./${r}`;if(o)return n+r.replace(/^\//,"");if(r===n.replace(/\/$/,""))return n;const l=r.startsWith(n)?r:n+r.replace(/^\//,"");return i?t+l:l}({siteUrl:n,baseUrl:t,url:e,options:r,router:i})),[n,t,i]);return{withBaseUrl:s}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},3427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6540);n(4848);const o=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),a=()=>(0,r.useContext)(o);function i(){return a()}},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6988);function a(){return(0,r.useContext)(o.o)}},2303:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6125);function a(){return(0,r.useContext)(o.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540);const o=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect},6921:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const s=o?`${o}.${a}`:a;r(i)?e(i,s):t[s]=i}))}(e),t}},3102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>a});var r=n(6540),o=n(4848);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:s,children:t})}},4070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>h,vT:()=>d,Gy:()=>u,HW:()=>g,ht:()=>p,r7:()=>m,jh:()=>f});var r=n(6347),o=n(4586),a=n(7065);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=function(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const c={},u=()=>i("docusaurus-plugin-content-docs")??c,p=e=>{try{return function(e,t,n){void 0===t&&(t=a.W),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function d(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function f(e){return p(e).versions}function m(e){const t=p(e);return s(t)}function h(e){const t=p(e),{pathname:n}=(0,r.zy)();return l(t,n)}function g(e){const t=p(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=s(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},1911:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||setTimeout((()=>{window.gtag("set","page_path",t.pathname+t.search+t.hash),window.gtag("event","page_view")}))}}},6294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(5947),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},6134:(e,t,n)=>{"use strict";n.r(t);var r=n(4876),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(9700),n(8692)(`./prism-${e}`)})),delete globalThis.Prism}(r.My)},1107:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(6540);var r=n(8215),o=n(1312),a=n(6342),i=n(8774),s=n(3427);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var c=n(4848);function u(e){let{as:t,id:n,...u}=e;const p=(0,s.A)(),{navbar:{hideOnScroll:d}}=(0,a.p)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});p.collectAnchor(n);const f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,c.jsxs)(t,{...u,className:(0,r.A)("anchor",d?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},3186:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(4848);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},2644:(e,t,n)=>{"use strict";n.d(t,{A:()=>xw});var r=n(6540),o=n.t(r,2),a=n(8215),i=n(7489),s=n(1003),l=n(6347),c=n(1312),u=n(5062),p=n(4848);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function m(){const e=(0,r.useRef)(null),{action:t}=(0,l.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,u.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const h=(0,c.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function g(e){const t=e.children??h,{containerRef:n,onClick:r}=m();return(0,p.jsx)("div",{ref:n,role:"region","aria-label":h,children:(0,p.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var y=n(7559),b=n(4090);const v={skipToContent:"skipToContent_fXgn"};function w(){return(0,p.jsx)(g,{className:v.skipToContent})}var k=n(6342),x=n(5041);function S(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,p.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,p.jsx)("g",{stroke:r,strokeWidth:o,children:(0,p.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const _={closeButton:"closeButton_CVFx"};function E(e){return(0,p.jsx)("button",{type:"button","aria-label":(0,c.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.A)("clean-btn close",_.closeButton,e.className),children:(0,p.jsx)(S,{width:14,height:14,strokeWidth:3.1})})}const C={content:"content_knG7"};function A(e){const{announcementBar:t}=(0,k.p)(),{content:n}=t;return(0,p.jsx)("div",{...e,className:(0,a.A)(C.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const O={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function T(){const{announcementBar:e}=(0,k.p)(),{isActive:t,close:n}=(0,x.M)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,p.jsxs)("div",{className:O.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,p.jsx)("div",{className:O.announcementBarPlaceholder}),(0,p.jsx)(A,{className:O.announcementBarContent}),a&&(0,p.jsx)(E,{onClick:n,className:O.announcementBarClose})]})}var P=n(9876),j=n(3104);var N=n(9532),R=n(5600);const L=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,P.M)(),t=(0,R.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,N.ZC)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return(0,p.jsx)(L.Provider,{value:n,children:t})}function F(e){if(e.component){const t=e.component;return(0,p.jsx)(t,{...e.props})}}function D(){const e=(0,r.useContext)(L);if(!e)throw new N.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,R.YL)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:F(a)})),[o,a,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=D();return(0,p.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,p.jsxs)("div",{className:(0,a.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,p.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,p.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var z=n(5293),B=n(2303);function $(e){return(0,p.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,p.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function q(e){return(0,p.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,p.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function H(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,B.A)(),s=(0,c.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,c.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,c.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,p.jsx)("div",{className:(0,a.A)(U.toggle,t),children:(0,p.jsxs)("button",{className:(0,a.A)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,p.jsx)($,{className:(0,a.A)(U.toggleIcon,U.lightToggleIcon)}),(0,p.jsx)(q,{className:(0,a.A)(U.toggleIcon,U.darkToggleIcon)})]})})}const V=r.memo(H),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function W(e){let{className:t}=e;const n=(0,k.p)().navbar.style,r=(0,k.p)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,z.G)();return r?null:(0,p.jsx)(V,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var Y=n(3465);function K(){return(0,p.jsx)(Y.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Q(){const e=(0,P.M)();return(0,p.jsx)("button",{type:"button","aria-label":(0,c.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,p.jsx)(S,{color:"var(--ifm-color-emphasis-600)"})})}function X(){return(0,p.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,p.jsx)(K,{}),(0,p.jsx)(W,{className:"margin-right--md"}),(0,p.jsx)(Q,{})]})}var Z=n(8774),J=n(6025),ee=n(6654);function te(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var ne=n(3186);function re(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const u=(0,J.Ay)(r),d=(0,J.Ay)(t),f=(0,J.Ay)(o,{forcePrependBaseUrl:!0}),m=a&&o&&!(0,ee.A)(o),h=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,p.jsxs)(p.Fragment,{children:[a,m&&(0,p.jsx)(ne.A,{...s&&{width:12,height:12}})]})};return o?(0,p.jsx)(Z.A,{href:l?f:o,...c,...h}):(0,p.jsx)(Z.A,{to:u,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?te(n,t.pathname):t.pathname.startsWith(d)},...c,...h})}function oe(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,p.jsx)(re,{className:(0,a.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,p.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,p.jsx)("li",{className:"menu__list-item",children:(0,p.jsx)(re,{className:(0,a.A)("menu__link",t),...r})})}function ie(e){let{mobile:t=!1,position:n,...r}=e;const o=t?ae:oe;return(0,p.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var se=n(1422),le=n(9169),ce=n(4586);const ue={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function pe(e,t){return e.some((e=>function(e,t){return!!(0,le.ys)(e.to,t)||!!te(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,u]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&u(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,p.jsxs)("div",{ref:l,className:(0,a.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,p.jsx)(re,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.A)("navbar__link",o),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),u(!c))},children:s.children??s.label}),(0,p.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ae,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function fe(e){let{items:t,className:n,position:o,onClick:i,...s}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,ce.A)(),{pathname:t}=(0,l.zy)();return t.replace(e,"/")}(),u=pe(t,c),{collapsed:d,toggleCollapsed:f,setCollapsed:m}=(0,se.u)({initialState:()=>!u});return(0,r.useEffect)((()=>{u&&m(!u)}),[c,u,m]),(0,p.jsxs)("li",{className:(0,a.A)("menu__list-item",{"menu__list-item--collapsed":d}),children:[(0,p.jsx)(re,{role:"button",className:(0,a.A)(ue.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...s,onClick:e=>{e.preventDefault(),f()},children:s.children??s.label}),(0,p.jsx)(se.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:d,children:t.map(((e,t)=>(0,r.createElement)(Ae,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function me(e){let{mobile:t=!1,...n}=e;const r=t?fe:de;return(0,p.jsx)(r,{...n})}var he=n(2131);function ge(e){let{width:t=20,height:n=20,...r}=e;return(0,p.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,p.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ye="iconLanguage_nlXk";var be=n(418);const ve={navbarSearchContainer:"navbarSearchContainer_Bca1"};function we(e){let{children:t,className:n}=e;return(0,p.jsx)("div",{className:(0,a.A)(n,ve.navbarSearchContainer),children:t})}var ke=n(4070),xe=n(1754);var Se=n(5597);const _e=e=>e.docs.find((t=>t.id===e.mainDocId));const Ee={default:ie,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:s,localeConfigs:u}}=(0,ce.A)(),d=(0,he.o)(),{search:f,hash:m}=(0,l.zy)(),h=s.map((e=>{const n=`${`pathname://${d.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${o}`;return{label:u[e].label,lang:u[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),g=[...n,...h,...r],y=t?(0,c.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):u[i].label;return(0,p.jsx)(me,{...a,mobile:t,label:(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(ge,{className:ye}),y]}),items:g})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,p.jsx)(we,{className:n,children:(0,p.jsx)(be.A,{})})},dropdown:me,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,p.jsx)(i,{className:(0,a.A)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,ke.zK)(r),i=(0,xe.QB)(t,r),s=a?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,p.jsx)(ie,{exact:!0,...o,isActive:()=>s||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,ke.zK)(r),i=(0,xe.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,p.jsx)(ie,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,xe.Vd)(r)[0],i=t??a.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,p.jsx)(ie,{...o,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:s,hash:u}=(0,l.zy)(),d=(0,ke.zK)(n),f=(0,ke.jh)(n),{savePreferredVersionName:m}=(0,Se.g1)(n),h=[...o,...f.map((e=>{const t=d.alternateDocVersions[e.name]??_e(e);return{label:e.label,to:`${t.path}${s}${u}`,isActive:()=>e===d.activeVersion,onClick:()=>m(e.name)}})),...a],g=(0,xe.Vd)(n)[0],y=t&&h.length>1?(0,c.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,b=t&&h.length>1?void 0:_e(g).path;return h.length<=1?(0,p.jsx)(ie,{...i,mobile:t,label:y,to:b,isActive:r?()=>!1:void 0}):(0,p.jsx)(me,{...i,mobile:t,label:y,to:b,items:h,isActive:r?()=>!1:void 0})}},Ce=Ee;function Ae(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=Ce[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,p.jsx)(o,{...n})}function Oe(){const e=(0,P.M)(),t=(0,k.p)().navbar.items;return(0,p.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ae,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Te(e){return(0,p.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,p.jsx)(c.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Pe(){const e=0===(0,k.p)().navbar.items.length,t=D();return(0,p.jsxs)(p.Fragment,{children:[!e&&(0,p.jsx)(Te,{onClick:()=>t.hide()}),t.content]})}function je(){const e=(0,P.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,p.jsx)(M,{header:(0,p.jsx)(X,{}),primaryMenu:(0,p.jsx)(Oe,{}),secondaryMenu:(0,p.jsx)(Pe,{})}):null}const Ne={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Re(e){return(0,p.jsx)("div",{role:"presentation",...e,className:(0,a.A)("navbar-sidebar__backdrop",e.className)})}function Le(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,k.p)(),i=(0,P.M)(),{navbarRef:s,isNavbarVisible:l}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,j.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=s?n(!1):i+c{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,p.jsxs)("nav",{ref:s,"aria-label":(0,c.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.A)("navbar","navbar--fixed-top",n&&[Ne.navbarHideable,!l&&Ne.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,p.jsx)(Re,{onClick:i.toggle}),(0,p.jsx)(je,{})]})}var Ie=n(440);const Fe={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function De(e){return(0,p.jsx)("button",{type:"button",...e,children:(0,p.jsx)(c.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Me(e){let{error:t}=e;const n=(0,Ie.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,p.jsx)("p",{className:Fe.errorBoundaryError,children:n})}class ze extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Be="right";function $e(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,p.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,p.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function qe(){const{toggle:e,shown:t}=(0,P.M)();return(0,p.jsx)("button",{onClick:e,"aria-label":(0,c.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,p.jsx)($e,{})})}const Ue={colorModeToggle:"colorModeToggle_DEke"};function He(e){let{items:t}=e;return(0,p.jsx)(p.Fragment,{children:t.map(((e,t)=>(0,p.jsx)(ze,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,p.jsx)(Ae,{...e})},t)))})}function Ve(e){let{left:t,right:n}=e;return(0,p.jsxs)("div",{className:"navbar__inner",children:[(0,p.jsx)("div",{className:"navbar__items",children:t}),(0,p.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function Ge(){const e=(0,P.M)(),t=(0,k.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Be)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,p.jsx)(Ve,{left:(0,p.jsxs)(p.Fragment,{children:[!e.disabled&&(0,p.jsx)(qe,{}),(0,p.jsx)(K,{}),(0,p.jsx)(He,{items:n})]}),right:(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(He,{items:r}),(0,p.jsx)(W,{className:Ue.colorModeToggle}),!o&&(0,p.jsx)(we,{children:(0,p.jsx)(be.A,{})})]})})}function We(){return(0,p.jsx)(Le,{children:(0,p.jsx)(Ge,{})})}function Ye(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,s=(0,J.Ay)(n),l=(0,J.Ay)(r,{forcePrependBaseUrl:!0});return(0,p.jsxs)(Z.A,{className:"footer__link-item",...r?{href:a?l:r}:{to:s},...i,children:[o,r&&!(0,ee.A)(r)&&(0,p.jsx)(ne.A,{})]})}function Ke(e){let{item:t}=e;return t.html?(0,p.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,p.jsx)("li",{className:"footer__item",children:(0,p.jsx)(Ye,{item:t})},t.href??t.to)}function Qe(e){let{column:t}=e;return(0,p.jsxs)("div",{className:"col footer__col",children:[(0,p.jsx)("div",{className:"footer__title",children:t.title}),(0,p.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,p.jsx)(Ke,{item:e},t)))})]})}function Xe(e){let{columns:t}=e;return(0,p.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,p.jsx)(Qe,{column:e},t)))})}function Ze(){return(0,p.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Je(e){let{item:t}=e;return t.html?(0,p.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,p.jsx)(Ye,{item:t})}function et(e){let{links:t}=e;return(0,p.jsx)("div",{className:"footer__links text--center",children:(0,p.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,p.jsxs)(r.Fragment,{children:[(0,p.jsx)(Je,{item:e}),t.length!==n+1&&(0,p.jsx)(Ze,{})]},n)))})})}function tt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,p.jsx)(Xe,{columns:t}):(0,p.jsx)(et,{links:t})}var nt=n(1122);const rt={footerLogoLink:"footerLogoLink_BH7S"};function ot(e){let{logo:t}=e;const{withBaseUrl:n}=(0,J.hH)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,p.jsx)(nt.A,{className:(0,a.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function at(e){let{logo:t}=e;return t.href?(0,p.jsx)(Z.A,{href:t.href,className:rt.footerLogoLink,target:t.target,children:(0,p.jsx)(ot,{logo:t})}):(0,p.jsx)(ot,{logo:t})}function it(e){let{copyright:t}=e;return(0,p.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function st(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,p.jsx)("footer",{className:(0,a.A)("footer",{"footer--dark":"dark"===t}),children:(0,p.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,p.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,p.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function lt(){const{footer:e}=(0,k.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,p.jsx)(st,{style:o,links:n&&n.length>0&&(0,p.jsx)(tt,{links:n}),logo:r&&(0,p.jsx)(at,{logo:r}),copyright:t&&(0,p.jsx)(it,{copyright:t})})}const ct=r.memo(lt);var ut=n(961),pt=n(6763),dt=function(){return dt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1](((e,t,n)=>{t in e?yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);let vt=new class{constructor(){bt(this,"current",this.detect()),bt(this,"handoffState","pending"),bt(this,"currentId",0)}set(e){this.current!==e&&(this.handoffState="pending",this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return"server"===this.current}get isClient(){return"client"===this.current}detect(){return"undefined"==typeof window||"undefined"==typeof document?"server":"client"}handoff(){"pending"===this.handoffState&&(this.handoffState="complete")}get isHandoffComplete(){return"complete"===this.handoffState}},wt=(e,t)=>{vt.isServer?(0,r.useEffect)(e,t):(0,r.useLayoutEffect)(e,t)};function kt(e){let t=(0,r.useRef)(e);return wt((()=>{t.current=e}),[e]),t}function xt(e){"function"==typeof queueMicrotask?queueMicrotask(e):Promise.resolve().then(e).catch((e=>setTimeout((()=>{throw e}))))}function St(){let e=[],t=[],n={enqueue(e){t.push(e)},addEventListener:(e,t,r,o)=>(e.addEventListener(t,r,o),n.add((()=>e.removeEventListener(t,r,o)))),requestAnimationFrame(...e){let t=requestAnimationFrame(...e);return n.add((()=>cancelAnimationFrame(t)))},nextFrame:(...e)=>n.requestAnimationFrame((()=>n.requestAnimationFrame(...e))),setTimeout(...e){let t=setTimeout(...e);return n.add((()=>clearTimeout(t)))},microTask(...e){let t={current:!0};return xt((()=>{t.current&&e[0]()})),n.add((()=>{t.current=!1}))},add:t=>(e.push(t),()=>{let n=e.indexOf(t);if(n>=0){let[t]=e.splice(n,1);t()}}),dispose(){for(let t of e.splice(0))t()},async workQueue(){for(let e of t.splice(0))await e()},style(e,t,n){let r=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:n}),this.add((()=>{Object.assign(e.style,{[t]:r})}))}};return n}function _t(){let[e]=(0,r.useState)(St);return(0,r.useEffect)((()=>()=>e.dispose()),[e]),e}let Et=function(e){let t=kt(e);return r.useCallback(((...e)=>t.current(...e)),[t])};function Ct(){let[e,t]=(0,r.useState)(vt.isHandoffComplete);return e&&!1===vt.isHandoffComplete&&t(!1),(0,r.useEffect)((()=>{!0!==e&&t(!0)}),[e]),(0,r.useEffect)((()=>vt.handoff()),[]),e}var At;let Ot=null!=(At=r.useId)?At:function(){let e=Ct(),[t,n]=r.useState(e?()=>vt.nextId():null);return wt((()=>{null===t&&n(vt.nextId())}),[t]),null!=t?""+t:void 0};function Tt(e,t,...n){if(e in t){let r=t[e];return"function"==typeof r?r(...n):r}let r=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map((e=>`"${e}"`)).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,Tt),r}function Pt(e){return vt.isServer?null:e instanceof Node?e.ownerDocument:null!=e&&e.hasOwnProperty("current")&&e.current instanceof Node?e.current.ownerDocument:document}let jt=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map((e=>`${e}:not([tabindex='-1'])`)).join(",");var Nt,Rt=((Nt=Rt||{})[Nt.First=1]="First",Nt[Nt.Previous=2]="Previous",Nt[Nt.Next=4]="Next",Nt[Nt.Last=8]="Last",Nt[Nt.WrapAround=16]="WrapAround",Nt[Nt.NoScroll=32]="NoScroll",Nt),Lt=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(Lt||{}),It=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(It||{}),Ft=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(Ft||{});function Dt(e){null==e||e.focus({preventScroll:!0})}let Mt=["textarea","input"].join(",");function zt(e,t,{sorted:n=!0,relativeTo:r=null,skipElements:o=[]}={}){let a=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,i=Array.isArray(e)?n?function(e,t=(e=>e)){return e.slice().sort(((e,n)=>{let r=t(e),o=t(n);if(null===r||null===o)return 0;let a=r.compareDocumentPosition(o);return a&Node.DOCUMENT_POSITION_FOLLOWING?-1:a&Node.DOCUMENT_POSITION_PRECEDING?1:0}))}(e):e:function(e=document.body){return null==e?[]:Array.from(e.querySelectorAll(jt)).sort(((e,t)=>Math.sign((e.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER))))}(e);o.length>0&&i.length>1&&(i=i.filter((e=>!o.includes(e)))),r=null!=r?r:a.activeElement;let s,l=(()=>{if(5&t)return 1;if(10&t)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),c=(()=>{if(1&t)return 0;if(2&t)return Math.max(0,i.indexOf(r))-1;if(4&t)return Math.max(0,i.indexOf(r))+1;if(8&t)return i.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),u=32&t?{preventScroll:!0}:{},p=0,d=i.length;do{if(p>=d||p+d<=0)return 0;let e=c+p;if(16&t)e=(e+d)%d;else{if(e<0)return 3;if(e>=d)return 1}s=i[e],null==s||s.focus(u),p+=l}while(s!==a.activeElement);return 6&t&&function(e){var t,n;return null!=(n=null==(t=null==e?void 0:e.matches)?void 0:t.call(e,Mt))&&n}(s)&&s.select(),s.hasAttribute("tabindex")||s.setAttribute("tabindex","0"),2}function Bt(e,t,n){let o=kt(t);(0,r.useEffect)((()=>{function t(e){o.current(e)}return document.addEventListener(e,t,n),()=>document.removeEventListener(e,t,n)}),[e,n])}function $t(e,t,n=!0){let o=(0,r.useRef)(!1);function a(n,r){if(!o.current||n.defaultPrevented)return;let a=function e(t){return"function"==typeof t?e(t()):Array.isArray(t)||t instanceof Set?t:[t]}(e),i=r(n);if(null!==i&&i.getRootNode().contains(i)){for(let e of a){if(null===e)continue;let t=e instanceof HTMLElement?e:e.current;if(null!=t&&t.contains(i)||n.composed&&n.composedPath().includes(t))return}return!function(e,t=0){var n;return e!==(null==(n=Pt(e))?void 0:n.body)&&Tt(t,{0:()=>e.matches(jt),1(){let t=e;for(;null!==t;){if(t.matches(jt))return!0;t=t.parentElement}return!1}})}(i,Ft.Loose)&&-1!==i.tabIndex&&n.preventDefault(),t(n,i)}}(0,r.useEffect)((()=>{requestAnimationFrame((()=>{o.current=n}))}),[n]);let i=(0,r.useRef)(null);Bt("mousedown",(e=>{var t,n;o.current&&(i.current=(null==(n=null==(t=e.composedPath)?void 0:t.call(e))?void 0:n[0])||e.target)}),!0),Bt("click",(e=>{!i.current||(a(e,(()=>i.current)),i.current=null)}),!0),Bt("blur",(e=>a(e,(()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null))),!0)}let qt=Symbol();function Ut(...e){let t=(0,r.useRef)(e);(0,r.useEffect)((()=>{t.current=e}),[e]);let n=Et((e=>{for(let n of t.current)null!=n&&("function"==typeof n?n(e):n.current=e)}));return e.every((e=>null==e||(null==e?void 0:e[qt])))?void 0:n}function Ht(...e){return e.filter(Boolean).join(" ")}var Vt=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(Vt||{}),Gt=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(Gt||{});function Wt({ourProps:e,theirProps:t,slot:n,defaultTag:r,features:o,visible:a=!0,name:i}){let s=Kt(t,e);if(a)return Yt(s,n,r,i);let l=null!=o?o:0;if(2&l){let{static:e=!1,...t}=s;if(e)return Yt(t,n,r,i)}if(1&l){let{unmount:e=!0,...t}=s;return Tt(e?0:1,{0:()=>null,1:()=>Yt({...t,hidden:!0,style:{display:"none"}},n,r,i)})}return Yt(s,n,r,i)}function Yt(e,t={},n,o){var a;let{as:i=n,children:s,refName:l="ref",...c}=Zt(e,["unmount","static"]),u=void 0!==e.ref?{[l]:e.ref}:{},p="function"==typeof s?s(t):s;c.className&&"function"==typeof c.className&&(c.className=c.className(t));let d={};if(t){let e=!1,n=[];for(let[r,o]of Object.entries(t))"boolean"==typeof o&&(e=!0),!0===o&&n.push(r);e&&(d["data-headlessui-state"]=n.join(" "))}if(i===r.Fragment&&Object.keys(Xt(c)).length>0){if(!(0,r.isValidElement)(p)||Array.isArray(p)&&p.length>1)throw new Error(['Passing props on "Fragment"!',"",`The current component <${o} /> is rendering a "Fragment".`,"However we need to passthrough the following props:",Object.keys(c).map((e=>` - ${e}`)).join("\n"),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',"Render a single element as the child so that we can forward the props onto that element."].map((e=>` - ${e}`)).join("\n")].join("\n"));let e=Ht(null==(a=p.props)?void 0:a.className,c.className),t=e?{className:e}:{};return(0,r.cloneElement)(p,Object.assign({},Kt(p.props,Xt(Zt(c,["ref"]))),d,u,function(...e){return{ref:e.every((e=>null==e))?void 0:t=>{for(let n of e)null!=n&&("function"==typeof n?n(t):n.current=t)}}}(p.ref,u.ref),t))}return(0,r.createElement)(i,Object.assign({},Zt(c,["ref"]),i!==r.Fragment&&u,i!==r.Fragment&&d),p)}function Kt(...e){if(0===e.length)return{};if(1===e.length)return e[0];let t={},n={};for(let r of e)for(let e in r)e.startsWith("on")&&"function"==typeof r[e]?(null!=n[e]||(n[e]=[]),n[e].push(r[e])):t[e]=r[e];if(t.disabled||t["aria-disabled"])return Object.assign(t,Object.fromEntries(Object.keys(n).map((e=>[e,void 0]))));for(let r in n)Object.assign(t,{[r](e,...t){let o=n[r];for(let n of o){if((e instanceof Event||(null==e?void 0:e.nativeEvent)instanceof Event)&&e.defaultPrevented)return;n(e,...t)}}});return t}function Qt(e){var t;return Object.assign((0,r.forwardRef)(e),{displayName:null!=(t=e.displayName)?t:e.name})}function Xt(e){let t=Object.assign({},e);for(let n in t)void 0===t[n]&&delete t[n];return t}function Zt(e,t=[]){let n=Object.assign({},e);for(let r of t)r in n&&delete n[r];return n}var Jt=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(Jt||{});let en=Qt((function(e,t){let{features:n=1,...r}=e;return Wt({ourProps:{ref:t,"aria-hidden":!(2&~n)||void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...!(4&~n)&&!!(2&~n)&&{display:"none"}}},theirProps:r,slot:{},defaultTag:"div",name:"Hidden"})})),tn=(0,r.createContext)(null);tn.displayName="OpenClosedContext";var nn=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(nn||{});function rn(){return(0,r.useContext)(tn)}function on({value:e,children:t}){return r.createElement(tn.Provider,{value:e},t)}var an=(e=>(e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.Delete="Delete",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab",e))(an||{});function sn(e,t){let n=(0,r.useRef)([]),o=Et(e);(0,r.useEffect)((()=>{let e=[...n.current];for(let[r,a]of t.entries())if(n.current[r]!==a){let r=o(t,e);return n.current=t,r}}),[o,...t])}var ln=(e=>(e[e.Forwards=0]="Forwards",e[e.Backwards=1]="Backwards",e))(ln||{});function cn(){let e=(0,r.useRef)(!1);return wt((()=>(e.current=!0,()=>{e.current=!1})),[]),e}function un(...e){return(0,r.useMemo)((()=>Pt(...e)),[...e])}function pn(e,t,n,o){let a=kt(n);(0,r.useEffect)((()=>{function n(e){a.current(e)}return(e=null!=e?e:window).addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)}),[e,t,o])}var dn=(e=>(e[e.None=1]="None",e[e.InitialFocus=2]="InitialFocus",e[e.TabLock=4]="TabLock",e[e.FocusLock=8]="FocusLock",e[e.RestoreFocus=16]="RestoreFocus",e[e.All=30]="All",e))(dn||{});let fn=Object.assign(Qt((function(e,t){let n=(0,r.useRef)(null),o=Ut(n,t),{initialFocus:a,containers:i,features:s=30,...l}=e;Ct()||(s=1);let c=un(n);!function({ownerDocument:e},t){let n=(0,r.useRef)(null);pn(null==e?void 0:e.defaultView,"focusout",(e=>{!t||n.current||(n.current=e.target)}),!0),sn((()=>{t||((null==e?void 0:e.activeElement)===(null==e?void 0:e.body)&&Dt(n.current),n.current=null)}),[t]);let o=(0,r.useRef)(!1);(0,r.useEffect)((()=>(o.current=!1,()=>{o.current=!0,xt((()=>{!o.current||(Dt(n.current),n.current=null)}))})),[])}({ownerDocument:c},Boolean(16&s));let u=function({ownerDocument:e,container:t,initialFocus:n},o){let a=(0,r.useRef)(null),i=cn();return sn((()=>{if(!o)return;let r=t.current;!r||xt((()=>{if(!i.current)return;let t=null==e?void 0:e.activeElement;if(null!=n&&n.current){if((null==n?void 0:n.current)===t)return void(a.current=t)}else if(r.contains(t))return void(a.current=t);null!=n&&n.current?Dt(n.current):zt(r,Rt.First)===Lt.Error&&pt.warn("There are no focusable elements inside the "),a.current=null==e?void 0:e.activeElement}))}),[o]),a}({ownerDocument:c,container:n,initialFocus:a},Boolean(2&s));!function({ownerDocument:e,container:t,containers:n,previousActiveElement:r},o){let a=cn();pn(null==e?void 0:e.defaultView,"focus",(e=>{if(!o||!a.current)return;let i=new Set(null==n?void 0:n.current);i.add(t);let s=r.current;if(!s)return;let l=e.target;l&&l instanceof HTMLElement?mn(i,l)?(r.current=l,Dt(l)):(e.preventDefault(),e.stopPropagation(),Dt(s)):Dt(r.current)}),!0)}({ownerDocument:c,container:n,containers:i,previousActiveElement:u},Boolean(8&s));let p=function(){let e=(0,r.useRef)(0);return function(e,t,n){let o=kt(t);(0,r.useEffect)((()=>{function t(e){o.current(e)}return window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)}),[e,n])}("keydown",(t=>{"Tab"===t.key&&(e.current=t.shiftKey?1:0)}),!0),e}(),d=Et((e=>{let t=n.current;t&&Tt(p.current,{[ln.Forwards]:()=>{zt(t,Rt.First,{skipElements:[e.relatedTarget]})},[ln.Backwards]:()=>{zt(t,Rt.Last,{skipElements:[e.relatedTarget]})}})})),f=_t(),m=(0,r.useRef)(!1),h={ref:o,onKeyDown(e){"Tab"==e.key&&(m.current=!0,f.requestAnimationFrame((()=>{m.current=!1})))},onBlur(e){let t=new Set(null==i?void 0:i.current);t.add(n);let r=e.relatedTarget;r instanceof HTMLElement&&"true"!==r.dataset.headlessuiFocusGuard&&(mn(t,r)||(m.current?zt(n.current,Tt(p.current,{[ln.Forwards]:()=>Rt.Next,[ln.Backwards]:()=>Rt.Previous})|Rt.WrapAround,{relativeTo:e.target}):e.target instanceof HTMLElement&&Dt(e.target)))}};return r.createElement(r.Fragment,null,Boolean(4&s)&&r.createElement(en,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:d,features:Jt.Focusable}),Wt({ourProps:h,theirProps:l,defaultTag:"div",name:"FocusTrap"}),Boolean(4&s)&&r.createElement(en,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:d,features:Jt.Focusable}))})),{features:dn});function mn(e,t){var n;for(let r of e)if(null!=(n=r.current)&&n.contains(t))return!0;return!1}let hn=new Set,gn=new Map;function yn(e){e.setAttribute("aria-hidden","true"),e.inert=!0}function bn(e){let t=gn.get(e);!t||(null===t["aria-hidden"]?e.removeAttribute("aria-hidden"):e.setAttribute("aria-hidden",t["aria-hidden"]),e.inert=t.inert)}let vn=(0,r.createContext)(!1);function wn(e){return r.createElement(vn.Provider,{value:e.force},e.children)}let kn=r.Fragment,xn=Qt((function(e,t){let n=e,o=(0,r.useRef)(null),a=Ut(function(e,t=!0){return Object.assign(e,{[qt]:t})}((e=>{o.current=e})),t),i=un(o),s=function(e){let t=(0,r.useContext)(vn),n=(0,r.useContext)(_n),o=un(e),[a,i]=(0,r.useState)((()=>{if(!t&&null!==n||vt.isServer)return null;let e=null==o?void 0:o.getElementById("headlessui-portal-root");if(e)return e;if(null===o)return null;let r=o.createElement("div");return r.setAttribute("id","headlessui-portal-root"),o.body.appendChild(r)}));return(0,r.useEffect)((()=>{null!==a&&(null!=o&&o.body.contains(a)||null==o||o.body.appendChild(a))}),[a,o]),(0,r.useEffect)((()=>{t||null!==n&&i(n.current)}),[n,i,t]),a}(o),[l]=(0,r.useState)((()=>{var e;return vt.isServer?null:null!=(e=null==i?void 0:i.createElement("div"))?e:null})),c=Ct(),u=(0,r.useRef)(!1);return wt((()=>{if(u.current=!1,s&&l)return s.contains(l)||(l.setAttribute("data-headlessui-portal",""),s.appendChild(l)),()=>{u.current=!0,xt((()=>{var e;!u.current||!s||!l||(l instanceof Node&&s.contains(l)&&s.removeChild(l),s.childNodes.length<=0&&(null==(e=s.parentElement)||e.removeChild(s)))}))}}),[s,l]),c&&s&&l?(0,ut.createPortal)(Wt({ourProps:{ref:a},theirProps:n,defaultTag:kn,name:"Portal"}),l):null})),Sn=r.Fragment,_n=(0,r.createContext)(null),En=Qt((function(e,t){let{target:n,...o}=e,a={ref:Ut(t)};return r.createElement(_n.Provider,{value:n},Wt({ourProps:a,theirProps:o,defaultTag:Sn,name:"Popover.Group"}))})),Cn=Object.assign(xn,{Group:En}),An=(0,r.createContext)(null);function On(){let e=(0,r.useContext)(An);if(null===e){let e=new Error("You used a component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(e,On),e}return e}let Tn=Qt((function(e,t){let n=Ot(),{id:r=`headlessui-description-${n}`,...o}=e,a=On(),i=Ut(t);return wt((()=>a.register(r)),[r,a.register]),Wt({ourProps:{ref:i,...a.props,id:r},theirProps:o,slot:a.slot||{},defaultTag:"p",name:a.name||"Description"})})),Pn=(0,r.createContext)((()=>{}));Pn.displayName="StackContext";var jn=(e=>(e[e.Add=0]="Add",e[e.Remove=1]="Remove",e))(jn||{});function Nn({children:e,onUpdate:t,type:n,element:o,enabled:a}){let i=(0,r.useContext)(Pn),s=Et(((...e)=>{null==t||t(...e),i(...e)}));return wt((()=>{let e=void 0===a||!0===a;return e&&s(0,n,o),()=>{e&&s(1,n,o)}}),[s,n,o,a]),r.createElement(Pn.Provider,{value:s},e)}const Rn="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},{useState:Ln,useEffect:In,useLayoutEffect:Fn,useDebugValue:Dn}=o;function Mn(e){const t=e.getSnapshot,n=e.value;try{const e=t();return!Rn(n,e)}catch{return!0}}"undefined"==typeof window||void 0===window.document||window.document.createElement;const zn=r.useSyncExternalStore;function Bn(){let e;return{before({doc:t}){var n;let r=t.documentElement;e=(null!=(n=t.defaultView)?n:window).innerWidth-r.clientWidth},after({doc:t,d:n}){let r=t.documentElement,o=r.clientWidth-r.offsetWidth,a=e-o;n.style(r,"paddingRight",`${a}px`)}}}function $n(){if(!(/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0))return{};let e;return{before(){e=window.pageYOffset},after({doc:t,d:n,meta:r}){function o(e){return r.containers.flatMap((e=>e())).some((t=>t.contains(e)))}n.style(t.body,"marginTop",`-${e}px`),window.scrollTo(0,0);let a=null;n.addEventListener(t,"click",(e=>{if(e.target instanceof HTMLElement)try{let n=e.target.closest("a");if(!n)return;let{hash:r}=new URL(n.href),i=t.querySelector(r);i&&!o(i)&&(a=i)}catch{}}),!0),n.addEventListener(t,"touchmove",(e=>{e.target instanceof HTMLElement&&!o(e.target)&&e.preventDefault()}),{passive:!1}),n.add((()=>{window.scrollTo(0,window.pageYOffset+e),a&&a.isConnected&&(a.scrollIntoView({block:"nearest"}),a=null)}))}}}function qn(e){let t={};for(let n of e)Object.assign(t,n(t));return t}let Un=function(e,t){let n=new Map,r=new Set;return{getSnapshot:()=>n,subscribe:e=>(r.add(e),()=>r.delete(e)),dispatch(e,...o){let a=t[e].call(n,...o);a&&(n=a,r.forEach((e=>e())))}}}(0,{PUSH(e,t){var n;let r=null!=(n=this.get(e))?n:{doc:e,count:0,d:St(),meta:new Set};return r.count++,r.meta.add(t),this.set(e,r),this},POP(e,t){let n=this.get(e);return n&&(n.count--,n.meta.delete(t)),this},SCROLL_PREVENT({doc:e,d:t,meta:n}){let r={doc:e,d:t,meta:qn(n)},o=[$n(),Bn(),{before({doc:e,d:t}){t.style(e.documentElement,"overflow","hidden")}}];o.forEach((({before:e})=>null==e?void 0:e(r))),o.forEach((({after:e})=>null==e?void 0:e(r)))},SCROLL_ALLOW({d:e}){e.dispose()},TEARDOWN({doc:e}){this.delete(e)}});Un.subscribe((()=>{let e=Un.getSnapshot(),t=new Map;for(let[n]of e)t.set(n,n.documentElement.style.overflow);for(let n of e.values()){let e="hidden"===t.get(n.doc),r=0!==n.count;(r&&!e||!r&&e)&&Un.dispatch(n.count>0?"SCROLL_PREVENT":"SCROLL_ALLOW",n),0===n.count&&Un.dispatch("TEARDOWN",n)}}));var Hn=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(Hn||{}),Vn=(e=>(e[e.SetTitleId=0]="SetTitleId",e))(Vn||{});let Gn={0:(e,t)=>e.titleId===t.id?e:{...e,titleId:t.id}},Wn=(0,r.createContext)(null);function Yn(e){let t=(0,r.useContext)(Wn);if(null===t){let t=new Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,Yn),t}return t}function Kn(e,t){return Tt(t.type,Gn,e,t)}Wn.displayName="DialogContext";let Qn=Vt.RenderStrategy|Vt.Static,Xn=Qt((function(e,t){let n=Ot(),{id:o=`headlessui-dialog-${n}`,open:a,onClose:i,initialFocus:s,__demoMode:l=!1,...c}=e,[u,p]=(0,r.useState)(0),d=rn();void 0===a&&null!==d&&(a=(d&nn.Open)===nn.Open);let f=(0,r.useRef)(new Set),m=(0,r.useRef)(null),h=Ut(m,t),g=(0,r.useRef)(null),y=un(m),b=e.hasOwnProperty("open")||null!==d,v=e.hasOwnProperty("onClose");if(!b&&!v)throw new Error("You have to provide an `open` and an `onClose` prop to the `Dialog` component.");if(!b)throw new Error("You provided an `onClose` prop to the `Dialog`, but forgot an `open` prop.");if(!v)throw new Error("You provided an `open` prop to the `Dialog`, but forgot an `onClose` prop.");if("boolean"!=typeof a)throw new Error(`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${a}`);if("function"!=typeof i)throw new Error(`You provided an \`onClose\` prop to the \`Dialog\`, but the value is not a function. Received: ${i}`);let w=a?0:1,[k,x]=(0,r.useReducer)(Kn,{titleId:null,descriptionId:null,panelRef:(0,r.createRef)()}),S=Et((()=>i(!1))),_=Et((e=>x({type:0,id:e}))),E=!!Ct()&&!l&&0===w,C=u>1,A=null!==(0,r.useContext)(Wn),O=C?"parent":"leaf",T=null!==d&&(d&nn.Closing)===nn.Closing;!function(e,t=!0){wt((()=>{if(!t||!e.current)return;let n=e.current,r=Pt(n);if(r){hn.add(n);for(let e of gn.keys())e.contains(n)&&(bn(e),gn.delete(e));return r.querySelectorAll("body > *").forEach((e=>{if(e instanceof HTMLElement){for(let t of hn)if(e.contains(t))return;1===hn.size&&(gn.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),yn(e))}})),()=>{if(hn.delete(n),hn.size>0)r.querySelectorAll("body > *").forEach((e=>{if(e instanceof HTMLElement&&!gn.has(e)){for(let t of hn)if(e.contains(t))return;gn.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),yn(e)}}));else for(let e of gn.keys())bn(e),gn.delete(e)}}}),[t])}(m,!(!C||T)&&E);let P=Et((()=>{var e,t;return[...Array.from(null!=(e=null==y?void 0:y.querySelectorAll("html > *, body > *, [data-headlessui-portal]"))?e:[]).filter((e=>!(e===document.body||e===document.head||!(e instanceof HTMLElement)||e.contains(g.current)||k.panelRef.current&&e.contains(k.panelRef.current)))),null!=(t=k.panelRef.current)?t:m.current]}));$t((()=>P()),S,!(!E||C));let j=!(C||0!==w);pn(null==y?void 0:y.defaultView,"keydown",(e=>{!j||e.defaultPrevented||e.key===an.Escape&&(e.preventDefault(),e.stopPropagation(),S())})),function(e,t,n=(()=>[document.body])){!function(e,t,n){let r=function(e){return zn(e.subscribe,e.getSnapshot,e.getSnapshot)}(Un),o=e?r.get(e):void 0,a=!!o&&o.count>0;wt((()=>{if(e&&t)return Un.dispatch("PUSH",e,n),()=>Un.dispatch("POP",e,n)}),[t,e])}(e,t,(e=>{var t;return{containers:[...null!=(t=e.containers)?t:[],n]}}))}(y,!(T||0!==w||A),P),(0,r.useEffect)((()=>{if(0!==w||!m.current)return;let e=new IntersectionObserver((e=>{for(let t of e)0===t.boundingClientRect.x&&0===t.boundingClientRect.y&&0===t.boundingClientRect.width&&0===t.boundingClientRect.height&&S()}));return e.observe(m.current),()=>e.disconnect()}),[w,m,S]);let[N,R]=function(){let[e,t]=(0,r.useState)([]);return[e.length>0?e.join(" "):void 0,(0,r.useMemo)((()=>function(e){let n=Et((e=>(t((t=>[...t,e])),()=>t((t=>{let n=t.slice(),r=n.indexOf(e);return-1!==r&&n.splice(r,1),n}))))),o=(0,r.useMemo)((()=>({register:n,slot:e.slot,name:e.name,props:e.props})),[n,e.slot,e.name,e.props]);return r.createElement(An.Provider,{value:o},e.children)}),[t])]}(),L=(0,r.useMemo)((()=>[{dialogState:w,close:S,setTitleId:_},k]),[w,k,S,_]),I=(0,r.useMemo)((()=>({open:0===w})),[w]),F={ref:h,id:o,role:"dialog","aria-modal":0===w||void 0,"aria-labelledby":k.titleId,"aria-describedby":N};return r.createElement(Nn,{type:"Dialog",enabled:0===w,element:m,onUpdate:Et(((e,t,n)=>{"Dialog"===t&&Tt(e,{[jn.Add](){f.current.add(n),p((e=>e+1))},[jn.Remove](){f.current.add(n),p((e=>e-1))}})}))},r.createElement(wn,{force:!0},r.createElement(Cn,null,r.createElement(Wn.Provider,{value:L},r.createElement(Cn.Group,{target:m},r.createElement(wn,{force:!1},r.createElement(R,{slot:I,name:"Dialog.Description"},r.createElement(fn,{initialFocus:s,containers:f,features:E?Tt(O,{parent:fn.features.RestoreFocus,leaf:fn.features.All&~fn.features.FocusLock}):fn.features.None},Wt({ourProps:F,theirProps:c,slot:I,defaultTag:"div",features:Qn,visible:0===w,name:"Dialog"})))))))),r.createElement(en,{features:Jt.Hidden,ref:g}))})),Zn=Qt((function(e,t){let n=Ot(),{id:o=`headlessui-dialog-overlay-${n}`,...a}=e,[{dialogState:i,close:s}]=Yn("Dialog.Overlay"),l=Ut(t),c=Et((e=>{if(e.target===e.currentTarget){if(function(e){let t=e.parentElement,n=null;for(;t&&!(t instanceof HTMLFieldSetElement);)t instanceof HTMLLegendElement&&(n=t),t=t.parentElement;let r=""===(null==t?void 0:t.getAttribute("disabled"));return(!r||!function(e){if(!e)return!1;let t=e.previousElementSibling;for(;null!==t;){if(t instanceof HTMLLegendElement)return!1;t=t.previousElementSibling}return!0}(n))&&r}(e.currentTarget))return e.preventDefault();e.preventDefault(),e.stopPropagation(),s()}}));return Wt({ourProps:{ref:l,id:o,"aria-hidden":!0,onClick:c},theirProps:a,slot:(0,r.useMemo)((()=>({open:0===i})),[i]),defaultTag:"div",name:"Dialog.Overlay"})})),Jn=Qt((function(e,t){let n=Ot(),{id:o=`headlessui-dialog-backdrop-${n}`,...a}=e,[{dialogState:i},s]=Yn("Dialog.Backdrop"),l=Ut(t);(0,r.useEffect)((()=>{if(null===s.panelRef.current)throw new Error("A component is being used, but a component is missing.")}),[s.panelRef]);let c=(0,r.useMemo)((()=>({open:0===i})),[i]);return r.createElement(wn,{force:!0},r.createElement(Cn,null,Wt({ourProps:{ref:l,id:o,"aria-hidden":!0},theirProps:a,slot:c,defaultTag:"div",name:"Dialog.Backdrop"})))})),er=Qt((function(e,t){let n=Ot(),{id:o=`headlessui-dialog-panel-${n}`,...a}=e,[{dialogState:i},s]=Yn("Dialog.Panel"),l=Ut(t,s.panelRef),c=(0,r.useMemo)((()=>({open:0===i})),[i]),u=Et((e=>{e.stopPropagation()}));return Wt({ourProps:{ref:l,id:o,onClick:u},theirProps:a,slot:c,defaultTag:"div",name:"Dialog.Panel"})})),tr=Qt((function(e,t){let n=Ot(),{id:o=`headlessui-dialog-title-${n}`,...a}=e,[{dialogState:i,setTitleId:s}]=Yn("Dialog.Title"),l=Ut(t);(0,r.useEffect)((()=>(s(o),()=>s(null))),[o,s]);let c=(0,r.useMemo)((()=>({open:0===i})),[i]);return Wt({ourProps:{ref:l,id:o},theirProps:a,slot:c,defaultTag:"h2",name:"Dialog.Title"})})),nr=Object.assign(Xn,{Backdrop:Jn,Panel:er,Overlay:Zn,Title:tr,Description:Tn});function rr(e,...t){e&&t.length>0&&e.classList.add(...t)}function or(e,...t){e&&t.length>0&&e.classList.remove(...t)}function ar(e=""){return e.split(" ").filter((e=>e.trim().length>1))}let ir=(0,r.createContext)(null);ir.displayName="TransitionContext";var sr=(e=>(e.Visible="visible",e.Hidden="hidden",e))(sr||{});let lr=(0,r.createContext)(null);function cr(e){return"children"in e?cr(e.children):e.current.filter((({el:e})=>null!==e.current)).filter((({state:e})=>"visible"===e)).length>0}function ur(e,t){let n=kt(e),o=(0,r.useRef)([]),a=cn(),i=_t(),s=Et(((e,t=Gt.Hidden)=>{let r=o.current.findIndex((({el:t})=>t===e));-1!==r&&(Tt(t,{[Gt.Unmount](){o.current.splice(r,1)},[Gt.Hidden](){o.current[r].state="hidden"}}),i.microTask((()=>{var e;!cr(o)&&a.current&&(null==(e=n.current)||e.call(n))})))})),l=Et((e=>{let t=o.current.find((({el:t})=>t===e));return t?"visible"!==t.state&&(t.state="visible"):o.current.push({el:e,state:"visible"}),()=>s(e,Gt.Unmount)})),c=(0,r.useRef)([]),u=(0,r.useRef)(Promise.resolve()),p=(0,r.useRef)({enter:[],leave:[],idle:[]}),d=Et(((e,n,r)=>{c.current.splice(0),t&&(t.chains.current[n]=t.chains.current[n].filter((([t])=>t!==e))),null==t||t.chains.current[n].push([e,new Promise((e=>{c.current.push(e)}))]),null==t||t.chains.current[n].push([e,new Promise((e=>{Promise.all(p.current[n].map((([e,t])=>t))).then((()=>e()))}))]),"enter"===n?u.current=u.current.then((()=>null==t?void 0:t.wait.current)).then((()=>r(n))):r(n)})),f=Et(((e,t,n)=>{Promise.all(p.current[t].splice(0).map((([e,t])=>t))).then((()=>{var e;null==(e=c.current.shift())||e()})).then((()=>n(t)))}));return(0,r.useMemo)((()=>({children:o,register:l,unregister:s,onStart:d,onStop:f,wait:u,chains:p})),[l,s,o,d,f,p,u])}function pr(){}lr.displayName="NestingContext";let dr=["beforeEnter","afterEnter","beforeLeave","afterLeave"];function fr(e){var t;let n={};for(let r of dr)n[r]=null!=(t=e[r])?t:pr;return n}let mr=Vt.RenderStrategy,hr=Qt((function(e,t){let{beforeEnter:n,afterEnter:o,beforeLeave:a,afterLeave:i,enter:s,enterFrom:l,enterTo:c,entered:u,leave:p,leaveFrom:d,leaveTo:f,...m}=e,h=(0,r.useRef)(null),g=Ut(h,t),y=m.unmount?Gt.Unmount:Gt.Hidden,{show:b,appear:v,initial:w}=function(){let e=(0,r.useContext)(ir);if(null===e)throw new Error("A is used but it is missing a parent or .");return e}(),[k,x]=(0,r.useState)(b?"visible":"hidden"),S=function(){let e=(0,r.useContext)(lr);if(null===e)throw new Error("A is used but it is missing a parent or .");return e}(),{register:_,unregister:E}=S,C=(0,r.useRef)(null);(0,r.useEffect)((()=>_(h)),[_,h]),(0,r.useEffect)((()=>{if(y===Gt.Hidden&&h.current)return b&&"visible"!==k?void x("visible"):Tt(k,{hidden:()=>E(h),visible:()=>_(h)})}),[k,h,_,E,b,y]);let A=kt({enter:ar(s),enterFrom:ar(l),enterTo:ar(c),entered:ar(u),leave:ar(p),leaveFrom:ar(d),leaveTo:ar(f)}),O=function(e){let t=(0,r.useRef)(fr(e));return(0,r.useEffect)((()=>{t.current=fr(e)}),[e]),t}({beforeEnter:n,afterEnter:o,beforeLeave:a,afterLeave:i}),T=Ct();(0,r.useEffect)((()=>{if(T&&"visible"===k&&null===h.current)throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")}),[h,k,T]);let P=w&&!v,j=!T||P||C.current===b?"idle":b?"enter":"leave",N=function(e=0){let[t,n]=(0,r.useState)(e),o=(0,r.useCallback)((e=>n((t=>t|e))),[t]),a=(0,r.useCallback)((e=>Boolean(t&e)),[t]),i=(0,r.useCallback)((e=>n((t=>t&~e))),[n]),s=(0,r.useCallback)((e=>n((t=>t^e))),[n]);return{flags:t,addFlag:o,hasFlag:a,removeFlag:i,toggleFlag:s}}(0),R=Et((e=>Tt(e,{enter:()=>{N.addFlag(nn.Opening),O.current.beforeEnter()},leave:()=>{N.addFlag(nn.Closing),O.current.beforeLeave()},idle:()=>{}}))),L=Et((e=>Tt(e,{enter:()=>{N.removeFlag(nn.Opening),O.current.afterEnter()},leave:()=>{N.removeFlag(nn.Closing),O.current.afterLeave()},idle:()=>{}}))),I=ur((()=>{x("hidden"),E(h)}),S);(function({container:e,direction:t,classes:n,onStart:r,onStop:o}){let a=cn(),i=_t(),s=kt(t);wt((()=>{let t=St();i.add(t.dispose);let l=e.current;if(l&&"idle"!==s.current&&a.current)return t.dispose(),r.current(s.current),t.add(function(e,t,n,r){let o=n?"enter":"leave",a=St(),i=void 0!==r?function(e){let t={called:!1};return(...n)=>{if(!t.called)return t.called=!0,e(...n)}}(r):()=>{};"enter"===o&&(e.removeAttribute("hidden"),e.style.display="");let s=Tt(o,{enter:()=>t.enter,leave:()=>t.leave}),l=Tt(o,{enter:()=>t.enterTo,leave:()=>t.leaveTo}),c=Tt(o,{enter:()=>t.enterFrom,leave:()=>t.leaveFrom});return or(e,...t.enter,...t.enterTo,...t.enterFrom,...t.leave,...t.leaveFrom,...t.leaveTo,...t.entered),rr(e,...s,...c),a.nextFrame((()=>{or(e,...c),rr(e,...l),function(e,t){let n=St();if(!e)return n.dispose;let{transitionDuration:r,transitionDelay:o}=getComputedStyle(e),[a,i]=[r,o].map((e=>{let[t=0]=e.split(",").filter(Boolean).map((e=>e.includes("ms")?parseFloat(e):1e3*parseFloat(e))).sort(((e,t)=>t-e));return t}));if(a+i!==0){let r=n.addEventListener(e,"transitionend",(e=>{e.target===e.currentTarget&&(t(),r())}))}else t();n.add((()=>t())),n.dispose}(e,(()=>(or(e,...s),rr(e,...t.entered),i())))})),a.dispose}(l,n.current,"enter"===s.current,(()=>{t.dispose(),o.current(s.current)}))),t.dispose}),[t])})({container:h,classes:A,direction:j,onStart:kt((e=>{I.onStart(h,e,R)})),onStop:kt((e=>{I.onStop(h,e,L),"leave"===e&&!cr(I)&&(x("hidden"),E(h))}))}),(0,r.useEffect)((()=>{!P||(y===Gt.Hidden?C.current=null:C.current=b)}),[b,P,k]);let F=m,D={ref:g};return v&&b&&vt.isServer&&(F={...F,className:Ht(m.className,...A.current.enter,...A.current.enterFrom)}),r.createElement(lr.Provider,{value:I},r.createElement(on,{value:Tt(k,{visible:nn.Open,hidden:nn.Closed})|N.flags},Wt({ourProps:D,theirProps:F,defaultTag:"div",features:mr,visible:"visible"===k,name:"Transition.Child"})))})),gr=Qt((function(e,t){let{show:n,appear:o=!1,unmount:a,...i}=e,s=(0,r.useRef)(null),l=Ut(s,t);Ct();let c=rn();if(void 0===n&&null!==c&&(n=(c&nn.Open)===nn.Open),![!0,!1].includes(n))throw new Error("A is used but it is missing a `show={true | false}` prop.");let[u,p]=(0,r.useState)(n?"visible":"hidden"),d=ur((()=>{p("hidden")})),[f,m]=(0,r.useState)(!0),h=(0,r.useRef)([n]);wt((()=>{!1!==f&&h.current[h.current.length-1]!==n&&(h.current.push(n),m(!1))}),[h,n]);let g=(0,r.useMemo)((()=>({show:n,appear:o,initial:f})),[n,o,f]);(0,r.useEffect)((()=>{if(n)p("visible");else if(cr(d)){let e=s.current;if(!e)return;let t=e.getBoundingClientRect();0===t.x&&0===t.y&&0===t.width&&0===t.height&&p("hidden")}else p("hidden")}),[n,d]);let y={unmount:a};return r.createElement(lr.Provider,{value:d},r.createElement(ir.Provider,{value:g},Wt({ourProps:{...y,as:r.Fragment,children:r.createElement(hr,{ref:l,...y,...i})},theirProps:{},defaultTag:r.Fragment,features:mr,visible:"visible"===u,name:"Transition"})))})),yr=Qt((function(e,t){let n=null!==(0,r.useContext)(ir),o=null!==rn();return r.createElement(r.Fragment,null,!n&&o?r.createElement(gr,{ref:t,...e}):r.createElement(hr,{ref:t,...e}))})),br=Object.assign(gr,{Child:yr,Root:gr});var vr,wr={darkMode:!0,accentColor:"#8559F4"},kr={color:"#ffffff",backgroundColor:"#8559F4"},xr={openSourcesInNewTab:!1,prettySources:!1,persistMessagesBetweenSessions:!1,scrollToView:!0};!function(e){e.NoDocs="noDocs",e.FullDocs="fullDocs",e.None="none",e.Error="error"}(vr||(vr={}));var Sr="https://api.mendable.ai",_r="0.0.154";function Er(e){return mt(this,void 0,void 0,(function(){var t,n;return ht(this,(function(r){switch(r.label){case 0:return t="".concat(Sr,"/initializeMendable"),n=JSON.stringify({anon_key:e}),[4,fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:n})];case 1:return[4,r.sent().json()];case 2:return[2,r.sent()]}}))}))}function Cr(){return mt(this,void 0,void 0,(function(){var e;return ht(this,(function(t){switch(t.label){case 0:return e="".concat(Sr,"/getHiddenField"),[4,fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}})];case 1:return[4,t.sent().json()];case 2:return[2,t.sent()]}}))}))}function Ar(e,t){return mt(this,void 0,void 0,(function(){var n,r;return ht(this,(function(o){switch(o.label){case 0:return[4,fetch("".concat(Sr,"/updateMessageRating/").concat(e),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({ratingValue:t})})];case 1:return(n=o.sent()).ok?[3,3]:[4,n.text()];case 2:throw r=o.sent(),new Error("Error updating message rating: ".concat(r));case 3:return[2]}}))}))}function Or(e,t,n){return mt(this,void 0,void 0,(function(){var r,o;return ht(this,(function(a){switch(a.label){case 0:return r="".concat(Sr,"/keywordSearchFuzz"),o=JSON.stringify({question:e,company:t,project_id:n}),[4,fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:o})];case 1:return[4,a.sent().json()];case 2:return[2,a.sent()]}}))}))}function Tr(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}function Pr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function jr(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){s=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(s)throw a}}}}Tr('* {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n}\n\n* ::before {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n}\n\n* ::after {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n.ms-prose {\n color: var(--tw-prose-body);\n max-width: 65ch;\n}\n\n.ms-prose :where(p):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n}\n\n.ms-prose :where([class~="lead"]):not(:where([class~="ms-not-prose"] *)) {\n color: var(--tw-prose-lead);\n font-size: 1.25em;\n line-height: 1.6;\n margin-top: 1.2em;\n margin-bottom: 1.2em;\n}\n\n.ms-prose :where(a):not(:where([class~="ms-not-prose"] *)) {\n color: var(--tw-prose-links);\n text-decoration: underline;\n font-weight: 500;\n}\n\n.ms-prose :where(strong):not(:where([class~="ms-not-prose"] *)) {\n color: var(--tw-prose-bold);\n font-weight: 600;\n}\n\n.ms-prose :where(a strong):not(:where([class~="ms-not-prose"] *)) {\n color: inherit;\n}\n\n.ms-prose :where(blockquote strong):not(:where([class~="ms-not-prose"] *)) {\n color: inherit;\n}\n\n.ms-prose :where(thead th strong):not(:where([class~="ms-not-prose"] *)) {\n color: inherit;\n}\n\n.ms-prose :where(ol):not(:where([class~="ms-not-prose"] *)) {\n list-style-type: decimal;\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n padding-left: 1.625em;\n}\n\n.ms-prose :where(ol[type="A"]):not(:where([class~="ms-not-prose"] *)) {\n list-style-type: upper-alpha;\n}\n\n.ms-prose :where(ol[type="a"]):not(:where([class~="ms-not-prose"] *)) {\n list-style-type: lower-alpha;\n}\n\n.ms-prose :where(ol[type="A" s]):not(:where([class~="ms-not-prose"] *)) {\n list-style-type: upper-alpha;\n}\n\n.ms-prose :where(ol[type="a" s]):not(:where([class~="ms-not-prose"] *)) {\n list-style-type: lower-alpha;\n}\n\n.ms-prose :where(ol[type="I"]):not(:where([class~="ms-not-prose"] *)) {\n list-style-type: upper-roman;\n}\n\n.ms-prose :where(ol[type="i"]):not(:where([class~="ms-not-prose"] *)) {\n list-style-type: lower-roman;\n}\n\n.ms-prose :where(ol[type="I" s]):not(:where([class~="ms-not-prose"] *)) {\n list-style-type: upper-roman;\n}\n\n.ms-prose :where(ol[type="i" s]):not(:where([class~="ms-not-prose"] *)) {\n list-style-type: lower-roman;\n}\n\n.ms-prose :where(ol[type="1"]):not(:where([class~="ms-not-prose"] *)) {\n list-style-type: decimal;\n}\n\n.ms-prose :where(ul):not(:where([class~="ms-not-prose"] *)) {\n list-style-type: disc;\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n padding-left: 1.625em;\n}\n\n.ms-prose :where(ol > li):not(:where([class~="ms-not-prose"] *))::marker {\n font-weight: 400;\n color: var(--tw-prose-counters);\n}\n\n.ms-prose :where(ul > li):not(:where([class~="ms-not-prose"] *))::marker {\n color: var(--tw-prose-bullets);\n}\n\n.ms-prose :where(hr):not(:where([class~="ms-not-prose"] *)) {\n border-color: var(--tw-prose-hr);\n border-top-width: 1px;\n margin-top: 3em;\n margin-bottom: 3em;\n}\n\n.ms-prose :where(blockquote):not(:where([class~="ms-not-prose"] *)) {\n font-weight: 500;\n font-style: italic;\n color: var(--tw-prose-quotes);\n border-left-width: 0.25rem;\n border-left-color: var(--tw-prose-quote-borders);\n quotes: "\\201C""\\201D""\\2018""\\2019";\n margin-top: 1.6em;\n margin-bottom: 1.6em;\n padding-left: 1em;\n}\n\n.ms-prose :where(blockquote p:first-of-type):not(:where([class~="ms-not-prose"] *))::before {\n content: open-quote;\n}\n\n.ms-prose :where(blockquote p:last-of-type):not(:where([class~="ms-not-prose"] *))::after {\n content: close-quote;\n}\n\n.ms-prose :where(h1):not(:where([class~="ms-not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 800;\n font-size: 2.25em;\n margin-top: 0;\n margin-bottom: 0.8888889em;\n line-height: 1.1111111;\n}\n\n.ms-prose :where(h1 strong):not(:where([class~="ms-not-prose"] *)) {\n font-weight: 900;\n color: inherit;\n}\n\n.ms-prose :where(h2):not(:where([class~="ms-not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 700;\n font-size: 1.5em;\n margin-top: 2em;\n margin-bottom: 1em;\n line-height: 1.3333333;\n}\n\n.ms-prose :where(h2 strong):not(:where([class~="ms-not-prose"] *)) {\n font-weight: 800;\n color: inherit;\n}\n\n.ms-prose :where(h3):not(:where([class~="ms-not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n font-size: 1.25em;\n margin-top: 1.6em;\n margin-bottom: 0.6em;\n line-height: 1.6;\n}\n\n.ms-prose :where(h3 strong):not(:where([class~="ms-not-prose"] *)) {\n font-weight: 700;\n color: inherit;\n}\n\n.ms-prose :where(h4):not(:where([class~="ms-not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n margin-top: 1.5em;\n margin-bottom: 0.5em;\n line-height: 1.5;\n}\n\n.ms-prose :where(h4 strong):not(:where([class~="ms-not-prose"] *)) {\n font-weight: 700;\n color: inherit;\n}\n\n.ms-prose :where(img):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 2em;\n margin-bottom: 2em;\n}\n\n.ms-prose :where(figure > *):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.ms-prose :where(figcaption):not(:where([class~="ms-not-prose"] *)) {\n color: var(--tw-prose-captions);\n font-size: 0.875em;\n line-height: 1.4285714;\n margin-top: 0.8571429em;\n}\n\n.ms-prose :where(code):not(:where([class~="ms-not-prose"] *)) {\n color: var(--tw-prose-code);\n font-weight: 600;\n font-size: 0.875em;\n}\n\n.ms-prose :where(code):not(:where([class~="ms-not-prose"] *))::before {\n content: "`";\n}\n\n.ms-prose :where(code):not(:where([class~="ms-not-prose"] *))::after {\n content: "`";\n}\n\n.ms-prose :where(a code):not(:where([class~="ms-not-prose"] *)) {\n color: inherit;\n}\n\n.ms-prose :where(h1 code):not(:where([class~="ms-not-prose"] *)) {\n color: inherit;\n}\n\n.ms-prose :where(h2 code):not(:where([class~="ms-not-prose"] *)) {\n color: inherit;\n font-size: 0.875em;\n}\n\n.ms-prose :where(h3 code):not(:where([class~="ms-not-prose"] *)) {\n color: inherit;\n font-size: 0.9em;\n}\n\n.ms-prose :where(h4 code):not(:where([class~="ms-not-prose"] *)) {\n color: inherit;\n}\n\n.ms-prose :where(blockquote code):not(:where([class~="ms-not-prose"] *)) {\n color: inherit;\n}\n\n.ms-prose :where(thead th code):not(:where([class~="ms-not-prose"] *)) {\n color: inherit;\n}\n\n.ms-prose :where(pre):not(:where([class~="ms-not-prose"] *)) {\n color: var(--tw-prose-pre-code);\n background-color: var(--tw-prose-pre-bg);\n overflow-x: auto;\n font-weight: 400;\n font-size: 0.875em;\n line-height: 1.7142857;\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n border-radius: 0.375rem;\n padding-top: 0.8571429em;\n padding-right: 1.1428571em;\n padding-bottom: 0.8571429em;\n padding-left: 1.1428571em;\n}\n\n.ms-prose :where(pre code):not(:where([class~="ms-not-prose"] *)) {\n background-color: transparent;\n border-width: 0;\n border-radius: 0;\n padding: 0;\n font-weight: inherit;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n}\n\n.ms-prose :where(pre code):not(:where([class~="ms-not-prose"] *))::before {\n content: none;\n}\n\n.ms-prose :where(pre code):not(:where([class~="ms-not-prose"] *))::after {\n content: none;\n}\n\n.ms-prose :where(table):not(:where([class~="ms-not-prose"] *)) {\n width: 100%;\n table-layout: auto;\n text-align: left;\n margin-top: 2em;\n margin-bottom: 2em;\n font-size: 0.875em;\n line-height: 1.7142857;\n}\n\n.ms-prose :where(thead):not(:where([class~="ms-not-prose"] *)) {\n border-bottom-width: 1px;\n border-bottom-color: var(--tw-prose-th-borders);\n}\n\n.ms-prose :where(thead th):not(:where([class~="ms-not-prose"] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n vertical-align: bottom;\n padding-right: 0.5714286em;\n padding-bottom: 0.5714286em;\n padding-left: 0.5714286em;\n}\n\n.ms-prose :where(tbody tr):not(:where([class~="ms-not-prose"] *)) {\n border-bottom-width: 1px;\n border-bottom-color: var(--tw-prose-td-borders);\n}\n\n.ms-prose :where(tbody tr:last-child):not(:where([class~="ms-not-prose"] *)) {\n border-bottom-width: 0;\n}\n\n.ms-prose :where(tbody td):not(:where([class~="ms-not-prose"] *)) {\n vertical-align: baseline;\n}\n\n.ms-prose :where(tfoot):not(:where([class~="ms-not-prose"] *)) {\n border-top-width: 1px;\n border-top-color: var(--tw-prose-th-borders);\n}\n\n.ms-prose :where(tfoot td):not(:where([class~="ms-not-prose"] *)) {\n vertical-align: top;\n}\n\n.ms-prose {\n --tw-prose-body: #374151;\n --tw-prose-headings: #111827;\n --tw-prose-lead: #4b5563;\n --tw-prose-links: #111827;\n --tw-prose-bold: #111827;\n --tw-prose-counters: #6b7280;\n --tw-prose-bullets: #d1d5db;\n --tw-prose-hr: #e5e7eb;\n --tw-prose-quotes: #111827;\n --tw-prose-quote-borders: #e5e7eb;\n --tw-prose-captions: #6b7280;\n --tw-prose-code: #111827;\n --tw-prose-pre-code: #e5e7eb;\n --tw-prose-pre-bg: #1f2937;\n --tw-prose-th-borders: #d1d5db;\n --tw-prose-td-borders: #e5e7eb;\n --tw-prose-invert-body: #d1d5db;\n --tw-prose-invert-headings: #fff;\n --tw-prose-invert-lead: #9ca3af;\n --tw-prose-invert-links: #fff;\n --tw-prose-invert-bold: #fff;\n --tw-prose-invert-counters: #9ca3af;\n --tw-prose-invert-bullets: #4b5563;\n --tw-prose-invert-hr: #374151;\n --tw-prose-invert-quotes: #f3f4f6;\n --tw-prose-invert-quote-borders: #374151;\n --tw-prose-invert-captions: #9ca3af;\n --tw-prose-invert-code: #fff;\n --tw-prose-invert-pre-code: #d1d5db;\n --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);\n --tw-prose-invert-th-borders: #4b5563;\n --tw-prose-invert-td-borders: #374151;\n font-size: 1rem;\n line-height: 1.75;\n}\n\n.ms-prose :where(video):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 2em;\n margin-bottom: 2em;\n}\n\n.ms-prose :where(figure):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 2em;\n margin-bottom: 2em;\n}\n\n.ms-prose :where(li):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 0.5em;\n margin-bottom: 0.5em;\n}\n\n.ms-prose :where(ol > li):not(:where([class~="ms-not-prose"] *)) {\n padding-left: 0.375em;\n}\n\n.ms-prose :where(ul > li):not(:where([class~="ms-not-prose"] *)) {\n padding-left: 0.375em;\n}\n\n.ms-prose :where(.ms-prose > ul > li p):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 0.75em;\n margin-bottom: 0.75em;\n}\n\n.ms-prose :where(.ms-prose > ul > li > *:first-child):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 1.25em;\n}\n\n.ms-prose :where(.ms-prose > ul > li > *:last-child):not(:where([class~="ms-not-prose"] *)) {\n margin-bottom: 1.25em;\n}\n\n.ms-prose :where(.ms-prose > ol > li > *:first-child):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 1.25em;\n}\n\n.ms-prose :where(.ms-prose > ol > li > *:last-child):not(:where([class~="ms-not-prose"] *)) {\n margin-bottom: 1.25em;\n}\n\n.ms-prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 0.75em;\n margin-bottom: 0.75em;\n}\n\n.ms-prose :where(hr + *):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 0;\n}\n\n.ms-prose :where(h2 + *):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 0;\n}\n\n.ms-prose :where(h3 + *):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 0;\n}\n\n.ms-prose :where(h4 + *):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 0;\n}\n\n.ms-prose :where(thead th:first-child):not(:where([class~="ms-not-prose"] *)) {\n padding-left: 0;\n}\n\n.ms-prose :where(thead th:last-child):not(:where([class~="ms-not-prose"] *)) {\n padding-right: 0;\n}\n\n.ms-prose :where(tbody td, tfoot td):not(:where([class~="ms-not-prose"] *)) {\n padding-top: 0.5714286em;\n padding-right: 0.5714286em;\n padding-bottom: 0.5714286em;\n padding-left: 0.5714286em;\n}\n\n.ms-prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="ms-not-prose"] *)) {\n padding-left: 0;\n}\n\n.ms-prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="ms-not-prose"] *)) {\n padding-right: 0;\n}\n\n.ms-prose :where(.ms-prose > :first-child):not(:where([class~="ms-not-prose"] *)) {\n margin-top: 0;\n}\n\n.ms-prose :where(.ms-prose > :last-child):not(:where([class~="ms-not-prose"] *)) {\n margin-bottom: 0;\n}\n\n.ms-prose-invert {\n --tw-prose-body: var(--tw-prose-invert-body);\n --tw-prose-headings: var(--tw-prose-invert-headings);\n --tw-prose-lead: var(--tw-prose-invert-lead);\n --tw-prose-links: var(--tw-prose-invert-links);\n --tw-prose-bold: var(--tw-prose-invert-bold);\n --tw-prose-counters: var(--tw-prose-invert-counters);\n --tw-prose-bullets: var(--tw-prose-invert-bullets);\n --tw-prose-hr: var(--tw-prose-invert-hr);\n --tw-prose-quotes: var(--tw-prose-invert-quotes);\n --tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);\n --tw-prose-captions: var(--tw-prose-invert-captions);\n --tw-prose-code: var(--tw-prose-invert-code);\n --tw-prose-pre-code: var(--tw-prose-invert-pre-code);\n --tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);\n --tw-prose-th-borders: var(--tw-prose-invert-th-borders);\n --tw-prose-td-borders: var(--tw-prose-invert-td-borders);\n}\n\n.ms-visible {\n visibility: visible;\n}\n\n.ms-fixed {\n position: fixed;\n}\n\n.ms-absolute {\n position: absolute;\n}\n\n.ms-relative {\n position: relative;\n}\n\n.ms-inset-0 {\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px;\n}\n\n.ms-inset-x-0 {\n left: 0px;\n right: 0px;\n}\n\n.-ms-bottom-1 {\n bottom: -0.25rem;\n}\n\n.ms-bottom-0 {\n bottom: 0px;\n}\n\n.ms-bottom-4 {\n bottom: 1rem;\n}\n\n.ms-left-1 {\n left: 0.25rem;\n}\n\n.ms-left-1\\/2 {\n left: 50%;\n}\n\n.ms-right-2 {\n right: 0.5rem;\n}\n\n.ms-right-3 {\n right: 0.75rem;\n}\n\n.ms-right-4 {\n right: 1rem;\n}\n\n.ms-right-6 {\n right: 1.5rem;\n}\n\n.ms-right-8 {\n right: 2rem;\n}\n\n.ms-top-2 {\n top: 0.5rem;\n}\n\n.ms-top-full {\n top: 100%;\n}\n\n.\\!ms-z-\\[10001\\] {\n z-index: 10001 !important;\n}\n\n.-ms-z-10 {\n z-index: -10;\n}\n\n.ms-z-10 {\n z-index: 10;\n}\n\n.ms-z-\\[1000\\] {\n z-index: 1000;\n}\n\n.ms-z-\\[100\\] {\n z-index: 100;\n}\n\n.ms-float-right {\n float: right;\n}\n\n.ms-float-left {\n float: left;\n}\n\n.\\!ms-m-0 {\n margin: 0px !important;\n}\n\n.ms-m-0 {\n margin: 0px;\n}\n\n.ms-m-1 {\n margin: 0.25rem;\n}\n\n.\\!ms-my-4 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.ms-my-2 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.\\!ms-mb-0 {\n margin-bottom: 0px !important;\n}\n\n.\\!ms-ml-3 {\n margin-left: 0.75rem !important;\n}\n\n.\\!ms-mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.\\!ms-mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.ms-mb-0 {\n margin-bottom: 0px;\n}\n\n.ms-mb-1 {\n margin-bottom: 0.25rem;\n}\n\n.ms-mb-2 {\n margin-bottom: 0.5rem;\n}\n\n.ms-mb-4 {\n margin-bottom: 1rem;\n}\n\n.ms-ml-0 {\n margin-left: 0px;\n}\n\n.ms-ml-1 {\n margin-left: 0.25rem;\n}\n\n.ms-ml-11 {\n margin-left: 2.75rem;\n}\n\n.ms-ml-4 {\n margin-left: 1rem;\n}\n\n.ms-mr-1 {\n margin-right: 0.25rem;\n}\n\n.ms-mr-2 {\n margin-right: 0.5rem;\n}\n\n.ms-mr-4 {\n margin-right: 1rem;\n}\n\n.ms-mr-5 {\n margin-right: 1.25rem;\n}\n\n.ms-mt-0 {\n margin-top: 0px;\n}\n\n.ms-mt-1 {\n margin-top: 0.25rem;\n}\n\n.ms-mt-2 {\n margin-top: 0.5rem;\n}\n\n.ms-mt-20 {\n margin-top: 5rem;\n}\n\n.ms-mt-4 {\n margin-top: 1rem;\n}\n\n.ms-mt-6 {\n margin-top: 1.5rem;\n}\n\n.ms-block {\n display: block;\n}\n\n.ms-inline-block {\n display: inline-block;\n}\n\n.ms-flex {\n display: flex;\n}\n\n.ms-grid {\n display: grid;\n}\n\n.ms-hidden {\n display: none;\n}\n\n.ms-h-0 {\n height: 0px;\n}\n\n.ms-h-0\\.5 {\n height: 0.125rem;\n}\n\n.ms-h-1 {\n height: 0.25rem;\n}\n\n.ms-h-10 {\n height: 2.5rem;\n}\n\n.ms-h-12 {\n height: 3rem;\n}\n\n.ms-h-16 {\n height: 4rem;\n}\n\n.ms-h-4 {\n height: 1rem;\n}\n\n.ms-h-5 {\n height: 1.25rem;\n}\n\n.ms-h-6 {\n height: 1.5rem;\n}\n\n.ms-h-64 {\n height: 16rem;\n}\n\n.ms-h-8 {\n height: 2rem;\n}\n\n.ms-h-\\[95\\%\\] {\n height: 95%;\n}\n\n.ms-h-fit {\n height: -moz-fit-content;\n height: fit-content;\n}\n\n.ms-h-full {\n height: 100%;\n}\n\n.ms-h-screen {\n height: 100vh;\n}\n\n.ms-max-h-\\[200px\\] {\n max-height: 200px;\n}\n\n.ms-max-h-\\[275px\\] {\n max-height: 275px;\n}\n\n.ms-max-h-\\[340px\\] {\n max-height: 340px;\n}\n\n.ms-max-h-\\[550px\\] {\n max-height: 550px;\n}\n\n.ms-max-h-full {\n max-height: 100%;\n}\n\n.ms-min-h-\\[100px\\] {\n min-height: 100px;\n}\n\n.ms-min-h-\\[40px\\] {\n min-height: 40px;\n}\n\n.ms-min-h-full {\n min-height: 100%;\n}\n\n.ms-w-12 {\n width: 3rem;\n}\n\n.ms-w-16 {\n width: 4rem;\n}\n\n.ms-w-28 {\n width: 7rem;\n}\n\n.ms-w-4 {\n width: 1rem;\n}\n\n.ms-w-5 {\n width: 1.25rem;\n}\n\n.ms-w-6 {\n width: 1.5rem;\n}\n\n.ms-w-8 {\n width: 2rem;\n}\n\n.ms-w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n\n.ms-w-full {\n width: 100%;\n}\n\n.ms-min-w-0 {\n min-width: 0px;\n}\n\n.ms-min-w-\\[32px\\] {\n min-width: 32px;\n}\n\n.ms-min-w-\\[64px\\] {\n min-width: 64px;\n}\n\n.ms-max-w-full {\n max-width: 100%;\n}\n\n.ms-max-w-xs {\n max-width: 20rem;\n}\n\n.ms-flex-1 {\n flex: 1 1 0%;\n}\n\n.ms-flex-grow {\n flex-grow: 1;\n}\n\n.\\!-ms-translate-x-1 {\n --tw-translate-x: -0.25rem !important;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;\n}\n\n.\\!-ms-translate-x-1\\/2 {\n --tw-translate-x: -50% !important;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;\n}\n\n.-ms-rotate-45 {\n --tw-rotate: -45deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.-ms-rotate-90 {\n --tw-rotate: -90deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.ms-rotate-0 {\n --tw-rotate: 0deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.ms-rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.ms-rotate-45 {\n --tw-rotate: 45deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.ms-rotate-90 {\n --tw-rotate: 90deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.ms-scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.ms-scale-105 {\n --tw-scale-x: 1.05;\n --tw-scale-y: 1.05;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.ms-scale-95 {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.ms-transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n@keyframes ms-fade-in-up {\n\n 0% {\n opacity: 0;\n transform: translateY(10px);\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.ms-animate-fade-in-up {\n animation: ms-fade-in-up 0.4s ease-out;\n}\n\n@keyframes ms-pulse {\n\n 50% {\n opacity: .5;\n }\n}\n\n.ms-animate-pulse {\n animation: ms-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n\n@keyframes ms-spin {\n\n to {\n transform: rotate(360deg);\n }\n}\n\n.ms-animate-spin {\n animation: ms-spin 1s linear infinite;\n}\n\n.ms-cursor-pointer {\n cursor: pointer;\n}\n\n.ms-resize-none {\n resize: none;\n}\n\n.ms-list-inside {\n list-style-position: inside;\n}\n\n.ms-grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n\n.ms-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n.ms-flex-row {\n flex-direction: row;\n}\n\n.ms-flex-col {\n flex-direction: column;\n}\n\n.ms-flex-col-reverse {\n flex-direction: column-reverse;\n}\n\n.ms-flex-wrap {\n flex-wrap: wrap;\n}\n\n.ms-items-start {\n align-items: flex-start;\n}\n\n.ms-items-end {\n align-items: flex-end;\n}\n\n.ms-items-center {\n align-items: center;\n}\n\n.ms-justify-start {\n justify-content: flex-start;\n}\n\n.ms-justify-center {\n justify-content: center;\n}\n\n.ms-justify-between {\n justify-content: space-between;\n}\n\n.ms-gap-1 {\n gap: 0.25rem;\n}\n\n.ms-gap-2 {\n gap: 0.5rem;\n}\n\n.ms-space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n}\n\n.ms-self-end {\n align-self: flex-end;\n}\n\n.ms-overflow-auto {\n overflow: auto;\n}\n\n.ms-overflow-hidden {\n overflow: hidden;\n}\n\n.ms-overflow-y-auto {\n overflow-y: auto;\n}\n\n.ms-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ms-whitespace-nowrap {\n white-space: nowrap;\n}\n\n.ms-break-all {\n word-break: break-all;\n}\n\n.ms-rounded {\n border-radius: 0.25rem;\n}\n\n.ms-rounded-2xl {\n border-radius: 1rem;\n}\n\n.ms-rounded-full {\n border-radius: 9999px;\n}\n\n.ms-rounded-lg {\n border-radius: 0.5rem;\n}\n\n.ms-rounded-md {\n border-radius: 0.375rem;\n}\n\n.ms-rounded-xl {\n border-radius: 0.75rem;\n}\n\n.ms-rounded-b-md {\n border-bottom-right-radius: 0.375rem;\n border-bottom-left-radius: 0.375rem;\n}\n\n.ms-rounded-t-md {\n border-top-left-radius: 0.375rem;\n border-top-right-radius: 0.375rem;\n}\n\n.ms-rounded-t-xl {\n border-top-left-radius: 0.75rem;\n border-top-right-radius: 0.75rem;\n}\n\n.\\!ms-border-0 {\n border-width: 0px !important;\n}\n\n.ms-border {\n border-width: 1px;\n}\n\n.ms-border-0 {\n border-width: 0px;\n}\n\n.\\!ms-border-b {\n border-bottom-width: 1px !important;\n}\n\n.ms-border-b {\n border-bottom-width: 1px;\n}\n\n.\\!ms-border-gray-700 {\n --tw-border-opacity: 1 !important;\n border-color: rgb(55 65 81 / var(--tw-border-opacity)) !important;\n}\n\n.\\!ms-border-transparent {\n border-color: transparent !important;\n}\n\n.ms-border-gray-500 {\n --tw-border-opacity: 1;\n border-color: rgb(107 114 128 / var(--tw-border-opacity));\n}\n\n.ms-border-red-300 {\n --tw-border-opacity: 1;\n border-color: rgb(252 165 165 / var(--tw-border-opacity));\n}\n\n.ms-border-yellow-300 {\n --tw-border-opacity: 1;\n border-color: rgb(253 224 71 / var(--tw-border-opacity));\n}\n\n.ms-border-opacity-20 {\n --tw-border-opacity: 0.2;\n}\n\n.ms-border-opacity-50 {\n --tw-border-opacity: 0.5;\n}\n\n.\\!ms-bg-gray-800 {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity)) !important;\n}\n\n.\\!ms-bg-gray-900 {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(17 24 39 / var(--tw-bg-opacity)) !important;\n}\n\n.ms-bg-\\[\\#1a1a1a\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(26 26 26 / var(--tw-bg-opacity));\n}\n\n.ms-bg-\\[\\#3C3C3C\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(60 60 60 / var(--tw-bg-opacity));\n}\n\n.ms-bg-\\[\\#ECEDEE\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(236 237 238 / var(--tw-bg-opacity));\n}\n\n.ms-bg-\\[\\#ffffff\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n\n.ms-bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity));\n}\n\n.ms-bg-gray-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity));\n}\n\n.ms-bg-gray-400 {\n --tw-bg-opacity: 1;\n background-color: rgb(156 163 175 / var(--tw-bg-opacity));\n}\n\n.ms-bg-gray-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity));\n}\n\n.ms-bg-gray-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity));\n}\n\n.ms-bg-red-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 226 226 / var(--tw-bg-opacity));\n}\n\n.ms-bg-transparent {\n background-color: transparent;\n}\n\n.ms-bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n\n.ms-bg-yellow-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 249 195 / var(--tw-bg-opacity));\n}\n\n.\\!ms-bg-opacity-50 {\n --tw-bg-opacity: 0.5 !important;\n}\n\n.\\!ms-bg-opacity-75 {\n --tw-bg-opacity: 0.75 !important;\n}\n\n.ms-bg-opacity-0 {\n --tw-bg-opacity: 0;\n}\n\n.ms-bg-opacity-10 {\n --tw-bg-opacity: 0.1;\n}\n\n.ms-bg-opacity-100 {\n --tw-bg-opacity: 1;\n}\n\n.ms-bg-opacity-25 {\n --tw-bg-opacity: 0.25;\n}\n\n.ms-bg-opacity-5 {\n --tw-bg-opacity: 0.05;\n}\n\n.ms-bg-opacity-50 {\n --tw-bg-opacity: 0.5;\n}\n\n.ms-bg-opacity-75 {\n --tw-bg-opacity: 0.75;\n}\n\n.ms-bg-opacity-80 {\n --tw-bg-opacity: 0.8;\n}\n\n.\\!ms-fill-gray-800 {\n fill: #1f2937 !important;\n}\n\n.\\!ms-fill-inherit {\n fill: inherit !important;\n}\n\n.\\!ms-fill-white {\n fill: #fff !important;\n}\n\n.ms-fill-gray-400 {\n fill: #9ca3af;\n}\n\n.ms-fill-gray-500 {\n fill: #6b7280;\n}\n\n.ms-fill-gray-800 {\n fill: #1f2937;\n}\n\n.ms-fill-white {\n fill: #fff;\n}\n\n.ms-fill-yellow-500 {\n fill: #eab308;\n}\n\n.ms-stroke-inherit {\n stroke: inherit;\n}\n\n.ms-stroke-white {\n stroke: #fff;\n}\n\n.\\!ms-p-0 {\n padding: 0px !important;\n}\n\n.ms-p-0 {\n padding: 0px;\n}\n\n.ms-p-0\\.5 {\n padding: 0.125rem;\n}\n\n.ms-p-1 {\n padding: 0.25rem;\n}\n\n.ms-p-2 {\n padding: 0.5rem;\n}\n\n.ms-p-20 {\n padding: 5rem;\n}\n\n.ms-p-4 {\n padding: 1rem;\n}\n\n.ms-p-\\[0\\.5px\\] {\n padding: 0.5px;\n}\n\n.ms-px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n\n.ms-px-1\\.5 {\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n}\n\n.ms-px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n.ms-px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n\n.ms-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.ms-px-\\[7px\\] {\n padding-left: 7px;\n padding-right: 7px;\n}\n\n.ms-px-\\[8px\\] {\n padding-left: 8px;\n padding-right: 8px;\n}\n\n.ms-py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n.ms-py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n\n.ms-py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.ms-py-\\[1px\\] {\n padding-top: 1px;\n padding-bottom: 1px;\n}\n\n.ms-py-\\[2px\\] {\n padding-top: 2px;\n padding-bottom: 2px;\n}\n\n.ms-pb-2 {\n padding-bottom: 0.5rem;\n}\n\n.ms-pb-4 {\n padding-bottom: 1rem;\n}\n\n.ms-pl-0 {\n padding-left: 0px;\n}\n\n.ms-pl-1 {\n padding-left: 0.25rem;\n}\n\n.ms-pl-2 {\n padding-left: 0.5rem;\n}\n\n.ms-pl-4 {\n padding-left: 1rem;\n}\n\n.ms-pl-8 {\n padding-left: 2rem;\n}\n\n.ms-pr-1 {\n padding-right: 0.25rem;\n}\n\n.ms-pr-2 {\n padding-right: 0.5rem;\n}\n\n.ms-pr-4 {\n padding-right: 1rem;\n}\n\n.ms-pt-2 {\n padding-top: 0.5rem;\n}\n\n.ms-text-left {\n text-align: left;\n}\n\n.ms-text-center {\n text-align: center;\n}\n\n.ms-align-middle {\n vertical-align: middle;\n}\n\n.ms-font-sans {\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n}\n\n.ms-text-\\[10px\\] {\n font-size: 10px;\n}\n\n.ms-text-\\[8px\\] {\n font-size: 8px;\n}\n\n.ms-text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n.ms-text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.ms-text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n\n.ms-text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n\n.ms-font-bold {\n font-weight: 700;\n}\n\n.ms-font-medium {\n font-weight: 500;\n}\n\n.ms-font-normal {\n font-weight: 400;\n}\n\n.ms-font-thin {\n font-weight: 100;\n}\n\n.ms-leading-3 {\n line-height: .75rem;\n}\n\n.ms-leading-4 {\n line-height: 1rem;\n}\n\n.\\!ms-text-gray-400 {\n --tw-text-opacity: 1 !important;\n color: rgb(156 163 175 / var(--tw-text-opacity)) !important;\n}\n\n.\\!ms-text-white {\n --tw-text-opacity: 1 !important;\n color: rgb(255 255 255 / var(--tw-text-opacity)) !important;\n}\n\n.ms-text-\\[\\#020202\\] {\n --tw-text-opacity: 1;\n color: rgb(2 2 2 / var(--tw-text-opacity));\n}\n\n.ms-text-\\[\\#e1e1e1\\] {\n --tw-text-opacity: 1;\n color: rgb(225 225 225 / var(--tw-text-opacity));\n}\n\n.ms-text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n\n.ms-text-gray-100 {\n --tw-text-opacity: 1;\n color: rgb(243 244 246 / var(--tw-text-opacity));\n}\n\n.ms-text-gray-200 {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity));\n}\n\n.ms-text-gray-400 {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity));\n}\n\n.ms-text-gray-50 {\n --tw-text-opacity: 1;\n color: rgb(249 250 251 / var(--tw-text-opacity));\n}\n\n.ms-text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity));\n}\n\n.ms-text-gray-800 {\n --tw-text-opacity: 1;\n color: rgb(31 41 55 / var(--tw-text-opacity));\n}\n\n.ms-text-gray-900 {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity));\n}\n\n.ms-text-green-500 {\n --tw-text-opacity: 1;\n color: rgb(34 197 94 / var(--tw-text-opacity));\n}\n\n.ms-text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity));\n}\n\n.ms-text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.ms-text-opacity-100 {\n --tw-text-opacity: 1;\n}\n\n.ms-text-opacity-50 {\n --tw-text-opacity: 0.5;\n}\n\n.ms-underline {\n text-decoration-line: underline;\n}\n\n.ms-no-underline {\n text-decoration-line: none;\n}\n\n.ms-opacity-0 {\n opacity: 0;\n}\n\n.ms-opacity-10 {\n opacity: 0.1;\n}\n\n.ms-opacity-100 {\n opacity: 1;\n}\n\n.ms-opacity-60 {\n opacity: 0.6;\n}\n\n.ms-opacity-75 {\n opacity: 0.75;\n}\n\n.ms-shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.ms-shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.ms-shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.ms-outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.ms-ring-0 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.ms-ring-transparent {\n --tw-ring-color: transparent;\n}\n\n.ms-transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.ms-transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.ms-transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.ms-delay-75 {\n transition-delay: 75ms;\n}\n\n.ms-duration-100 {\n transition-duration: 100ms;\n}\n\n.ms-duration-200 {\n transition-duration: 200ms;\n}\n\n.ms-duration-300 {\n transition-duration: 300ms;\n}\n\n.ms-ease-in {\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n}\n\n.ms-ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.ms-ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n.ms-content-none {\n --tw-content: none;\n content: var(--tw-content);\n}\n\n*,\n::before,\n::after {\n border-width: 0;\n border-style: solid;\n border-color: #ffffff00;\n}\n\n::before,\n::after {\n --tw-content: "";\n}\n\nhtml {\n -webkit-text-size-adjust: 100%;\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,\n "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif,\n "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n}\n\n.messageIconContainer img {\n max-width: 100%;\n height: auto;\n object-fit: contain;\n overflow: hidden;\n}\n\n.ms-mendable-highlight pre[class*="language-"] {\n color: #f8fafc !important;\n}\n\n.ms-mendable-highlight .token.tag,\n.ms-mendable-highlight .token.class-name,\n.ms-mendable-highlight .token.selector,\n.ms-mendable-highlight .token.selector .class,\n.ms-mendable-highlight .token.selector.class,\n.ms-mendable-highlight .token.function {\n color: #f472b6 !important;\n}\n\n.ms-mendable-highlight .token.attr-name,\n.ms-mendable-highlight .token.keyword,\n.ms-mendable-highlight .token.rule,\n.ms-mendable-highlight .token.pseudo-class,\n.ms-mendable-highlight .token.important {\n color: #cbd5e1 !important;\n}\n\n.ms-mendable-highlight .token.module {\n color: #f472b6 !important;\n}\n\n.ms-mendable-highlight .token.attr-value,\n.ms-mendable-highlight .token.class,\n.ms-mendable-highlight .token.string,\n.ms-mendable-highlight .token.property {\n color: #7dd3fc !important;\n}\n\n.ms-mendable-highlight .token.punctuation,\n.ms-mendable-highlight .token.attr-equals {\n color: #64748b !important;\n}\n\n.ms-mendable-highlight .token.unit,\n.ms-mendable-highlight .language-css .token.function {\n color: #99f6e4 !important;\n}\n\n.ms-mendable-highlight .token.comment,\n.ms-mendable-highlight .token.operator,\n.ms-mendable-highlight .token.combinator {\n color: #94a3b8 !important;\n}\n.ms-mendable-highlight .token.plain {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.variable {\n color: #ffffff;\n}\n\n.ms-mendable-highlight .token.boolean {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.number {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.constant {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.symbol {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.deleted {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.inserted {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.operator {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.prolog {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.doctype {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.entity {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.url {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.variable {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.regex {\n color: #ffffff;\n}\n\n.ms-mendable-highlight .token.atrule {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.keyword {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.function {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.hexcode {\n color: #ffffff;\n}\n.ms-mendable-highlight .token.entity {\n color: #ffffff;\n}\n\n.ms-mendable-highlight .token.bold {\n font-weight: bold;\n}\n\n\n\n\n.ms-mendable-highlight-light code[class*="language-"],\n.ms-mendable-highlight-light pre[class*="language-"] {\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n color: #90a4ae !important;;\n background: #fafafa !important;;\n font-family: Roboto Mono, monospace;\n font-size: 1em;\n line-height: 1.5em;\n tab-size: 4;\n\n -webkit-hyphens: none;\n hyphens: none;\n}\n.ms-mendable-highlight-light code[class*="language-"]::selection,\n.ms-mendable-highlight-light pre[class*="language-"]::selection,\n.ms-mendable-highlight-light code[class*="language-"] ::selection,\n.ms-mendable-highlight-light pre[class*="language-"] ::selection {\n background: #cceae7;\n color: #263238;\n}\n.ms-mendable-highlight-light :not(pre) > code[class*="language-"] {\n white-space: normal;\n border-radius: 0.2em;\n padding: 0.1em;\n}\n.ms-mendable-highlight-light pre[class*="language-"] {\n overflow: auto;\n position: relative;\n margin: 0.5em 0;\n padding: 1.25em 1em;\n}\n\n.ms-mendable-highlight-light .language-css > code,\n.ms-mendable-highlight-light .language-sass > code,\n.ms-mendable-highlight-light .language-scss > code {\n color: #f76d47;\n}\n.ms-mendable-highlight-light [class*="language-"] .namespace {\n opacity: 0.7;\n}\n.ms-mendable-highlight-light .token.atrule {\n color: #7c4dff;\n}\n.ms-mendable-highlight-light .token.attr-name {\n color: #313335;\n}\n.ms-mendable-highlight-light .token.attr-value {\n color: #f6a434;\n}\n.ms-mendable-highlight-light .token.attribute {\n color: #f6a434;\n}\n.ms-mendable-highlight-light .token.boolean {\n color: #7c4dff;\n}\n.ms-mendable-highlight-light .token.builtin {\n color: #313335;\n}\n.ms-mendable-highlight-light .token.cdata {\n color: #313335;\n}\n.ms-mendable-highlight-light .token.char {\n color: #313335;\n}\n.ms-mendable-highlight-light .token.class {\n color: #313335;\n}\n.ms-mendable-highlight-light .token.class-name {\n color: #6182b8;\n}\n.ms-mendable-highlight-light .token.comment {\n color: #78878f;\n}\n.ms-mendable-highlight-light .token.property-access {\n color: #313335;\n}\n.ms-mendable-highlight-light .token.parameter {\n color: #f6a434;\n}\n.ms-mendable-highlight-light .token.constant {\n color: #7c4dff;\n}\n.ms-mendable-highlight-light .token.deleted {\n color: #e53935;\n}\n.ms-mendable-highlight-light .token.doctype {\n color: #aabfc9;\n}\n.ms-mendable-highlight-light .token.entity {\n color: #e53935;\n}\n.ms-mendable-highlight-light .token.function {\n color: rgb(71, 49, 128);\n}\n.ms-mendable-highlight-light .token.hexcode {\n color: #f76d47;\n}\n.ms-mendable-highlight-light .token.imports {\n color: rgb(26, 25, 25);\n}\n.ms-mendable-highlight-light .token.id {\n color: #7c4dff;\n font-weight: bold;\n}\n.ms-mendable-highlight-light .token.maybe-class-name {\n color: #7c4dff;\n}\n\n.ms-mendable-highlight-light .token.important {\n color: #7c4dff;\n font-weight: bold;\n}\n.ms-mendable-highlight-light .token.inserted {\n color: #313335;\n}\n.ms-mendable-highlight-light .token.keyword {\n color: #7c4dff;\n}\n.ms-mendable-highlight-light .token.number {\n color: #f76d47;\n}\n.ms-mendable-highlight-light .token.operator {\n color: #313335;\n}\n.ms-mendable-highlight-light .token.prolog {\n color: #313335;\n}\n\n.ms-mendable-highlight-light .token.plain {\n color: #313335;\n}\n.ms-mendable-highlight-light .token.property {\n color: #313335;\n}\n.ms-mendable-highlight-light .token.pseudo-class {\n color: #f6a434;\n}\n.ms-mendable-highlight-light .token.pseudo-element {\n color: #f6a434;\n}\n.ms-mendable-highlight-light .token.punctuation {\n color: #313335;\n}\n.ms-mendable-highlight-light .token.regex {\n color: #6182b8;\n}\n.ms-mendable-highlight-light .token.selector {\n color: #313335;\n}\n.ms-mendable-highlight-light .token.string {\n color: #f6a434;\n}\n.ms-mendable-highlight-light .token.symbol {\n color: #7c4dff;\n}\n.ms-mendable-highlight-light .token.tag {\n color: #313335;\n}\n.ms-mendable-highlight-light .token.unit {\n color: #f76d47;\n}\n.ms-mendable-highlight-light .token.url {\n color: #313335;\n}\n.ms-mendable-highlight-light .token.variable {\n color: #5e6164;\n}\n\n\n\n.ms-qs-sug::-webkit-scrollbar {\n width: 3px;\n height: 3px; /* Add height for horizontal scrollbar */\n}\n\n.ms-qs-sug::-webkit-scrollbar-track {\n background-color: transparent;\n}\n\n.ms-qs-sug::-webkit-scrollbar-thumb {\n background-color: #d1d5db80;\n border-radius: 1px;\n}\n\n/* Add styles for horizontal scrollbar */\n.ms-qs-sug::-webkit-scrollbar-corner {\n background-color: transparent;\n}\n\n.highlightedText {\n line-height: 1.2em;\n max-height: 2.4em; /* Twice the line-height */\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.placeholder\\:ms-text-gray-400::placeholder {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity));\n}\n\n.before\\:ms-content-none::before {\n --tw-content: none;\n content: var(--tw-content);\n}\n\n.after\\:ms-content-none::after {\n --tw-content: none;\n content: var(--tw-content);\n}\n\n.hover\\:\\!ms-cursor-pointer:hover {\n cursor: pointer !important;\n}\n\n.hover\\:ms-cursor-pointer:hover {\n cursor: pointer;\n}\n\n.hover\\:ms-cursor-text:hover {\n cursor: text;\n}\n\n.hover\\:ms-border-gray-100:hover {\n --tw-border-opacity: 1;\n border-color: rgb(243 244 246 / var(--tw-border-opacity));\n}\n\n.hover\\:ms-border-gray-800:hover {\n --tw-border-opacity: 1;\n border-color: rgb(31 41 55 / var(--tw-border-opacity));\n}\n\n.hover\\:\\!ms-bg-gray-800:hover {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity)) !important;\n}\n\n.hover\\:ms-bg-black:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity));\n}\n\n.hover\\:ms-bg-gray-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity));\n}\n\n.hover\\:ms-bg-white:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n\n.hover\\:\\!ms-bg-opacity-75:hover {\n --tw-bg-opacity: 0.75 !important;\n}\n\n.hover\\:ms-bg-opacity-10:hover {\n --tw-bg-opacity: 0.1;\n}\n\n.hover\\:ms-bg-opacity-25:hover {\n --tw-bg-opacity: 0.25;\n}\n\n.hover\\:ms-bg-opacity-5:hover {\n --tw-bg-opacity: 0.05;\n}\n\n.hover\\:ms-bg-opacity-75:hover {\n --tw-bg-opacity: 0.75;\n}\n\n.hover\\:ms-bg-opacity-80:hover {\n --tw-bg-opacity: 0.8;\n}\n\n.hover\\:\\!ms-text-white:hover {\n --tw-text-opacity: 1 !important;\n color: rgb(255 255 255 / var(--tw-text-opacity)) !important;\n}\n\n.hover\\:ms-text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.hover\\:ms-shadow-md:hover {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.focus\\:ms-z-10:focus {\n z-index: 10;\n}\n\n.focus\\:ms-bg-gray-800:focus {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity));\n}\n\n.focus\\:ms-bg-opacity-75:focus {\n --tw-bg-opacity: 0.75;\n}\n\n.focus\\:ms-fill-white:focus {\n fill: #fff;\n}\n\n.focus\\:ms-text-white:focus {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.focus\\:ms-outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.focus\\:ms-ring-0:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.focus\\:ms-ring-transparent:focus {\n --tw-ring-color: transparent;\n}\n\n.disabled\\:ms-bg-opacity-10:disabled {\n --tw-bg-opacity: 0.1;\n}\n\n.prose-headings\\:ms-text-gray-900 :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~="ms-not-prose"] *))) {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity));\n}\n\n.prose-headings\\:ms-text-white :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~="ms-not-prose"] *))) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.prose-p\\:ms-text-gray-900 :is(:where(p):not(:where([class~="ms-not-prose"] *))) {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity));\n}\n\n.prose-p\\:ms-text-white :is(:where(p):not(:where([class~="ms-not-prose"] *))) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.prose-a\\:ms-text-gray-900 :is(:where(a):not(:where([class~="ms-not-prose"] *))) {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity));\n}\n\n.prose-a\\:ms-text-white :is(:where(a):not(:where([class~="ms-not-prose"] *))) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.prose-blockquote\\:ms-text-gray-900 :is(:where(blockquote):not(:where([class~="ms-not-prose"] *))) {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity));\n}\n\n.prose-blockquote\\:ms-text-white :is(:where(blockquote):not(:where([class~="ms-not-prose"] *))) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.prose-strong\\:ms-text-gray-900 :is(:where(strong):not(:where([class~="ms-not-prose"] *))) {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity));\n}\n\n.prose-strong\\:ms-text-white :is(:where(strong):not(:where([class~="ms-not-prose"] *))) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.prose-code\\:ms-text-gray-100 :is(:where(code):not(:where([class~="ms-not-prose"] *))) {\n --tw-text-opacity: 1;\n color: rgb(243 244 246 / var(--tw-text-opacity));\n}\n\n.prose-code\\:ms-text-white :is(:where(code):not(:where([class~="ms-not-prose"] *))) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n.prose-pre\\:ms-bg-\\[\\#1f2937\\] :is(:where(pre):not(:where([class~="ms-not-prose"] *))) {\n --tw-bg-opacity: 1;\n background-color: rgb(31 41 55 / var(--tw-bg-opacity));\n}\n\n.prose-pre\\:ms-bg-\\[\\#f4f4f4\\] :is(:where(pre):not(:where([class~="ms-not-prose"] *))) {\n --tw-bg-opacity: 1;\n background-color: rgb(244 244 244 / var(--tw-bg-opacity));\n}\n\n.prose-li\\:ms-text-gray-900 :is(:where(li):not(:where([class~="ms-not-prose"] *))) {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity));\n}\n\n.prose-li\\:ms-text-white :is(:where(li):not(:where([class~="ms-not-prose"] *))) {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n\n@media (min-width: 640px) {\n\n .sm\\:ms-mt-0 {\n margin-top: 0px;\n }\n\n .sm\\:ms-mt-2 {\n margin-top: 0.5rem;\n }\n\n .sm\\:ms-mt-4 {\n margin-top: 1rem;\n }\n\n .sm\\:ms-flex {\n display: flex;\n }\n\n .sm\\:ms-hidden {\n display: none;\n }\n\n .sm\\:ms-h-6 {\n height: 1.5rem;\n }\n\n .sm\\:ms-h-8 {\n height: 2rem;\n }\n\n .sm\\:ms-w-6 {\n width: 1.5rem;\n }\n\n .sm\\:ms-w-8 {\n width: 2rem;\n }\n\n .sm\\:ms-w-\\[480px\\] {\n width: 480px;\n }\n\n .sm\\:ms-w-fit {\n width: -moz-fit-content;\n width: fit-content;\n }\n\n .sm\\:ms-min-w-0 {\n min-width: 0px;\n }\n\n .sm\\:ms-min-w-\\[32px\\] {\n min-width: 32px;\n }\n\n .sm\\:ms-max-w-\\[275px\\] {\n max-width: 275px;\n }\n\n .sm\\:ms-max-w-\\[400px\\] {\n max-width: 400px;\n }\n\n .sm\\:ms-max-w-\\[800px\\] {\n max-width: 800px;\n }\n\n .sm\\:ms-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n\n .sm\\:ms-flex-row {\n flex-direction: row;\n }\n\n .sm\\:ms-flex-wrap {\n flex-wrap: wrap;\n }\n\n .sm\\:ms-overflow-hidden {\n overflow: hidden;\n }\n\n .sm\\:ms-p-0 {\n padding: 0px;\n }\n\n .sm\\:ms-p-2 {\n padding: 0.5rem;\n }\n\n .sm\\:ms-p-4 {\n padding: 1rem;\n }\n\n .sm\\:ms-py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n }\n\n .sm\\:ms-pb-4 {\n padding-bottom: 1rem;\n }\n\n .sm\\:ms-pl-4 {\n padding-left: 1rem;\n }\n\n .sm\\:ms-pr-2 {\n padding-right: 0.5rem;\n }\n\n .sm\\:ms-pr-4 {\n padding-right: 1rem;\n }\n\n .sm\\:ms-text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n }\n\n .sm\\:ms-text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n\n .sm\\:ms-text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n }\n}\n');var Gr=String.fromCharCode,Wr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Yr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",Kr={};function Qr(e,t){if(!Kr[e]){Kr[e]={};for(var n=0;n>>8,n[2*r+1]=a%256}return n},decompressFromUint8Array:function(e){if(null==e)return Xr.decompress(e);for(var t=new Array(e.length/2),n=0,r=t.length;n>=1}else{for(o=1,r=0;r>=1}0==--c&&(c=Math.pow(2,p),p++),delete h[l]}else for(o=m[l],r=0;r
>=1;0==--c&&(c=Math.pow(2,p),p++),m[s]=u++,l=String(i)}if(""!==l){if(Object.prototype.hasOwnProperty.call(h,l)){if(l.charCodeAt(0)<256){for(r=0;r
>=1}else{for(o=1,r=0;r
>=1}0==--c&&(c=Math.pow(2,p),p++),delete h[l]}else for(o=m[l],r=0;r
>=1;0==--c&&(c=Math.pow(2,p),p++)}for(o=2,r=0;r
>=1;for(;;){if(d<<=1,f==t-1){g.push(n(d));break}f++}return g.join("")},decompress:function(e){return null==e?"":""==e?null:Xr._decompress(e.length,32768,(function(t){return e.charCodeAt(t)}))},_decompress:function(e,t,n){var r,o,a,i,s,l,c,u=[],p=[],d={val:n(0),position:t,index:1},f=4,m=4,h=3,g="";for(r=0;r<3;r+=1)u[r]=r;for(a=0,s=Math.pow(2,2),l=1;l!=s;)i=d.val&d.position,d.position>>=1,0==d.position&&(d.position=t,d.val=n(d.index++)),a|=(i>0?1:0)*l,l<<=1;switch(a){case 0:for(a=0,s=Math.pow(2,8),l=1;l!=s;)i=d.val&d.position,d.position>>=1,0==d.position&&(d.position=t,d.val=n(d.index++)),a|=(i>0?1:0)*l,l<<=1;c=Gr(a);break;case 1:for(a=0,s=Math.pow(2,16),l=1;l!=s;)i=d.val&d.position,d.position>>=1,0==d.position&&(d.position=t,d.val=n(d.index++)),a|=(i>0?1:0)*l,l<<=1;c=Gr(a);break;case 2:return""}for(u[3]=c,o=c,p.push(c);;){if(d.index>e)return"";for(a=0,s=Math.pow(2,h),l=1;l!=s;)i=d.val&d.position,d.position>>=1,0==d.position&&(d.position=t,d.val=n(d.index++)),a|=(i>0?1:0)*l,l<<=1;switch(c=a){case 0:for(a=0,s=Math.pow(2,8),l=1;l!=s;)i=d.val&d.position,d.position>>=1,0==d.position&&(d.position=t,d.val=n(d.index++)),a|=(i>0?1:0)*l,l<<=1;u[m++]=Gr(a),c=m-1,f--;break;case 1:for(a=0,s=Math.pow(2,16),l=1;l!=s;)i=d.val&d.position,d.position>>=1,0==d.position&&(d.position=t,d.val=n(d.index++)),a|=(i>0?1:0)*l,l<<=1;u[m++]=Gr(a),c=m-1,f--;break;case 2:return p.join("")}if(0==f&&(f=Math.pow(2,h),h++),u[c])g=u[c];else{if(c!==m)return null;g=o+o.charAt(0)}p.push(g),u[m++]=o+g.charAt(0),o=g,0==--f&&(f=Math.pow(2,h),h++)}}},Zr={DEBUG:!1,LIB_VERSION:"1.46.2"},Jr=Array.prototype,eo=Object.prototype,to=eo.toString,no=eo.hasOwnProperty,ro="undefined"!=typeof window?window:{},oo=ro.navigator||{userAgent:""},ao=ro.document||{},io=oo.userAgent,so=Jr.forEach,lo=Jr.indexOf,co=Array.isArray,uo={},po=function(){if(Zr.DEBUG&&!So(window.console)&&window.console){for(var e=("__rrweb_original__"in window.console.log?window.console.log.__rrweb_original__:window.console.log),t=arguments.length,n=new Array(t),r=0;r1?t-1:0),r=1;r0&&(t[n]=e)})),t},Po=["$performance_raw"];function jo(e,t){return n=e,r=function(e,n){return n&&Po.indexOf(n)>-1?e:"string"==typeof e&&null!==t?e.slice(0,t):e},o=new Set,function e(t,n){return t!==Object(t)?r?r(t,n):t:o.has(t)?void 0:(o.add(t),vo(t)?(a=[],yo(t,(function(t){a.push(e(t))}))):(a={},go(t,(function(t,n){o.has(t)||(a[n]=e(t,n))}))),a);var a}(n);var n,r,o}function No(e){var t,n,r,o,a,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s=0,l=0,c="",u=[];if(!e)return e;e=Ro(e);do{t=(a=e.charCodeAt(s++)<<16|e.charCodeAt(s++)<<8|e.charCodeAt(s++))>>18&63,n=a>>12&63,r=a>>6&63,o=63&a,u[l++]=i.charAt(t)+i.charAt(n)+i.charAt(r)+i.charAt(o)}while(s127&&i<2048?String.fromCharCode(i>>6|192,63&i|128):String.fromCharCode(i>>12|224,i>>6&63|128,63&i|128),null!==s&&(n>t&&(a+=e.substring(t,n)),a+=s,t=n=o+1)}return n>t&&(a+=e.substring(t,e.length)),a},Lo=function(){var e=function(){for(var e=(new Date).valueOf(),t=0;e==(new Date).valueOf();)t++;return e.toString(16)+t.toString(16)};return function(){var t="undefined"!=typeof window?(window.screen.height*window.screen.width).toString(16):"0";return e()+"-"+Math.random().toString(16).replace(".","")+"-"+function(){var e,t,n=io,r=0,o=[];function a(e,t){var n,r=0;for(n=0;n=4&&(r=a(r,o),o=[]);return o.length>0&&(r=a(r,o)),r.toString(16)}()+"-"+t+"-"+e()}}(),Io=function(e,t){var n=t.replace(/[[]/,"\\[").replace(/[\]]/,"\\]"),r=new RegExp("[\\?&]"+n+"=([^]*)").exec(e);if(null===r||r&&"string"!=typeof r[1]&&r[1].length)return"";var o=r[1];try{o=decodeURIComponent(o)}catch(e){fo("Skipping decoding for malformed query param: "+o)}return o.replace(/\+/g," ")},Fo=function(e,t){var n=e.match(new RegExp(t+"=([^&]*)"));return n?n[1]:null},Do=function(){function e(t){return t&&(t.preventDefault=e.preventDefault,t.stopPropagation=e.stopPropagation),t}return e.preventDefault=function(){this.returnValue=!1},e.stopPropagation=function(){this.cancelBubble=!0},function(t,n,r,o,a){if(t)if(t.addEventListener&&!o)t.addEventListener(n,r,!!a);else{var i="on"+n,s=t[i];t[i]=function(t,n,r){return function(o){if(o=o||e(window.event)){var a,i=!0;wo(r)&&(a=r(o));var s=n.call(t,o);return!1!==a&&!1!==s||(i=!1),i}}}(t,r,s)}else fo("No valid element provided to register_event")}}(),Mo={campaignParams:function(){var e="utm_source utm_medium utm_campaign utm_content utm_term gclid fbclid msclkid".split(" "),t={};return go(e,(function(e){var n=Io(ao.URL,e);n.length&&(t[e]=n)})),t},searchEngine:function(e){return 0===e.search("https?://(.*)google.([^/?]*)")?"google":0===e.search("https?://(.*)bing.com")?"bing":0===e.search("https?://(.*)yahoo.com")?"yahoo":0===e.search("https?://(.*)duckduckgo.com")?"duckduckgo":null},searchInfo:function(e){var t=Mo.searchEngine(e),n="yahoo"!=t?"q":"p",r={};if(null!==t){r.$search_engine=t;var o=Io(e,n);o.length&&(r.ph_keyword=o)}return r},browser:function(e,t,n){return t=t||"",n||ko(e," OPR/")?ko(e,"Mini")?"Opera Mini":"Opera":/(BlackBerry|PlayBook|BB10)/i.test(e)?"BlackBerry":ko(e,"IEMobile")||ko(e,"WPDesktop")?"Internet Explorer Mobile":ko(e,"SamsungBrowser/")?"Samsung Internet":ko(e,"Edge")||ko(e,"Edg/")?"Microsoft Edge":ko(e,"FBIOS")?"Facebook Mobile":ko(e,"Chrome")?"Chrome":ko(e,"CriOS")?"Chrome iOS":ko(e,"UCWEB")||ko(e,"UCBrowser")?"UC Browser":ko(e,"FxiOS")?"Firefox iOS":ko(t,"Apple")?ko(e,"Mobile")?"Mobile Safari":"Safari":ko(e,"Android")?"Android Mobile":ko(e,"Konqueror")?"Konqueror":ko(e,"Firefox")?"Firefox":ko(e,"MSIE")||ko(e,"Trident/")?"Internet Explorer":ko(e,"Gecko")?"Mozilla":""},browserVersion:function(e,t,n){var r={"Internet Explorer Mobile":/rv:(\d+(\.\d+)?)/,"Microsoft Edge":/Edge?\/(\d+(\.\d+)?)/,Chrome:/Chrome\/(\d+(\.\d+)?)/,"Chrome iOS":/CriOS\/(\d+(\.\d+)?)/,"UC Browser":/(UCBrowser|UCWEB)\/(\d+(\.\d+)?)/,Safari:/Version\/(\d+(\.\d+)?)/,"Mobile Safari":/Version\/(\d+(\.\d+)?)/,Opera:/(Opera|OPR)\/(\d+(\.\d+)?)/,Firefox:/Firefox\/(\d+(\.\d+)?)/,"Firefox iOS":/FxiOS\/(\d+(\.\d+)?)/,Konqueror:/Konqueror:(\d+(\.\d+)?)/,BlackBerry:/BlackBerry (\d+(\.\d+)?)/,"Android Mobile":/android\s(\d+(\.\d+)?)/,"Samsung Internet":/SamsungBrowser\/(\d+(\.\d+)?)/,"Internet Explorer":/(rv:|MSIE )(\d+(\.\d+)?)/,Mozilla:/rv:(\d+(\.\d+)?)/}[Mo.browser(e,t,n)];if(void 0===r)return null;var o=e.match(r);return o?parseFloat(o[o.length-2]):null},browserLanguage:function(){return oo.language||oo.userLanguage},os:function(){var e=io;return/Windows/i.test(e)?/Phone/.test(e)||/WPDesktop/.test(e)?"Windows Phone":"Windows":/(iPhone|iPad|iPod)/.test(e)?"iOS":/Android/.test(e)?"Android":/(BlackBerry|PlayBook|BB10)/i.test(e)?"BlackBerry":/Mac/i.test(e)?"Mac OS X":/Linux/.test(e)?"Linux":/CrOS/.test(e)?"Chrome OS":""},device:function(e){return/Windows Phone/i.test(e)||/WPDesktop/.test(e)?"Windows Phone":/iPad/.test(e)?"iPad":/iPod/.test(e)?"iPod Touch":/iPhone/.test(e)?"iPhone":/(BlackBerry|PlayBook|BB10)/i.test(e)?"BlackBerry":/Android/.test(e)&&!/Mobile/.test(e)?"Android Tablet":/Android/.test(e)?"Android":""},deviceType:function(e){var t=this.device(e);return"iPad"===t||"Android Tablet"===t?"Tablet":t?"Mobile":"Desktop"},referringDomain:function(e){var t=e.split("/");return t.length>=3?t[2]:""},properties:function(){return bo(To({$os:Mo.os(),$browser:Mo.browser(io,oo.vendor,ro.opera),$device:Mo.device(io),$device_type:Mo.deviceType(io)}),{$current_url:null==ro?void 0:ro.location.href,$host:null==ro?void 0:ro.location.host,$pathname:null==ro?void 0:ro.location.pathname,$browser_version:Mo.browserVersion(io,oo.vendor,ro.opera),$browser_language:Mo.browserLanguage(),$screen_height:null==ro?void 0:ro.screen.height,$screen_width:null==ro?void 0:ro.screen.width,$viewport_height:null==ro?void 0:ro.innerHeight,$viewport_width:null==ro?void 0:ro.innerWidth,$lib:"web",$lib_version:Zr.LIB_VERSION,$insert_id:Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10),$time:(Date.now=Date.now||function(){return+new Date},Date.now()/1e3)})},people_properties:function(){return bo(To({$os:Mo.os(),$browser:Mo.browser(io,oo.vendor,ro.opera)}),{$browser_version:Mo.browserVersion(io,oo.vendor,ro.opera)})}};function zo(e){switch(Nr(e.className)){case"string":return e.className;case"object":return("baseVal"in e.className?e.className.baseVal:null)||e.getAttribute("class")||"";default:return""}}function Bo(e){var t="";return Go(e)&&!Wo(e)&&e.childNodes&&e.childNodes.length&&go(e.childNodes,(function(e){Uo(e)&&e.textContent&&(t+=ho(e.textContent).split(/(\s+)/).filter(Yo).join("").replace(/[\r\n]/g," ").replace(/[ ]+/g," ").substring(0,255))})),ho(t)}function $o(e){return!!e&&1===e.nodeType}function qo(e,t){return!!e&&!!e.tagName&&e.tagName.toLowerCase()===t.toLowerCase()}function Uo(e){return!!e&&3===e.nodeType}function Ho(e){return!!e&&11===e.nodeType}var Vo=["a","button","form","input","select","textarea","label"];function Go(e){for(var t=e;t.parentNode&&!qo(t,"body");t=t.parentNode){var n=zo(t).split(" ");if(ko(n,"ph-sensitive")||ko(n,"ph-no-capture"))return!1}if(ko(zo(e).split(" "),"ph-include"))return!0;var r=e.type||"";if("string"==typeof r)switch(r.toLowerCase()){case"hidden":case"password":return!1}var o=e.name||e.id||"";return"string"!=typeof o||!/^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(o.replace(/[^a-zA-Z0-9]/g,""))}function Wo(e){return!!(qo(e,"input")&&!["button","checkbox","submit","reset"].includes(e.type)||qo(e,"select")||qo(e,"textarea")||"true"===e.getAttribute("contenteditable"))}function Yo(e){if(null===e||So(e))return!1;if("string"==typeof e){if(e=ho(e),/^(?:(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11}))$/.test((e||"").replace(/[- ]/g,"")))return!1;if(/(^\d{3}-?\d{2}-?\d{4}$)/.test(e))return!1}return!0}function Ko(e,t){var n=document.createElement("script");n.type="text/javascript",n.src=e,n.onload=t;var r,o=document.querySelectorAll("body > script");o.length>0?null===(r=o[0].parentNode)||void 0===r||r.insertBefore(n,o[0]):document.body.appendChild(n)}var Qo=function(){function e(t){Rr(this,e),this.clicks=[],this.enabled=t}return Ir(e,[{key:"isRageClick",value:function(e,t,n){if(!this.enabled)return!1;var r=this.clicks[this.clicks.length-1];if(r&&Math.abs(e-r.x)+Math.abs(t-r.y)<30&&n-r.timestamp<1e3){if(this.clicks.push({x:e,y:t,timestamp:n}),3===this.clicks.length)return!0}else this.clicks=[{x:e,y:t,timestamp:n}];return!1}}]),e}(),Xo={_initializedTokens:[],_previousElementSibling:function(e){if(e.previousElementSibling)return e.previousElementSibling;var t=e;do{t=t.previousSibling}while(t&&!$o(t));return t},_getPropertiesFromElement:function(e,t,n){var r=e.tagName.toLowerCase(),o={tag_name:r};Vo.indexOf(r)>-1&&!n&&(o.$el_text=Bo(e));var a=zo(e);a.length>0&&(o.classes=a.split(" ").filter((function(e){return""!==e}))),go(e.attributes,(function(n){var r;Wo(e)&&-1===["name","id","class"].indexOf(n.name)||!t&&Yo(n.value)&&("string"!=typeof(r=n.name)||"_ngcontent"!==r.substring(0,10)&&"_nghost"!==r.substring(0,7))&&(o["attr__"+n.name]=n.value)}));for(var i=1,s=1,l=e;l=this._previousElementSibling(l);)i++,l.tagName===e.tagName&&s++;return o.nth_child=i,o.nth_of_type=s,o},_getDefaultProperties:function(e){return{$event_type:e,$ce_version:1}},_extractCustomPropertyValue:function(e){var t=[];return go(document.querySelectorAll(e.css_selector),(function(e){var n;["input","select"].indexOf(e.tagName.toLowerCase())>-1?n=e.value:e.textContent&&(n=e.textContent),Yo(n)&&t.push(n)})),t.join(", ")},_getCustomProperties:function(e){var t=this,n={};return go(this._customProperties,(function(r){go(r.event_selectors,(function(o){go(document.querySelectorAll(o),(function(o){ko(e,o)&&Go(o)&&(n[r.name]=t._extractCustomPropertyValue(r))}))}))})),n},_getEventTarget:function(e){return void 0===e.target?e.srcElement||null:null!==(t=e.target)&&void 0!==t&&t.shadowRoot?e.composedPath()[0]||null:e.target||null;var t},_captureEvent:function(e,t){var n,r=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"$autocapture",a=this._getEventTarget(e);if(Uo(a)&&(a=a.parentNode||null),"$autocapture"===o&&"click"===e.type&&e instanceof MouseEvent&&null!==(n=this.rageclicks)&&void 0!==n&&n.isRageClick(e.clientX,e.clientY,(new Date).getTime())&&this._captureEvent(e,t,"$rageclick"),a&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;if(!e||qo(e,"html")||!$o(e))return!1;if(null!=n&&n.url_allowlist){var r=window.location.href,o=n.url_allowlist;if(o&&!o.some((function(e){return r.match(e)})))return!1}if(null!=n&&n.dom_event_allowlist){var a=n.dom_event_allowlist;if(a&&!a.some((function(e){return t.type===e})))return!1}if(null!=n&&n.element_allowlist){var i=n.element_allowlist;if(i&&!i.some((function(t){return e.tagName.toLowerCase()===t})))return!1}if(null!=n&&n.css_selector_allowlist){var s=n.css_selector_allowlist;if(s&&!s.some((function(t){return e.matches(t)})))return!1}for(var l=!1,c=[e],u=!0,p=e;p.parentNode&&!qo(p,"body");)if(Ho(p.parentNode))c.push(p.parentNode.host),p=p.parentNode.host;else{if(!(u=p.parentNode||!1))break;if(Vo.indexOf(u.tagName.toLowerCase())>-1)l=!0;else{var d=window.getComputedStyle(u);d&&"pointer"===d.getPropertyValue("cursor")&&(l=!0)}c.push(u),p=u}var f=window.getComputedStyle(e);if(f&&"pointer"===f.getPropertyValue("cursor")&&"click"===t.type)return!0;var m=e.tagName.toLowerCase();switch(m){case"html":return!1;case"form":return"submit"===t.type;case"input":case"select":case"textarea":return"change"===t.type||"click"===t.type;default:return l?"click"===t.type:"click"===t.type&&(Vo.indexOf(m)>-1||"true"===e.getAttribute("contenteditable"))}}(a,e,this.config)){for(var i=[a],s=a;s.parentNode&&!qo(s,"body");)Ho(s.parentNode)?(i.push(s.parentNode.host),s=s.parentNode.host):(i.push(s.parentNode),s=s.parentNode);var l,c=[],u=!1;if(go(i,(function(e){var n=Go(e);"a"===e.tagName.toLowerCase()&&(l=e.getAttribute("href"),l=n&&Yo(l)&&l),ko(zo(e).split(" "),"ph-no-capture")&&(u=!0),c.push(r._getPropertiesFromElement(e,t.get_config("mask_all_element_attributes"),t.get_config("mask_all_text")))})),t.get_config("mask_all_text")||(c[0].$el_text=Bo(a)),l&&(c[0].attr__href=l),u)return!1;var p=bo(this._getDefaultProperties(e.type),{$elements:c},this._getCustomProperties(i));return t.capture(o,p),!0}},_navigate:function(e){window.location.href=e},_addDomEventHandlers:function(e){var t=this,n=function(n){n=n||window.event,t._captureEvent(n,e)};Do(document,"submit",n,!1,!0),Do(document,"change",n,!1,!0),Do(document,"click",n,!1,!0)},_customProperties:[],rageclicks:null,config:void 0,init:function(e){var t;"boolean"!=typeof e.__autocapture&&(this.config=e.__autocapture),null!==(t=this.config)&&void 0!==t&&t.url_allowlist&&(this.config.url_allowlist=this.config.url_allowlist.map((function(e){return new RegExp(e)}))),this.rageclicks=new Qo(e.get_config("rageclick"))},afterDecideResponse:function(e,t){var n=t.get_config("token");this._initializedTokens.indexOf(n)>-1?po('autocapture already initialized for token "'+n+'"'):(this._initializedTokens.push(n),e&&e.config&&e.config.enable_collect_everything&&t.get_config("autocapture")?(e.custom_properties&&(this._customProperties=e.custom_properties),this._addDomEventHandlers(t)):t.__autocapture=!1)},enabledForProject:function(e,t,n){if(!e)return!0;t=So(t)?10:t,n=So(n)?10:n;for(var r=0,o=0;o1&&void 0!==arguments[1]?arguments[1]:{};if(!this.getFlags())return pt.warn('getFeatureFlag for key "'+e+"\" failed. Feature flags didn't load in time."),!1;var n=this.getFlagVariants()[e];return!t.send_event&&"send_event"in t||this.flagCallReported[e]||(this.flagCallReported[e]=!0,this.instance.capture("$feature_flag_called",{$feature_flag:e,$feature_flag_response:n})),n}},{key:"getFeatureFlagPayload",value:function(e){return this.getFlagPayloads()[e]}},{key:"isFeatureEnabled",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.getFlags()?!!this.getFeatureFlag(e,t):(pt.warn('isFeatureEnabled for key "'+e+"\" failed. Feature flags didn't load in time."),!1)}},{key:"addFeatureFlagsHandler",value:function(e){this.featureFlagEventHandlers.push(e)}},{key:"receivedFeatureFlags",value:function(e){this.instance.decideEndpointWasHit=!0;var t=this.getFlagVariants(),n=this.getFlagPayloads();!function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=e.featureFlags,a=e.featureFlagPayloads;if(o)if(Array.isArray(o)){var i,s={};if(o)for(var l=0;l10&&(e.data.payload.payload=e.data.payload.payload.slice(0,10),e.data.payload.payload.push("...[truncated]"));for(var t=[],n=0;n2e3?t.push(e.data.payload.payload[n].slice(0,2e3)+"...[truncated]"):t.push(e.data.payload.payload[n]);return e.data.payload.payload=t,e}return e}(function(e){if(e&&"object"===Nr(e)){var t=JSON.stringify(e);if(t.length>5e6){var n,r=Vr(t.matchAll(/data:([\w\/\-\.]+);(\w+),([^)"]*)/gim));try{for(r.s();!(n=r.n()).done;){var o=n.value;t="image/"===o[1].toLocaleLowerCase().slice(0,6)?t.replace(o[0],"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNOCAwSDE2TDAgMTZWOEw4IDBaIiBmaWxsPSIjMkQyRDJEIi8+CjxwYXRoIGQ9Ik0xNiA4VjE2SDhMMTYgOFoiIGZpbGw9IiMyRDJEMkQiLz4KPC9zdmc+Cg=="):t.replace(o[0],"")}}catch(e){r.e(e)}finally{r.f()}}return JSON.parse(t)}return e}(e)),t._updateWindowAndSessionIds(e);var n={$snapshot_data:e,$session_id:t.sessionId,$window_id:t.windowId};t.instance._captureMetrics.incr("rrweb-record"),t.instance._captureMetrics.incr("rrweb-record-".concat(e.type)),t.emit?t._captureSnapshot(n):t.snapshots.push(n)},plugins:window.rrwebConsoleRecord&&this.isConsoleLogCaptureEnabled()?[window.rrwebConsoleRecord.getRecordConsolePlugin()]:[]},n)),this.instance._addCaptureHook((function(e){var n;"$pageview"===e&&(null===(n=t.rrwebRecord)||void 0===n||n.addCustomEvent("$pageview",{href:window.location.href}))}))}},{key:"_captureSnapshot",value:function(e){this.instance.capture("$snapshot",e,{transport:"XHR",method:"POST",endpoint:this.endpoint,_noTruncate:!0,_batchKey:"sessionRecording",_metrics:{rrweb_full_snapshot:e.$snapshot_data.type===Fa}})}}]),e}(),za={entryType:0,timeOrigin:1,name:2,startTime:3,redirectStart:4,redirectEnd:5,workerStart:6,fetchStart:7,domainLookupStart:8,domainLookupEnd:9,connectStart:10,secureConnectionStart:11,connectEnd:12,requestStart:13,responseStart:14,responseEnd:15,decodedBodySize:16,encodedBodySize:17,initiatorType:18,nextHopProtocol:19,renderBlockingStatus:20,responseStatus:21,transferSize:22,element:23,renderTime:24,loadTime:25,size:26,id:27,url:28,domComplete:29,domContentLoadedEvent:30,domInteractive:31,loadEventEnd:32,loadEventStart:33,redirectCount:34,navigationType:35,unloadEventEnd:36,unloadEventStart:37,duration:39,timestamp:40},Ba=["first-input","navigation","paint","resource"],$a=["/s/","/e/"],qa=function(){function e(t){Rr(this,e),this.instance=t}return Ir(e,[{key:"startObservingIfEnabled",value:function(){this.isEnabled()?this.startObserving():this.stopObserving()}},{key:"startObserving",value:function(){var e=this;if(!this.observer)try{this.observer=new PerformanceObserver((function(t){t.getEntries().forEach((function(t){e._capturePerformanceEvent(t)}))}));var t=PerformanceObserver.supportedEntryTypes.filter((function(e){return Ba.includes(e)}));t.forEach((function(t){var n;null===(n=e.observer)||void 0===n||n.observe({type:t,buffered:!0})}))}catch(e){pt.error("PostHog failed to start performance observer",e),this.stopObserving()}}},{key:"stopObserving",value:function(){this.observer&&(this.observer.disconnect(),this.observer=void 0)}},{key:"isObserving",value:function(){return!!this.observer}},{key:"isEnabled",value:function(){var e,t;return null!==(e=null!==(t=this.instance.get_config("capture_performance"))&&void 0!==t?t:this.remoteEnabled)&&void 0!==e&&e}},{key:"afterDecideResponse",value:function(e){this.remoteEnabled=e.capturePerformance||!1,this.isEnabled()&&this.startObserving()}},{key:"_capturePerformanceEvent",value:function(e){if(e.name.startsWith(this.instance.get_config("api_host"))){var t=e.name.replace(this.instance.get_config("api_host"),"");if($a.find((function(e){return t.startsWith(e)})))return}var n=e.toJSON(),r={},o=Math.floor(Date.now()-performance.now());for(var a in r[za.timeOrigin]=o,r[za.timestamp]=Math.floor(o+e.startTime),za)void 0!==n[a]&&(r[za[a]]=n[a]);if(this.capturePerformanceEvent(r),Ua(e)){var i,s=Vr(e.serverTiming);try{for(s.s();!(i=s.n()).done;){var l,c=i.value;this.capturePerformanceEvent((Fr(l={},za.timeOrigin,o),Fr(l,za.timestamp,Math.floor(o+e.startTime)),Fr(l,za.name,c.name),Fr(l,za.duration,c.duration),Fr(l,za.entryType,"serverTiming"),l))}}catch(e){s.e(e)}finally{s.f()}}}},{key:"capturePerformanceEvent",value:function(e){this.instance.capture("$performance_event",e,{transport:"XHR",method:"POST",endpoint:"/e/",_noTruncate:!0,_batchKey:"performanceEvent"})}}]),e}(),Ua=function(e){return"navigation"===e.entryType||"resource"===e.entryType},Ha=function(){function e(t){Rr(this,e),this.instance=t,this.instance.decideEndpointWasHit=this.instance._hasBootstrappedFeatureFlags()}return Ir(e,[{key:"call",value:function(){var e=this,t=No(JSON.stringify({token:this.instance.get_config("token"),distinct_id:this.instance.get_distinct_id(),groups:this.instance.getGroups()}));this.instance._send_request("".concat(this.instance.get_config("api_host"),"/decide/?v=3"),{data:t,verbose:!0},{method:"POST"},(function(t){return e.parseDecideResponse(t)}))}},{key:"parseDecideResponse",value:function(e){var t,n,r=this;if(0!==(null==e?void 0:e.status)){if(this.instance.decideEndpointWasHit=!0,!document||!document.body)return pt.log("document not ready yet, trying again in 500 milliseconds..."),void setTimeout((function(){r.parseDecideResponse(e)}),500);if(this.instance.toolbar.afterDecideResponse(e),null===(t=this.instance.sessionRecording)||void 0===t||t.afterDecideResponse(e),Xo.afterDecideResponse(e,this.instance),null===(n=this.instance.webPerformance)||void 0===n||n.afterDecideResponse(e),this.instance.featureFlags.receivedFeatureFlags(e),this.instance.compression={},e.supportedCompression&&!this.instance.get_config("disable_compression")){var o,a={},i=Vr(e.supportedCompression);try{for(i.s();!(o=i.n()).done;)a[o.value]=!0}catch(e){i.e(e)}finally{i.f()}this.instance.compression=a}if(e.siteApps)if(this.instance.get_config("opt_in_site_apps")){var s,l=this.instance.get_config("api_host"),c=Vr(e.siteApps);try{var u=function(){var e=s.value,t=e.id,n=e.url,o=document.createElement("script");o.src=[l,"/"===l[l.length-1]&&"/"===n[0]?n.substring(1):n].join(""),o.onerror=function(e){pt.error("Error while initializing PostHog app with config id ".concat(t),e)},window["__$$ph_site_app_".concat(t)]=r.instance,document.body.appendChild(o)};for(c.s();!(s=c.n()).done;)u()}catch(e){c.e(e)}finally{c.f()}}else e.siteApps.length>0&&pt.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.')}else pt.error("Failed to fetch feature flags from PostHog.")}}]),e}(),Va=["https://app.posthog.com","https://eu.posthog.com"],Ga=["source"],Wa=function(){function e(t){Rr(this,e),this.instance=t}return Ir(e,[{key:"afterDecideResponse",value:function(e){var t=e.toolbarParams||e.editorParams||(e.toolbarVersion?{toolbarVersion:e.toolbarVersion}:{});e.isAuthenticated&&t.toolbarVersion&&0===t.toolbarVersion.indexOf("toolbar")&&this.loadToolbar(jr(jr({},t),{},{apiURL:this.instance.get_config("api_host")}))}},{key:"maybeLoadToolbar",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window.history;try{if(!t){try{window.localStorage.setItem("test","test"),window.localStorage.removeItem("test")}catch(e){return!1}t=window.localStorage}var r,o=Fo(e.hash,"__posthog")||Fo(e.hash,"state"),a=o?JSON.parse(decodeURIComponent(o)):null;return a&&"ph_authorize"===a.action?((r=a).source="url",r&&Object.keys(r).length>0&&(a.desiredHash?e.hash=a.desiredHash:n?n.replaceState("",document.title,e.pathname+e.search):e.hash="")):((r=JSON.parse(t.getItem("_postHogToolbarParams")||"{}")).source="localstorage",delete r.userIntent),r.apiURL||(r.apiURL=this.instance.get_config("api_host")),!(!r.token||this.instance.get_config("token")!==r.token||(this.loadToolbar(r),0))}catch(e){return!1}}},{key:"loadToolbar",value:function(e){var t=this;if(window._postHogToolbarLoaded)return!1;window._postHogToolbarLoaded=!0;var n=(null==e?void 0:e.apiURL)||this.instance.get_config("api_host"),r=3e4*Math.floor(Date.now()/3e4),o="".concat(n).concat(n.endsWith("/")?"":"/","static/toolbar.js?_ts=").concat(r),a=!Va.includes(this.instance.get_config("api_host"))&&this.instance.get_config("advanced_disable_toolbar_metrics"),i=jr(jr({apiURL:n,jsURL:n,token:this.instance.get_config("token")},e),a?{instrument:!1}:{});i.source;var s=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(i,Ga);return window.localStorage.setItem("_postHogToolbarParams",JSON.stringify(s)),Ko(o,(function(){(window.ph_load_toolbar||window.ph_load_editor)(i,t.instance)})),Do(window,"turbolinks:load",(function(){window._postHogToolbarLoaded=!1,t.loadToolbar(i)})),!0}},{key:"_loadEditor",value:function(e){return this.loadToolbar(e)}},{key:"maybeLoadEditor",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window.history;return this.maybeLoadToolbar(e,t,n)}}]),e}(),Ya=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3e3;Rr(this,e),this.isPolling=!0,this._event_queue=[],this._empty_queue_count=0,this._poller=void 0,this._pollInterval=t}return Ir(e,[{key:"setPollInterval",value:function(e){this._pollInterval=e,this.isPolling&&this.poll()}},{key:"poll",value:function(){}},{key:"unload",value:function(){}},{key:"getTime",value:function(){return(new Date).getTime()}}]),e}(),Ka=function(e){Dr(n,Ya);var t=Br(n);function n(e,r){var o,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3e3;return Rr(this,n),(o=t.call(this,a)).handlePollRequest=r,o.captureMetrics=e,o}return Ir(n,[{key:"enqueue",value:function(e,t,n){this.captureMetrics.incr("batch-enqueue"),this._event_queue.push({url:e,data:t,options:n}),this.isPolling||(this.isPolling=!0,this.poll())}},{key:"poll",value:function(){var e=this;clearTimeout(this._poller),this._poller=setTimeout((function(){if(e._event_queue.length>0){var t=e.formatQueue(),n=function(n){var r=t[n],o=r.url,a=r.data,i=r.options;go(a,(function(t,n){a[n].offset=Math.abs(a[n].timestamp-e.getTime()),delete a[n].timestamp})),e.handlePollRequest(o,a,i),e.captureMetrics.incr("batch-requests"),e.captureMetrics.incr("batch-requests-".concat(o.slice(o.length-2))),e.captureMetrics.incr("batch-handle",a.length),e.captureMetrics.incr("batch-handle-".concat(o.slice(o.length-2)),a.length)};for(var r in t)n(r);e._event_queue.length=0,e._empty_queue_count=0}else e._empty_queue_count++;e._empty_queue_count>4&&(e.isPolling=!1,e._empty_queue_count=0),e.isPolling&&e.poll()}),this._pollInterval)}},{key:"updateUnloadMetrics",value:function(){var e=this.formatQueue();for(var t in e){var n=e[t],r=n.url,o=n.data;this.captureMetrics.incr("batch-unload-requests"),this.captureMetrics.incr("batch-unload-requests-".concat(r.slice(r.length-2))),this.captureMetrics.incr("batch-unload",o.length),this.captureMetrics.incr("batch-unload-".concat(r.slice(r.length-2)),o.length)}}},{key:"unload",value:function(){var e=this;clearTimeout(this._poller);var t=this._event_queue.length>0?this.formatQueue():{};this._event_queue.length=0;var n=Object.values(t),r=[].concat(qr(n.filter((function(e){return 0===e.url.indexOf("/e")}))),qr(n.filter((function(e){return 0!==e.url.indexOf("/e")}))));r.map((function(t){var n=t.url,r=t.data,o=t.options;e.handlePollRequest(n,r,jr(jr({},o),{},{transport:"sendBeacon"}))}))}},{key:"formatQueue",value:function(){var e={};return go(this._event_queue,(function(t){var n=t.url,r=t.data,o=t.options,a=(o?o._batchKey:null)||n;void 0===e[a]&&(e[a]={data:[],url:n,options:o}),o&&e[a].options&&e[a].options._metrics&&!e[a].options._metrics.rrweb_full_snapshot&&(e[a].options._metrics.rrweb_full_snapshot=o._metrics.rrweb_full_snapshot),e[a].data.push(r)})),e}}]),n}(),Qa=function(){function e(t){Rr(this,e),this.enabled=t,this.metrics={}}return Ir(e,[{key:"incr",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.enabled&&(e="phjs-".concat(e),this.metrics[e]=(this.metrics[e]||0)+t)}},{key:"decr",value:function(e){this.enabled&&(e="phjs-".concat(e),this.metrics[e]=(this.metrics[e]||0)-1)}}]),e}(),Xa=Uint8Array,Za=Uint16Array,Ja=Uint32Array,ei=new Xa([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ti=new Xa([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),ni=new Xa([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ri=function(e,t){for(var n=new Za(31),r=0;r<31;++r)n[r]=t+=1<>>1|(21845&ci)<<1;ui=(61680&(ui=(52428&ui)>>>2|(13107&ui)<<2))>>>4|(3855&ui)<<4,li[ci]=((65280&ui)>>>8|(255&ui)<<8)>>>1}var pi=function(e,t,n){for(var r=e.length,o=0,a=new Za(t);o>>l]=c}else for(i=new Za(r),o=0;o>>15-e[o];return i},di=new Xa(288);for(ci=0;ci<144;++ci)di[ci]=8;for(ci=144;ci<256;++ci)di[ci]=9;for(ci=256;ci<280;++ci)di[ci]=7;for(ci=280;ci<288;++ci)di[ci]=8;var fi=new Xa(32);for(ci=0;ci<32;++ci)fi[ci]=5;var mi,hi=pi(di,9,0),gi=pi(fi,5,0),yi=function(e){return(e/8|0)+(7&e&&1)},bi=function(e,t,n){(null==t||t<0)&&(t=0),(null==n||n>e.length)&&(n=e.length);var r=new(e instanceof Za?Za:e instanceof Ja?Ja:Xa)(n-t);return r.set(e.subarray(t,n)),r},vi=function(e,t,n){n<<=7&t;var r=t/8|0;e[r]|=n,e[r+1]|=n>>>8},wi=function(e,t,n){n<<=7&t;var r=t/8|0;e[r]|=n,e[r+1]|=n>>>8,e[r+2]|=n>>>16},ki=function(e,t){for(var n=[],r=0;rd&&(d=a[r].s);var f=new Za(d+1),m=xi(n[u-1],f,0);if(m>t){r=0;var h=0,g=m-t,y=1<t))break;h+=y-(1<>>=g;h>0;){var v=a[r].s;f[v]=0&&h;--r){var w=a[r].s;f[w]==t&&(--f[w],++h)}m=t}return[new Xa(f),m]},xi=function e(t,n,r){return-1==t.s?Math.max(e(t.l,n,r+1),e(t.r,n,r+1)):n[t.s]=r},Si=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new Za(++t),r=0,o=e[0],a=1,i=function(e){n[r++]=e},s=1;s<=t;++s)if(e[s]==o&&s!=t)++a;else{if(!o&&a>2){for(;a>138;a-=138)i(32754);a>2&&(i(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(i(o),--a;a>6;a-=6)i(8304);a>2&&(i(a-3<<5|8208),a=0)}for(;a--;)i(o);a=1,o=e[s]}return[n.subarray(0,r),t]},_i=function(e,t){for(var n=0,r=0;r>>8,e[o+2]=255^e[o],e[o+3]=255^e[o+1];for(var a=0;a4&&!C[ni[O-1]];--O);var T,P,j,N,R=c+5<<3,L=_i(o,di)+_i(a,fi)+i,I=_i(o,d)+_i(a,h)+i+14+3*O+_i(S,C)+(2*S[16]+3*S[17]+7*S[18]);if(R<=L&&R<=I)return Ei(t,u,e.subarray(l,l+c));if(vi(t,u,1+(I15&&(vi(t,u,z[_]>>>5&127),u+=z[_]>>>12)}}}else T=hi,P=di,j=gi,N=fi;for(_=0;_255){B=r[_]>>>18&31,wi(t,u,T[B+257]),u+=P[B+257],B>7&&(vi(t,u,r[_]>>>23&31),u+=ei[B]);var $=31&r[_];wi(t,u,j[$]),u+=N[$],$>3&&(wi(t,u,r[_]>>>5&8191),u+=ti[$])}else wi(t,u,T[r[_]]),u+=P[r[_]];return wi(t,u,T[256]),u+P[256]},Ai=new Ja([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Oi=new Xa(0),Ti=function(){for(var e=new Ja(256),t=0;t<256;++t){for(var n=t,r=9;--r;)n=(1&n&&3988292384)^n>>>1;e[t]=n}return e}(),Pi=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8};function ji(e,t){void 0===t&&(t={});var n=function(){var e=4294967295;return{p:function(t){for(var n=e,r=0;r>>8;e=n},d:function(){return 4294967295^e}}}(),r=e.length;n.p(e);var o=function(e,t,n,r,o){return function(e,t,n,r,o,a){var i=e.length,s=new Xa(r+i+5*(1+Math.floor(i/7e3))+o),l=s.subarray(r,s.length-o),c=0;if(!t||i<8)for(var u=0;u<=i;u+=65535){var p=u+65535;p>>13,m=8191&d,h=(1<7e3||C>24576)&&N>423){c=Ci(e,l,0,k,x,S,E,C,O,u-O,c),C=_=E=0,O=u;for(var R=0;R<286;++R)x[R]=0;for(R=0;R<30;++R)S[R]=0}var L=2,I=0,F=m,D=P-j&32767;if(N>2&&T==w(u-D))for(var M=Math.min(f,N)-1,z=Math.min(32767,u),B=Math.min(258,N);D<=z&&--F&&P!=j;){if(e[u+L]==e[u+L-D]){for(var $=0;$L){if(L=$,I=D,$>M)break;var q=Math.min(D,$-2),U=0;for(R=0;RU&&(U=V,j=H)}}}D+=(P=j)-(j=g[P])+32768&32767}if(I){k[C++]=268435456|ii[L]<<18|si[I];var G=31&ii[L],W=31&si[I];E+=ei[G]+ti[W],++x[257+G],++S[W],A=u+L,++_}else k[C++]=e[u],++x[e[u]]}}c=Ci(e,l,a,k,x,S,E,C,O,u-O,c),a||(c=Ei(l,c,Oi))}return bi(s,0,r+yi(c)+o)}(e,null==t.level?6:t.level,null==t.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,n,r,!o)}(e,t,function(e){return 10+(e.filename&&e.filename.length+1||0)}(t),8),a=o.length;return function(e,t){var n=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=t.level<2?4:9==t.level?2:0,e[9]=3,0!=t.mtime&&Pi(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),n){e[3]=8;for(var r=0;r<=n.length;++r)e[r+10]=n.charCodeAt(r)}}(o,t),Pi(o,a-8,n.d()),Pi(o,a-4,r),o}function Ni(e,t){var n=e.length;if(!t&&"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);for(var r=new Xa(e.length+(e.length>>>1)),o=0,a=function(e){r[o++]=e},i=0;ir.length){var s=new Xa(o+8+(n-i<<1));s.set(r),r=s}var l=e.charCodeAt(i);l<128||t?a(l):l<2048?(a(192|l>>>6),a(128|63&l)):l>55295&&l<57344?(a(240|(l=65536+(1047552&l)|1023&e.charCodeAt(++i))>>>18),a(128|l>>>12&63),a(128|l>>>6&63),a(128|63&l)):(a(224|l>>>12),a(128|l>>>6&63),a(128|63&l))}return bi(r,0,o)}!function(e){e.GZipJS="gzip-js",e.LZ64="lz64",e.Base64="base64"}(mi||(mi={}));var Ri,Li,Ii,Fi=function e(t,n){if(n.blob&&t.buffer)return new Blob([t.buffer],{type:"text/plain"});if(n.sendBeacon||n.blob){var r=e(t,{method:"POST"});return new Blob([r],{type:"application/x-www-form-urlencoded"})}return"POST"!==n.method?null:(o=Array.isArray(t)||function(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)}(t)?"data="+encodeURIComponent(t):"data="+encodeURIComponent(t.data),"compression"in t&&t.compression&&(o+="&compression="+t.compression),o);var o},Di=function(e){var t=e.url,n=e.data,r=e.headers,o=e.options,a=e.captureMetrics,i=e.callback,s=e.retriesPerformedSoFar,l=e.retryQueue,c=e.onXHRError,u=e.timeout,p=void 0===u?1e4:u,d=new XMLHttpRequest;d.open(o.method||"GET",t,!0);var f=Fi(n,o);a.incr("_send_request"),a.incr("_send_request_inflight"),go(r,(function(e,t){d.setRequestHeader(t,e)})),"POST"!==o.method||o.blob||d.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),d.timeout=p,d.withCredentials=!0,d.onreadystatechange=function(){if(4===d.readyState)if(a.incr("xhr-response"),a.incr("xhr-response-".concat(d.status)),a.decr("_send_request_inflight"),200===d.status){if(i){var e;try{e=JSON.parse(d.responseText)}catch(e){return void fo(e)}i(e)}}else"function"==typeof c&&c(d),[401,403,404,500].indexOf(d.status)<0&&l.enqueue({url:t,data:n,options:o,headers:r,retriesPerformedSoFar:(s||0)+1,callback:i}),i&&i({status:0})},d.send(f)},Mi=function(e){Dr(n,Ya);var t=Br(n);function n(e,r){var o;return Rr(this,n),(o=t.call(this)).captureMetrics=e,o.isPolling=!1,o.queue=[],o.areWeOnline=!0,o.onXHRError=r,"undefined"!=typeof window&&"onLine"in window.navigator&&(o.areWeOnline=window.navigator.onLine,window.addEventListener("online",(function(){o._handleWeAreNowOnline()})),window.addEventListener("offline",(function(){o.areWeOnline=!1}))),o}return Ir(n,[{key:"enqueue",value:function(e){var t=e.retriesPerformedSoFar||0;if(!(t>=10)){var n=3e3*Math.pow(2,t),r=new Date(Date.now()+n);pt.warn("Enqueued failed request for retry in ".concat(n)),this.queue.push({retryAt:r,requestData:e}),this.isPolling||(this.isPolling=!0,this.poll())}}},{key:"poll",value:function(){var e=this;this._poller&&clearTimeout(this._poller),this._poller=setTimeout((function(){e.areWeOnline&&e.queue.length>0&&e.flush(),e.poll()}),this._pollInterval)}},{key:"flush",value:function(){var e=new Date(Date.now()),t=this.queue.filter((function(t){return t.retryAt0){this.queue=this.queue.filter((function(t){return t.retryAt>=e}));var n,r=Vr(t);try{for(r.s();!(n=r.n()).done;){var o=n.value.requestData;this._executeXhrRequest(o)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"unload",value:function(){this._poller&&(clearTimeout(this._poller),this._poller=void 0);var e,t=Vr(this.queue);try{for(t.s();!(e=t.n()).done;){var n=e.value.requestData,r=n.url,o=n.data,a=n.options;try{window.navigator.sendBeacon(r,Fi(o,jr(jr({},a),{},{sendBeacon:!0})))}catch(e){Zr.DEBUG&&pt.error(e)}}}catch(e){t.e(e)}finally{t.f()}this.queue=[]}},{key:"_executeXhrRequest",value:function(e){var t=e.url,n=e.data,r=e.options,o=e.headers,a=e.callback,i=e.retriesPerformedSoFar;Di({url:t,data:n||{},options:r||{},headers:o||{},retriesPerformedSoFar:i||0,callback:a,captureMetrics:this.captureMetrics,retryQueue:this,onXHRError:this.onXHRError})}},{key:"_handleWeAreNowOnline",value:function(){this.areWeOnline=!0,this.flush()}}]),n}(),zi=function(){function e(t,n){Rr(this,e),this.persistence=n,this._windowId=void 0,this._sessionId=void 0,this._sessionStartTimestamp=null,this._sessionActivityTimestamp=null;var r=t.persistence_name||t.token;if(this.window_id_storage_key="ph_"+r+"_window_id",this.primary_window_exists_storage_key="ph_"+r+"_primary_window_exists",!this.persistence.disabled&&ia.is_supported()){var o=ia.parse(this.window_id_storage_key),a=ia.parse(this.primary_window_exists_storage_key);o&&!a?this._windowId=o:ia.remove(this.window_id_storage_key),ia.set(this.primary_window_exists_storage_key,!0)}this._listenToReloadWindow()}return Ir(e,[{key:"_setWindowId",value:function(e){e!==this._windowId&&(this._windowId=e,!this.persistence.disabled&&ia.is_supported()&&ia.set(this.window_id_storage_key,e))}},{key:"_getWindowId",value:function(){return this._windowId?this._windowId:!this.persistence.disabled&&ia.is_supported()?ia.parse(this.window_id_storage_key):null}},{key:"_setSessionId",value:function(e,t,n){e===this._sessionId&&t===this._sessionActivityTimestamp&&n===this._sessionStartTimestamp||(this._sessionStartTimestamp=n,this._sessionActivityTimestamp=t,this._sessionId=e,this.persistence.register(Fr({},ja,[t,e,n])))}},{key:"_getSessionId",value:function(){if(this._sessionId&&this._sessionActivityTimestamp&&this._sessionStartTimestamp)return[this._sessionActivityTimestamp,this._sessionId,this._sessionStartTimestamp];var e=this.persistence.props[ja];return Array.isArray(e)&&2===e.length&&e.push(e[0]),e||[0,null,0]}},{key:"resetSessionId",value:function(){this._setSessionId(null,null,null)}},{key:"_listenToReloadWindow",value:function(){var e=this;window.addEventListener("beforeunload",(function(){!e.persistence.disabled&&ia.is_supported()&&ia.remove(e.primary_window_exists_storage_key)}))}},{key:"checkAndGetSessionAndWindowId",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:null)||(new Date).getTime(),n=$r(this._getSessionId(),3),r=n[0],o=n[1],a=n[2],i=this._getWindowId(),s=a&&a>0&&Math.abs(t-a)>864e5;!o||!e&&Math.abs(t-r)>18e5||s?(o=Lo(),i=Lo(),a=t):i||(i=Lo());var l=0===r||!e||s?t:r,c=0===a?(new Date).getTime():a;return this._setWindowId(i),this._setSessionId(o,l,c),{sessionId:o,windowId:i}}}]),e}(),Bi=Ir((function e(t,n,r,o){Rr(this,e),this.name="posthog-js",this.setupOnce=function(e){e((function(e){var a,i,s;if("error"!==e.level||!t.__loaded)return e;e.tags||(e.tags={});var l=t.config.ui_host||t.config.api_host;e.tags["PostHog Person URL"]=l+"/person/"+t.get_distinct_id(),t.sessionRecordingStarted()&&(e.tags["PostHog Recording URL"]=l+"/recordings/"+t.sessionManager.checkAndGetSessionAndWindowId(!0).sessionId);var c=(null===(a=e.exception)||void 0===a?void 0:a.values)||[],u={$sentry_event_id:e.event_id,$sentry_exception:e.exception,$sentry_exception_message:null===(i=c[0])||void 0===i?void 0:i.value,$sentry_exception_type:null===(s=c[0])||void 0===s?void 0:s.type,$sentry_tags:e.tags};return n&&r&&(u.$sentry_url=(o||"https://sentry.io/organizations/")+n+"/issues/?project="+r+"&query="+e.event_id),t.capture("$exception",u),e}))}})),$i=function(){function e(){Rr(this,e),Fr(this,"_seenFirstPageView",!1)}return Ir(e,[{key:"onPageview",value:function(){this._seenFirstPageView&&(this._pageViewId=Lo()),this._seenFirstPageView=!0}},{key:"getPageViewId",value:function(){return this._pageViewId||(this._pageViewId=Lo()),this._pageViewId}}]),e}();!function(e){e[e.INIT_MODULE=0]="INIT_MODULE",e[e.INIT_SNIPPET=1]="INIT_SNIPPET"}(Ri||(Ri={}));var qi=function(){},Ui={},Hi="posthog",Vi=ro.XMLHttpRequest&&"withCredentials"in new XMLHttpRequest,Gi=!Vi&&-1===io.indexOf("MSIE")&&-1===io.indexOf("Mozilla"),Wi=function(){var e,t,n;return{api_host:"https://app.posthog.com",api_method:"POST",api_transport:"XHR",ui_host:null,token:"",autocapture:!0,rageclick:!0,cross_subdomain_cookie:-1===(null==ao||null===(e=ao.location)||void 0===e||null===(t=e.hostname)||void 0===t?void 0:t.indexOf("herokuapp.com")),persistence:"cookie",persistence_name:"",cookie_name:"",loaded:qi,store_google:!0,save_referrer:!0,test:!1,verbose:!1,img:!1,capture_pageview:!0,capture_pageleave:!0,debug:!1,cookie_expiration:365,upgrade:!1,disable_session_recording:!1,disable_persistence:!1,disable_cookie:!1,enable_recording_console_log:void 0,secure_cookie:"https:"===(null==ro||null===(n=ro.location)||void 0===n?void 0:n.protocol),ip:!0,opt_out_capturing_by_default:!1,opt_out_persistence_by_default:!1,opt_out_capturing_persistence_type:"localStorage",opt_out_capturing_cookie_prefix:null,opt_in_site_apps:!1,property_blacklist:[],respect_dnt:!1,sanitize_properties:null,xhr_headers:{},inapp_protocol:"//",inapp_link_new_window:!1,request_batching:!0,properties_string_max_length:65535,session_recording:{blockClass:"ph-no-capture",blockSelector:null,ignoreClass:"ph-ignore-input",maskAllInputs:!0,maskInputOptions:{},maskInputFn:null,slimDOMOptions:{},collectFonts:!1,inlineStylesheet:!0},mask_all_element_attributes:!1,mask_all_text:!1,advanced_disable_decide:!1,advanced_disable_toolbar_metrics:!1,on_xhr_error:function(e){var t="Bad HTTP status: "+e.status+" "+e.statusText;pt.error(t)},get_device_id:function(e){return e},_onCapture:qi,_capture_metrics:!1,capture_performance:void 0,name:"posthog",callback_fn:"posthog._jsc",bootstrap:{},disable_compression:!1}},Yi=function(e,t,n){var r,o=n!==Hi&&Ii?n?Ii[n]:void 0:Ii;if(o&&Li===Ri.INIT_MODULE)r=o;else{if(o&&!vo(o))return void pt.error("You have already initialized "+n);r=new Ki}return r._init(e,t,n),r.toolbar.maybeLoadToolbar(),r.sessionRecording=new Ma(r),r.sessionRecording.startRecordingIfEnabled(),r.webPerformance=new qa(r),r.webPerformance.startObservingIfEnabled(),r.__autocapture=r.get_config("autocapture"),r.get_config("autocapture")&&(r.__autocapture=r.get_config("autocapture"),Xo.enabledForProject(r.get_config("token"),100,100)?Xo.isBrowserSupported()?Xo.init(r):(r.__autocapture=!1,po("Disabling Automatic Event Collection because this browser is not supported")):(r.__autocapture=!1,po("Not in active bucket: disabling Automatic Event Collection."))),Zr.DEBUG=Zr.DEBUG||r.get_config("debug"),void 0!==o&&vo(o)&&(r._execute_array.call(r.people,o.people),r._execute_array(o)),r},Ki=function(){function e(){var t=this;Rr(this,e),this.config=Wi(),this.compression={},this.decideEndpointWasHit=!1,this.SentryIntegration=Bi,this.segmentIntegration=function(){return function(e){var t=function(t,n){t.event.userId||t.event.anonymousId===e.get_distinct_id()||e.reset(),t.event.userId&&t.event.userId!==e.get_distinct_id()&&(e.register({distinct_id:t.event.userId}),e.reloadFeatureFlags());var r=e._calculate_event_properties(n,t.event.properties);return t.event.properties=Object.assign({},r,t.event.properties),t};return{name:"PostHog JS",type:"enrichment",version:"1.0.0",isLoaded:function(){return!0},load:function(){return Promise.resolve()},track:function(e){return t(e,e.event.event)},page:function(e){return t(e,"$pageview")},identify:function(e){return t(e,"$identify")},screen:function(e){return t(e,"$screen")}}}(t)},this.__captureHooks=[],this.__request_queue=[],this.__loaded=!1,this.__loaded_recorder=!1,this.__autocapture=void 0,this._jsc=function(){},this.people=new wa(this),this.featureFlags=new Ea(this),this.feature_flags=this.featureFlags,this.toolbar=new Wa(this),this.pageViewIdManager=new $i,this._captureMetrics=void 0,this._requestQueue=void 0,this._retryQueue=void 0,this.persistence=void 0,this.sessionManager=void 0}return Ir(e,[{key:"init",value:function(e,t,n){if(So(n))pt.error("You must name your new library: init(token, config, name)");else{if(n!==Hi){var r=Yi(e,t,n);return Ii[n]=r,r._loaded(),r}pt.error("You must initialize the main posthog object right after you include the PostHog js snippet")}}},{key:"_init",value:function(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;if(this.__loaded=!0,this.config={},this._triggered_notifs=[],this.set_config(bo({},Wi(),r,{name:o,token:e,callback_fn:(o===Hi?o:Hi+"."+o)+"._jsc"})),this._jsc=function(){},(null!=ro&&null!==(t=ro.rrweb)&&void 0!==t&&t.record||null!=ro&&ro.rrwebRecord)&&(this.__loaded_recorder=!0),this._captureMetrics=new Qa(this.get_config("_capture_metrics")),this._requestQueue=new Ka(this._captureMetrics,this._handle_queued_event.bind(this)),this._retryQueue=new Mi(this._captureMetrics,this.get_config("on_xhr_error")),this.__captureHooks=[],this.__request_queue=[],this.persistence=new Ia(this.config),this.sessionManager=new zi(this.config,this.persistence),this._gdpr_init(),r.segment&&(this.config.get_device_id=function(){return r.segment.user().anonymousId()},r.segment.user().id()&&(this.register({distinct_id:r.segment.user().id()}),this.persistence.set_user_state("identified")),r.segment.register(this.segmentIntegration())),void 0!==(null===(n=r.bootstrap)||void 0===n?void 0:n.distinctID)){var a,i,s=this.get_config("get_device_id")(Lo()),l=null!==(a=r.bootstrap)&&void 0!==a&&a.isIdentifiedID?s:r.bootstrap.distinctID;this.persistence.set_user_state(null!==(i=r.bootstrap)&&void 0!==i&&i.isIdentifiedID?"identified":"anonymous"),this.register({distinct_id:r.bootstrap.distinctID,$device_id:l})}if(this._hasBootstrappedFeatureFlags()){var c,u,p=Object.keys((null===(c=r.bootstrap)||void 0===c?void 0:c.featureFlags)||{}).filter((function(e){var t,n;return!(null===(t=r.bootstrap)||void 0===t||null===(n=t.featureFlags)||void 0===n||!n[e])})).reduce((function(e,t){var n,o;return e[t]=(null===(n=r.bootstrap)||void 0===n||null===(o=n.featureFlags)||void 0===o?void 0:o[t])||!1,e}),{}),d=Object.keys((null===(u=r.bootstrap)||void 0===u?void 0:u.featureFlagPayloads)||{}).filter((function(e){return p[e]})).reduce((function(e,t){var n,o,a,i;return null!==(n=r.bootstrap)&&void 0!==n&&null!==(o=n.featureFlagPayloads)&&void 0!==o&&o[t]&&(e[t]=null===(a=r.bootstrap)||void 0===a||null===(i=a.featureFlagPayloads)||void 0===i?void 0:i[t]),e}),{});this.featureFlags.receivedFeatureFlags({featureFlags:p,featureFlagPayloads:d})}if(!this.get_distinct_id()){var f=this.get_config("get_device_id")(Lo());this.register_once({distinct_id:f,$device_id:f},""),this.persistence.set_user_state("anonymous")}ro.addEventListener&&ro.addEventListener("onpagehide"in self?"pagehide":"unload",this._handle_unload.bind(this))}},{key:"_loaded",value:function(){this.featureFlags.setReloadingPaused(!0);try{this.get_config("loaded")(this)}catch(e){pt.error("`loaded` function failed",e)}this._start_queue_if_opted_in(),this.get_config("capture_pageview")&&this.capture("$pageview",{},{send_instantly:!0}),this.get_config("advanced_disable_decide")||new Ha(this).call(),this.featureFlags.resetRequestQueue(),this.featureFlags.setReloadingPaused(!1)}},{key:"_start_queue_if_opted_in",value:function(){this.has_opted_out_capturing()||this.get_config("request_batching")&&this._requestQueue.poll()}},{key:"_dom_loaded",value:function(){var e=this;this.has_opted_out_capturing()||yo(this.__request_queue,(function(t){e._send_request.apply(e,qr(t))})),this.__request_queue=[],this._start_queue_if_opted_in()}},{key:"_prepare_callback",value:function(e,t){if(So(e))return null;if(Vi)return function(n){e(n,t)};var n=this._jsc,r=""+Math.floor(1e8*Math.random()),o=this.get_config("callback_fn")+"["+r+"]";return n[r]=function(o){delete n[r],e(o,t)},o}},{key:"_handle_unload",value:function(){this.get_config("request_batching")?(this.get_config("capture_pageview")&&this.get_config("capture_pageleave")&&this.capture("$pageleave"),this.get_config("_capture_metrics")&&(this._requestQueue.updateUnloadMetrics(),this.capture("$capture_metrics",this._captureMetrics.metrics)),this._requestQueue.unload(),this._retryQueue.unload()):this.get_config("capture_pageview")&&this.get_config("capture_pageleave")&&this.capture("$pageleave",null,{transport:"sendBeacon"})}},{key:"_handle_queued_event",value:function(e,t,n){var r=JSON.stringify(t);this.__compress_and_send_json_request(e,r,n||Ui,qi)}},{key:"__compress_and_send_json_request",value:function(e,t,n,r){var o,a=function(e,t,n){return e===mi.LZ64?[{data:Xr.compressToBase64(t),compression:mi.LZ64},n]:e===mi.GZipJS?[ji(Ni(t),{mtime:0}),jr(jr({},n),{},{blob:!0,urlQueryArgs:{compression:mi.GZipJS}})]:[{data:No(t)},n]}((o=this.compression)[mi.GZipJS]?mi.GZipJS:o[mi.LZ64]?mi.LZ64:mi.Base64,t,n),i=$r(a,2),s=i[0],l=i[1];this._send_request(e,s,l,r)}},{key:"_send_request",value:function(e,t,n,r){if(Gi)this.__request_queue.push([e,t,n,r]);else{var o={method:this.get_config("api_method"),transport:this.get_config("api_transport"),verbose:this.get_config("verbose")};n=bo(o,n||{}),Vi||(n.method="GET");var a="sendBeacon"in ro.navigator&&"sendBeacon"===n.transport;if(e=function(e,t,n){var r=t||{};r.ip=n.ip?1:0,r._=(new Date).getTime().toString(),r.ver=Zr.LIB_VERSION;var o=e.split("?");if(o.length>1){var a,i=Vr(o[1].split("&"));try{for(i.s();!(a=i.n()).done;){var s=a.value.split("=")[0];r[s]&&delete r[s]}}catch(e){i.e(e)}finally{i.f()}}var l=e.indexOf("?")>-1?"&":"?";return e+l+function(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"&",o=[];return go(e,(function(e,r){t=encodeURIComponent(e.toString()),n=encodeURIComponent(r),o[o.length]=n+"="+t})),o.join(r)}(r)}(e,n.urlQueryArgs||{},{ip:this.get_config("ip")}),xo(t)&&this.get_config("img")){var i=ao.createElement("img");i.src=e,ao.body.appendChild(i)}else if(a)try{ro.navigator.sendBeacon(e,Fi(t,jr(jr({},n),{},{sendBeacon:!0})))}catch(e){this.get_config("debug")&&pt.error(e)}else if(Vi)try{Di({url:e,data:t,headers:this.get_config("xhr_headers"),options:n,captureMetrics:this._captureMetrics,callback:r,retriesPerformedSoFar:0,retryQueue:this._retryQueue,onXHRError:this.get_config("on_xhr_error")})}catch(e){pt.error(e)}else{var s,l=ao.createElement("script");l.type="text/javascript",l.async=!0,l.defer=!0,l.src=e;var c=ao.getElementsByTagName("script")[0];null===(s=c.parentNode)||void 0===s||s.insertBefore(l,c)}}}},{key:"_execute_array",value:function(e){var t,n=this,r=[],o=[],a=[];yo(e,(function(e){e&&(t=e[0],vo(t)?a.push(e):"function"==typeof e?e.call(n):vo(e)&&"alias"===t?r.push(e):vo(e)&&-1!==t.indexOf("capture")&&"function"==typeof n[t]?a.push(e):o.push(e))}));var i=function(e,t){yo(e,(function(e){if(vo(e[0])){var n=t;go(e,(function(e){n=n[e[0]].apply(n,e.slice(1))}))}else this[e[0]].apply(this,e.slice(1))}),t)};i(r,this),i(o,this),i(a,this)}},{key:"_hasBootstrappedFeatureFlags",value:function(){var e,t;return(null===(e=this.config.bootstrap)||void 0===e?void 0:e.featureFlags)&&Object.keys(null===(t=this.config.bootstrap)||void 0===t?void 0:t.featureFlags).length>0||!1}},{key:"push",value:function(e){this._execute_array([e])}},{key:"capture",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Ui;if(this.__loaded&&!ya(this,!1)){this._captureMetrics.incr("capture"),"$snapshot"===e&&this._captureMetrics.incr("snapshot");var r=(n=n||Ui).transport;if(r&&(n.transport=r),So(e)||"string"!=typeof e)pt.error("No event name provided to posthog.capture");else if(!function(e){return!!/(google web preview|baiduspider|yandexbot|bingbot|googlebot|yahoo! slurp|ahrefsbot|facebookexternalhit|facebookcatalog|applebot|semrushbot|duckduckbot|twitterbot|rogerbot|linkedinbot|mj12bot|sitebulb|bot.htm|bot.php)/i.test(e)}(io)){this.persistence.update_search_keyword(ao.referrer),this.get_config("store_google")&&this.persistence.update_campaign_params(),this.get_config("save_referrer")&&this.persistence.update_referrer_info(ao.referrer);var o={event:e,properties:this._calculate_event_properties(e,t||{})};"$identify"===e&&n.$set&&(o.$set=n.$set),(o=jo(o,n._noTruncate?null:this.get_config("properties_string_max_length"))).timestamp=n.timestamp||new Date,this.get_config("debug")&&po("PostHog.js send",o);var a=JSON.stringify(o),i=this.get_config("api_host")+(n.endpoint||"/e/"),s=n!==Ui;return!this.get_config("request_batching")||s&&!n._batchKey||n.send_instantly?this.__compress_and_send_json_request(i,a,n):this._requestQueue.enqueue(i,o,n),this._invokeCaptureHooks(e,o),o}}}},{key:"_addCaptureHook",value:function(e){this.__captureHooks.push(e)}},{key:"_invokeCaptureHooks",value:function(e,t){this.config._onCapture(e,t),go(this.__captureHooks,(function(t){return t(e)}))}},{key:"_calculate_event_properties",value:function(e,t){var n,r=this.persistence.remove_event_timer(e),o=jr({},t);if(o.token=this.get_config("token"),"$snapshot"===e){var a=this.persistence.properties();return o.distinct_id=a.distinct_id,o}var i=Mo.properties();if(this.sessionManager){var s=this.sessionManager.checkAndGetSessionAndWindowId(),l=s.sessionId,c=s.windowId;o.$session_id=l,o.$window_id=c}if(null!==(n=this.webPerformance)&&void 0!==n&&n.isEnabled&&("$pageview"===e&&this.pageViewIdManager.onPageview(),o=bo(o,{$pageview_id:this.pageViewIdManager.getPageViewId()})),"$performance_event"===e){var u=this.persistence.properties();return o.distinct_id=u.distinct_id,o.$current_url=i.$current_url,o}if(void 0!==r){var p=(new Date).getTime()-r;o.$duration=parseFloat((p/1e3).toFixed(3))}o=bo({},i,this.persistence.properties(),o);var d=this.get_config("property_blacklist");vo(d)?go(d,(function(e){delete o[e]})):pt.error("Invalid value for property_blacklist config: "+d);var f=this.get_config("sanitize_properties");return f&&(o=f(o,e)),o}},{key:"register",value:function(e,t){this.persistence.register(e,t)}},{key:"register_once",value:function(e,t,n){this.persistence.register_once(e,t,n)}},{key:"unregister",value:function(e){this.persistence.unregister(e)}},{key:"_register_single",value:function(e,t){this.register(Fr({},e,t))}},{key:"getFeatureFlag",value:function(e,t){return this.featureFlags.getFeatureFlag(e,t)}},{key:"getFeatureFlagPayload",value:function(e){var t=this.featureFlags.getFeatureFlagPayload(e);try{return JSON.parse(t)}catch(e){return t}}},{key:"isFeatureEnabled",value:function(e,t){return this.featureFlags.isFeatureEnabled(e,t)}},{key:"reloadFeatureFlags",value:function(){this.featureFlags.reloadFeatureFlags()}},{key:"onFeatureFlags",value:function(e){return this.featureFlags.onFeatureFlags(e)}},{key:"identify",value:function(e,t,n){if(e){this._captureMetrics.incr("identify");var r=this.get_distinct_id();if(this.register({$user_id:e}),!this.get_property("$device_id")){var o=r;this.register_once({$had_persisted_distinct_id:!0,$device_id:o},"")}e!==r&&e!==this.get_property(Aa)&&(this.unregister(Aa),this.register({distinct_id:e}));var a="anonymous"===this.persistence.get_user_state();e!==r&&a?(this.persistence.set_user_state("identified"),this.capture("$identify",{distinct_id:e,$anon_distinct_id:r},{$set:t||{},$set_once:n||{}}),this.featureFlags.setAnonymousDistinctId(r)):(t&&this.people.set(t),n&&this.people.set_once(n)),e!==r&&this.reloadFeatureFlags()}else pt.error("Unique user id has not been set in posthog.identify")}},{key:"group",value:function(e,t,n){if(e&&t){this._captureMetrics.incr("group");var r=this.getGroups();this.register({$groups:jr(jr({},r),{},Fr({},e,t))}),n&&this.capture("$groupidentify",{$group_type:e,$group_key:t,$group_set:n}),r[e]!==t&&this.reloadFeatureFlags()}else pt.error("posthog.group requires a group type and group key")}},{key:"resetGroups",value:function(){this.register({$groups:{}}),this.reloadFeatureFlags()}},{key:"reset",value:function(e){var t=this.get_property("$device_id");this.persistence.clear(),this.persistence.set_user_state("anonymous"),this.sessionManager.resetSessionId();var n=this.get_config("get_device_id")(Lo());this.register_once({distinct_id:n,$device_id:e?n:t},"")}},{key:"get_distinct_id",value:function(){return this.get_property("distinct_id")}},{key:"getGroups",value:function(){return this.get_property("$groups")||{}}},{key:"alias",value:function(e,t){return e===this.get_property(Ca)?(mo("Attempting to create alias for existing People user - aborting."),-2):(So(t)&&(t=this.get_distinct_id()),e!==t?(this._register_single(Aa,e),this.capture("$create_alias",{alias:e,distinct_id:t})):(pt.error("alias matches current distinct_id - skipping api call."),this.identify(e),-1))}},{key:"set_config",value:function(e){var t=jr({},this.config);xo(e)&&(bo(this.config,e),this.get_config("persistence_name")||(this.config.persistence_name=this.config.cookie_name),this.get_config("disable_persistence")||(this.config.disable_persistence=this.config.disable_cookie),this.persistence&&this.persistence.update_config(this.config),ta.is_supported()&&"true"===ta.get("ph_debug")&&(this.config.debug=!0),this.get_config("debug")&&(Zr.DEBUG=!0),this.sessionRecording&&void 0!==e.disable_session_recording&&t.disable_session_recording!==e.disable_session_recording&&(e.disable_session_recording?this.sessionRecording.stopRecording():this.sessionRecording.startRecordingIfEnabled()))}},{key:"startSessionRecording",value:function(){this.set_config({disable_session_recording:!1})}},{key:"stopSessionRecording",value:function(){this.set_config({disable_session_recording:!0})}},{key:"sessionRecordingStarted",value:function(){var e;return!(null===(e=this.sessionRecording)||void 0===e||!e.started())}},{key:"loadToolbar",value:function(e){return this.toolbar.loadToolbar(e)}},{key:"get_config",value:function(e){var t;return null===(t=this.config)||void 0===t?void 0:t[e]}},{key:"get_property",value:function(e){return this.persistence.props[e]}},{key:"toString",value:function(){var e,t=null!==(e=this.get_config("name"))&&void 0!==e?e:Hi;return t!==Hi&&(t=Hi+"."+t),t}},{key:"_gdpr_init",value:function(){"localStorage"===this.get_config("opt_out_capturing_persistence_type")&&ta.is_supported()&&(!this.has_opted_in_capturing()&&this.has_opted_in_capturing({persistence_type:"cookie"})&&this.opt_in_capturing({enable_persistence:!1}),!this.has_opted_out_capturing()&&this.has_opted_out_capturing({persistence_type:"cookie"})&&this.opt_out_capturing({clear_persistence:!1}),this.clear_opt_in_out_capturing({persistence_type:"cookie",enable_persistence:!1})),this.has_opted_out_capturing()?this._gdpr_update_persistence({clear_persistence:!0}):this.has_opted_in_capturing()||!this.get_config("opt_out_capturing_by_default")&&!Jo.get("ph_optout")||(Jo.remove("ph_optout"),this.opt_out_capturing({clear_persistence:this.get_config("opt_out_persistence_by_default")}))}},{key:"_gdpr_update_persistence",value:function(e){var t;if(e&&e.clear_persistence)t=!0;else{if(!e||!e.enable_persistence)return;t=!1}this.get_config("disable_persistence")||this.persistence.disabled===t||this.persistence.set_disabled(t)}},{key:"_gdpr_call_func",value:function(e,t){return t=bo({capture:this.capture.bind(this),persistence_type:this.get_config("opt_out_capturing_persistence_type"),cookie_prefix:this.get_config("opt_out_capturing_cookie_prefix"),cookie_expiration:this.get_config("cookie_expiration"),cross_subdomain_cookie:this.get_config("cross_subdomain_cookie"),secure_cookie:this.get_config("secure_cookie")},t||{}),ta.is_supported()||"localStorage"!==t.persistence_type||(t.persistence_type="cookie"),e(this.get_config("token"),{capture:t.capture,captureEventName:t.capture_event_name,captureProperties:t.capture_properties,persistenceType:t.persistence_type,persistencePrefix:t.cookie_prefix,cookieExpiration:t.cookie_expiration,crossSubdomainCookie:t.cross_subdomain_cookie,secureCookie:t.secure_cookie})}},{key:"opt_in_capturing",value:function(e){e=bo({enable_persistence:!0},e||{}),this._gdpr_call_func(la,e),this._gdpr_update_persistence(e)}},{key:"opt_out_capturing",value:function(e){var t=bo({clear_persistence:!0},e||{});this._gdpr_call_func(ca,t),this._gdpr_update_persistence(t)}},{key:"has_opted_in_capturing",value:function(e){return this._gdpr_call_func(ua,e)}},{key:"has_opted_out_capturing",value:function(e){return this._gdpr_call_func(pa,e)}},{key:"clear_opt_in_out_capturing",value:function(e){var t=bo({enable_persistence:!0},null!=e?e:{});this._gdpr_call_func(da,t),this._gdpr_update_persistence(t)}},{key:"debug",value:function(e){!1===e?(ro.console.log("You've disabled debug mode."),localStorage&&localStorage.removeItem("ph_debug"),this.set_config({debug:!1})):(ro.console.log("You're now in debug mode. All calls to PostHog will be logged in your console.\nYou can disable this with `posthog.debug(false)`."),localStorage&&localStorage.setItem("ph_debug","true"),this.set_config({debug:!0}))}},{key:"decodeLZ64",value:function(e){return Xr.decompressFromBase64(e||null)}}]),e}();!function(e,t){for(var n=0;n1?r.createElement("div",{className:"ms-block"},r.createElement("nav",{className:" ms-flex ms-items-start ms-overflow-auto ms-justify-center ms-rounded-lg ms-text-center"},t.map((function(e,a){return r.createElement("div",{key:a},r.createElement("button",{tabIndex:0,key:a,onClick:function(){a===i||(s(a),Xi.capture("selecting search type",{goingTo:t[a].name}),o&&o(t[a].name))},style:{backgroundColor:a===i?n.darkMode?"#2e2e2e":"#f9f9f9":n.darkMode?"#1a1a1a":"#ffffff"},className:"ms-mr-2 ms-min-w-[64px] ms-rounded-md sm:ms-min-w-0 ms-m-0 ms-p-0 group ms-relative ms-flex-1 ms-py-1 sm:ms-py-2 ms-px-2 ms-text-xs sm:ms-text-sm ms-font-medium focus:ms-ring-transparent focus:ms-z-10 hover:ms-cursor-pointer "},r.createElement("div",{className:"ms-flex ms-items-center ms-justify-start "},r.createElement("p",{style:{margin:0},className:" ".concat(n.darkMode?"ms-text-white":"ms-text-black")},t[a].name)),r.createElement("span",{"aria-hidden":"true",className:"ms-bg-transparent ms-absolute ms-inset-x-0 ms-bottom-0 ms-h-0.5"}),a===i&&r.createElement("div",{style:{backgroundColor:n.accentColor},className:" ms-absolute ms-inset-x-0 ms-bottom-0 ms-h-0.5 ms-w-full"})))})))):r.createElement("div",null),-1!==i&&r.createElement("div",{tabIndex:-1,className:"ms-w-full ms-rounded-xl ms-flex ms-flex-col ms-relative "},r.createElement("div",{className:"ms-overflow-auto ms-relative ms-h-fit "},r.createElement("div",{className:"ms-flex ms-flex-row ms-w-full ms-items-center ms-justify-between"},r.createElement("div",{style:{textDecorationColor:n.accentColor},className:"ms-flex ms-flex-col ms-w-full ms-items-end "},t[i].displayComponent))))))};const Ji=["http","https","mailto","tel"];function es(e){const t=(e||"").trim(),n=t.charAt(0);if("#"===n||"/"===n)return t;const r=t.indexOf(":");if(-1===r)return t;let o=-1;for(;++oo?t:(o=t.indexOf("#"),-1!==o&&r>o?t:"javascript:void(0)")}var ts=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)};function ns(e){return e&&"object"==typeof e?"position"in e||"type"in e?os(e.position):"start"in e||"end"in e?os(e):"line"in e||"column"in e?rs(e):"":""}function rs(e){return as(e&&e.line)+":"+as(e&&e.column)}function os(e){return rs(e&&e.start)+"-"+rs(e&&e.end)}function as(e){return e&&"number"==typeof e?e:1}class is extends Error{constructor(e,t,n){const r=[null,null];let o={start:{line:null,column:null},end:{line:null,column:null}};if(super(),"string"==typeof t&&(n=t,t=void 0),"string"==typeof n){const e=n.indexOf(":");-1===e?r[1]=n:(r[0]=n.slice(0,e),r[1]=n.slice(e+1))}t&&("type"in t||"position"in t?t.position&&(o=t.position):"start"in t||"end"in t?o=t:("line"in t||"column"in t)&&(o.start=t)),this.name=ns(t)||"1:1",this.message="object"==typeof e?e.message:e,this.stack="","object"==typeof e&&e.stack&&(this.stack=e.stack),this.reason=this.message,this.fatal,this.line=o.start.line,this.column=o.start.column,this.position=o,this.source=r[0],this.ruleId=r[1],this.file,this.actual,this.expected,this.url,this.note}}function ss(e,t){for(var n=0,r=e.length-1;r>=0;r--){var o=e[r];"."===o?e.splice(r,1):".."===o?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}is.prototype.file="",is.prototype.name="",is.prototype.reason="",is.prototype.message="",is.prototype.stack="",is.prototype.fatal=null,is.prototype.column=null,is.prototype.line=null,is.prototype.source=null,is.prototype.ruleId=null,is.prototype.position=null;var ls=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,cs=function(e){return ls.exec(e).slice(1)};function us(e){var t=ps(e),n="/"===bs(e,-1);return(e=ss(ys(e.split("/"),(function(e){return!!e})),!t).join("/"))||t||(e="."),e&&n&&(e+="/"),(t?"/":"")+e}function ps(e){return"/"===e.charAt(0)}var ds=function(e){return cs(e)[3]},fs=function(e,t){var n=cs(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},ms=function(e){var t=cs(e),n=t[0],r=t[1];return n||r?(r&&(r=r.substr(0,r.length-1)),n+r):"."},hs="/",gs=function(){return us(ys(Array.prototype.slice.call(arguments,0),(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))};function ys(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r1)for(var n=1;n= 0x80 (not a basic code point)","invalid-input":"Invalid input"},Zs=Vs-1,Js=Math.floor,el=String.fromCharCode;function tl(e){throw new RangeError(Xs[e])}function nl(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function rl(e,t,n){var r=0;for(e=n?Js(e/Ys):e>>1,e+=Js(e/t);e>Zs*Gs>>1;r+=Vs)e=Js(e/Zs);return Js(r+(Zs+1)*e/(e+Ws))}function ol(e){return function(e,t){var n=e.split("@"),r="";n.length>1&&(r=n[0]+"@",e=n[1]);var o=function(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}((e=e.replace(Qs,".")).split("."),(function(e){return Ks.test(e)?"xn--"+function(e){var t,n,r,o,a,i,s,l,c,u,p,d,f,m,h,g=[];for(e=function(e){for(var t,n,r=[],o=0,a=e.length;o=55296&&t<=56319&&o=t&&pJs((Hs-n)/(f=r+1))&&tl("overflow"),n+=(s-t)*f,t=s,i=0;iHs&&tl("overflow"),p==t){for(l=n,c=Vs;!(l<(u=c<=a?1:c>=a+Gs?Gs:c-a));c+=Vs)h=l-u,m=Vs-u,g.push(el(nl(u+h%m,0))),l=Js(h/m);g.push(el(nl(l,0))),a=rl(n,f,r==o),n=0,++r}++n,++t}return g.join("")}(e):e})).join(".");return r+o}(e)}function al(e){return null===e}function il(e){return"string"==typeof e}function sl(e){return"object"==typeof e&&null!==e}function ll(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var cl=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function ul(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}}function pl(e,t){if(e.map)return e.map(t);for(var n=[],r=0;r0&&s>i&&(s=i);for(var l=0;l=0?(c=f.substr(0,m),u=f.substr(m+1)):(c=f,u=""),p=decodeURIComponent(c),d=decodeURIComponent(u),ll(o,p)?cl(o[p])?o[p].push(d):o[p]=[o[p],d]:o[p]=d}return o}function ml(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}vs.URL,vs.URLSearchParams;var hl=/^([a-z0-9.+-]+:)/i,gl=/:[0-9]*$/,yl=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,bl=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),vl=["'"].concat(bl),wl=["%","/","?",";","#"].concat(vl),kl=["/","?","#"],xl=/^[+a-z0-9A-Z_-]{0,63}$/,Sl=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,_l={javascript:!0,"javascript:":!0},El={javascript:!0,"javascript:":!0},Cl={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function Al(e){var t=e.auth||"";t&&(t=(t=encodeURIComponent(t)).replace(/%3A/i,":"),t+="@");var n=e.protocol||"",r=e.pathname||"",o=e.hash||"",a=!1,i="";e.host?a=t+e.host:e.hostname&&(a=t+(-1===e.hostname.indexOf(":")?e.hostname:"["+this.hostname+"]"),e.port&&(a+=":"+e.port)),e.query&&sl(e.query)&&Object.keys(e.query).length&&(i=function(e,t,n,r){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?pl(dl(e),(function(r){var o=encodeURIComponent(ul(r))+n;return cl(e[r])?pl(e[r],(function(e){return o+encodeURIComponent(ul(e))})).join(t):o+encodeURIComponent(ul(e[r]))})).join(t):""}(e.query));var s=e.search||i&&"?"+i||"";return n&&":"!==n.substr(-1)&&(n+=":"),e.slashes||(!n||Cl[n])&&!1!==a?(a="//"+(a||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):a||(a=""),o&&"#"!==o.charAt(0)&&(o="#"+o),s&&"?"!==s.charAt(0)&&(s="?"+s),n+a+(r=r.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+o}function Ol(e){var t=e.host,n=gl.exec(t);n&&(":"!==(n=n[0])&&(e.port=n.substr(1)),t=t.substr(0,t.length-n.length)),t&&(e.hostname=t)}function Tl(e){return null!==e&&"object"==typeof e&&e.href&&e.origin}ml.prototype.parse=function(e,t,n){return function(e,t,n,r){if(!il(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var o=t.indexOf("?"),a=-1!==o&&o127?x+="x":x+=k[S];if(!x.match(xl)){var E=w.slice(0,c),C=w.slice(c+1),A=k.match(Sl);A&&(E.push(A[1]),C.unshift(A[2])),C.length&&(s="/"+C.join(".")+s),e.hostname=E.join(".");break}}}}e.hostname.length>255?e.hostname="":e.hostname=e.hostname.toLowerCase(),v||(e.hostname=ol(e.hostname)),d=e.port?":"+e.port:"";var O=e.hostname||"";e.host=O+d,e.href+=e.host,v&&(e.hostname=e.hostname.substr(1,e.hostname.length-2),"/"!==s[0]&&(s="/"+s))}if(!_l[m])for(c=0,p=vl.length;c0)&&r.host.split("@"))&&(r.auth=h.shift(),r.host=r.hostname=h.shift())),r.search=e.search,r.query=e.query,al(r.pathname)&&al(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!w.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var x=w.slice(-1)[0],S=(r.host||e.host||w.length>1)&&("."===x||".."===x)||""===x,_=0,E=w.length;E>=0;E--)"."===(x=w[E])?w.splice(E,1):".."===x?(w.splice(E,1),_++):_&&(w.splice(E,1),_--);if(!b&&!v)for(;_--;_)w.unshift("..");!b||""===w[0]||w[0]&&"/"===w[0].charAt(0)||w.unshift(""),S&&"/"!==w.join("/").substr(-1)&&w.push("");var C=""===w[0]||w[0]&&"/"===w[0].charAt(0);return k&&(r.hostname=r.host=C?"":w.length?w.shift():"",(h=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=h.shift(),r.host=r.hostname=h.shift())),(b=b||r.host&&w.length)&&!C&&w.unshift(""),w.length?r.pathname=w.join("/"):(r.pathname=null,r.path=null),al(r.pathname)&&al(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},ml.prototype.parseHost=function(){return Ol(this)};const Pl=["history","path","basename","stem","extname","dirname"];class jl{constructor(e){let t;t=e?"string"==typeof e||function(e){return ts(e)}(e)?{value:e}:Tl(e)?{path:e}:e:{},this.data={},this.messages=[],this.history=[],this.cwd=Us.cwd(),this.value,this.stored,this.result,this.map;let n,r=-1;for(;++rt.length;let i;a&&t.push(r);try{i=e.apply(this,t)}catch(e){if(a&&n)throw e;return r(e)}a||(i instanceof Promise?i.then(o,r):i instanceof Error?r(i):o(i))};function r(e,...r){n||(n=!0,t(e,...r))}function o(e){r(null,e)}}(s,o)(...i):r(null,...i)}}(null,...t)},use:function(n){if("function"!=typeof n)throw new TypeError("Expected `middelware` to be a function, not "+n);return e.push(n),t}};return t}(),n=[];let r,o={},a=-1;return i.data=function(e,t){return"string"==typeof e?2===arguments.length?(Xl("data",r),o[e]=t,i):Wl.call(o,e)&&o[e]||null:e?(Xl("data",r),o=e,i):o},i.Parser=void 0,i.Compiler=void 0,i.freeze=function(){if(r)return i;for(;++a{if(!e&&t&&n){const o=i.stringify(t,n);null==o||("string"==typeof(r=o)||ts(r)?n.value=o:n.result=o),a(e,n)}else a(e);var r}))}n(null,t)},i.processSync=function(e){let t;i.freeze(),Kl("processSync",i.Parser),Ql("processSync",i.Compiler);const n=ec(e);return i.process(n,(function(e){t=!0,Il(e)})),Jl("processSync","process",t),n},i;function i(){const t=e();let r=-1;for(;++ro?0:o+t:t>o?o:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),[].splice.apply(e,a);else for(n&&[].splice.apply(e,[t,n]);i0?(rc(e,e.length,0,t),e):t}const ac={}.hasOwnProperty;function ic(e){const t={};let n=-1;for(;++na))return;const n=t.events.length;let o,s,l=n;for(;l--;)if("exit"===t.events[l][0]&&"chunkFlow"===t.events[l][1].type){if(o){s=t.events[l][1].end;break}o=!0}for(y(i),e=n;er;){const r=n[o];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function b(){r.write([null]),o=void 0,r=void 0,t.containerState._closeFlow=void 0}}},Ec={tokenize:function(e,t,n){return xc(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};function Cc(e){return null===e||gc(e)||vc(e)?1:wc(e)?2:void 0}function Ac(e,t,n){const r=[];let o=-1;for(;++o1&&e[u][1].end.offset-e[u][1].start.offset>1?2:1;const p=Object.assign({},e[n][1].end),d=Object.assign({},e[u][1].start);Tc(p,-s),Tc(d,s),a={type:s>1?"strongSequence":"emphasisSequence",start:p,end:Object.assign({},e[n][1].end)},i={type:s>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[u][1].start),end:d},o={type:s>1?"strongText":"emphasisText",start:Object.assign({},e[n][1].end),end:Object.assign({},e[u][1].start)},r={type:s>1?"strong":"emphasis",start:Object.assign({},a.start),end:Object.assign({},i.end)},e[n][1].end=Object.assign({},a.start),e[u][1].start=Object.assign({},i.end),l=[],e[n][1].end.offset-e[n][1].start.offset&&(l=oc(l,[["enter",e[n][1],t],["exit",e[n][1],t]])),l=oc(l,[["enter",r,t],["enter",a,t],["exit",a,t],["enter",o,t]]),l=oc(l,Ac(t.parser.constructs.insideSpan.null,e.slice(n+1,u),t)),l=oc(l,[["exit",o,t],["enter",i,t],["exit",i,t],["exit",r,t]]),e[u][1].end.offset-e[u][1].start.offset?(c=2,l=oc(l,[["enter",e[u][1],t],["exit",e[u][1],t]])):c=0,rc(e,n-1,u-n+3,l),u=n+l.length-c-2;break}for(u=-1;++u",Gamma:"\u0393",Gammad:"\u03dc",Gbreve:"\u011e",Gcedil:"\u0122",Gcirc:"\u011c",Gcy:"\u0413",Gdot:"\u0120",Gfr:"\ud835\udd0a",Gg:"\u22d9",Gopf:"\ud835\udd3e",GreaterEqual:"\u2265",GreaterEqualLess:"\u22db",GreaterFullEqual:"\u2267",GreaterGreater:"\u2aa2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2a7e",GreaterTilde:"\u2273",Gscr:"\ud835\udca2",Gt:"\u226b",HARDcy:"\u042a",Hacek:"\u02c7",Hat:"^",Hcirc:"\u0124",Hfr:"\u210c",HilbertSpace:"\u210b",Hopf:"\u210d",HorizontalLine:"\u2500",Hscr:"\u210b",Hstrok:"\u0126",HumpDownHump:"\u224e",HumpEqual:"\u224f",IEcy:"\u0415",IJlig:"\u0132",IOcy:"\u0401",Iacute:"\xcd",Icirc:"\xce",Icy:"\u0418",Idot:"\u0130",Ifr:"\u2111",Igrave:"\xcc",Im:"\u2111",Imacr:"\u012a",ImaginaryI:"\u2148",Implies:"\u21d2",Int:"\u222c",Integral:"\u222b",Intersection:"\u22c2",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",Iogon:"\u012e",Iopf:"\ud835\udd40",Iota:"\u0399",Iscr:"\u2110",Itilde:"\u0128",Iukcy:"\u0406",Iuml:"\xcf",Jcirc:"\u0134",Jcy:"\u0419",Jfr:"\ud835\udd0d",Jopf:"\ud835\udd41",Jscr:"\ud835\udca5",Jsercy:"\u0408",Jukcy:"\u0404",KHcy:"\u0425",KJcy:"\u040c",Kappa:"\u039a",Kcedil:"\u0136",Kcy:"\u041a",Kfr:"\ud835\udd0e",Kopf:"\ud835\udd42",Kscr:"\ud835\udca6",LJcy:"\u0409",LT:"<",Lacute:"\u0139",Lambda:"\u039b",Lang:"\u27ea",Laplacetrf:"\u2112",Larr:"\u219e",Lcaron:"\u013d",Lcedil:"\u013b",Lcy:"\u041b",LeftAngleBracket:"\u27e8",LeftArrow:"\u2190",LeftArrowBar:"\u21e4",LeftArrowRightArrow:"\u21c6",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27e6",LeftDownTeeVector:"\u2961",LeftDownVector:"\u21c3",LeftDownVectorBar:"\u2959",LeftFloor:"\u230a",LeftRightArrow:"\u2194",LeftRightVector:"\u294e",LeftTee:"\u22a3",LeftTeeArrow:"\u21a4",LeftTeeVector:"\u295a",LeftTriangle:"\u22b2",LeftTriangleBar:"\u29cf",LeftTriangleEqual:"\u22b4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVector:"\u21bf",LeftUpVectorBar:"\u2958",LeftVector:"\u21bc",LeftVectorBar:"\u2952",Leftarrow:"\u21d0",Leftrightarrow:"\u21d4",LessEqualGreater:"\u22da",LessFullEqual:"\u2266",LessGreater:"\u2276",LessLess:"\u2aa1",LessSlantEqual:"\u2a7d",LessTilde:"\u2272",Lfr:"\ud835\udd0f",Ll:"\u22d8",Lleftarrow:"\u21da",Lmidot:"\u013f",LongLeftArrow:"\u27f5",LongLeftRightArrow:"\u27f7",LongRightArrow:"\u27f6",Longleftarrow:"\u27f8",Longleftrightarrow:"\u27fa",Longrightarrow:"\u27f9",Lopf:"\ud835\udd43",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",Lscr:"\u2112",Lsh:"\u21b0",Lstrok:"\u0141",Lt:"\u226a",Map:"\u2905",Mcy:"\u041c",MediumSpace:"\u205f",Mellintrf:"\u2133",Mfr:"\ud835\udd10",MinusPlus:"\u2213",Mopf:"\ud835\udd44",Mscr:"\u2133",Mu:"\u039c",NJcy:"\u040a",Nacute:"\u0143",Ncaron:"\u0147",Ncedil:"\u0145",Ncy:"\u041d",NegativeMediumSpace:"\u200b",NegativeThickSpace:"\u200b",NegativeThinSpace:"\u200b",NegativeVeryThinSpace:"\u200b",NestedGreaterGreater:"\u226b",NestedLessLess:"\u226a",NewLine:"\n",Nfr:"\ud835\udd11",NoBreak:"\u2060",NonBreakingSpace:"\xa0",Nopf:"\u2115",Not:"\u2aec",NotCongruent:"\u2262",NotCupCap:"\u226d",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226f",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226b\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2a7e\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224e\u0338",NotHumpEqual:"\u224f\u0338",NotLeftTriangle:"\u22ea",NotLeftTriangleBar:"\u29cf\u0338",NotLeftTriangleEqual:"\u22ec",NotLess:"\u226e",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226a\u0338",NotLessSlantEqual:"\u2a7d\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2aa2\u0338",NotNestedLessLess:"\u2aa1\u0338",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2aaf\u0338",NotPrecedesSlantEqual:"\u22e0",NotReverseElement:"\u220c",NotRightTriangle:"\u22eb",NotRightTriangleBar:"\u29d0\u0338",NotRightTriangleEqual:"\u22ed",NotSquareSubset:"\u228f\u0338",NotSquareSubsetEqual:"\u22e2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22e3",NotSubset:"\u2282\u20d2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2ab0\u0338",NotSucceedsSlantEqual:"\u22e1",NotSucceedsTilde:"\u227f\u0338",NotSuperset:"\u2283\u20d2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",Nscr:"\ud835\udca9",Ntilde:"\xd1",Nu:"\u039d",OElig:"\u0152",Oacute:"\xd3",Ocirc:"\xd4",Ocy:"\u041e",Odblac:"\u0150",Ofr:"\ud835\udd12",Ograve:"\xd2",Omacr:"\u014c",Omega:"\u03a9",Omicron:"\u039f",Oopf:"\ud835\udd46",OpenCurlyDoubleQuote:"\u201c",OpenCurlyQuote:"\u2018",Or:"\u2a54",Oscr:"\ud835\udcaa",Oslash:"\xd8",Otilde:"\xd5",Otimes:"\u2a37",Ouml:"\xd6",OverBar:"\u203e",OverBrace:"\u23de",OverBracket:"\u23b4",OverParenthesis:"\u23dc",PartialD:"\u2202",Pcy:"\u041f",Pfr:"\ud835\udd13",Phi:"\u03a6",Pi:"\u03a0",PlusMinus:"\xb1",Poincareplane:"\u210c",Popf:"\u2119",Pr:"\u2abb",Precedes:"\u227a",PrecedesEqual:"\u2aaf",PrecedesSlantEqual:"\u227c",PrecedesTilde:"\u227e",Prime:"\u2033",Product:"\u220f",Proportion:"\u2237",Proportional:"\u221d",Pscr:"\ud835\udcab",Psi:"\u03a8",QUOT:'"',Qfr:"\ud835\udd14",Qopf:"\u211a",Qscr:"\ud835\udcac",RBarr:"\u2910",REG:"\xae",Racute:"\u0154",Rang:"\u27eb",Rarr:"\u21a0",Rarrtl:"\u2916",Rcaron:"\u0158",Rcedil:"\u0156",Rcy:"\u0420",Re:"\u211c",ReverseElement:"\u220b",ReverseEquilibrium:"\u21cb",ReverseUpEquilibrium:"\u296f",Rfr:"\u211c",Rho:"\u03a1",RightAngleBracket:"\u27e9",RightArrow:"\u2192",RightArrowBar:"\u21e5",RightArrowLeftArrow:"\u21c4",RightCeiling:"\u2309",RightDoubleBracket:"\u27e7",RightDownTeeVector:"\u295d",RightDownVector:"\u21c2",RightDownVectorBar:"\u2955",RightFloor:"\u230b",RightTee:"\u22a2",RightTeeArrow:"\u21a6",RightTeeVector:"\u295b",RightTriangle:"\u22b3",RightTriangleBar:"\u29d0",RightTriangleEqual:"\u22b5",RightUpDownVector:"\u294f",RightUpTeeVector:"\u295c",RightUpVector:"\u21be",RightUpVectorBar:"\u2954",RightVector:"\u21c0",RightVectorBar:"\u2953",Rightarrow:"\u21d2",Ropf:"\u211d",RoundImplies:"\u2970",Rrightarrow:"\u21db",Rscr:"\u211b",Rsh:"\u21b1",RuleDelayed:"\u29f4",SHCHcy:"\u0429",SHcy:"\u0428",SOFTcy:"\u042c",Sacute:"\u015a",Sc:"\u2abc",Scaron:"\u0160",Scedil:"\u015e",Scirc:"\u015c",Scy:"\u0421",Sfr:"\ud835\udd16",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",Sigma:"\u03a3",SmallCircle:"\u2218",Sopf:"\ud835\udd4a",Sqrt:"\u221a",Square:"\u25a1",SquareIntersection:"\u2293",SquareSubset:"\u228f",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",Sscr:"\ud835\udcae",Star:"\u22c6",Sub:"\u22d0",Subset:"\u22d0",SubsetEqual:"\u2286",Succeeds:"\u227b",SucceedsEqual:"\u2ab0",SucceedsSlantEqual:"\u227d",SucceedsTilde:"\u227f",SuchThat:"\u220b",Sum:"\u2211",Sup:"\u22d1",Superset:"\u2283",SupersetEqual:"\u2287",Supset:"\u22d1",THORN:"\xde",TRADE:"\u2122",TSHcy:"\u040b",TScy:"\u0426",Tab:"\t",Tau:"\u03a4",Tcaron:"\u0164",Tcedil:"\u0162",Tcy:"\u0422",Tfr:"\ud835\udd17",Therefore:"\u2234",Theta:"\u0398",ThickSpace:"\u205f\u200a",ThinSpace:"\u2009",Tilde:"\u223c",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",Topf:"\ud835\udd4b",TripleDot:"\u20db",Tscr:"\ud835\udcaf",Tstrok:"\u0166",Uacute:"\xda",Uarr:"\u219f",Uarrocir:"\u2949",Ubrcy:"\u040e",Ubreve:"\u016c",Ucirc:"\xdb",Ucy:"\u0423",Udblac:"\u0170",Ufr:"\ud835\udd18",Ugrave:"\xd9",Umacr:"\u016a",UnderBar:"_",UnderBrace:"\u23df",UnderBracket:"\u23b5",UnderParenthesis:"\u23dd",Union:"\u22c3",UnionPlus:"\u228e",Uogon:"\u0172",Uopf:"\ud835\udd4c",UpArrow:"\u2191",UpArrowBar:"\u2912",UpArrowDownArrow:"\u21c5",UpDownArrow:"\u2195",UpEquilibrium:"\u296e",UpTee:"\u22a5",UpTeeArrow:"\u21a5",Uparrow:"\u21d1",Updownarrow:"\u21d5",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",Upsi:"\u03d2",Upsilon:"\u03a5",Uring:"\u016e",Uscr:"\ud835\udcb0",Utilde:"\u0168",Uuml:"\xdc",VDash:"\u22ab",Vbar:"\u2aeb",Vcy:"\u0412",Vdash:"\u22a9",Vdashl:"\u2ae6",Vee:"\u22c1",Verbar:"\u2016",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200a",Vfr:"\ud835\udd19",Vopf:"\ud835\udd4d",Vscr:"\ud835\udcb1",Vvdash:"\u22aa",Wcirc:"\u0174",Wedge:"\u22c0",Wfr:"\ud835\udd1a",Wopf:"\ud835\udd4e",Wscr:"\ud835\udcb2",Xfr:"\ud835\udd1b",Xi:"\u039e",Xopf:"\ud835\udd4f",Xscr:"\ud835\udcb3",YAcy:"\u042f",YIcy:"\u0407",YUcy:"\u042e",Yacute:"\xdd",Ycirc:"\u0176",Ycy:"\u042b",Yfr:"\ud835\udd1c",Yopf:"\ud835\udd50",Yscr:"\ud835\udcb4",Yuml:"\u0178",ZHcy:"\u0416",Zacute:"\u0179",Zcaron:"\u017d",Zcy:"\u0417",Zdot:"\u017b",ZeroWidthSpace:"\u200b",Zeta:"\u0396",Zfr:"\u2128",Zopf:"\u2124",Zscr:"\ud835\udcb5",aacute:"\xe1",abreve:"\u0103",ac:"\u223e",acE:"\u223e\u0333",acd:"\u223f",acirc:"\xe2",acute:"\xb4",acy:"\u0430",aelig:"\xe6",af:"\u2061",afr:"\ud835\udd1e",agrave:"\xe0",alefsym:"\u2135",aleph:"\u2135",alpha:"\u03b1",amacr:"\u0101",amalg:"\u2a3f",amp:"&",and:"\u2227",andand:"\u2a55",andd:"\u2a5c",andslope:"\u2a58",andv:"\u2a5a",ang:"\u2220",ange:"\u29a4",angle:"\u2220",angmsd:"\u2221",angmsdaa:"\u29a8",angmsdab:"\u29a9",angmsdac:"\u29aa",angmsdad:"\u29ab",angmsdae:"\u29ac",angmsdaf:"\u29ad",angmsdag:"\u29ae",angmsdah:"\u29af",angrt:"\u221f",angrtvb:"\u22be",angrtvbd:"\u299d",angsph:"\u2222",angst:"\xc5",angzarr:"\u237c",aogon:"\u0105",aopf:"\ud835\udd52",ap:"\u2248",apE:"\u2a70",apacir:"\u2a6f",ape:"\u224a",apid:"\u224b",apos:"'",approx:"\u2248",approxeq:"\u224a",aring:"\xe5",ascr:"\ud835\udcb6",ast:"*",asymp:"\u2248",asympeq:"\u224d",atilde:"\xe3",auml:"\xe4",awconint:"\u2233",awint:"\u2a11",bNot:"\u2aed",backcong:"\u224c",backepsilon:"\u03f6",backprime:"\u2035",backsim:"\u223d",backsimeq:"\u22cd",barvee:"\u22bd",barwed:"\u2305",barwedge:"\u2305",bbrk:"\u23b5",bbrktbrk:"\u23b6",bcong:"\u224c",bcy:"\u0431",bdquo:"\u201e",becaus:"\u2235",because:"\u2235",bemptyv:"\u29b0",bepsi:"\u03f6",bernou:"\u212c",beta:"\u03b2",beth:"\u2136",between:"\u226c",bfr:"\ud835\udd1f",bigcap:"\u22c2",bigcirc:"\u25ef",bigcup:"\u22c3",bigodot:"\u2a00",bigoplus:"\u2a01",bigotimes:"\u2a02",bigsqcup:"\u2a06",bigstar:"\u2605",bigtriangledown:"\u25bd",bigtriangleup:"\u25b3",biguplus:"\u2a04",bigvee:"\u22c1",bigwedge:"\u22c0",bkarow:"\u290d",blacklozenge:"\u29eb",blacksquare:"\u25aa",blacktriangle:"\u25b4",blacktriangledown:"\u25be",blacktriangleleft:"\u25c2",blacktriangleright:"\u25b8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20e5",bnequiv:"\u2261\u20e5",bnot:"\u2310",bopf:"\ud835\udd53",bot:"\u22a5",bottom:"\u22a5",bowtie:"\u22c8",boxDL:"\u2557",boxDR:"\u2554",boxDl:"\u2556",boxDr:"\u2553",boxH:"\u2550",boxHD:"\u2566",boxHU:"\u2569",boxHd:"\u2564",boxHu:"\u2567",boxUL:"\u255d",boxUR:"\u255a",boxUl:"\u255c",boxUr:"\u2559",boxV:"\u2551",boxVH:"\u256c",boxVL:"\u2563",boxVR:"\u2560",boxVh:"\u256b",boxVl:"\u2562",boxVr:"\u255f",boxbox:"\u29c9",boxdL:"\u2555",boxdR:"\u2552",boxdl:"\u2510",boxdr:"\u250c",boxh:"\u2500",boxhD:"\u2565",boxhU:"\u2568",boxhd:"\u252c",boxhu:"\u2534",boxminus:"\u229f",boxplus:"\u229e",boxtimes:"\u22a0",boxuL:"\u255b",boxuR:"\u2558",boxul:"\u2518",boxur:"\u2514",boxv:"\u2502",boxvH:"\u256a",boxvL:"\u2561",boxvR:"\u255e",boxvh:"\u253c",boxvl:"\u2524",boxvr:"\u251c",bprime:"\u2035",breve:"\u02d8",brvbar:"\xa6",bscr:"\ud835\udcb7",bsemi:"\u204f",bsim:"\u223d",bsime:"\u22cd",bsol:"\\",bsolb:"\u29c5",bsolhsub:"\u27c8",bull:"\u2022",bullet:"\u2022",bump:"\u224e",bumpE:"\u2aae",bumpe:"\u224f",bumpeq:"\u224f",cacute:"\u0107",cap:"\u2229",capand:"\u2a44",capbrcup:"\u2a49",capcap:"\u2a4b",capcup:"\u2a47",capdot:"\u2a40",caps:"\u2229\ufe00",caret:"\u2041",caron:"\u02c7",ccaps:"\u2a4d",ccaron:"\u010d",ccedil:"\xe7",ccirc:"\u0109",ccups:"\u2a4c",ccupssm:"\u2a50",cdot:"\u010b",cedil:"\xb8",cemptyv:"\u29b2",cent:"\xa2",centerdot:"\xb7",cfr:"\ud835\udd20",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",chi:"\u03c7",cir:"\u25cb",cirE:"\u29c3",circ:"\u02c6",circeq:"\u2257",circlearrowleft:"\u21ba",circlearrowright:"\u21bb",circledR:"\xae",circledS:"\u24c8",circledast:"\u229b",circledcirc:"\u229a",circleddash:"\u229d",cire:"\u2257",cirfnint:"\u2a10",cirmid:"\u2aef",cirscir:"\u29c2",clubs:"\u2663",clubsuit:"\u2663",colon:":",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2a6d",conint:"\u222e",copf:"\ud835\udd54",coprod:"\u2210",copy:"\xa9",copysr:"\u2117",crarr:"\u21b5",cross:"\u2717",cscr:"\ud835\udcb8",csub:"\u2acf",csube:"\u2ad1",csup:"\u2ad0",csupe:"\u2ad2",ctdot:"\u22ef",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22de",cuesc:"\u22df",cularr:"\u21b6",cularrp:"\u293d",cup:"\u222a",cupbrcap:"\u2a48",cupcap:"\u2a46",cupcup:"\u2a4a",cupdot:"\u228d",cupor:"\u2a45",cups:"\u222a\ufe00",curarr:"\u21b7",curarrm:"\u293c",curlyeqprec:"\u22de",curlyeqsucc:"\u22df",curlyvee:"\u22ce",curlywedge:"\u22cf",curren:"\xa4",curvearrowleft:"\u21b6",curvearrowright:"\u21b7",cuvee:"\u22ce",cuwed:"\u22cf",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232d",dArr:"\u21d3",dHar:"\u2965",dagger:"\u2020",daleth:"\u2138",darr:"\u2193",dash:"\u2010",dashv:"\u22a3",dbkarow:"\u290f",dblac:"\u02dd",dcaron:"\u010f",dcy:"\u0434",dd:"\u2146",ddagger:"\u2021",ddarr:"\u21ca",ddotseq:"\u2a77",deg:"\xb0",delta:"\u03b4",demptyv:"\u29b1",dfisht:"\u297f",dfr:"\ud835\udd21",dharl:"\u21c3",dharr:"\u21c2",diam:"\u22c4",diamond:"\u22c4",diamondsuit:"\u2666",diams:"\u2666",die:"\xa8",digamma:"\u03dd",disin:"\u22f2",div:"\xf7",divide:"\xf7",divideontimes:"\u22c7",divonx:"\u22c7",djcy:"\u0452",dlcorn:"\u231e",dlcrop:"\u230d",dollar:"$",dopf:"\ud835\udd55",dot:"\u02d9",doteq:"\u2250",doteqdot:"\u2251",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22a1",doublebarwedge:"\u2306",downarrow:"\u2193",downdownarrows:"\u21ca",downharpoonleft:"\u21c3",downharpoonright:"\u21c2",drbkarow:"\u2910",drcorn:"\u231f",drcrop:"\u230c",dscr:"\ud835\udcb9",dscy:"\u0455",dsol:"\u29f6",dstrok:"\u0111",dtdot:"\u22f1",dtri:"\u25bf",dtrif:"\u25be",duarr:"\u21f5",duhar:"\u296f",dwangle:"\u29a6",dzcy:"\u045f",dzigrarr:"\u27ff",eDDot:"\u2a77",eDot:"\u2251",eacute:"\xe9",easter:"\u2a6e",ecaron:"\u011b",ecir:"\u2256",ecirc:"\xea",ecolon:"\u2255",ecy:"\u044d",edot:"\u0117",ee:"\u2147",efDot:"\u2252",efr:"\ud835\udd22",eg:"\u2a9a",egrave:"\xe8",egs:"\u2a96",egsdot:"\u2a98",el:"\u2a99",elinters:"\u23e7",ell:"\u2113",els:"\u2a95",elsdot:"\u2a97",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",emptyv:"\u2205",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",eng:"\u014b",ensp:"\u2002",eogon:"\u0119",eopf:"\ud835\udd56",epar:"\u22d5",eparsl:"\u29e3",eplus:"\u2a71",epsi:"\u03b5",epsilon:"\u03b5",epsiv:"\u03f5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2a96",eqslantless:"\u2a95",equals:"=",equest:"\u225f",equiv:"\u2261",equivDD:"\u2a78",eqvparsl:"\u29e5",erDot:"\u2253",erarr:"\u2971",escr:"\u212f",esdot:"\u2250",esim:"\u2242",eta:"\u03b7",eth:"\xf0",euml:"\xeb",euro:"\u20ac",excl:"!",exist:"\u2203",expectation:"\u2130",exponentiale:"\u2147",fallingdotseq:"\u2252",fcy:"\u0444",female:"\u2640",ffilig:"\ufb03",fflig:"\ufb00",ffllig:"\ufb04",ffr:"\ud835\udd23",filig:"\ufb01",fjlig:"fj",flat:"\u266d",fllig:"\ufb02",fltns:"\u25b1",fnof:"\u0192",fopf:"\ud835\udd57",forall:"\u2200",fork:"\u22d4",forkv:"\u2ad9",fpartint:"\u2a0d",frac12:"\xbd",frac13:"\u2153",frac14:"\xbc",frac15:"\u2155",frac16:"\u2159",frac18:"\u215b",frac23:"\u2154",frac25:"\u2156",frac34:"\xbe",frac35:"\u2157",frac38:"\u215c",frac45:"\u2158",frac56:"\u215a",frac58:"\u215d",frac78:"\u215e",frasl:"\u2044",frown:"\u2322",fscr:"\ud835\udcbb",gE:"\u2267",gEl:"\u2a8c",gacute:"\u01f5",gamma:"\u03b3",gammad:"\u03dd",gap:"\u2a86",gbreve:"\u011f",gcirc:"\u011d",gcy:"\u0433",gdot:"\u0121",ge:"\u2265",gel:"\u22db",geq:"\u2265",geqq:"\u2267",geqslant:"\u2a7e",ges:"\u2a7e",gescc:"\u2aa9",gesdot:"\u2a80",gesdoto:"\u2a82",gesdotol:"\u2a84",gesl:"\u22db\ufe00",gesles:"\u2a94",gfr:"\ud835\udd24",gg:"\u226b",ggg:"\u22d9",gimel:"\u2137",gjcy:"\u0453",gl:"\u2277",glE:"\u2a92",gla:"\u2aa5",glj:"\u2aa4",gnE:"\u2269",gnap:"\u2a8a",gnapprox:"\u2a8a",gne:"\u2a88",gneq:"\u2a88",gneqq:"\u2269",gnsim:"\u22e7",gopf:"\ud835\udd58",grave:"`",gscr:"\u210a",gsim:"\u2273",gsime:"\u2a8e",gsiml:"\u2a90",gt:">",gtcc:"\u2aa7",gtcir:"\u2a7a",gtdot:"\u22d7",gtlPar:"\u2995",gtquest:"\u2a7c",gtrapprox:"\u2a86",gtrarr:"\u2978",gtrdot:"\u22d7",gtreqless:"\u22db",gtreqqless:"\u2a8c",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\ufe00",gvnE:"\u2269\ufe00",hArr:"\u21d4",hairsp:"\u200a",half:"\xbd",hamilt:"\u210b",hardcy:"\u044a",harr:"\u2194",harrcir:"\u2948",harrw:"\u21ad",hbar:"\u210f",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22b9",hfr:"\ud835\udd25",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21ff",homtht:"\u223b",hookleftarrow:"\u21a9",hookrightarrow:"\u21aa",hopf:"\ud835\udd59",horbar:"\u2015",hscr:"\ud835\udcbd",hslash:"\u210f",hstrok:"\u0127",hybull:"\u2043",hyphen:"\u2010",iacute:"\xed",ic:"\u2063",icirc:"\xee",icy:"\u0438",iecy:"\u0435",iexcl:"\xa1",iff:"\u21d4",ifr:"\ud835\udd26",igrave:"\xec",ii:"\u2148",iiiint:"\u2a0c",iiint:"\u222d",iinfin:"\u29dc",iiota:"\u2129",ijlig:"\u0133",imacr:"\u012b",image:"\u2111",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",imof:"\u22b7",imped:"\u01b5",in:"\u2208",incare:"\u2105",infin:"\u221e",infintie:"\u29dd",inodot:"\u0131",int:"\u222b",intcal:"\u22ba",integers:"\u2124",intercal:"\u22ba",intlarhk:"\u2a17",intprod:"\u2a3c",iocy:"\u0451",iogon:"\u012f",iopf:"\ud835\udd5a",iota:"\u03b9",iprod:"\u2a3c",iquest:"\xbf",iscr:"\ud835\udcbe",isin:"\u2208",isinE:"\u22f9",isindot:"\u22f5",isins:"\u22f4",isinsv:"\u22f3",isinv:"\u2208",it:"\u2062",itilde:"\u0129",iukcy:"\u0456",iuml:"\xef",jcirc:"\u0135",jcy:"\u0439",jfr:"\ud835\udd27",jmath:"\u0237",jopf:"\ud835\udd5b",jscr:"\ud835\udcbf",jsercy:"\u0458",jukcy:"\u0454",kappa:"\u03ba",kappav:"\u03f0",kcedil:"\u0137",kcy:"\u043a",kfr:"\ud835\udd28",kgreen:"\u0138",khcy:"\u0445",kjcy:"\u045c",kopf:"\ud835\udd5c",kscr:"\ud835\udcc0",lAarr:"\u21da",lArr:"\u21d0",lAtail:"\u291b",lBarr:"\u290e",lE:"\u2266",lEg:"\u2a8b",lHar:"\u2962",lacute:"\u013a",laemptyv:"\u29b4",lagran:"\u2112",lambda:"\u03bb",lang:"\u27e8",langd:"\u2991",langle:"\u27e8",lap:"\u2a85",laquo:"\xab",larr:"\u2190",larrb:"\u21e4",larrbfs:"\u291f",larrfs:"\u291d",larrhk:"\u21a9",larrlp:"\u21ab",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21a2",lat:"\u2aab",latail:"\u2919",late:"\u2aad",lates:"\u2aad\ufe00",lbarr:"\u290c",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298b",lbrksld:"\u298f",lbrkslu:"\u298d",lcaron:"\u013e",lcedil:"\u013c",lceil:"\u2308",lcub:"{",lcy:"\u043b",ldca:"\u2936",ldquo:"\u201c",ldquor:"\u201e",ldrdhar:"\u2967",ldrushar:"\u294b",ldsh:"\u21b2",le:"\u2264",leftarrow:"\u2190",leftarrowtail:"\u21a2",leftharpoondown:"\u21bd",leftharpoonup:"\u21bc",leftleftarrows:"\u21c7",leftrightarrow:"\u2194",leftrightarrows:"\u21c6",leftrightharpoons:"\u21cb",leftrightsquigarrow:"\u21ad",leftthreetimes:"\u22cb",leg:"\u22da",leq:"\u2264",leqq:"\u2266",leqslant:"\u2a7d",les:"\u2a7d",lescc:"\u2aa8",lesdot:"\u2a7f",lesdoto:"\u2a81",lesdotor:"\u2a83",lesg:"\u22da\ufe00",lesges:"\u2a93",lessapprox:"\u2a85",lessdot:"\u22d6",lesseqgtr:"\u22da",lesseqqgtr:"\u2a8b",lessgtr:"\u2276",lesssim:"\u2272",lfisht:"\u297c",lfloor:"\u230a",lfr:"\ud835\udd29",lg:"\u2276",lgE:"\u2a91",lhard:"\u21bd",lharu:"\u21bc",lharul:"\u296a",lhblk:"\u2584",ljcy:"\u0459",ll:"\u226a",llarr:"\u21c7",llcorner:"\u231e",llhard:"\u296b",lltri:"\u25fa",lmidot:"\u0140",lmoust:"\u23b0",lmoustache:"\u23b0",lnE:"\u2268",lnap:"\u2a89",lnapprox:"\u2a89",lne:"\u2a87",lneq:"\u2a87",lneqq:"\u2268",lnsim:"\u22e6",loang:"\u27ec",loarr:"\u21fd",lobrk:"\u27e6",longleftarrow:"\u27f5",longleftrightarrow:"\u27f7",longmapsto:"\u27fc",longrightarrow:"\u27f6",looparrowleft:"\u21ab",looparrowright:"\u21ac",lopar:"\u2985",lopf:"\ud835\udd5d",loplus:"\u2a2d",lotimes:"\u2a34",lowast:"\u2217",lowbar:"_",loz:"\u25ca",lozenge:"\u25ca",lozf:"\u29eb",lpar:"(",lparlt:"\u2993",lrarr:"\u21c6",lrcorner:"\u231f",lrhar:"\u21cb",lrhard:"\u296d",lrm:"\u200e",lrtri:"\u22bf",lsaquo:"\u2039",lscr:"\ud835\udcc1",lsh:"\u21b0",lsim:"\u2272",lsime:"\u2a8d",lsimg:"\u2a8f",lsqb:"[",lsquo:"\u2018",lsquor:"\u201a",lstrok:"\u0142",lt:"<",ltcc:"\u2aa6",ltcir:"\u2a79",ltdot:"\u22d6",lthree:"\u22cb",ltimes:"\u22c9",ltlarr:"\u2976",ltquest:"\u2a7b",ltrPar:"\u2996",ltri:"\u25c3",ltrie:"\u22b4",ltrif:"\u25c2",lurdshar:"\u294a",luruhar:"\u2966",lvertneqq:"\u2268\ufe00",lvnE:"\u2268\ufe00",mDDot:"\u223a",macr:"\xaf",male:"\u2642",malt:"\u2720",maltese:"\u2720",map:"\u21a6",mapsto:"\u21a6",mapstodown:"\u21a7",mapstoleft:"\u21a4",mapstoup:"\u21a5",marker:"\u25ae",mcomma:"\u2a29",mcy:"\u043c",mdash:"\u2014",measuredangle:"\u2221",mfr:"\ud835\udd2a",mho:"\u2127",micro:"\xb5",mid:"\u2223",midast:"*",midcir:"\u2af0",middot:"\xb7",minus:"\u2212",minusb:"\u229f",minusd:"\u2238",minusdu:"\u2a2a",mlcp:"\u2adb",mldr:"\u2026",mnplus:"\u2213",models:"\u22a7",mopf:"\ud835\udd5e",mp:"\u2213",mscr:"\ud835\udcc2",mstpos:"\u223e",mu:"\u03bc",multimap:"\u22b8",mumap:"\u22b8",nGg:"\u22d9\u0338",nGt:"\u226b\u20d2",nGtv:"\u226b\u0338",nLeftarrow:"\u21cd",nLeftrightarrow:"\u21ce",nLl:"\u22d8\u0338",nLt:"\u226a\u20d2",nLtv:"\u226a\u0338",nRightarrow:"\u21cf",nVDash:"\u22af",nVdash:"\u22ae",nabla:"\u2207",nacute:"\u0144",nang:"\u2220\u20d2",nap:"\u2249",napE:"\u2a70\u0338",napid:"\u224b\u0338",napos:"\u0149",napprox:"\u2249",natur:"\u266e",natural:"\u266e",naturals:"\u2115",nbsp:"\xa0",nbump:"\u224e\u0338",nbumpe:"\u224f\u0338",ncap:"\u2a43",ncaron:"\u0148",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2a6d\u0338",ncup:"\u2a42",ncy:"\u043d",ndash:"\u2013",ne:"\u2260",neArr:"\u21d7",nearhk:"\u2924",nearr:"\u2197",nearrow:"\u2197",nedot:"\u2250\u0338",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",nexist:"\u2204",nexists:"\u2204",nfr:"\ud835\udd2b",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2a7e\u0338",nges:"\u2a7e\u0338",ngsim:"\u2275",ngt:"\u226f",ngtr:"\u226f",nhArr:"\u21ce",nharr:"\u21ae",nhpar:"\u2af2",ni:"\u220b",nis:"\u22fc",nisd:"\u22fa",niv:"\u220b",njcy:"\u045a",nlArr:"\u21cd",nlE:"\u2266\u0338",nlarr:"\u219a",nldr:"\u2025",nle:"\u2270",nleftarrow:"\u219a",nleftrightarrow:"\u21ae",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2a7d\u0338",nles:"\u2a7d\u0338",nless:"\u226e",nlsim:"\u2274",nlt:"\u226e",nltri:"\u22ea",nltrie:"\u22ec",nmid:"\u2224",nopf:"\ud835\udd5f",not:"\xac",notin:"\u2209",notinE:"\u22f9\u0338",notindot:"\u22f5\u0338",notinva:"\u2209",notinvb:"\u22f7",notinvc:"\u22f6",notni:"\u220c",notniva:"\u220c",notnivb:"\u22fe",notnivc:"\u22fd",npar:"\u2226",nparallel:"\u2226",nparsl:"\u2afd\u20e5",npart:"\u2202\u0338",npolint:"\u2a14",npr:"\u2280",nprcue:"\u22e0",npre:"\u2aaf\u0338",nprec:"\u2280",npreceq:"\u2aaf\u0338",nrArr:"\u21cf",nrarr:"\u219b",nrarrc:"\u2933\u0338",nrarrw:"\u219d\u0338",nrightarrow:"\u219b",nrtri:"\u22eb",nrtrie:"\u22ed",nsc:"\u2281",nsccue:"\u22e1",nsce:"\u2ab0\u0338",nscr:"\ud835\udcc3",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22e2",nsqsupe:"\u22e3",nsub:"\u2284",nsubE:"\u2ac5\u0338",nsube:"\u2288",nsubset:"\u2282\u20d2",nsubseteq:"\u2288",nsubseteqq:"\u2ac5\u0338",nsucc:"\u2281",nsucceq:"\u2ab0\u0338",nsup:"\u2285",nsupE:"\u2ac6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20d2",nsupseteq:"\u2289",nsupseteqq:"\u2ac6\u0338",ntgl:"\u2279",ntilde:"\xf1",ntlg:"\u2278",ntriangleleft:"\u22ea",ntrianglelefteq:"\u22ec",ntriangleright:"\u22eb",ntrianglerighteq:"\u22ed",nu:"\u03bd",num:"#",numero:"\u2116",numsp:"\u2007",nvDash:"\u22ad",nvHarr:"\u2904",nvap:"\u224d\u20d2",nvdash:"\u22ac",nvge:"\u2265\u20d2",nvgt:">\u20d2",nvinfin:"\u29de",nvlArr:"\u2902",nvle:"\u2264\u20d2",nvlt:"<\u20d2",nvltrie:"\u22b4\u20d2",nvrArr:"\u2903",nvrtrie:"\u22b5\u20d2",nvsim:"\u223c\u20d2",nwArr:"\u21d6",nwarhk:"\u2923",nwarr:"\u2196",nwarrow:"\u2196",nwnear:"\u2927",oS:"\u24c8",oacute:"\xf3",oast:"\u229b",ocir:"\u229a",ocirc:"\xf4",ocy:"\u043e",odash:"\u229d",odblac:"\u0151",odiv:"\u2a38",odot:"\u2299",odsold:"\u29bc",oelig:"\u0153",ofcir:"\u29bf",ofr:"\ud835\udd2c",ogon:"\u02db",ograve:"\xf2",ogt:"\u29c1",ohbar:"\u29b5",ohm:"\u03a9",oint:"\u222e",olarr:"\u21ba",olcir:"\u29be",olcross:"\u29bb",oline:"\u203e",olt:"\u29c0",omacr:"\u014d",omega:"\u03c9",omicron:"\u03bf",omid:"\u29b6",ominus:"\u2296",oopf:"\ud835\udd60",opar:"\u29b7",operp:"\u29b9",oplus:"\u2295",or:"\u2228",orarr:"\u21bb",ord:"\u2a5d",order:"\u2134",orderof:"\u2134",ordf:"\xaa",ordm:"\xba",origof:"\u22b6",oror:"\u2a56",orslope:"\u2a57",orv:"\u2a5b",oscr:"\u2134",oslash:"\xf8",osol:"\u2298",otilde:"\xf5",otimes:"\u2297",otimesas:"\u2a36",ouml:"\xf6",ovbar:"\u233d",par:"\u2225",para:"\xb6",parallel:"\u2225",parsim:"\u2af3",parsl:"\u2afd",part:"\u2202",pcy:"\u043f",percnt:"%",period:".",permil:"\u2030",perp:"\u22a5",pertenk:"\u2031",pfr:"\ud835\udd2d",phi:"\u03c6",phiv:"\u03d5",phmmat:"\u2133",phone:"\u260e",pi:"\u03c0",pitchfork:"\u22d4",piv:"\u03d6",planck:"\u210f",planckh:"\u210e",plankv:"\u210f",plus:"+",plusacir:"\u2a23",plusb:"\u229e",pluscir:"\u2a22",plusdo:"\u2214",plusdu:"\u2a25",pluse:"\u2a72",plusmn:"\xb1",plussim:"\u2a26",plustwo:"\u2a27",pm:"\xb1",pointint:"\u2a15",popf:"\ud835\udd61",pound:"\xa3",pr:"\u227a",prE:"\u2ab3",prap:"\u2ab7",prcue:"\u227c",pre:"\u2aaf",prec:"\u227a",precapprox:"\u2ab7",preccurlyeq:"\u227c",preceq:"\u2aaf",precnapprox:"\u2ab9",precneqq:"\u2ab5",precnsim:"\u22e8",precsim:"\u227e",prime:"\u2032",primes:"\u2119",prnE:"\u2ab5",prnap:"\u2ab9",prnsim:"\u22e8",prod:"\u220f",profalar:"\u232e",profline:"\u2312",profsurf:"\u2313",prop:"\u221d",propto:"\u221d",prsim:"\u227e",prurel:"\u22b0",pscr:"\ud835\udcc5",psi:"\u03c8",puncsp:"\u2008",qfr:"\ud835\udd2e",qint:"\u2a0c",qopf:"\ud835\udd62",qprime:"\u2057",qscr:"\ud835\udcc6",quaternions:"\u210d",quatint:"\u2a16",quest:"?",questeq:"\u225f",quot:'"',rAarr:"\u21db",rArr:"\u21d2",rAtail:"\u291c",rBarr:"\u290f",rHar:"\u2964",race:"\u223d\u0331",racute:"\u0155",radic:"\u221a",raemptyv:"\u29b3",rang:"\u27e9",rangd:"\u2992",range:"\u29a5",rangle:"\u27e9",raquo:"\xbb",rarr:"\u2192",rarrap:"\u2975",rarrb:"\u21e5",rarrbfs:"\u2920",rarrc:"\u2933",rarrfs:"\u291e",rarrhk:"\u21aa",rarrlp:"\u21ac",rarrpl:"\u2945",rarrsim:"\u2974",rarrtl:"\u21a3",rarrw:"\u219d",ratail:"\u291a",ratio:"\u2236",rationals:"\u211a",rbarr:"\u290d",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298c",rbrksld:"\u298e",rbrkslu:"\u2990",rcaron:"\u0159",rcedil:"\u0157",rceil:"\u2309",rcub:"}",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201d",rdquor:"\u201d",rdsh:"\u21b3",real:"\u211c",realine:"\u211b",realpart:"\u211c",reals:"\u211d",rect:"\u25ad",reg:"\xae",rfisht:"\u297d",rfloor:"\u230b",rfr:"\ud835\udd2f",rhard:"\u21c1",rharu:"\u21c0",rharul:"\u296c",rho:"\u03c1",rhov:"\u03f1",rightarrow:"\u2192",rightarrowtail:"\u21a3",rightharpoondown:"\u21c1",rightharpoonup:"\u21c0",rightleftarrows:"\u21c4",rightleftharpoons:"\u21cc",rightrightarrows:"\u21c9",rightsquigarrow:"\u219d",rightthreetimes:"\u22cc",ring:"\u02da",risingdotseq:"\u2253",rlarr:"\u21c4",rlhar:"\u21cc",rlm:"\u200f",rmoust:"\u23b1",rmoustache:"\u23b1",rnmid:"\u2aee",roang:"\u27ed",roarr:"\u21fe",robrk:"\u27e7",ropar:"\u2986",ropf:"\ud835\udd63",roplus:"\u2a2e",rotimes:"\u2a35",rpar:")",rpargt:"\u2994",rppolint:"\u2a12",rrarr:"\u21c9",rsaquo:"\u203a",rscr:"\ud835\udcc7",rsh:"\u21b1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22cc",rtimes:"\u22ca",rtri:"\u25b9",rtrie:"\u22b5",rtrif:"\u25b8",rtriltri:"\u29ce",ruluhar:"\u2968",rx:"\u211e",sacute:"\u015b",sbquo:"\u201a",sc:"\u227b",scE:"\u2ab4",scap:"\u2ab8",scaron:"\u0161",sccue:"\u227d",sce:"\u2ab0",scedil:"\u015f",scirc:"\u015d",scnE:"\u2ab6",scnap:"\u2aba",scnsim:"\u22e9",scpolint:"\u2a13",scsim:"\u227f",scy:"\u0441",sdot:"\u22c5",sdotb:"\u22a1",sdote:"\u2a66",seArr:"\u21d8",searhk:"\u2925",searr:"\u2198",searrow:"\u2198",sect:"\xa7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",sfr:"\ud835\udd30",sfrown:"\u2322",sharp:"\u266f",shchcy:"\u0449",shcy:"\u0448",shortmid:"\u2223",shortparallel:"\u2225",shy:"\xad",sigma:"\u03c3",sigmaf:"\u03c2",sigmav:"\u03c2",sim:"\u223c",simdot:"\u2a6a",sime:"\u2243",simeq:"\u2243",simg:"\u2a9e",simgE:"\u2aa0",siml:"\u2a9d",simlE:"\u2a9f",simne:"\u2246",simplus:"\u2a24",simrarr:"\u2972",slarr:"\u2190",smallsetminus:"\u2216",smashp:"\u2a33",smeparsl:"\u29e4",smid:"\u2223",smile:"\u2323",smt:"\u2aaa",smte:"\u2aac",smtes:"\u2aac\ufe00",softcy:"\u044c",sol:"/",solb:"\u29c4",solbar:"\u233f",sopf:"\ud835\udd64",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\ufe00",sqcup:"\u2294",sqcups:"\u2294\ufe00",sqsub:"\u228f",sqsube:"\u2291",sqsubset:"\u228f",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",squ:"\u25a1",square:"\u25a1",squarf:"\u25aa",squf:"\u25aa",srarr:"\u2192",sscr:"\ud835\udcc8",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22c6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03f5",straightphi:"\u03d5",strns:"\xaf",sub:"\u2282",subE:"\u2ac5",subdot:"\u2abd",sube:"\u2286",subedot:"\u2ac3",submult:"\u2ac1",subnE:"\u2acb",subne:"\u228a",subplus:"\u2abf",subrarr:"\u2979",subset:"\u2282",subseteq:"\u2286",subseteqq:"\u2ac5",subsetneq:"\u228a",subsetneqq:"\u2acb",subsim:"\u2ac7",subsub:"\u2ad5",subsup:"\u2ad3",succ:"\u227b",succapprox:"\u2ab8",succcurlyeq:"\u227d",succeq:"\u2ab0",succnapprox:"\u2aba",succneqq:"\u2ab6",succnsim:"\u22e9",succsim:"\u227f",sum:"\u2211",sung:"\u266a",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",sup:"\u2283",supE:"\u2ac6",supdot:"\u2abe",supdsub:"\u2ad8",supe:"\u2287",supedot:"\u2ac4",suphsol:"\u27c9",suphsub:"\u2ad7",suplarr:"\u297b",supmult:"\u2ac2",supnE:"\u2acc",supne:"\u228b",supplus:"\u2ac0",supset:"\u2283",supseteq:"\u2287",supseteqq:"\u2ac6",supsetneq:"\u228b",supsetneqq:"\u2acc",supsim:"\u2ac8",supsub:"\u2ad4",supsup:"\u2ad6",swArr:"\u21d9",swarhk:"\u2926",swarr:"\u2199",swarrow:"\u2199",swnwar:"\u292a",szlig:"\xdf",target:"\u2316",tau:"\u03c4",tbrk:"\u23b4",tcaron:"\u0165",tcedil:"\u0163",tcy:"\u0442",tdot:"\u20db",telrec:"\u2315",tfr:"\ud835\udd31",there4:"\u2234",therefore:"\u2234",theta:"\u03b8",thetasym:"\u03d1",thetav:"\u03d1",thickapprox:"\u2248",thicksim:"\u223c",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223c",thorn:"\xfe",tilde:"\u02dc",times:"\xd7",timesb:"\u22a0",timesbar:"\u2a31",timesd:"\u2a30",tint:"\u222d",toea:"\u2928",top:"\u22a4",topbot:"\u2336",topcir:"\u2af1",topf:"\ud835\udd65",topfork:"\u2ada",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",triangle:"\u25b5",triangledown:"\u25bf",triangleleft:"\u25c3",trianglelefteq:"\u22b4",triangleq:"\u225c",triangleright:"\u25b9",trianglerighteq:"\u22b5",tridot:"\u25ec",trie:"\u225c",triminus:"\u2a3a",triplus:"\u2a39",trisb:"\u29cd",tritime:"\u2a3b",trpezium:"\u23e2",tscr:"\ud835\udcc9",tscy:"\u0446",tshcy:"\u045b",tstrok:"\u0167",twixt:"\u226c",twoheadleftarrow:"\u219e",twoheadrightarrow:"\u21a0",uArr:"\u21d1",uHar:"\u2963",uacute:"\xfa",uarr:"\u2191",ubrcy:"\u045e",ubreve:"\u016d",ucirc:"\xfb",ucy:"\u0443",udarr:"\u21c5",udblac:"\u0171",udhar:"\u296e",ufisht:"\u297e",ufr:"\ud835\udd32",ugrave:"\xf9",uharl:"\u21bf",uharr:"\u21be",uhblk:"\u2580",ulcorn:"\u231c",ulcorner:"\u231c",ulcrop:"\u230f",ultri:"\u25f8",umacr:"\u016b",uml:"\xa8",uogon:"\u0173",uopf:"\ud835\udd66",uparrow:"\u2191",updownarrow:"\u2195",upharpoonleft:"\u21bf",upharpoonright:"\u21be",uplus:"\u228e",upsi:"\u03c5",upsih:"\u03d2",upsilon:"\u03c5",upuparrows:"\u21c8",urcorn:"\u231d",urcorner:"\u231d",urcrop:"\u230e",uring:"\u016f",urtri:"\u25f9",uscr:"\ud835\udcca",utdot:"\u22f0",utilde:"\u0169",utri:"\u25b5",utrif:"\u25b4",uuarr:"\u21c8",uuml:"\xfc",uwangle:"\u29a7",vArr:"\u21d5",vBar:"\u2ae8",vBarv:"\u2ae9",vDash:"\u22a8",vangrt:"\u299c",varepsilon:"\u03f5",varkappa:"\u03f0",varnothing:"\u2205",varphi:"\u03d5",varpi:"\u03d6",varpropto:"\u221d",varr:"\u2195",varrho:"\u03f1",varsigma:"\u03c2",varsubsetneq:"\u228a\ufe00",varsubsetneqq:"\u2acb\ufe00",varsupsetneq:"\u228b\ufe00",varsupsetneqq:"\u2acc\ufe00",vartheta:"\u03d1",vartriangleleft:"\u22b2",vartriangleright:"\u22b3",vcy:"\u0432",vdash:"\u22a2",vee:"\u2228",veebar:"\u22bb",veeeq:"\u225a",vellip:"\u22ee",verbar:"|",vert:"|",vfr:"\ud835\udd33",vltri:"\u22b2",vnsub:"\u2282\u20d2",vnsup:"\u2283\u20d2",vopf:"\ud835\udd67",vprop:"\u221d",vrtri:"\u22b3",vscr:"\ud835\udccb",vsubnE:"\u2acb\ufe00",vsubne:"\u228a\ufe00",vsupnE:"\u2acc\ufe00",vsupne:"\u228b\ufe00",vzigzag:"\u299a",wcirc:"\u0175",wedbar:"\u2a5f",wedge:"\u2227",wedgeq:"\u2259",weierp:"\u2118",wfr:"\ud835\udd34",wopf:"\ud835\udd68",wp:"\u2118",wr:"\u2240",wreath:"\u2240",wscr:"\ud835\udccc",xcap:"\u22c2",xcirc:"\u25ef",xcup:"\u22c3",xdtri:"\u25bd",xfr:"\ud835\udd35",xhArr:"\u27fa",xharr:"\u27f7",xi:"\u03be",xlArr:"\u27f8",xlarr:"\u27f5",xmap:"\u27fc",xnis:"\u22fb",xodot:"\u2a00",xopf:"\ud835\udd69",xoplus:"\u2a01",xotime:"\u2a02",xrArr:"\u27f9",xrarr:"\u27f6",xscr:"\ud835\udccd",xsqcup:"\u2a06",xuplus:"\u2a04",xutri:"\u25b3",xvee:"\u22c1",xwedge:"\u22c0",yacute:"\xfd",yacy:"\u044f",ycirc:"\u0177",ycy:"\u044b",yen:"\xa5",yfr:"\ud835\udd36",yicy:"\u0457",yopf:"\ud835\udd6a",yscr:"\ud835\udcce",yucy:"\u044e",yuml:"\xff",zacute:"\u017a",zcaron:"\u017e",zcy:"\u0437",zdot:"\u017c",zeetrf:"\u2128",zeta:"\u03b6",zfr:"\ud835\udd37",zhcy:"\u0436",zigrarr:"\u21dd",zopf:"\ud835\udd6b",zscr:"\ud835\udccf",zwj:"\u200d",zwnj:"\u200c"},Ic={}.hasOwnProperty;function Fc(e){return!!Ic.call(Lc,e)&&Lc[e]}const Dc={name:"characterReference",tokenize:function(e,t,n){const r=this;let o,a,i=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),s};function s(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),o=31,a=dc,c(t))}function l(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),o=6,a=pc,c):(e.enter("characterReferenceValue"),o=7,a=uc,c(t))}function c(s){let l;return 59===s&&i?(l=e.exit("characterReferenceValue"),a!==dc||Fc(r.sliceSerialize(l))?(e.enter("characterReferenceMarker"),e.consume(s),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(s)):a(s)&&i++=4?a(e):n(e)}function a(t){return null===t?s(t):yc(t)?e.attempt(Bc,a,s)(t):(e.enter("codeFlowValue"),i(t))}function i(t){return null===t||yc(t)?(e.exit("codeFlowValue"),a(t)):(e.consume(t),i)}function s(n){return e.exit("codeIndented"),t(n)}}},Bc={tokenize:function(e,t,n){const r=this;return o;function o(t){return r.parser.lazy[r.now().line]?n(t):yc(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),o):xc(e,a,"linePrefix",5)(t)}function a(e){const a=r.events[r.events.length-1];return a&&"linePrefix"===a[1].type&&a[2].sliceSerialize(a[1],!0).length>=4?t(e):yc(e)?o(e):n(e)}},partial:!0},$c={name:"codeText",tokenize:function(e,t,n){let r,o,a=0;return function(t){return e.enter("codeText"),e.enter("codeTextSequence"),i(t)};function i(t){return 96===t?(e.consume(t),a++,i):(e.exit("codeTextSequence"),s(t))}function s(t){return null===t?n(t):96===t?(o=e.enter("codeTextSequence"),r=0,c(t)):32===t?(e.enter("space"),e.consume(t),e.exit("space"),s):yc(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),s):(e.enter("codeTextData"),l(t))}function l(t){return null===t||32===t||96===t||yc(t)?(e.exit("codeTextData"),s(t)):(e.consume(t),l)}function c(n){return 96===n?(e.consume(n),r++,c):r===a?(e.exit("codeTextSequence"),e.exit("codeText"),t(n)):(o.type="codeTextData",l(n))}},resolve:function(e){let t,n,r=e.length-4,o=3;if(!("lineEnding"!==e[o][1].type&&"space"!==e[o][1].type||"lineEnding"!==e[r][1].type&&"space"!==e[r][1].type))for(t=o;++t=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}},partial:!0};function Gc(e,t,n,r,o,a,i,s,l){const c=l||Number.POSITIVE_INFINITY;let u=0;return function(t){return 60===t?(e.enter(r),e.enter(o),e.enter(a),e.consume(t),e.exit(a),p):null===t||41===t||hc(t)?n(t):(e.enter(r),e.enter(i),e.enter(s),e.enter("chunkString",{contentType:"string"}),m(t))};function p(n){return 62===n?(e.enter(a),e.consume(n),e.exit(a),e.exit(o),e.exit(r),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),d(n))}function d(t){return 62===t?(e.exit("chunkString"),e.exit(s),p(t)):null===t||60===t||yc(t)?n(t):(e.consume(t),92===t?f:d)}function f(t){return 60===t||62===t||92===t?(e.consume(t),d):d(t)}function m(o){return 40===o?++u>c?n(o):(e.consume(o),m):41===o?u--?(e.consume(o),m):(e.exit("chunkString"),e.exit(s),e.exit(i),e.exit(r),t(o)):null===o||gc(o)?u?n(o):(e.exit("chunkString"),e.exit(s),e.exit(i),e.exit(r),t(o)):hc(o)?n(o):(e.consume(o),92===o?h:m)}function h(t){return 40===t||41===t||92===t?(e.consume(t),m):m(t)}}function Wc(e,t,n,r,o,a){const i=this;let s,l=0;return function(t){return e.enter(r),e.enter(o),e.consume(t),e.exit(o),e.enter(a),c};function c(p){return null===p||91===p||93===p&&!s||94===p&&!l&&"_hiddenFootnoteSupport"in i.parser.constructs||l>999?n(p):93===p?(e.exit(a),e.enter(o),e.consume(p),e.exit(o),e.exit(r),t):yc(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),u(p))}function u(t){return null===t||91===t||93===t||yc(t)||l++>999?(e.exit("chunkString"),c(t)):(e.consume(t),s=s||!bc(t),92===t?p:u)}function p(t){return 91===t||92===t||93===t?(e.consume(t),l++,u):u(t)}}function Yc(e,t,n,r,o,a){let i;return function(t){return e.enter(r),e.enter(o),e.consume(t),e.exit(o),i=40===t?41:t,s};function s(n){return n===i?(e.enter(o),e.consume(n),e.exit(o),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===i?(e.exit(a),s(i)):null===t?n(t):yc(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),xc(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(t))}function c(t){return t===i||null===t||yc(t)?(e.exit("chunkString"),l(t)):(e.consume(t),92===t?u:c)}function u(t){return t===i||92===t?(e.consume(t),c):c(t)}}function Kc(e,t){let n;return function r(o){return yc(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),n=!0,r):bc(o)?xc(e,r,n?"linePrefix":"lineSuffix")(o):t(o)}}function Qc(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Xc={name:"definition",tokenize:function(e,t,n){const r=this;let o;return function(t){return e.enter("definition"),Wc.call(r,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)};function a(t){return o=Qc(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),Kc(e,Gc(e,e.attempt(Zc,xc(e,i,"whitespace"),xc(e,i,"whitespace")),n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):n(t)}function i(a){return null===a||yc(a)?(e.exit("definition"),r.parser.defined.includes(o)||r.parser.defined.push(o),t(a)):n(a)}}},Zc={tokenize:function(e,t,n){return function(t){return gc(t)?Kc(e,r)(t):n(t)};function r(t){return 34===t||39===t||40===t?Yc(e,xc(e,o,"whitespace"),n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t):n(t)}function o(e){return null===e||yc(e)?t(e):n(e)}},partial:!0},Jc={name:"hardBreakEscape",tokenize:function(e,t,n){return function(t){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(t),r};function r(r){return yc(r)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(r)):n(r)}}},eu={name:"headingAtx",tokenize:function(e,t,n){const r=this;let o=0;return function(t){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),a(t)};function a(s){return 35===s&&o++<6?(e.consume(s),a):null===s||gc(s)?(e.exit("atxHeadingSequence"),r.interrupt?t(s):i(s)):n(s)}function i(n){return 35===n?(e.enter("atxHeadingSequence"),s(n)):null===n||yc(n)?(e.exit("atxHeading"),t(n)):bc(n)?xc(e,i,"whitespace")(n):(e.enter("atxHeadingText"),l(n))}function s(t){return 35===t?(e.consume(t),s):(e.exit("atxHeadingSequence"),i(t))}function l(t){return null===t||35===t||gc(t)?(e.exit("atxHeadingText"),i(t)):(e.consume(t),l)}},resolve:function(e,t){let n,r,o=e.length-2,a=3;return"whitespace"===e[a][1].type&&(a+=2),o-2>a&&"whitespace"===e[o][1].type&&(o-=2),"atxHeadingSequence"===e[o][1].type&&(a===o-1||o-4>a&&"whitespace"===e[o-2][1].type)&&(o-=a+1===o?2:4),o>a&&(n={type:"atxHeadingText",start:e[a][1].start,end:e[o][1].end},r={type:"chunkText",start:e[a][1].start,end:e[o][1].end,contentType:"text"},rc(e,a,o-a+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]])),e}},tu=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],nu=["pre","script","style","textarea"],ru={name:"htmlFlow",tokenize:function(e,t,n){const r=this;let o,a,i,s,l;return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),c};function c(s){return 33===s?(e.consume(s),u):47===s?(e.consume(s),f):63===s?(e.consume(s),o=3,r.interrupt?t:L):cc(s)?(e.consume(s),i=String.fromCharCode(s),a=!0,m):n(s)}function u(a){return 45===a?(e.consume(a),o=2,p):91===a?(e.consume(a),o=5,i="CDATA[",s=0,d):cc(a)?(e.consume(a),o=4,r.interrupt?t:L):n(a)}function p(o){return 45===o?(e.consume(o),r.interrupt?t:L):n(o)}function d(o){return o===i.charCodeAt(s++)?(e.consume(o),s===i.length?r.interrupt?t:C:d):n(o)}function f(t){return cc(t)?(e.consume(t),i=String.fromCharCode(t),m):n(t)}function m(s){return null===s||47===s||62===s||gc(s)?47!==s&&a&&nu.includes(i.toLowerCase())?(o=1,r.interrupt?t(s):C(s)):tu.includes(i.toLowerCase())?(o=6,47===s?(e.consume(s),h):r.interrupt?t(s):C(s)):(o=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?y(s):g(s)):45===s||dc(s)?(e.consume(s),i+=String.fromCharCode(s),m):n(s)}function h(o){return 62===o?(e.consume(o),r.interrupt?t:C):n(o)}function g(t){return bc(t)?(e.consume(t),g):_(t)}function y(t){return 47===t?(e.consume(t),_):58===t||95===t||cc(t)?(e.consume(t),b):bc(t)?(e.consume(t),y):_(t)}function b(t){return 45===t||46===t||58===t||95===t||dc(t)?(e.consume(t),b):v(t)}function v(t){return 61===t?(e.consume(t),w):bc(t)?(e.consume(t),v):y(t)}function w(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),l=t,k):bc(t)?(e.consume(t),w):(l=null,x(t))}function k(t){return null===t||yc(t)?n(t):t===l?(e.consume(t),S):(e.consume(t),k)}function x(t){return null===t||34===t||39===t||60===t||61===t||62===t||96===t||gc(t)?v(t):(e.consume(t),x)}function S(e){return 47===e||62===e||bc(e)?y(e):n(e)}function _(t){return 62===t?(e.consume(t),E):n(t)}function E(t){return bc(t)?(e.consume(t),E):null===t||yc(t)?C(t):n(t)}function C(t){return 45===t&&2===o?(e.consume(t),P):60===t&&1===o?(e.consume(t),j):62===t&&4===o?(e.consume(t),I):63===t&&3===o?(e.consume(t),L):93===t&&5===o?(e.consume(t),R):!yc(t)||6!==o&&7!==o?null===t||yc(t)?A(t):(e.consume(t),C):e.check(ou,I,A)(t)}function A(t){return e.exit("htmlFlowData"),O(t)}function O(t){return null===t?F(t):yc(t)?e.attempt({tokenize:T,partial:!0},O,F)(t):(e.enter("htmlFlowData"),C(t))}function T(e,t,n){return function(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),o};function o(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}function P(t){return 45===t?(e.consume(t),L):C(t)}function j(t){return 47===t?(e.consume(t),i="",N):C(t)}function N(t){return 62===t&&nu.includes(i.toLowerCase())?(e.consume(t),I):cc(t)&&i.length<8?(e.consume(t),i+=String.fromCharCode(t),N):C(t)}function R(t){return 93===t?(e.consume(t),L):C(t)}function L(t){return 62===t?(e.consume(t),I):45===t&&2===o?(e.consume(t),L):C(t)}function I(t){return null===t||yc(t)?(e.exit("htmlFlowData"),F(t)):(e.consume(t),I)}function F(n){return e.exit("htmlFlow"),t(n)}},resolveTo:function(e){let t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););return t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e},concrete:!0},ou={tokenize:function(e,t,n){return function(r){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),e.attempt(jc,t,n)}},partial:!0},au={name:"htmlText",tokenize:function(e,t,n){const r=this;let o,a,i,s;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),l};function l(t){return 33===t?(e.consume(t),c):47===t?(e.consume(t),x):63===t?(e.consume(t),w):cc(t)?(e.consume(t),E):n(t)}function c(t){return 45===t?(e.consume(t),u):91===t?(e.consume(t),a="CDATA[",i=0,h):cc(t)?(e.consume(t),v):n(t)}function u(t){return 45===t?(e.consume(t),p):n(t)}function p(t){return null===t||62===t?n(t):45===t?(e.consume(t),d):f(t)}function d(e){return null===e||62===e?n(e):f(e)}function f(t){return null===t?n(t):45===t?(e.consume(t),m):yc(t)?(s=f,R(t)):(e.consume(t),f)}function m(t){return 45===t?(e.consume(t),I):f(t)}function h(t){return t===a.charCodeAt(i++)?(e.consume(t),i===a.length?g:h):n(t)}function g(t){return null===t?n(t):93===t?(e.consume(t),y):yc(t)?(s=g,R(t)):(e.consume(t),g)}function y(t){return 93===t?(e.consume(t),b):g(t)}function b(t){return 62===t?I(t):93===t?(e.consume(t),b):g(t)}function v(t){return null===t||62===t?I(t):yc(t)?(s=v,R(t)):(e.consume(t),v)}function w(t){return null===t?n(t):63===t?(e.consume(t),k):yc(t)?(s=w,R(t)):(e.consume(t),w)}function k(e){return 62===e?I(e):w(e)}function x(t){return cc(t)?(e.consume(t),S):n(t)}function S(t){return 45===t||dc(t)?(e.consume(t),S):_(t)}function _(t){return yc(t)?(s=_,R(t)):bc(t)?(e.consume(t),_):I(t)}function E(t){return 45===t||dc(t)?(e.consume(t),E):47===t||62===t||gc(t)?C(t):n(t)}function C(t){return 47===t?(e.consume(t),I):58===t||95===t||cc(t)?(e.consume(t),A):yc(t)?(s=C,R(t)):bc(t)?(e.consume(t),C):I(t)}function A(t){return 45===t||46===t||58===t||95===t||dc(t)?(e.consume(t),A):O(t)}function O(t){return 61===t?(e.consume(t),T):yc(t)?(s=O,R(t)):bc(t)?(e.consume(t),O):C(t)}function T(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),o=t,P):yc(t)?(s=T,R(t)):bc(t)?(e.consume(t),T):(e.consume(t),o=void 0,N)}function P(t){return t===o?(e.consume(t),j):null===t?n(t):yc(t)?(s=P,R(t)):(e.consume(t),P)}function j(e){return 62===e||47===e||gc(e)?C(e):n(e)}function N(t){return null===t||34===t||39===t||60===t||61===t||96===t?n(t):62===t||gc(t)?C(t):(e.consume(t),N)}function R(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),xc(e,L,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function L(t){return e.enter("htmlTextData"),s(t)}function I(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}}},iu={name:"labelEnd",tokenize:function(e,t,n){const r=this;let o,a,i=r.events.length;for(;i--;)if(("labelImage"===r.events[i][1].type||"labelLink"===r.events[i][1].type)&&!r.events[i][1]._balanced){o=r.events[i][1];break}return function(t){return o?o._inactive?l(t):(a=r.parser.defined.includes(Qc(r.sliceSerialize({start:o.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),s):n(t)};function s(n){return 40===n?e.attempt(su,t,a?t:l)(n):91===n?e.attempt(lu,t,a?e.attempt(cu,t,l):l)(n):a?t(n):l(n)}function l(e){return o._balanced=!0,n(e)}},resolveTo:function(e,t){let n,r,o,a,i=e.length,s=0;for(;i--;)if(n=e[i][1],r){if("link"===n.type||"labelLink"===n.type&&n._inactive)break;"enter"===e[i][0]&&"labelLink"===n.type&&(n._inactive=!0)}else if(o){if("enter"===e[i][0]&&("labelImage"===n.type||"labelLink"===n.type)&&!n._balanced&&(r=i,"labelLink"!==n.type)){s=2;break}}else"labelEnd"===n.type&&(o=i);const l={type:"labelLink"===e[r][1].type?"link":"image",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)},c={type:"label",start:Object.assign({},e[r][1].start),end:Object.assign({},e[o][1].end)},u={type:"labelText",start:Object.assign({},e[r+s+2][1].end),end:Object.assign({},e[o-2][1].start)};return a=[["enter",l,t],["enter",c,t]],a=oc(a,e.slice(r+1,r+s+3)),a=oc(a,[["enter",u,t]]),a=oc(a,Ac(t.parser.constructs.insideSpan.null,e.slice(r+s+4,o-3),t)),a=oc(a,[["exit",u,t],e[o-2],e[o-1],["exit",c,t]]),a=oc(a,e.slice(o+1)),a=oc(a,[["exit",l,t]]),rc(e,r,e.length,a),e},resolveAll:function(e){let t,n=-1;for(;++n-1&&(i[0]=i[0].slice(r)),a>0&&i.push(e[o].slice(0,a))),i}(i,e)}function d(){return Object.assign({},r)}function f(e){u=u(e)}function m(e,t){t.restore()}function h(e,t){return function(n,o,a){let i,u,p,f;return Array.isArray(n)?m(n):"tokenize"in n?m([n]):function(e){return function(t){const n=null!==t&&e[t],r=null!==t&&e.null;return m([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(r)?r:r?[r]:[]])(t)}}(n);function m(e){return i=e,u=0,0===e.length?a:h(e[u])}function h(e){return function(n){return f=function(){const e=d(),t=c.previous,n=c.currentConstruct,o=c.events.length,a=Array.from(s);return{restore:function(){r=e,c.previous=t,c.currentConstruct=n,c.events.length=o,s=a,y()},from:o}}(),p=e,e.partial||(c.currentConstruct=e),e.name&&c.parser.constructs.disable.null.includes(e.name)?b():e.tokenize.call(t?Object.assign(Object.create(c),t):c,l,g,b)(n)}}function g(t){return e(p,f),o}function b(e){return f.restore(),++u13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||!(65535&~n)||65534==(65535&n)||n>1114111?"\ufffd":String.fromCharCode(n)}const Fu=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Du(e){return e.replace(Fu,Mu)}function Mu(e,t,n){if(t)return t;if(35===n.charCodeAt(0)){const e=n.charCodeAt(1),t=120===e||88===e;return Iu(n.slice(t?2:1),t?16:10)}return Fc(n)||e}const zu={}.hasOwnProperty,Bu=function(e,t,n){return"string"!=typeof t&&(n=t,t=void 0),function(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(w),autolinkProtocol:d,autolinkEmail:d,atxHeading:i(y),blockQuote:i((function(){return{type:"blockquote",children:[]}})),characterEscape:d,characterReference:d,codeFenced:i(g),codeFencedFenceInfo:s,codeFencedFenceMeta:s,codeIndented:i(g,s),codeText:i((function(){return{type:"inlineCode",value:""}}),s),codeTextData:d,data:d,codeFlowValue:d,definition:i((function(){return{type:"definition",identifier:"",label:null,title:null,url:""}})),definitionDestinationString:s,definitionLabelString:s,definitionTitleString:s,emphasis:i((function(){return{type:"emphasis",children:[]}})),hardBreakEscape:i(b),hardBreakTrailing:i(b),htmlFlow:i(v,s),htmlFlowData:d,htmlText:i(v,s),htmlTextData:d,image:i((function(){return{type:"image",title:null,url:"",alt:null}})),label:s,link:i(w),listItem:i((function(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}})),listItemValue:function(e){a("expectingFirstListItemValue")&&(this.stack[this.stack.length-2].start=Number.parseInt(this.sliceSerialize(e),10),o("expectingFirstListItemValue"))},listOrdered:i(k,(function(){o("expectingFirstListItemValue",!0)})),listUnordered:i(k),paragraph:i((function(){return{type:"paragraph",children:[]}})),reference:function(){o("referenceType","collapsed")},referenceString:s,resourceDestinationString:s,resourceTitleString:s,setextHeading:i(y),strong:i((function(){return{type:"strong",children:[]}})),thematicBreak:i((function(){return{type:"thematicBreak"}}))},exit:{atxHeading:c(),atxHeadingSequence:function(e){const t=this.stack[this.stack.length-1];if(!t.depth){const n=this.sliceSerialize(e).length;t.depth=n}},autolink:c(),autolinkEmail:function(e){f.call(this,e),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)},autolinkProtocol:function(e){f.call(this,e),this.stack[this.stack.length-1].url=this.sliceSerialize(e)},blockQuote:c(),characterEscapeValue:f,characterReferenceMarkerHexadecimal:h,characterReferenceMarkerNumeric:h,characterReferenceValue:function(e){const t=this.sliceSerialize(e),n=a("characterReferenceType");let r;n?(r=Iu(t,"characterReferenceMarkerNumeric"===n?10:16),o("characterReferenceType")):r=Fc(t);const i=this.stack.pop();i.value+=r,i.position.end=$u(e.end)},codeFenced:c((function(){const e=this.resume();this.stack[this.stack.length-1].value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),o("flowCodeInside")})),codeFencedFence:function(){a("flowCodeInside")||(this.buffer(),o("flowCodeInside",!0))},codeFencedFenceInfo:function(){const e=this.resume();this.stack[this.stack.length-1].lang=e},codeFencedFenceMeta:function(){const e=this.resume();this.stack[this.stack.length-1].meta=e},codeFlowValue:f,codeIndented:c((function(){const e=this.resume();this.stack[this.stack.length-1].value=e.replace(/(\r?\n|\r)$/g,"")})),codeText:c((function(){const e=this.resume();this.stack[this.stack.length-1].value=e})),codeTextData:f,data:f,definition:c(),definitionDestinationString:function(){const e=this.resume();this.stack[this.stack.length-1].url=e},definitionLabelString:function(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=Qc(this.sliceSerialize(e)).toLowerCase()},definitionTitleString:function(){const e=this.resume();this.stack[this.stack.length-1].title=e},emphasis:c(),hardBreakEscape:c(m),hardBreakTrailing:c(m),htmlFlow:c((function(){const e=this.resume();this.stack[this.stack.length-1].value=e})),htmlFlowData:f,htmlText:c((function(){const e=this.resume();this.stack[this.stack.length-1].value=e})),htmlTextData:f,image:c((function(){const e=this.stack[this.stack.length-1];if(a("inReference")){const t=a("referenceType")||"shortcut";e.type+="Reference",e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;o("referenceType")})),label:function(){const e=this.stack[this.stack.length-1],t=this.resume(),n=this.stack[this.stack.length-1];if(o("inReference",!0),"link"===n.type){const t=e.children;n.children=t}else n.alt=t},labelText:function(e){const t=this.sliceSerialize(e),n=this.stack[this.stack.length-2];n.label=Du(t),n.identifier=Qc(t).toLowerCase()},lineEnding:function(e){const n=this.stack[this.stack.length-1];if(a("atHardBreak"))return n.children[n.children.length-1].position.end=$u(e.end),void o("atHardBreak");!a("setextHeadingSlurpLineEnding")&&t.canContainEols.includes(n.type)&&(d.call(this,e),f.call(this,e))},link:c((function(){const e=this.stack[this.stack.length-1];if(a("inReference")){const t=a("referenceType")||"shortcut";e.type+="Reference",e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;o("referenceType")})),listItem:c(),listOrdered:c(),listUnordered:c(),paragraph:c(),referenceString:function(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=Qc(this.sliceSerialize(e)).toLowerCase(),o("referenceType","full")},resourceDestinationString:function(){const e=this.resume();this.stack[this.stack.length-1].url=e},resourceTitleString:function(){const e=this.resume();this.stack[this.stack.length-1].title=e},resource:function(){o("inReference")},setextHeading:c((function(){o("setextHeadingSlurpLineEnding")})),setextHeadingLineSequence:function(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).charCodeAt(0)?1:2},setextHeadingText:function(){o("setextHeadingSlurpLineEnding",!0)},strong:c(),thematicBreak:c()}};qu(t,(e||{}).mdastExtensions||[]);const n={};return function(e){let n={type:"root",children:[]};const i={stack:[n],tokenStack:[],config:t,enter:l,exit:u,buffer:s,resume:p,setData:o,getData:a},c=[];let d=-1;for(;++d0){const e=i.tokenStack[i.tokenStack.length-1];(e[1]||Hu).call(i,void 0,e[0])}for(n.position={start:$u(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:$u(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},d=-1;++d{const n=this.data("settings");return Bu(t,Object.assign({},n,e,{extensions:this.data("micromarkExtensions")||[],mdastExtensions:this.data("fromMarkdownExtensions")||[]}))}})}function Gu(e){const t=[];let n=-1,r=0,o=0;for(;++n55295&&a<57344){const t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(i=String.fromCharCode(a,t),o=1):i="\ufffd"}else i=String.fromCharCode(a);i&&(t.push(e.slice(r,n),encodeURIComponent(i)),r=n+o+1,i=""),o&&(n+=o,o=0)}return t.join("")+e.slice(r)}function Wu(e,t){const n=String(t.identifier).toUpperCase(),r=Gu(n.toLowerCase()),o=e.footnoteOrder.indexOf(n);let a;-1===o?(e.footnoteOrder.push(n),e.footnoteCounts[n]=1,a=e.footnoteOrder.length):(e.footnoteCounts[n]++,a=o+1);const i=e.footnoteCounts[n],s={type:"element",tagName:"a",properties:{href:"#"+e.clobberPrefix+"fn-"+r,id:e.clobberPrefix+"fnref-"+r+(i>1?"-"+i:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,s);const l={type:"element",tagName:"sup",properties:{},children:[s]};return e.patch(t,l),e.applyData(t,l)}function Yu(e,t){const n=t.referenceType;let r="]";if("collapsed"===n?r+="[]":"full"===n&&(r+="["+(t.label||t.identifier)+"]"),"imageReference"===t.type)return{type:"text",value:"!["+t.alt+r};const o=e.all(t),a=o[0];a&&"text"===a.type?a.value="["+a.value:o.unshift({type:"text",value:"["});const i=o[o.length-1];return i&&"text"===i.type?i.value+=r:o.push({type:"text",value:r}),o}function Ku(e){const t=e.spread;return null==t?e.children.length>1:t}const Qu=Zu("start"),Xu=Zu("end");function Zu(e){return function(t){const n=t&&t.position&&t.position[e]||{};return{line:n.line||null,column:n.column||null,offset:n.offset>-1?n.offset:null}}}const Ju=9,ep=32;function tp(e){const t=String(e),n=/\r?\n|\r/g;let r=n.exec(t),o=0;const a=[];for(;r;)a.push(np(t.slice(o,r.index),o>0,!0),r[0]),o=r.index+r[0].length,r=n.exec(t);return a.push(np(t.slice(o),o>0,!1)),a.join("")}function np(e,t,n){let r=0,o=e.length;if(t){let t=e.codePointAt(r);for(;t===Ju||t===ep;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(o-1);for(;t===Ju||t===ep;)o--,t=e.codePointAt(o-1)}return o>r?e.slice(r,o):""}const rp={blockquote:function(e,t){const n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)},break:function(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:"\n"}]},code:function(e,t){const n=t.value?t.value+"\n":"",r=t.lang?t.lang.match(/^[^ \t]+(?=[ \t]|$)/):null,o={};r&&(o.className=["language-"+r]);let a={type:"element",tagName:"code",properties:o,children:[{type:"text",value:n}]};return t.meta&&(a.data={meta:t.meta}),e.patch(t,a),a=e.applyData(t,a),a={type:"element",tagName:"pre",properties:{},children:[a]},e.patch(t,a),a},delete:function(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},emphasis:function(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},footnoteReference:Wu,footnote:function(e,t){const n=e.footnoteById;let r=1;for(;r in n;)r++;const o=String(r);return n[o]={type:"footnoteDefinition",identifier:o,children:[{type:"paragraph",children:t.children}],position:t.position},Wu(e,{type:"footnoteReference",identifier:o,position:t.position})},heading:function(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},html:function(e,t){if(e.dangerous){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}return null},imageReference:function(e,t){const n=e.definition(t.identifier);if(!n)return Yu(e,t);const r={src:Gu(n.url||""),alt:t.alt};null!==n.title&&void 0!==n.title&&(r.title=n.title);const o={type:"element",tagName:"img",properties:r,children:[]};return e.patch(t,o),e.applyData(t,o)},image:function(e,t){const n={src:Gu(t.url)};null!==t.alt&&void 0!==t.alt&&(n.alt=t.alt),null!==t.title&&void 0!==t.title&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)},inlineCode:function(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)},linkReference:function(e,t){const n=e.definition(t.identifier);if(!n)return Yu(e,t);const r={href:Gu(n.url||"")};null!==n.title&&void 0!==n.title&&(r.title=n.title);const o={type:"element",tagName:"a",properties:r,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)},link:function(e,t){const n={href:Gu(t.url)};null!==t.title&&void 0!==t.title&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},listItem:function(e,t,n){const r=e.all(t),o=n?function(e){let t=!1;if("list"===e.type){t=e.spread||!1;const n=e.children;let r=-1;for(;!t&&++r0&&n.children.unshift({type:"text",value:" "}),n.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),a.className=["task-list-item"]}let s=-1;for(;++s