diff --git a/404.html b/404.html index a19d68a0..14be7a43 100644 --- a/404.html +++ b/404.html @@ -4,7 +4,7 @@ OpenRAG - + diff --git a/agents/index.html b/agents/index.html index d9b37785..09809ace 100644 --- a/agents/index.html +++ b/agents/index.html @@ -4,7 +4,7 @@ Langflow Agents | OpenRAG - + diff --git a/assets/js/0ba6a408.7624d452.js b/assets/js/0ba6a408.7624d452.js new file mode 100644 index 00000000..02f2cc2d --- /dev/null +++ b/assets/js/0ba6a408.7624d452.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkopenrag_docs=self.webpackChunkopenrag_docs||[]).push([[571],{3227:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>u,contentTitle:()=>h,default:()=>x,frontMatter:()=>a,metadata:()=>i,toc:()=>p});const i=JSON.parse('{"id":"core-components/knowledge","title":"OpenSearch Knowledge","description":"OpenRAG uses OpenSearch for its vector-backed knowledge store.","source":"@site/docs/core-components/knowledge.mdx","sourceDirName":"core-components","slug":"/knowledge","permalink":"/knowledge","draft":false,"unlisted":false,"editUrl":"https://github.com/openrag/openrag/tree/main/docs/docs/core-components/knowledge.mdx","tags":[],"version":"current","frontMatter":{"title":"OpenSearch Knowledge","slug":"/knowledge"},"sidebar":"tutorialSidebar","previous":{"title":"Langflow Agents","permalink":"/agents"},"next":{"title":"Docling Ingestion","permalink":"/ingestion"}}');var t=s(4848),r=s(8453),o=s(9179),l=s(1470),d=s(9365),c=s(3782);const a={title:"OpenSearch Knowledge",slug:"/knowledge"},h=void 0,u={},p=[{value:"Ingest knowledge",id:"ingest-knowledge",level:2},{value:"Direct file ingestion",id:"direct-file-ingestion",level:3},{value:"Ingest files through OAuth connectors",id:"oauth-ingestion",level:3},{value:"Explore knowledge",id:"explore-knowledge",level:2},...c.RM,{value:"Create knowledge filters",id:"create-knowledge-filters",level:2},{value:"OpenRAG default configuration",id:"openrag-default-configuration",level:2}];function g(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["OpenRAG uses ",(0,t.jsx)(n.a,{href:"https://docs.opensearch.org/latest/",children:"OpenSearch"})," for its vector-backed knowledge store.\nThis is a specialized database for storing and retrieving embeddings, which helps your Agent efficiently find relevant information.\nOpenSearch provides powerful hybrid search capabilities with enterprise-grade security and multi-tenancy support."]}),"\n",(0,t.jsx)(n.h2,{id:"ingest-knowledge",children:"Ingest knowledge"}),"\n",(0,t.jsxs)(n.p,{children:["OpenRAG supports knowledge ingestion through direct file uploads and OAuth connectors.\nTo configure the knowledge ingestion pipeline parameters, see ",(0,t.jsx)(n.a,{href:"/ingestion",children:"Docling Ingestion"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"direct-file-ingestion",children:"Direct file ingestion"}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.strong,{children:"Knowledge Ingest"})," flow uses Langflow's ",(0,t.jsxs)(n.a,{href:"https://docs.langflow.org/components-data#file",children:[(0,t.jsx)(n.strong,{children:"File"})," component"]})," to split and embed files loaded from your local machine into the OpenSearch database."]}),"\n",(0,t.jsxs)(n.p,{children:["The default path to your local folder is mounted from the ",(0,t.jsx)(n.code,{children:"./documents"})," folder in your OpenRAG project directory to the ",(0,t.jsx)(n.code,{children:"/app/documents/"})," directory inside the Docker container. Files added to the host or the container will be visible in both locations. To configure this location, modify the ",(0,t.jsx)(n.strong,{children:"Documents Paths"})," variable in either the TUI's ",(0,t.jsx)(n.a,{href:"/install#setup",children:"Advanced Setup"})," menu or in the ",(0,t.jsx)(n.code,{children:".env"})," used by Docker Compose."]}),"\n",(0,t.jsxs)(n.p,{children:["To load and process a single file from the mapped location, click ",(0,t.jsx)(o.A,{name:"Plus","aria-hidden":"true"})," ",(0,t.jsx)(n.strong,{children:"Add Knowledge"}),", and then click ",(0,t.jsx)(n.strong,{children:"Add File"}),".\nThe file is loaded into your OpenSearch database, and appears in the Knowledge page."]}),"\n",(0,t.jsxs)(n.p,{children:["To load and process a directory from the mapped location, click ",(0,t.jsx)(o.A,{name:"Plus","aria-hidden":"true"})," ",(0,t.jsx)(n.strong,{children:"Add Knowledge"}),", and then click ",(0,t.jsx)(n.strong,{children:"Process Folder"}),".\nThe files are loaded into your OpenSearch database, and appear in the Knowledge page."]}),"\n",(0,t.jsx)(n.h3,{id:"oauth-ingestion",children:"Ingest files through OAuth connectors"}),"\n",(0,t.jsx)(n.p,{children:"OpenRAG supports Google Drive, OneDrive, and AWS S3 as OAuth connectors for seamless document synchronization."}),"\n",(0,t.jsx)(n.p,{children:"OAuth integration allows individual users to connect their personal cloud storage accounts to OpenRAG. Each user must separately authorize OpenRAG to access their own cloud storage files. When a user connects a cloud service, they are redirected to authenticate with that service provider and grant OpenRAG permission to sync documents from their personal cloud storage."}),"\n",(0,t.jsx)(n.p,{children:"Before users can connect their cloud storage accounts, you must configure OAuth credentials in OpenRAG. This requires registering OpenRAG as an OAuth application with a cloud provider and obtaining client ID and secret keys for each service you want to support."}),"\n",(0,t.jsx)(n.p,{children:"To add an OAuth connector to OpenRAG, do the following.\nThis example uses Google OAuth.\nIf you wish to use another provider, add the secrets to another provider."}),"\n",(0,t.jsxs)(l.A,{groupId:"Installation type",children:[(0,t.jsx)(d.A,{value:"TUI",label:"TUI",default:!0,children:(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["If OpenRAG is running, stop it with ",(0,t.jsx)(n.strong,{children:"Status"})," > ",(0,t.jsx)(n.strong,{children:"Stop Services"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Click ",(0,t.jsx)(n.strong,{children:"Advanced Setup"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:["Add the OAuth provider's client and secret key in the ",(0,t.jsx)(n.a,{href:"/install#setup",children:"Advanced Setup"})," menu."]}),"\n",(0,t.jsxs)(n.li,{children:["Click ",(0,t.jsx)(n.strong,{children:"Save Configuration"}),".\nThe TUI generates a new ",(0,t.jsx)(n.code,{children:".env"})," file with your OAuth values."]}),"\n",(0,t.jsxs)(n.li,{children:["Click ",(0,t.jsx)(n.strong,{children:"Start Container Services"}),"."]}),"\n"]})}),(0,t.jsxs)(d.A,{value:".env",label:".env",children:[(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Stop the Docker deployment."}),"\n",(0,t.jsxs)(n.li,{children:["Add the OAuth provider's client and secret key in the ",(0,t.jsx)(n.code,{children:".env"})," file for Docker Compose."]}),"\n"]}),(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"GOOGLE_OAUTH_CLIENT_ID='YOUR_OAUTH_CLIENT_ID'\nGOOGLE_OAUTH_CLIENT_SECRET='YOUR_OAUTH_CLIENT_SECRET'\n"})}),(0,t.jsxs)(n.ol,{start:"3",children:["\n",(0,t.jsxs)(n.li,{children:["Save your ",(0,t.jsx)(n.code,{children:".env"}),". file."]}),"\n",(0,t.jsx)(n.li,{children:"Start the Docker deployment."}),"\n"]})]})]}),"\n",(0,t.jsxs)(n.p,{children:["The OpenRAG frontend at ",(0,t.jsx)(n.code,{children:"http://localhost:3000"})," now redirects to an OAuth callback login page for your OAuth provider.\nA successful authentication opens OpenRAG with the required scopes for your connected storage."]}),"\n",(0,t.jsx)(n.p,{children:"To add knowledge from an OAuth-connected storage provider, do the following:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Click ",(0,t.jsx)(o.A,{name:"Plus","aria-hidden":"true"})," ",(0,t.jsx)(n.strong,{children:"Add Knowledge"}),", and then select the storage provider, for example, ",(0,t.jsx)(n.strong,{children:"Google Drive"}),".\nThe ",(0,t.jsx)(n.strong,{children:"Add Cloud Knowledge"})," page opens."]}),"\n",(0,t.jsxs)(n.li,{children:["To add files or folders from the connected storage, click ",(0,t.jsx)(o.A,{name:"Plus","aria-hidden":"true"})," ",(0,t.jsx)(n.strong,{children:"Add Files"}),".\nSelect the files or folders you want and click ",(0,t.jsx)(n.strong,{children:"Select"}),".\nYou can select multiples."]}),"\n",(0,t.jsxs)(n.li,{children:["When your files are selected, click ",(0,t.jsx)(n.strong,{children:"Ingest Files"}),".\nThe ingestion process may take some time, depending on the size of your documents."]}),"\n",(0,t.jsx)(n.li,{children:"When ingestion is complete, your documents are available in the Knowledge screen."}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"explore-knowledge",children:"Explore knowledge"}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.strong,{children:"Knowledge"})," page lists the documents OpenRAG has ingested into the OpenSearch vector database's ",(0,t.jsx)(n.code,{children:"documents"})," index."]}),"\n",(0,t.jsxs)(n.p,{children:["To explore your current knowledge, click ",(0,t.jsx)(o.A,{name:"Library","aria-hidden":"true"})," ",(0,t.jsx)(n.strong,{children:"Knowledge"}),".\nClick on a document to display the chunks derived from splitting the default documents into the vector database."]}),"\n",(0,t.jsxs)(n.p,{children:["Documents are processed with the default ",(0,t.jsx)(n.strong,{children:"Knowledge Ingest"})," flow, so if you want to split your documents differently, edit the ",(0,t.jsx)(n.strong,{children:"Knowledge Ingest"})," flow."]}),"\n",(0,t.jsx)(c.Ay,{}),"\n",(0,t.jsx)(n.h2,{id:"create-knowledge-filters",children:"Create knowledge filters"}),"\n",(0,t.jsx)(n.p,{children:"OpenRAG includes a knowledge filter system for organizing and managing document collections.\nKnowledge filters are saved search configurations that allow you to create custom views of your document collection. They store search queries, filter criteria, and display settings that can be reused across different parts of OpenRAG."}),"\n",(0,t.jsx)(n.p,{children:"Knowledge filters help agents work more efficiently with large document collections by focusing their context within relevant documents sets."}),"\n",(0,t.jsx)(n.p,{children:"To create a knowledge filter, do the following:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Click ",(0,t.jsx)(o.A,{name:"Funnel","aria-hidden":"true"})," ",(0,t.jsx)(n.strong,{children:"All Knowledge"}),", and then click ",(0,t.jsx)(o.A,{name:"Plus","aria-hidden":"true"})," ",(0,t.jsx)(n.strong,{children:"Create New Filter"}),".\nThe ",(0,t.jsx)(n.strong,{children:"Create New Knowledge Filter"})," pane appears."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["Enter a ",(0,t.jsx)(n.strong,{children:"Name"})," and ",(0,t.jsx)(n.strong,{children:"Description"}),", and then click ",(0,t.jsx)(o.A,{name:"Save","aria-hidden":"true"})," ",(0,t.jsx)(n.strong,{children:"Create Filter"}),".\nA new filter is created with default settings that match everything."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["To modify the default filter, click ",(0,t.jsx)(o.A,{name:"Funnel","aria-hidden":"true"})," ",(0,t.jsx)(n.strong,{children:"All Knowledge"}),", and then click your new filter to edit it in the ",(0,t.jsx)(n.strong,{children:"Knowledge Filter"})," pane."]}),"\n",(0,t.jsx)(n.p,{children:"The following filter options are configurable."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Search Query"}),': Enter text for semantic search, such as "financial reports from Q4".']}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Data Sources"}),": Select specific data sources or folders to include."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Document Types"}),": Filter by file type."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Owners"}),": Filter by who uploaded the documents."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Sources"}),": Filter by connector types, such as local upload or Google Drive."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Result Limit"}),": Set maximum number of results. The default is ",(0,t.jsx)(n.code,{children:"10"}),"."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Score Threshold"}),": Set minimum relevance score. The default score is ",(0,t.jsx)(n.code,{children:"0"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["When you're done editing the filter, click ",(0,t.jsx)(o.A,{name:"Save","aria-hidden":"true"})," ",(0,t.jsx)(n.strong,{children:"Save Configuration"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:["To apply the filter to OpenRAG globally, click ",(0,t.jsx)(o.A,{name:"Funnel","aria-hidden":"true"})," ",(0,t.jsx)(n.strong,{children:"All Knowledge"}),", and then select the filter to apply."]}),"\n",(0,t.jsxs)(n.p,{children:["To apply the filter to a single chat session, in the ",(0,t.jsx)(o.A,{name:"MessageSquare","aria-hidden":"true"})," ",(0,t.jsx)(n.strong,{children:"Chat"})," window, click ",(0,t.jsx)(n.strong,{children:"@"}),", and then select the filter to apply."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"openrag-default-configuration",children:"OpenRAG default configuration"}),"\n",(0,t.jsx)(n.p,{children:"OpenRAG automatically detects and configures the correct vector dimensions for embedding models, ensuring optimal search performance and compatibility."}),"\n",(0,t.jsxs)(n.p,{children:["The complete list of supported models is available at ",(0,t.jsxs)(n.a,{href:"https://github.com/langflow-ai/openrag/blob/main/src/services/models_service.py",children:[(0,t.jsx)(n.code,{children:"models_service.py"})," in the OpenRAG repository"]}),"."]}),"\n",(0,t.jsx)(n.p,{children:"You can use custom embedding models by specifying them in your configuration."}),"\n",(0,t.jsxs)(n.p,{children:["If you use an unknown embedding model, OpenRAG will automatically fall back to ",(0,t.jsx)(n.code,{children:"1536"})," dimensions and log a warning. The system will continue to work, but search quality may be affected if the actual model dimensions differ from ",(0,t.jsx)(n.code,{children:"1536"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["The default embedding dimension is ",(0,t.jsx)(n.code,{children:"1536"})," and the default model is ",(0,t.jsx)(n.code,{children:"text-embedding-3-small"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["For models with known vector dimensions, see ",(0,t.jsxs)(n.a,{href:"https://github.com/langflow-ai/openrag/blob/main/src/config/settings.py",children:[(0,t.jsx)(n.code,{children:"settings.py"})," in the OpenRAG repository"]}),"."]})]})}function x(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(g,{...e})}):g(e)}},3782:(e,n,s)=>{s.d(n,{Ay:()=>d,RM:()=>o});var i=s(4848),t=s(8453),r=s(9179);const o=[];function l(e){const n={a:"a",p:"p",strong:"strong",...(0,t.R)(),...e.components};return(0,i.jsxs)(n.p,{children:["All flows included with OpenRAG are designed to be modular, performant, and provider-agnostic.\nTo modify a flow, click ",(0,i.jsx)(r.A,{name:"Settings2","aria-hidden":"true"})," ",(0,i.jsx)(n.strong,{children:"Settings"}),", and click ",(0,i.jsx)(n.strong,{children:"Edit in Langflow"}),".\nOpenRAG's visual editor is based on the ",(0,i.jsx)(n.a,{href:"https://docs.langflow.org/concepts-overview",children:"Langflow visual editor"}),", so you can edit your flows to match your specific use case."]})}function d(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},9179:(e,n,s)=>{s.d(n,{A:()=>r});s(6540);var i=s(4827),t=s(4848);function r({name:e,...n}){const s=i[e];return s?(0,t.jsx)(s,{...n}):null}}}]); \ No newline at end of file diff --git a/assets/js/0ba6a408.c700ce3b.js b/assets/js/0ba6a408.c700ce3b.js deleted file mode 100644 index 05800059..00000000 --- a/assets/js/0ba6a408.c700ce3b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkopenrag_docs=self.webpackChunkopenrag_docs||[]).push([[571],{3227:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>u,contentTitle:()=>h,default:()=>x,frontMatter:()=>a,metadata:()=>i,toc:()=>g});const i=JSON.parse('{"id":"core-components/knowledge","title":"OpenSearch Knowledge","description":"OpenRAG uses OpenSearch for its vector-backed knowledge store.","source":"@site/docs/core-components/knowledge.mdx","sourceDirName":"core-components","slug":"/knowledge","permalink":"/knowledge","draft":false,"unlisted":false,"editUrl":"https://github.com/openrag/openrag/tree/main/docs/docs/core-components/knowledge.mdx","tags":[],"version":"current","frontMatter":{"title":"OpenSearch Knowledge","slug":"/knowledge"},"sidebar":"tutorialSidebar","previous":{"title":"Langflow Agents","permalink":"/agents"},"next":{"title":"Docling Ingestion","permalink":"/ingestion"}}');var o=s(4848),r=s(8453),t=s(9179),l=s(1470),c=s(9365),d=s(3782);const a={title:"OpenSearch Knowledge",slug:"/knowledge"},h=void 0,u={},g=[{value:"Ingest knowledge",id:"ingest-knowledge",level:2},{value:"Direct file ingestion",id:"direct-file-ingestion",level:3},{value:"Ingest files through OAuth connectors",id:"oauth-ingestion",level:3},{value:"Sync cloud connectors",id:"sync-cloud-connectors",level:3},{value:"Explore knowledge",id:"explore-knowledge",level:2},...d.RM,{value:"Create knowledge filters",id:"create-knowledge-filters",level:2},{value:"OpenRAG default configuration",id:"openrag-default-configuration",level:2}];function p(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:["OpenRAG uses ",(0,o.jsx)(n.a,{href:"https://docs.opensearch.org/latest/",children:"OpenSearch"})," for its vector-backed knowledge store.\nThis is a specialized database for storing and retrieving embeddings, which helps your Agent efficiently find relevant information.\nOpenSearch provides powerful hybrid search capabilities with enterprise-grade security and multi-tenancy support."]}),"\n",(0,o.jsx)(n.h2,{id:"ingest-knowledge",children:"Ingest knowledge"}),"\n",(0,o.jsxs)(n.p,{children:["OpenRAG supports knowledge ingestion through direct file uploads and OAuth connectors.\nTo configure the knowledge ingestion pipeline parameters, see ",(0,o.jsx)(n.a,{href:"/ingestion",children:"Docling Ingestion"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"direct-file-ingestion",children:"Direct file ingestion"}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.strong,{children:"Knowledge Ingest"})," flow uses Langflow's ",(0,o.jsxs)(n.a,{href:"https://docs.langflow.org/components-data#file",children:[(0,o.jsx)(n.strong,{children:"File"})," component"]})," to split and embed files loaded from your local machine into the OpenSearch database."]}),"\n",(0,o.jsxs)(n.p,{children:["The default path to your local folder is mounted from the ",(0,o.jsx)(n.code,{children:"./documents"})," folder in your OpenRAG project directory to the ",(0,o.jsx)(n.code,{children:"/app/documents/"})," directory inside the Docker container. Files added to the host or the container will be visible in both locations. To configure this location, modify the ",(0,o.jsx)(n.strong,{children:"Documents Paths"})," variable in either the TUI's ",(0,o.jsx)(n.a,{href:"/install#setup",children:"Advanced Setup"})," menu or in the ",(0,o.jsx)(n.code,{children:".env"})," used by Docker Compose."]}),"\n",(0,o.jsxs)(n.p,{children:["To load and process a single file from the mapped location, click ",(0,o.jsx)(t.A,{name:"Plus","aria-hidden":"true"})," ",(0,o.jsx)(n.strong,{children:"Add Knowledge"}),", and then click ",(0,o.jsx)(n.strong,{children:"Add File"}),".\nThe file is loaded into your OpenSearch database, and appears in the Knowledge page."]}),"\n",(0,o.jsxs)(n.p,{children:["To load and process a directory from the mapped location, click ",(0,o.jsx)(t.A,{name:"Plus","aria-hidden":"true"})," ",(0,o.jsx)(n.strong,{children:"Add Knowledge"}),", and then click ",(0,o.jsx)(n.strong,{children:"Process Folder"}),".\nThe files are loaded into your OpenSearch database, and appear in the Knowledge page."]}),"\n",(0,o.jsx)(n.h3,{id:"oauth-ingestion",children:"Ingest files through OAuth connectors"}),"\n",(0,o.jsx)(n.p,{children:"OpenRAG supports Google Drive, OneDrive, and AWS S3 as OAuth connectors for seamless document synchronization."}),"\n",(0,o.jsx)(n.p,{children:"OAuth integration allows individual users to connect their personal cloud storage accounts to OpenRAG. Each user must separately authorize OpenRAG to access their own cloud storage files. When a user connects a cloud service, they are redirected to authenticate with that service provider and grant OpenRAG permission to sync documents from their personal cloud storage."}),"\n",(0,o.jsx)(n.p,{children:"Before users can connect their cloud storage accounts, you must configure OAuth credentials in OpenRAG. This requires registering OpenRAG as an OAuth application with a cloud provider and obtaining client ID and secret keys for each service you want to support."}),"\n",(0,o.jsx)(n.p,{children:"To add an OAuth connector to OpenRAG, do the following.\nThis example uses Google OAuth.\nIf you wish to use another provider, add the secrets to another provider."}),"\n",(0,o.jsxs)(l.A,{groupId:"Installation type",children:[(0,o.jsx)(c.A,{value:"TUI",label:"TUI",default:!0,children:(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["If OpenRAG is running, stop it with ",(0,o.jsx)(n.strong,{children:"Status"})," > ",(0,o.jsx)(n.strong,{children:"Stop Services"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:["Click ",(0,o.jsx)(n.strong,{children:"Advanced Setup"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:["Add the OAuth provider's client and secret key in the ",(0,o.jsx)(n.a,{href:"/install#setup",children:"Advanced Setup"})," menu."]}),"\n",(0,o.jsxs)(n.li,{children:["Click ",(0,o.jsx)(n.strong,{children:"Save Configuration"}),".\nThe TUI generates a new ",(0,o.jsx)(n.code,{children:".env"})," file with your OAuth values."]}),"\n",(0,o.jsxs)(n.li,{children:["Click ",(0,o.jsx)(n.strong,{children:"Start Container Services"}),"."]}),"\n"]})}),(0,o.jsxs)(c.A,{value:".env",label:".env",children:[(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Stop the Docker deployment."}),"\n",(0,o.jsxs)(n.li,{children:["Add the OAuth provider's client and secret key in the ",(0,o.jsx)(n.code,{children:".env"})," file for Docker Compose."]}),"\n"]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"GOOGLE_OAUTH_CLIENT_ID='YOUR_OAUTH_CLIENT_ID'\nGOOGLE_OAUTH_CLIENT_SECRET='YOUR_OAUTH_CLIENT_SECRET'\n"})}),(0,o.jsxs)(n.ol,{start:"3",children:["\n",(0,o.jsxs)(n.li,{children:["Save your ",(0,o.jsx)(n.code,{children:".env"}),". file."]}),"\n",(0,o.jsx)(n.li,{children:"Start the Docker deployment."}),"\n"]})]})]}),"\n",(0,o.jsxs)(n.p,{children:["The OpenRAG frontend at ",(0,o.jsx)(n.code,{children:"http://localhost:3000"})," now redirects to an OAuth callback login page for your OAuth provider.\nA successful authentication opens OpenRAG with the required scopes for your connected storage."]}),"\n",(0,o.jsx)(n.p,{children:"To add knowledge from an OAuth-connected storage provider, do the following:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["Click ",(0,o.jsx)(t.A,{name:"Plus","aria-hidden":"true"})," ",(0,o.jsx)(n.strong,{children:"Add Knowledge"}),", and then select the storage provider, for example, ",(0,o.jsx)(n.strong,{children:"Google Drive"}),".\nThe ",(0,o.jsx)(n.strong,{children:"Add Cloud Knowledge"})," page opens."]}),"\n",(0,o.jsxs)(n.li,{children:["To add files or folders from the connected storage, click ",(0,o.jsx)(t.A,{name:"Plus","aria-hidden":"true"})," ",(0,o.jsx)(n.strong,{children:"Add Files"}),".\nSelect the files or folders you want and click ",(0,o.jsx)(n.strong,{children:"Select"}),".\nYou can select multiples."]}),"\n",(0,o.jsxs)(n.li,{children:["When your files are selected, click ",(0,o.jsx)(n.strong,{children:"Ingest Files"}),".\nThe ingestion process may take some time, depending on the size of your documents."]}),"\n",(0,o.jsx)(n.li,{children:"When ingestion is complete, your documents are available in the Knowledge screen."}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"sync-cloud-connectors",children:"Sync cloud connectors"}),"\n",(0,o.jsxs)(n.p,{children:["Your connected data sources are found in the ",(0,o.jsx)(t.A,{name:"Settings2","aria-hidden":"true"})," ",(0,o.jsx)(n.strong,{children:"Settings"})," page."]}),"\n",(0,o.jsxs)(n.p,{children:["When you click ",(0,o.jsx)(n.strong,{children:"Sync Now"})," for a connected cloud service like Google Drive, OpenRAG scans your connected Google Drive account to find files that match your sync criteria. Sync criteria are controlled in ",(0,o.jsx)(n.strong,{children:"Sync Settings"})," on the same page. You can sync all files, or select a maximum number of files to sync."]}),"\n",(0,o.jsx)(n.p,{children:"For each file found, OpenRAG downloads, converts, and embeds the processed content into OpenSearch."}),"\n",(0,o.jsxs)(n.p,{children:["You can monitor the sync progress in the ",(0,o.jsx)(t.A,{name:"Bell","aria-hidden":"true"})," ",(0,o.jsx)(n.strong,{children:"Tasks"})," sidebar."]}),"\n",(0,o.jsx)(n.p,{children:"Once processing is complete, the synced documents become available in your knowledge base and can be searched through the chat interface or Knowledge page."}),"\n",(0,o.jsx)(n.h2,{id:"explore-knowledge",children:"Explore knowledge"}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.strong,{children:"Knowledge"})," page lists the documents OpenRAG has ingested into the OpenSearch vector database's ",(0,o.jsx)(n.code,{children:"documents"})," index."]}),"\n",(0,o.jsxs)(n.p,{children:["To explore your current knowledge, click ",(0,o.jsx)(t.A,{name:"Library","aria-hidden":"true"})," ",(0,o.jsx)(n.strong,{children:"Knowledge"}),".\nClick on a document to display the chunks derived from splitting the default documents into the vector database."]}),"\n",(0,o.jsxs)(n.p,{children:["Documents are processed with the default ",(0,o.jsx)(n.strong,{children:"Knowledge Ingest"})," flow, so if you want to split your documents differently, edit the ",(0,o.jsx)(n.strong,{children:"Knowledge Ingest"})," flow."]}),"\n",(0,o.jsx)(d.Ay,{}),"\n",(0,o.jsx)(n.h2,{id:"create-knowledge-filters",children:"Create knowledge filters"}),"\n",(0,o.jsx)(n.p,{children:"OpenRAG includes a knowledge filter system for organizing and managing document collections.\nKnowledge filters are saved search configurations that allow you to create custom views of your document collection. They store search queries, filter criteria, and display settings that can be reused across different parts of OpenRAG."}),"\n",(0,o.jsx)(n.p,{children:"Knowledge filters help agents work more efficiently with large document collections by focusing their context within relevant documents sets."}),"\n",(0,o.jsx)(n.p,{children:"To create a knowledge filter, do the following:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Click ",(0,o.jsx)(t.A,{name:"Funnel","aria-hidden":"true"})," ",(0,o.jsx)(n.strong,{children:"All Knowledge"}),", and then click ",(0,o.jsx)(t.A,{name:"Plus","aria-hidden":"true"})," ",(0,o.jsx)(n.strong,{children:"Create New Filter"}),".\nThe ",(0,o.jsx)(n.strong,{children:"Create New Knowledge Filter"})," pane appears."]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Enter a ",(0,o.jsx)(n.strong,{children:"Name"})," and ",(0,o.jsx)(n.strong,{children:"Description"}),", and then click ",(0,o.jsx)(t.A,{name:"Save","aria-hidden":"true"})," ",(0,o.jsx)(n.strong,{children:"Create Filter"}),".\nA new filter is created with default settings that match everything."]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["To modify the default filter, click ",(0,o.jsx)(t.A,{name:"Funnel","aria-hidden":"true"})," ",(0,o.jsx)(n.strong,{children:"All Knowledge"}),", and then click your new filter to edit it in the ",(0,o.jsx)(n.strong,{children:"Knowledge Filter"})," pane."]}),"\n",(0,o.jsx)(n.p,{children:"The following filter options are configurable."}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Search Query"}),': Enter text for semantic search, such as "financial reports from Q4".']}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Data Sources"}),": Select specific data sources or folders to include."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Document Types"}),": Filter by file type."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Owners"}),": Filter by who uploaded the documents."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Sources"}),": Filter by connector types, such as local upload or Google Drive."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Result Limit"}),": Set maximum number of results. The default is ",(0,o.jsx)(n.code,{children:"10"}),"."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Score Threshold"}),": Set minimum relevance score. The default score is ",(0,o.jsx)(n.code,{children:"0"}),"."]}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["When you're done editing the filter, click ",(0,o.jsx)(t.A,{name:"Save","aria-hidden":"true"})," ",(0,o.jsx)(n.strong,{children:"Save Configuration"}),"."]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["To apply the filter to OpenRAG globally, click ",(0,o.jsx)(t.A,{name:"Funnel","aria-hidden":"true"})," ",(0,o.jsx)(n.strong,{children:"All Knowledge"}),", and then select the filter to apply."]}),"\n",(0,o.jsxs)(n.p,{children:["To apply the filter to a single chat session, in the ",(0,o.jsx)(t.A,{name:"MessageSquare","aria-hidden":"true"})," ",(0,o.jsx)(n.strong,{children:"Chat"})," window, click ",(0,o.jsx)(n.strong,{children:"@"}),", and then select the filter to apply."]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"openrag-default-configuration",children:"OpenRAG default configuration"}),"\n",(0,o.jsx)(n.p,{children:"OpenRAG automatically detects and configures the correct vector dimensions for embedding models, ensuring optimal search performance and compatibility."}),"\n",(0,o.jsxs)(n.p,{children:["The complete list of supported models is available at ",(0,o.jsxs)(n.a,{href:"https://github.com/langflow-ai/openrag/blob/main/src/services/models_service.py",children:[(0,o.jsx)(n.code,{children:"models_service.py"})," in the OpenRAG repository"]}),"."]}),"\n",(0,o.jsx)(n.p,{children:"You can use custom embedding models by specifying them in your configuration."}),"\n",(0,o.jsxs)(n.p,{children:["If you use an unknown embedding model, OpenRAG will automatically fall back to ",(0,o.jsx)(n.code,{children:"1536"})," dimensions and log a warning. The system will continue to work, but search quality may be affected if the actual model dimensions differ from ",(0,o.jsx)(n.code,{children:"1536"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["The default embedding dimension is ",(0,o.jsx)(n.code,{children:"1536"})," and the default model is ",(0,o.jsx)(n.code,{children:"text-embedding-3-small"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["For models with known vector dimensions, see ",(0,o.jsxs)(n.a,{href:"https://github.com/langflow-ai/openrag/blob/main/src/config/settings.py",children:[(0,o.jsx)(n.code,{children:"settings.py"})," in the OpenRAG repository"]}),"."]})]})}function x(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}},3782:(e,n,s)=>{s.d(n,{Ay:()=>c,RM:()=>t});var i=s(4848),o=s(8453),r=s(9179);const t=[];function l(e){const n={a:"a",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,i.jsxs)(n.p,{children:["All flows included with OpenRAG are designed to be modular, performant, and provider-agnostic.\nTo modify a flow, click ",(0,i.jsx)(r.A,{name:"Settings2","aria-hidden":"true"})," ",(0,i.jsx)(n.strong,{children:"Settings"}),", and click ",(0,i.jsx)(n.strong,{children:"Edit in Langflow"}),".\nOpenRAG's visual editor is based on the ",(0,i.jsx)(n.a,{href:"https://docs.langflow.org/concepts-overview",children:"Langflow visual editor"}),", so you can edit your flows to match your specific use case."]})}function c(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},9179:(e,n,s)=>{s.d(n,{A:()=>r});s(6540);var i=s(4827),o=s(4848);function r({name:e,...n}){const s=i[e];return s?(0,o.jsx)(s,{...n}):null}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.01c488c4.js b/assets/js/runtime~main.01c488c4.js deleted file mode 100644 index 37b31623..00000000 --- a/assets/js/runtime~main.01c488c4.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,t,r,a,o,n={},c={};function f(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={id:e,loaded:!1,exports:{}};return n[e].call(r.exports,r,r.exports,f),r.loaded=!0,r.exports}f.m=n,f.c=c,e=[],f.O=(t,r,a,o)=>{if(!r){var n=1/0;for(u=0;u=o)&&Object.keys(f.O).every(e=>f.O[e](r[i]))?r.splice(i--,1):(c=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,a,o]},f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var n={};t=t||[null,r({}),r([]),r(r)];for(var c=2&a&&e;("object"==typeof c||"function"==typeof c)&&!~t.indexOf(c);c=r(c))Object.getOwnPropertyNames(c).forEach(t=>n[t]=()=>e[t]);return n.default=()=>e,f.d(o,n),o},f.d=(e,t)=>{for(var r in t)f.o(t,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce((t,r)=>(f.f[r](e,t),t),[])),f.u=e=>"assets/js/"+({26:"c8078f0a",48:"a94703ab",98:"a7bd4aaa",172:"e633a5ea",272:"749371cc",401:"17896441",532:"33362219",567:"22dd74f7",571:"0ba6a408",647:"5e95c892",668:"eb5b356a",717:"af920ffe",742:"aba21aa0",750:"d0314b07",919:"ca2c3c0c",961:"21afe7ac"}[e]||e)+"."+{26:"b5cf5e75",48:"37079d87",98:"5b195d0f",172:"cbe02eaa",237:"4f1a14e7",272:"cc93e3ef",401:"3584c216",532:"d86f431d",567:"5a552cfa",571:"c700ce3b",647:"a118483c",668:"516bb081",717:"36fc9a9a",742:"ff196c6d",750:"0839e7a4",758:"382c453d",919:"295b1c55",961:"f0feb7d8"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},o="openrag-docs:",f.l=(e,t,r,n)=>{if(a[e])a[e].push(t);else{var c,i;if(void 0!==r)for(var d=document.getElementsByTagName("script"),u=0;u{c.onerror=c.onload=null,clearTimeout(b);var o=a[e];if(delete a[e],c.parentNode&&c.parentNode.removeChild(c),o&&o.forEach(e=>e(r)),t)return t(r)},b=setTimeout(s.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=s.bind(null,c.onerror),c.onload=s.bind(null,c.onload),i&&document.head.appendChild(c)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/",f.gca=function(e){return e={17896441:"401",33362219:"532",c8078f0a:"26",a94703ab:"48",a7bd4aaa:"98",e633a5ea:"172","749371cc":"272","22dd74f7":"567","0ba6a408":"571","5e95c892":"647",eb5b356a:"668",af920ffe:"717",aba21aa0:"742",d0314b07:"750",ca2c3c0c:"919","21afe7ac":"961"}[e]||e,f.p+f.u(e)},(()=>{var e={354:0,869:0};f.f.j=(t,r)=>{var a=f.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(354|869)$/.test(t))e[t]=0;else{var o=new Promise((r,o)=>a=e[t]=[r,o]);r.push(a[2]=o);var n=f.p+f.u(t),c=new Error;f.l(n,r=>{if(f.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var o=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;c.message="Loading chunk "+t+" failed.\n("+o+": "+n+")",c.name="ChunkLoadError",c.type=o,c.request=n,a[1](c)}},"chunk-"+t,t)}},f.O.j=t=>0===e[t];var t=(t,r)=>{var a,o,n=r[0],c=r[1],i=r[2],d=0;if(n.some(t=>0!==e[t])){for(a in c)f.o(c,a)&&(f.m[a]=c[a]);if(i)var u=i(f)}for(t&&t(r);d{"use strict";var e,t,r,a,o,n={},f={};function c(e){var t=f[e];if(void 0!==t)return t.exports;var r=f[e]={id:e,loaded:!1,exports:{}};return n[e].call(r.exports,r,r.exports,c),r.loaded=!0,r.exports}c.m=n,c.c=f,e=[],c.O=(t,r,a,o)=>{if(!r){var n=1/0;for(u=0;u=o)&&Object.keys(c.O).every(e=>c.O[e](r[i]))?r.splice(i--,1):(f=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,a,o]},c.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return c.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);c.r(o);var n={};t=t||[null,r({}),r([]),r(r)];for(var f=2&a&&e;("object"==typeof f||"function"==typeof f)&&!~t.indexOf(f);f=r(f))Object.getOwnPropertyNames(f).forEach(t=>n[t]=()=>e[t]);return n.default=()=>e,c.d(o,n),o},c.d=(e,t)=>{for(var r in t)c.o(t,r)&&!c.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((t,r)=>(c.f[r](e,t),t),[])),c.u=e=>"assets/js/"+({26:"c8078f0a",48:"a94703ab",98:"a7bd4aaa",172:"e633a5ea",272:"749371cc",401:"17896441",532:"33362219",567:"22dd74f7",571:"0ba6a408",647:"5e95c892",668:"eb5b356a",717:"af920ffe",742:"aba21aa0",750:"d0314b07",919:"ca2c3c0c",961:"21afe7ac"}[e]||e)+"."+{26:"b5cf5e75",48:"37079d87",98:"5b195d0f",172:"cbe02eaa",237:"4f1a14e7",272:"cc93e3ef",401:"3584c216",532:"d86f431d",567:"5a552cfa",571:"7624d452",647:"a118483c",668:"516bb081",717:"36fc9a9a",742:"ff196c6d",750:"0839e7a4",758:"382c453d",919:"295b1c55",961:"f0feb7d8"}[e]+".js",c.miniCssF=e=>{},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},o="openrag-docs:",c.l=(e,t,r,n)=>{if(a[e])a[e].push(t);else{var f,i;if(void 0!==r)for(var d=document.getElementsByTagName("script"),u=0;u{f.onerror=f.onload=null,clearTimeout(b);var o=a[e];if(delete a[e],f.parentNode&&f.parentNode.removeChild(f),o&&o.forEach(e=>e(r)),t)return t(r)},b=setTimeout(s.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=s.bind(null,f.onerror),f.onload=s.bind(null,f.onload),i&&document.head.appendChild(f)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/",c.gca=function(e){return e={17896441:"401",33362219:"532",c8078f0a:"26",a94703ab:"48",a7bd4aaa:"98",e633a5ea:"172","749371cc":"272","22dd74f7":"567","0ba6a408":"571","5e95c892":"647",eb5b356a:"668",af920ffe:"717",aba21aa0:"742",d0314b07:"750",ca2c3c0c:"919","21afe7ac":"961"}[e]||e,c.p+c.u(e)},(()=>{var e={354:0,869:0};c.f.j=(t,r)=>{var a=c.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(354|869)$/.test(t))e[t]=0;else{var o=new Promise((r,o)=>a=e[t]=[r,o]);r.push(a[2]=o);var n=c.p+c.u(t),f=new Error;c.l(n,r=>{if(c.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var o=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;f.message="Loading chunk "+t+" failed.\n("+o+": "+n+")",f.name="ChunkLoadError",f.type=o,f.request=n,a[1](f)}},"chunk-"+t,t)}},c.O.j=t=>0===e[t];var t=(t,r)=>{var a,o,n=r[0],f=r[1],i=r[2],d=0;if(n.some(t=>0!==e[t])){for(a in f)c.o(f,a)&&(c.m[a]=f[a]);if(i)var u=i(c)}for(t&&t(r);d Deploy with Docker | OpenRAG - + diff --git a/get-started/tui/index.html b/get-started/tui/index.html index f4a15ba1..2eed92ba 100644 --- a/get-started/tui/index.html +++ b/get-started/tui/index.html @@ -4,7 +4,7 @@ Terminal User Interface (TUI) commands | OpenRAG - + diff --git a/index.html b/index.html index f41764fa..31f16842 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ What is OpenRAG? | OpenRAG - + diff --git a/ingestion/index.html b/ingestion/index.html index 4791e42f..c20ef775 100644 --- a/ingestion/index.html +++ b/ingestion/index.html @@ -4,7 +4,7 @@ Docling Ingestion | OpenRAG - + diff --git a/install/index.html b/install/index.html index 08920171..c5e7c789 100644 --- a/install/index.html +++ b/install/index.html @@ -4,7 +4,7 @@ Install OpenRAG | OpenRAG - + diff --git a/knowledge/index.html b/knowledge/index.html index 4ea01c91..97c0c097 100644 --- a/knowledge/index.html +++ b/knowledge/index.html @@ -4,7 +4,7 @@ OpenSearch Knowledge | OpenRAG - + @@ -58,12 +58,6 @@ You can select multiples. The ingestion process may take some time, depending on the size of your documents.
  • When ingestion is complete, your documents are available in the Knowledge screen.
  • -

    Sync cloud connectors

    -

    Your connected data sources are found in the Settings page.

    -

    When you click Sync Now for a connected cloud service like Google Drive, OpenRAG scans your connected Google Drive account to find files that match your sync criteria. Sync criteria are controlled in Sync Settings on the same page. You can sync all files, or select a maximum number of files to sync.

    -

    For each file found, OpenRAG downloads, converts, and embeds the processed content into OpenSearch.

    -

    You can monitor the sync progress in the Tasks sidebar.

    -

    Once processing is complete, the synced documents become available in your knowledge base and can be searched through the chat interface or Knowledge page.

    Explore knowledge

    The Knowledge page lists the documents OpenRAG has ingested into the OpenSearch vector database's documents index.

    To explore your current knowledge, click Knowledge. @@ -113,7 +107,7 @@ A new filter is created with default settings that match everything.

    You can use custom embedding models by specifying them in your configuration.

    If you use an unknown embedding model, OpenRAG will automatically fall back to 1536 dimensions and log a warning. The system will continue to work, but search quality may be affected if the actual model dimensions differ from 1536.

    The default embedding dimension is 1536 and the default model is text-embedding-3-small.

    -

    For models with known vector dimensions, see settings.py in the OpenRAG repository.