1 line
No EOL
21 KiB
JavaScript
1 line
No EOL
21 KiB
JavaScript
"use strict";(self.webpackChunkopenrag_docs=self.webpackChunkopenrag_docs||[]).push([[750],{887:(e,n,r)=>{r.d(n,{Ay:()=>c,RM:()=>a});var s=r(4848),t=r(8453),i=r(1470),l=r(9365);const a=[{value:"Application onboarding",id:"application-onboarding",level:2}];function o(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"application-onboarding",children:"Application onboarding"}),"\n",(0,s.jsxs)(n.p,{children:["The first time you start OpenRAG, whether using the TUI or a ",(0,s.jsx)(n.code,{children:".env"})," file, you must complete application onboarding."]}),"\n",(0,s.jsxs)(n.p,{children:["Most values from onboarding can be changed later in the OpenRAG ",(0,s.jsx)(n.strong,{children:"Settings"})," page, but there are important restrictions."]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.strong,{children:"language model provider"})," and ",(0,s.jsx)(n.strong,{children:"embeddings model provider"})," can only be selected at onboarding, and you must use the same provider for your language model and embedding model.\nTo change your provider selection later, you must completely reinstall OpenRAG."]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.strong,{children:"language model"})," can be changed later in ",(0,s.jsx)(n.strong,{children:"Settings"}),", but the ",(0,s.jsx)(n.strong,{children:"embeddings model"})," cannot be changed later."]}),"\n",(0,s.jsxs)(i.A,{groupId:"Provider",children:[(0,s.jsx)(l.A,{value:"OpenAI",label:"OpenAI",default:!0,children:(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Enable ",(0,s.jsx)(n.strong,{children:"Get API key from environment variable"})," to automatically enter your key from the TUI-generated ",(0,s.jsx)(n.code,{children:".env"})," file."]}),"\n",(0,s.jsxs)(n.li,{children:["Under ",(0,s.jsx)(n.strong,{children:"Advanced settings"}),", select your ",(0,s.jsx)(n.strong,{children:"Embedding Model"})," and ",(0,s.jsx)(n.strong,{children:"Language Model"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["To load 2 sample PDFs, enable ",(0,s.jsx)(n.strong,{children:"Sample dataset"}),".\nThis is recommended, but not required."]}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.strong,{children:"Complete"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Continue with the ",(0,s.jsx)(n.a,{href:"/quickstart",children:"Quickstart"}),"."]}),"\n"]})}),(0,s.jsx)(l.A,{value:"IBM watsonx.ai",label:"IBM watsonx.ai",children:(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Complete the fields for ",(0,s.jsx)(n.strong,{children:"watsonx.ai API Endpoint"}),", ",(0,s.jsx)(n.strong,{children:"IBM API key"}),", and ",(0,s.jsx)(n.strong,{children:"IBM Project ID"}),".\nThese values are found in your IBM watsonx deployment."]}),"\n",(0,s.jsxs)(n.li,{children:["Under ",(0,s.jsx)(n.strong,{children:"Advanced settings"}),", select your ",(0,s.jsx)(n.strong,{children:"Embedding Model"})," and ",(0,s.jsx)(n.strong,{children:"Language Model"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["To load 2 sample PDFs, enable ",(0,s.jsx)(n.strong,{children:"Sample dataset"}),".\nThis is recommended, but not required."]}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.strong,{children:"Complete"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Continue with the ",(0,s.jsx)(n.a,{href:"/quickstart",children:"Quickstart"}),"."]}),"\n"]})}),(0,s.jsxs)(l.A,{value:"Ollama",label:"Ollama",children:[(0,s.jsx)(n.admonition,{type:"tip",children:(0,s.jsxs)(n.p,{children:["Ollama is not included with OpenRAG. To install Ollama, see the ",(0,s.jsx)(n.a,{href:"https://docs.ollama.com/",children:"Ollama documentation"}),"."]})}),(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Enter your Ollama server's base URL address.\nThe default Ollama server address is ",(0,s.jsx)(n.code,{children:"http://localhost:11434"}),".\nOpenRAG automatically transforms ",(0,s.jsx)(n.code,{children:"localhost"})," to access services outside of the container, and sends a test connection to your Ollama server to confirm connectivity."]}),"\n",(0,s.jsxs)(n.li,{children:["Select the ",(0,s.jsx)(n.strong,{children:"Embedding Model"})," and ",(0,s.jsx)(n.strong,{children:"Language Model"})," your Ollama server is running.\nOpenRAG retrieves the available models from your Ollama server."]}),"\n",(0,s.jsxs)(n.li,{children:["To load 2 sample PDFs, enable ",(0,s.jsx)(n.strong,{children:"Sample dataset"}),".\nThis is recommended, but not required."]}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.strong,{children:"Complete"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Continue with the ",(0,s.jsx)(n.a,{href:"/quickstart",children:"Quickstart"}),"."]}),"\n"]})]})]})]})}function c(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},1470:(e,n,r)=>{r.d(n,{A:()=>y});var s=r(6540),t=r(4164),i=r(3104),l=r(6347),a=r(205),o=r(7485),c=r(1682),d=r(679);function h(e){return s.Children.toArray(e).filter(e=>"\n"!==e).map(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)})?.filter(Boolean)??[]}function u(e){const{values:n,children:r}=e;return(0,s.useMemo)(()=>{const e=n??function(e){return h(e).map(({props:{value:e,label:n,attributes:r,default:s}})=>({value:e,label:n,attributes:r,default:s}))}(r);return function(e){const n=(0,c.XI)(e,(e,n)=>e.value===n.value);if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map(e=>e.value).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e},[n,r])}function p({value:e,tabValues:n}){return n.some(n=>n.value===e)}function x({queryString:e=!1,groupId:n}){const r=(0,l.W6)(),t=function({queryString:e=!1,groupId:n}){if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:e,groupId:n});return[(0,o.aZ)(t),(0,s.useCallback)(e=>{if(!t)return;const n=new URLSearchParams(r.location.search);n.set(t,e),r.replace({...r.location,search:n.toString()})},[t,r])]}function m(e){const{defaultValue:n,queryString:r=!1,groupId:t}=e,i=u(e),[l,o]=(0,s.useState)(()=>function({defaultValue:e,tabValues:n}){if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(e){if(!p({value:e,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${n.map(e=>e.value).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const r=n.find(e=>e.default)??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:i})),[c,h]=x({queryString:r,groupId:t}),[m,j]=function({groupId:e}){const n=function(e){return e?`docusaurus.tab.${e}`:null}(e),[r,t]=(0,d.Dv)(n);return[r,(0,s.useCallback)(e=>{n&&t.set(e)},[n,t])]}({groupId:t}),g=(()=>{const e=c??m;return p({value:e,tabValues:i})?e:null})();(0,a.A)(()=>{g&&o(g)},[g]);return{selectedValue:l,selectValue:(0,s.useCallback)(e=>{if(!p({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);o(e),h(e),j(e)},[h,j,i]),tabValues:i}}var j=r(2303);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var f=r(4848);function v({className:e,block:n,selectedValue:r,selectValue:s,tabValues:l}){const a=[],{blockElementScrollPositionUntilNextRender:o}=(0,i.a_)(),c=e=>{const n=e.currentTarget,t=a.indexOf(n),i=l[t].value;i!==r&&(o(n),s(i))},d=e=>{let n=null;switch(e.key){case"Enter":c(e);break;case"ArrowRight":{const r=a.indexOf(e.currentTarget)+1;n=a[r]??a[0];break}case"ArrowLeft":{const r=a.indexOf(e.currentTarget)-1;n=a[r]??a[a.length-1];break}}n?.focus()};return(0,f.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,t.A)("tabs",{"tabs--block":n},e),children:l.map(({value:e,label:n,attributes:s})=>(0,f.jsx)("li",{role:"tab",tabIndex:r===e?0:-1,"aria-selected":r===e,ref:e=>{a.push(e)},onKeyDown:d,onClick:c,...s,className:(0,t.A)("tabs__item",g.tabItem,s?.className,{"tabs__item--active":r===e}),children:n??e},e))})}function b({lazy:e,children:n,selectedValue:r}){const i=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const e=i.find(e=>e.props.value===r);return e?(0,s.cloneElement)(e,{className:(0,t.A)("margin-top--md",e.props.className)}):null}return(0,f.jsx)("div",{className:"margin-top--md",children:i.map((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==r}))})}function A(e){const n=m(e);return(0,f.jsxs)("div",{className:(0,t.A)("tabs-container",g.tabList),children:[(0,f.jsx)(v,{...n,...e}),(0,f.jsx)(b,{...n,...e})]})}function y(e){const n=(0,j.A)();return(0,f.jsx)(A,{...e,children:h(e.children)},String(n))}},4398:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>x,frontMatter:()=>c,metadata:()=>s,toc:()=>u});const s=JSON.parse('{"id":"get-started/install","title":"Install OpenRAG","description":"Install the OpenRAG Python wheel, and then run the OpenRAG Terminal User Interface(TUI) to start your OpenRAG deployment with a guided setup process.","source":"@site/docs/get-started/install.mdx","sourceDirName":"get-started","slug":"/install","permalink":"/install","draft":false,"unlisted":false,"editUrl":"https://github.com/openrag/openrag/tree/main/docs/docs/get-started/install.mdx","tags":[],"version":"current","frontMatter":{"title":"Install OpenRAG","slug":"/install"},"sidebar":"tutorialSidebar","previous":{"title":"About OpenRAG","permalink":"/"},"next":{"title":"Deploy with Docker","permalink":"/get-started/docker"}}');var t=r(4848),i=r(8453),l=r(1470),a=r(9365),o=r(887);const c={title:"Install OpenRAG",slug:"/install"},d=void 0,h={},u=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Install the OpenRAG Python wheel",id:"install-python-wheel",level:2},{value:"Set up OpenRAG with the TUI",id:"setup",level:2},...o.RM];function p(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"#install-python-wheel",children:"Install the OpenRAG Python wheel"}),", and then run the ",(0,t.jsx)(n.a,{href:"#setup",children:"OpenRAG Terminal User Interface(TUI)"})," to start your OpenRAG deployment with a guided setup process."]}),"\n",(0,t.jsxs)(n.p,{children:["If you prefer running Docker commands and manually editing ",(0,t.jsx)(n.code,{children:".env"})," files, see ",(0,t.jsx)(n.a,{href:"/get-started/docker",children:"Deploy with Docker"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.python.org/downloads/release/python-3100/",children:"Python Version 3.10 to 3.13"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://docs.astral.sh/uv/getting-started/installation/",children:"uv"})}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://podman.io/docs/installation",children:"Podman"})," (recommended) or ",(0,t.jsx)(n.a,{href:"https://docs.docker.com/get-docker/",children:"Docker"})," installed"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"https://docs.docker.com/compose/install/",children:"Docker Compose"})," installed. If using Podman, use ",(0,t.jsx)(n.a,{href:"https://docs.podman.io/en/latest/markdown/podman-compose.1.html",children:"podman-compose"})," or alias Docker compose commands to Podman commands."]}),"\n",(0,t.jsxs)(n.li,{children:["Create an ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/api-keys",children:"OpenAI API key"}),". This key is ",(0,t.jsx)(n.strong,{children:"required"})," to start OpenRAG, but you can choose a different model provider during ",(0,t.jsx)(n.a,{href:"#application-onboarding",children:"Application Onboarding"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Optional: GPU support requires an NVIDIA GPU with ",(0,t.jsx)(n.a,{href:"https://docs.nvidia.com/cuda/",children:"CUDA"})," support and compatible NVIDIA drivers installed on the OpenRAG host machine. If you don't have GPU capabilities, OpenRAG provides an alternate CPU-only deployment."]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"install-python-wheel",children:"Install the OpenRAG Python wheel"}),"\n",(0,t.jsx)(n.admonition,{type:"important",children:(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:".whl"})," file is currently available as an internal download during public preview, and will be published to PyPI in a future release."]})}),"\n",(0,t.jsx)(n.p,{children:"The OpenRAG wheel installs the Terminal User Interface (TUI) for configuring and running OpenRAG."}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Create a new project with a virtual environment using ",(0,t.jsx)(n.code,{children:"uv init"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"uv init YOUR_PROJECT_NAME\ncd YOUR_PROJECT_NAME\n"})}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"(venv)"})," prompt doesn't change, but ",(0,t.jsx)(n.code,{children:"uv"})," commands will automatically use the project's virtual environment.\nFor more information on virtual environments, see the ",(0,t.jsx)(n.a,{href:"https://docs.astral.sh/uv/pip/environments",children:"uv documentation"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Add the local OpenRAG wheel to your project's virtual environment."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"uv add PATH/TO/openrag-VERSION-py3-none-any.whl\n"})}),"\n",(0,t.jsxs)(n.p,{children:["Replace ",(0,t.jsx)(n.code,{children:"PATH/TO/"})," and ",(0,t.jsx)(n.code,{children:"VERSION"})," with the path and version of your downloaded OpenRAG ",(0,t.jsx)(n.code,{children:".whl"})," file."]}),"\n",(0,t.jsxs)(n.p,{children:["For example, if your ",(0,t.jsx)(n.code,{children:".whl"})," file is in the ",(0,t.jsx)(n.code,{children:"~/Downloads"})," directory, the command is ",(0,t.jsx)(n.code,{children:"uv add ~/Downloads/openrag-0.1.8-py3-none-any.whl"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Ensure all dependencies are installed and updated in your virtual environment."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"uv sync\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Start the OpenRAG TUI."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"uv run openrag\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Continue with ",(0,t.jsx)(n.a,{href:"#setup",children:"Setup OpenRAG with the TUI"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"setup",children:"Set up OpenRAG with the TUI"}),"\n",(0,t.jsxs)(n.p,{children:["The TUI creates a ",(0,t.jsx)(n.code,{children:".env"})," file in your OpenRAG directory root and starts OpenRAG.\nIf the TUI detects a ",(0,t.jsx)(n.code,{children:".env"})," file in the OpenRAG root directory, it sources any variables from the ",(0,t.jsx)(n.code,{children:".env"})," file.\nIf the TUI detects OAuth credentials, it enforces the ",(0,t.jsx)(n.strong,{children:"Advanced Setup"})," path."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Basic Setup"})," generates all of the required values for OpenRAG except the OpenAI API key.\n",(0,t.jsx)(n.strong,{children:"Basic Setup"})," does not set up OAuth connections for ingestion from cloud providers.\nFor OAuth setup, use ",(0,t.jsx)(n.strong,{children:"Advanced Setup"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Basic Setup"})," and ",(0,t.jsx)(n.strong,{children:"Advanced Setup"})," enforce the same authentication settings for the Langflow server, but manage document access differently. For more information, see ",(0,t.jsx)(n.a,{href:"/knowledge#auth",children:"Authentication and document access"}),"."]}),"\n",(0,t.jsxs)(l.A,{groupId:"Setup method",children:[(0,t.jsx)(a.A,{value:"Basic setup",label:"Basic setup",default:!0,children:(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["To install OpenRAG with ",(0,t.jsx)(n.strong,{children:"Basic Setup"}),", click ",(0,t.jsx)(n.strong,{children:"Basic Setup"})," or press ",(0,t.jsx)("kbd",{children:"1"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Click ",(0,t.jsx)(n.strong,{children:"Generate Passwords"})," to generate passwords for OpenSearch and Langflow."]}),"\n",(0,t.jsx)(n.li,{children:"Paste your OpenAI API key in the OpenAI API key field."}),"\n",(0,t.jsxs)(n.li,{children:["Click ",(0,t.jsx)(n.strong,{children:"Save Configuration"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["To start OpenRAG, click ",(0,t.jsx)(n.strong,{children:"Start Container Services"}),".\nStartup pulls container images and runs them, so it can take some time.\nWhen startup is complete, the TUI displays the following:","\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"Services started successfully\nCommand completed successfully\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["To open the OpenRAG application, click ",(0,t.jsx)(n.strong,{children:"Open App"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Continue with ",(0,t.jsx)(n.a,{href:"#application-onboarding",children:"Application Onboarding"}),"."]}),"\n"]})}),(0,t.jsx)(a.A,{value:"Advanced setup",label:"Advanced setup",children:(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["To install OpenRAG with ",(0,t.jsx)(n.strong,{children:"Advanced Setup"}),", click ",(0,t.jsx)(n.strong,{children:"Advanced Setup"})," or press ",(0,t.jsx)("kbd",{children:"2"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Click ",(0,t.jsx)(n.strong,{children:"Generate Passwords"})," to generate passwords for OpenSearch and Langflow."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Paste your OpenAI API key in the OpenAI API key field."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Add your client and secret values for Google, Azure, or AWS OAuth.\nThese values can be found in your OAuth provider."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"The OpenRAG TUI presents redirect URIs for your OAuth app.\nThese are the URLs your OAuth provider will redirect back to after user sign-in.\nRegister these redirect values with your OAuth provider as they are presented in the TUI."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Click ",(0,t.jsx)(n.strong,{children:"Save Configuration"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["To start OpenRAG, click ",(0,t.jsx)(n.strong,{children:"Start Container Services"}),".\nStartup pulls container images and runs them, so it can take some time.\nWhen startup is complete, the TUI displays the following:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"Services started successfully\nCommand completed successfully\n"})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["To open the OpenRAG application, click ",(0,t.jsx)(n.strong,{children:"Open App"}),", press ",(0,t.jsx)("kbd",{children:"6"}),", or navigate to ",(0,t.jsx)(n.code,{children:"http://localhost:3000"}),".\nYou will be presented with your provider's OAuth sign-in screen, and be redirected to the redirect URI after sign-in.\nContinue with Application Onboarding."]}),"\n",(0,t.jsx)(n.p,{children:"Two additional variables are available for Advanced Setup:"}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"LANGFLOW_PUBLIC_URL"})," controls where the Langflow web interface can be accessed. This is where users interact with their flows in a browser."]}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"WEBHOOK_BASE_URL"})," controls where the endpoint for ",(0,t.jsx)(n.code,{children:"/connectors/CONNECTOR_TYPE/webhook"})," will be available.\nThis connection enables real-time document synchronization with external services.\nFor example, for Google Drive file synchronization the webhook URL is ",(0,t.jsx)(n.code,{children:"/connectors/google_drive/webhook"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Continue with ",(0,t.jsx)(n.a,{href:"#application-onboarding",children:"Application Onboarding"}),"."]}),"\n"]}),"\n"]})})]}),"\n",(0,t.jsx)(o.Ay,{})]})}function x(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>a});var s=r(6540);const t={},i=s.createContext(t);function l(e){const n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:l(e.components),s.createElement(i.Provider,{value:n},e.children)}},9365:(e,n,r)=>{r.d(n,{A:()=>l});r(6540);var s=r(4164);const t={tabItem:"tabItem_Ymn6"};var i=r(4848);function l({children:e,hidden:n,className:r}){return(0,i.jsx)("div",{role:"tabpanel",className:(0,s.A)(t.tabItem,r),hidden:n,children:e})}}}]); |