diff --git a/apis/agora-api/index.html b/apis/agora-api/index.html index 5289dcf..266153b 100644 --- a/apis/agora-api/index.html +++ b/apis/agora-api/index.html @@ -12,7 +12,7 @@ - + diff --git a/apis/boardroom-api/index.html b/apis/boardroom-api/index.html index 5289dcf..266153b 100644 --- a/apis/boardroom-api/index.html +++ b/apis/boardroom-api/index.html @@ -12,7 +12,7 @@ - + diff --git a/apis/index.html b/apis/index.html index 5289dcf..266153b 100644 --- a/apis/index.html +++ b/apis/index.html @@ -12,7 +12,7 @@ - + diff --git a/architecture/code-review/index.html b/architecture/code-review/index.html index 5289dcf..266153b 100644 --- a/architecture/code-review/index.html +++ b/architecture/code-review/index.html @@ -12,7 +12,7 @@ - + diff --git a/architecture/index.html b/architecture/index.html index 5289dcf..266153b 100644 --- a/architecture/index.html +++ b/architecture/index.html @@ -12,7 +12,7 @@ - + diff --git a/architecture/overview/index.html b/architecture/overview/index.html index 5289dcf..266153b 100644 --- a/architecture/overview/index.html +++ b/architecture/overview/index.html @@ -12,7 +12,7 @@ - + diff --git a/architecture/tech-stack/index.html b/architecture/tech-stack/index.html index 5289dcf..266153b 100644 --- a/architecture/tech-stack/index.html +++ b/architecture/tech-stack/index.html @@ -12,7 +12,7 @@ - + diff --git a/assets/agora-api-BnVpp1TA.js b/assets/agora-api-AW-_nqh0.js similarity index 99% rename from assets/agora-api-BnVpp1TA.js rename to assets/agora-api-AW-_nqh0.js index 9db1873..17a1ecc 100644 --- a/assets/agora-api-BnVpp1TA.js +++ b/assets/agora-api-AW-_nqh0.js @@ -1,4 +1,4 @@ -import{u as a,j as e}from"./index-iPwFPOFl.js";const l={title:"Optimism Agora API",description:"undefined"};function n(i){const s={a:"a",code:"code",div:"div",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",span:"span",...a(),...i.components};return e.jsxs(e.Fragment,{children:[e.jsx(s.header,{children:e.jsxs(s.h1,{id:"optimism-agora-api",children:["Optimism Agora API",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#optimism-agora-api",children:e.jsx(s.div,{"data-autolink-icon":!0})})]})}),` +import{u as a,j as e}from"./index-DrB8Q3SN.js";const l={title:"Optimism Agora API",description:"undefined"};function n(i){const s={a:"a",code:"code",div:"div",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",span:"span",...a(),...i.components};return e.jsxs(e.Fragment,{children:[e.jsx(s.header,{children:e.jsxs(s.h1,{id:"optimism-agora-api",children:["Optimism Agora API",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#optimism-agora-api",children:e.jsx(s.div,{"data-autolink-icon":!0})})]})}),` `,e.jsxs(s.p,{children:["The repository includes both the ",e.jsx(s.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/config/agora_api_pipeline.yaml",children:"API pipeline manifest"}),` definition and the `,e.jsx(s.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/config/agora_openapi.yaml",children:"OpenAPI spec"}),` to create a RAG pipeline to generate a knowledge base from RetroPGF projects and proposals within the OP collective. You can usually find these files within the `,e.jsx(s.code,{children:"config"})," folder."]}),` diff --git a/assets/apis-B0DwVWWa.js b/assets/apis-Cou4k2E7.js similarity index 97% rename from assets/apis-B0DwVWWa.js rename to assets/apis-Cou4k2E7.js index 3717ee8..09a655b 100644 --- a/assets/apis-B0DwVWWa.js +++ b/assets/apis-Cou4k2E7.js @@ -1,4 +1,4 @@ -import{u as t,j as e}from"./index-iPwFPOFl.js";const r={title:"API Examples",description:"undefined"};function i(n){const o={a:"a",code:"code",div:"div",h1:"h1",h2:"h2",header:"header",p:"p",...t(),...n.components};return e.jsxs(e.Fragment,{children:[e.jsx(o.header,{children:e.jsxs(o.h1,{id:"api-examples",children:["API Examples",e.jsx(o.a,{"aria-hidden":"true",tabIndex:"-1",href:"#api-examples",children:e.jsx(o.div,{"data-autolink-icon":!0})})]})}),` +import{u as t,j as e}from"./index-DrB8Q3SN.js";const r={title:"API Examples",description:"undefined"};function i(n){const o={a:"a",code:"code",div:"div",h1:"h1",h2:"h2",header:"header",p:"p",...t(),...n.components};return e.jsxs(e.Fragment,{children:[e.jsx(o.header,{children:e.jsxs(o.h1,{id:"api-examples",children:["API Examples",e.jsx(o.a,{"aria-hidden":"true",tabIndex:"-1",href:"#api-examples",children:e.jsx(o.div,{"data-autolink-icon":!0})})]})}),` `,e.jsxs(o.p,{children:[`The repository already includes API pipeline manifest definitions for generating knowledge bases from a few REST APIs. Each aims to demonstrate how to define a YAML manifest for extracting data from target API endpoints using different Authentication/Pagination strategies. For a more in-depth review on how to build a manifest for creating a RAG pipeline for your own API, visit `,e.jsx(o.a,{href:"/manifest-definition",children:"Defining the API Pipeline Manifest"})]}),` diff --git a/assets/architecture-mRJLcNX3.js b/assets/architecture-CqTZhhuc.js similarity index 92% rename from assets/architecture-mRJLcNX3.js rename to assets/architecture-CqTZhhuc.js index 1eb858e..40eec76 100644 --- a/assets/architecture-mRJLcNX3.js +++ b/assets/architecture-CqTZhhuc.js @@ -1,3 +1,3 @@ -import{u as r,j as e}from"./index-iPwFPOFl.js";const c={title:"RAG API Pipeline Architecture",description:"undefined"};function i(n){const t={a:"a",div:"div",h1:"h1",header:"header",p:"p",...r(),...n.components};return e.jsxs(e.Fragment,{children:[e.jsx(t.header,{children:e.jsxs(t.h1,{id:"rag-api-pipeline-architecture",children:["RAG API Pipeline Architecture",e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#rag-api-pipeline-architecture",children:e.jsx(t.div,{"data-autolink-icon":!0})})]})}),` +import{u as r,j as e}from"./index-DrB8Q3SN.js";const c={title:"RAG API Pipeline Architecture",description:"undefined"};function i(n){const t={a:"a",div:"div",h1:"h1",header:"header",p:"p",...r(),...n.components};return e.jsxs(e.Fragment,{children:[e.jsx(t.header,{children:e.jsxs(t.h1,{id:"rag-api-pipeline-architecture",children:["RAG API Pipeline Architecture",e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#rag-api-pipeline-architecture",children:e.jsx(t.div,{"data-autolink-icon":!0})})]})}),` `,e.jsx(t.p,{children:`The next sections are more developer-focused with the aim to be a helpful resource to quickly understand the pipeline architecture, the tech stack being used and how it works under the hood.`})]})}function o(n={}){const{wrapper:t}={...r(),...n.components};return t?e.jsx(t,{...n,children:e.jsx(i,{...n})}):i(n)}export{o as default,c as frontmatter}; diff --git a/assets/boardroom-api-C4uZEyVE.js b/assets/boardroom-api-B4I70Tn0.js similarity index 99% rename from assets/boardroom-api-C4uZEyVE.js rename to assets/boardroom-api-B4I70Tn0.js index 0b5d8f5..a84c1f1 100644 --- a/assets/boardroom-api-C4uZEyVE.js +++ b/assets/boardroom-api-B4I70Tn0.js @@ -1,4 +1,4 @@ -import{u as n,j as s}from"./index-iPwFPOFl.js";const r={title:"Boardroom Governance API",description:"undefined"};function l(i){const e={a:"a",code:"code",div:"div",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",p:"p",pre:"pre",span:"span",ul:"ul",...n(),...i.components};return s.jsxs(s.Fragment,{children:[s.jsx(e.header,{children:s.jsxs(e.h1,{id:"boardroom-governance-api",children:["Boardroom Governance API",s.jsx(e.a,{"aria-hidden":"true",tabIndex:"-1",href:"#boardroom-governance-api",children:s.jsx(e.div,{"data-autolink-icon":!0})})]})}),` +import{u as n,j as s}from"./index-DrB8Q3SN.js";const r={title:"Boardroom Governance API",description:"undefined"};function l(i){const e={a:"a",code:"code",div:"div",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",p:"p",pre:"pre",span:"span",ul:"ul",...n(),...i.components};return s.jsxs(s.Fragment,{children:[s.jsx(e.header,{children:s.jsxs(e.h1,{id:"boardroom-governance-api",children:["Boardroom Governance API",s.jsx(e.a,{"aria-hidden":"true",tabIndex:"-1",href:"#boardroom-governance-api",children:s.jsx(e.div,{"data-autolink-icon":!0})})]})}),` `,s.jsxs(e.p,{children:["The repository includes both the ",s.jsx(e.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/config/boardroom_api_pipeline.yaml",children:"API pipeline manifest"}),` definition and the `,s.jsx(e.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/config/openapi.yaml",children:"OpenAPI spec"}),` to create a RAG pipeline to generate a knowledge base from any DAO/Protocol whose data is hosted by the Boardroom Governance API. You can usually find these files within the `,s.jsx(e.code,{children:"config"})," folder."]}),` @@ -235,6 +235,7 @@ to extract data about proposals. Below you'll notice how it injects the `,s.jsx( `,s.jsx(e.code,{children:"discourseTopis"}),", ",s.jsx(e.code,{children:"discourseCategories"}),", ",s.jsx(e.code,{children:"discourseTopicPosts"}),", ",s.jsx(e.code,{children:"/protocol"})," and ",s.jsx(e.code,{children:"protocol/*/proposals"}),". Make sure you have ",s.jsx(e.code,{children:"Ollama"}),` running locally with the LLM embeddings model of your preference:`]}),` `,s.jsx(e.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"Terminal","data-lang":"bash",children:s.jsx(e.code,{children:s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"poetry"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" run"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" rag-api-pipeline"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" run-all"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" config/boardroom_api_pipeline.yaml"}),s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" --openapi-spec-file"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" config/openapi.yaml"}),s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" --llm-provider"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" ollama"})]})})}),` +`,s.jsxs(e.p,{children:["You can find the processed and serialized API data as well as the the generated knowledge base snapshot for Aave in this ",s.jsx(e.a,{href:"https://huggingface.co/datasets/uxman/aave_snapshot_boardroom/tree/main",children:"link"})]}),` `,s.jsxs(e.h2,{id:"import-knowledge-base-into-gaianet-node",children:["Import knowledge base into Gaianet node",s.jsx(e.a,{"aria-hidden":"true",tabIndex:"-1",href:"#import-knowledge-base-into-gaianet-node",children:s.jsx(e.div,{"data-autolink-icon":!0})})]}),` `,s.jsxs(e.p,{children:[`Once the command above finishes, you'll find a compressed knowledge base snapshot in `,s.jsx(e.code,{children:"{OUTPUT_FOLDER}/aave_boardroom_api/"})," with name aave_boardroom_api_collection-xxxxxxxxxxxxxxxx-yyyy-mm-dd-hh-mm-ss.snapshot.tar.gz`. Now it's time to import it\ninto your gaianet node. You can find the instructions on how to select a knowledge base ",s.jsx(e.a,{href:"https://docs.gaianet.ai/node-guide/customize#select-a-knowledge-base",children:"here"}),`. diff --git a/assets/cli-reference-C2SkMtqk.js b/assets/cli-reference-C2SkMtqk.js deleted file mode 100644 index d9134f4..0000000 --- a/assets/cli-reference-C2SkMtqk.js +++ /dev/null @@ -1,98 +0,0 @@ -import{u as d,j as e}from"./index-iPwFPOFl.js";const r={title:"RAG API Pipeline CLI Documentation",description:"undefined"};function a(n){const i={a:"a",code:"code",div:"div",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",ul:"ul",...d(),...n.components};return e.jsxs(e.Fragment,{children:[e.jsx(i.header,{children:e.jsxs(i.h1,{id:"rag-api-pipeline-cli-documentation",children:["RAG API Pipeline CLI Documentation",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#rag-api-pipeline-cli-documentation",children:e.jsx(i.div,{"data-autolink-icon":!0})})]})}),` -`,e.jsxs(i.h2,{id:"overview",children:["Overview",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#overview",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsx(i.p,{children:`The CLI tool provides functionality for running a RAG (Retrieval-Augmented Generation) API pipeline. -It offers various commands to execute different stages of the pipeline, from data extraction to embedding generation.`}),` -`,e.jsxs(i.h2,{id:"installation",children:["Installation",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#installation",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsx(i.p,{children:"This project uses Poetry for dependency management. To install the project and all its dependencies:"}),` -`,e.jsxs(i.ol,{children:[` -`,e.jsxs(i.li,{children:[` -`,e.jsxs(i.p,{children:["Ensure you have Poetry installed. If not, install it by following the instructions at ",e.jsx(i.a,{href:"https://python-poetry.org/docs/#installation",children:"https://python-poetry.org/docs/#installation"})]}),` -`]}),` -`,e.jsxs(i.li,{children:[` -`,e.jsx(i.p,{children:"Clone the repository:"}),` -`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsxs(i.code,{children:[e.jsx(i.span,{className:"line",children:e.jsx(i.span,{children:"git clone https://github.com/raid-guild/gaianet-rag-api-pipeline"})}),` -`,e.jsx(i.span,{className:"line",children:e.jsx(i.span,{children:"cd gaianet-rag-api-pipeline"})})]})}),` -`]}),` -`,e.jsxs(i.li,{children:[` -`,e.jsx(i.p,{children:"Install dependencies using Poetry:"}),` -`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsx(i.code,{children:e.jsx(i.span,{className:"line",children:e.jsx(i.span,{children:"poetry install"})})})}),` -`,e.jsxs(i.p,{children:["This will create a virtual environment and install all necessary dependencies specified in the ",e.jsx(i.code,{children:"pyproject.toml"})," file."]}),` -`]}),` -`]}),` -`,e.jsxs(i.h2,{id:"usage",children:["Usage",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#usage",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(i.p,{children:["To run any command, use the ",e.jsx(i.code,{children:"poetry run"})," prefix:"]}),` -`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsx(i.code,{children:e.jsx(i.span,{className:"line",children:e.jsx(i.span,{children:"poetry run rag-api-pipeline [OPTIONS] COMMAND [ARGS]..."})})})}),` -`,e.jsxs(i.h2,{id:"global-options",children:["Global Options",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#global-options",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(i.ul,{children:[` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--debug"}),": Enable logging at debug level."]}),` -`]}),` -`,e.jsxs(i.h2,{id:"commands",children:["Commands",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#commands",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(i.h3,{id:"1-run-all",children:["1. run-all",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#1-run-all",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsx(i.p,{children:"Run the complete RAG API pipeline."}),` -`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsx(i.code,{children:e.jsx(i.span,{className:"line",children:e.jsx(i.span,{children:"poetry run rag-api-pipeline run-all [OPTIONS] API_MANIFEST_FILE"})})})}),` -`,e.jsxs(i.h4,{id:"arguments",children:["Arguments",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#arguments",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(i.ul,{children:[` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"API_MANIFEST_FILE"}),": Pipeline YAML manifest that defines the Pipeline config settings and API endpoints to extract."]}),` -`]}),` -`,e.jsxs(i.h4,{id:"options",children:["Options",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#options",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(i.ul,{children:[` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--llm-provider [ollama|openai]"}),": Embedding model provider (default: openai)"]}),` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--api-key TEXT"}),": API Auth key"]}),` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--openapi-spec-file FILE"}),": OpenAPI YAML spec file (default: config/openapi.yaml)"]}),` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--source-manifest-file FILE"}),": Source YAML manifest"]}),` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--full-refresh"}),": Clean up cache and extract API data from scratch"]}),` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--normalized-only"}),": Run pipeline until the normalized data stage"]}),` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--chunked-only"}),": Run pipeline until the chunked data stage"]}),` -`]}),` -`,e.jsxs(i.h3,{id:"2-from-normalized",children:["2. from-normalized",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#2-from-normalized",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsx(i.p,{children:"Execute the RAG API pipeline from normalized data."}),` -`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsx(i.code,{children:e.jsx(i.span,{className:"line",children:e.jsx(i.span,{children:"poetry run rag-api-pipeline from-normalized [OPTIONS] API_MANIFEST_FILE"})})})}),` -`,e.jsxs(i.h4,{id:"arguments-1",children:["Arguments",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#arguments-1",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(i.ul,{children:[` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"API_MANIFEST_FILE"}),": Pipeline YAML manifest that defines the Pipeline config settings and API endpoints to extract."]}),` -`]}),` -`,e.jsxs(i.h4,{id:"options-1",children:["Options",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#options-1",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(i.ul,{children:[` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--llm-provider [ollama|openai]"}),": Embedding model provider (default: openai)"]}),` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--normalized-data-file FILE"}),": Normalized data in JSONL format (required)"]}),` -`]}),` -`,e.jsxs(i.h3,{id:"3-from-chunked",children:["3. from-chunked",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#3-from-chunked",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsx(i.p,{children:"Execute the RAG API pipeline from (cached) data chunks."}),` -`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsx(i.code,{children:e.jsx(i.span,{className:"line",children:e.jsx(i.span,{children:"poetry run rag-api-pipeline from-chunked [OPTIONS] API_MANIFEST_FILE"})})})}),` -`,e.jsxs(i.h4,{id:"arguments-2",children:["Arguments",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#arguments-2",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(i.ul,{children:[` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"API_MANIFEST_FILE"}),": Pipeline YAML manifest that defines the Pipeline config settings and API endpoints to extract."]}),` -`]}),` -`,e.jsxs(i.h4,{id:"options-2",children:["Options",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#options-2",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(i.ul,{children:[` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--llm-provider [ollama|openai]"}),": Embedding model provider (default: openai)"]}),` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--chunked-data-file FILE"}),": Chunked data in JSONL format (required)"]}),` -`]}),` -`,e.jsxs(i.h2,{id:"environment-variables",children:["Environment Variables",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#environment-variables",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(i.ul,{children:[` -`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"BOARDROOM_API_KEY"}),": Can be used to set the API key instead of passing it as a command-line option."]}),` -`]}),` -`,e.jsxs(i.h2,{id:"examples",children:["Examples",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#examples",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(i.ol,{children:[` -`,e.jsxs(i.li,{children:[` -`,e.jsx(i.p,{children:"Run the complete pipeline:"}),` -`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsx(i.code,{children:e.jsx(i.span,{className:"line",children:e.jsx(i.span,{children:"poetry run rag-api-pipeline run-all config/api_pipeline.yaml --llm-provider ollama"})})})}),` -`]}),` -`,e.jsxs(i.li,{children:[` -`,e.jsx(i.p,{children:"Run the pipeline from normalized data:"}),` -`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsx(i.code,{children:e.jsx(i.span,{className:"line",children:e.jsx(i.span,{children:"poetry run rag-api-pipeline from-normalized config/api_pipeline.yaml --normalized-data-file path/to/normalized_data.jsonl --llm-provider ollama"})})})}),` -`]}),` -`,e.jsxs(i.li,{children:[` -`,e.jsx(i.p,{children:"Run the pipeline from chunked data:"}),` -`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsx(i.code,{children:e.jsx(i.span,{className:"line",children:e.jsx(i.span,{children:"poetry run rag-api-pipeline from-chunked config/api_pipeline.yaml --chunked-data-file path/to/chunked_data.jsonl --llm-provider ollama"})})})}),` -`]}),` -`]}),` -`,e.jsxs(i.h2,{id:"notes",children:["Notes",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#notes",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(i.ul,{children:[` -`,e.jsxs(i.li,{children:["The CLI uses the ",e.jsx(i.code,{children:"click"})," library for command-line interface creation."]}),` -`,e.jsxs(i.li,{children:["It integrates with a custom logging setup and uses the ",e.jsx(i.code,{children:"codetiming"})," library for performance timing."]}),` -`,e.jsxs(i.li,{children:["The pipeline is built using the ",e.jsx(i.code,{children:"pathway"})," library for data processing."]}),` -`,e.jsx(i.li,{children:"Make sure to properly configure your API manifest file and OpenAPI spec file before running the pipeline."}),` -`,e.jsx(i.li,{children:"Using Poetry for dependency management ensures consistent environments across different setups."}),` -`,e.jsxs(i.li,{children:["Always use ",e.jsx(i.code,{children:"poetry run"})," to execute the CLI commands within the Poetry environment."]}),` -`]})]})}function l(n={}){const{wrapper:i}={...d(),...n.components};return i?e.jsx(i,{...n,children:e.jsx(a,{...n})}):a(n)}export{l as default,r as frontmatter}; diff --git a/assets/cli-reference-DYtAc2Qd.js b/assets/cli-reference-DYtAc2Qd.js new file mode 100644 index 0000000..910b0e2 --- /dev/null +++ b/assets/cli-reference-DYtAc2Qd.js @@ -0,0 +1,96 @@ +import{u as a,j as e}from"./index-DrB8Q3SN.js";const r={title:"RAG API Pipeline CLI Reference Documentation",description:"undefined"};function s(n){const i={a:"a",code:"code",div:"div",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",ul:"ul",...a(),...n.components};return e.jsxs(e.Fragment,{children:[e.jsx(i.header,{children:e.jsxs(i.h1,{id:"rag-api-pipeline-cli-reference-documentation",children:["RAG API Pipeline CLI Reference Documentation",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#rag-api-pipeline-cli-reference-documentation",children:e.jsx(i.div,{"data-autolink-icon":!0})})]})}),` +`,e.jsxs(i.h2,{id:"overview",children:["Overview",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#overview",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsx(i.p,{children:`The CLI tool provides functionality for running a RAG (Retrieval-Augmented Generation) API pipeline. It offers various commands to execute different stages of +the pipeline, from data extraction to embedding generation.`}),` +`,e.jsxs(i.h2,{id:"installation",children:["Installation",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#installation",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsx(i.p,{children:"This project uses Poetry for dependency management. To install the project and all its dependencies:"}),` +`,e.jsxs(i.ol,{children:[` +`,e.jsxs(i.li,{children:[` +`,e.jsxs(i.p,{children:["Ensure you have Poetry installed. If not, install it by following the instructions ",e.jsx(i.a,{href:"https://python-poetry.org/docs/#installation",children:"here"})]}),` +`]}),` +`,e.jsxs(i.li,{children:[` +`,e.jsx(i.p,{children:"Clone the repository:"}),` +`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"Terminal","data-lang":"bash",children:e.jsxs(i.code,{children:[e.jsxs(i.span,{className:"line",children:[e.jsx(i.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"git"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" clone"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" https://github.com/raid-guild/gaianet-rag-api-pipeline"})]}),` +`,e.jsxs(i.span,{className:"line",children:[e.jsx(i.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:"cd"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" gaianet-rag-api-pipeline"})]})]})}),` +`]}),` +`,e.jsxs(i.li,{children:[` +`,e.jsx(i.p,{children:"Install dependencies using Poetry:"}),` +`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"Terminal","data-lang":"bash",children:e.jsx(i.code,{children:e.jsxs(i.span,{className:"line",children:[e.jsx(i.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"poetry"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" install"})]})})}),` +`,e.jsxs(i.p,{children:["This will create a virtual environment and install all necessary dependencies specified in the ",e.jsx(i.code,{children:"pyproject.toml"})," file."]}),` +`]}),` +`]}),` +`,e.jsxs(i.h2,{id:"usage",children:["Usage",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#usage",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.p,{children:["To run any command, use the ",e.jsx(i.code,{children:"poetry run"})," prefix:"]}),` +`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"Terminal","data-lang":"bash",children:e.jsx(i.code,{children:e.jsxs(i.span,{className:"line",children:[e.jsx(i.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"poetry"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" run"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" rag-api-pipeline"}),e.jsx(i.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:" [OPTIONS] COMMAND [ARGS]..."})]})})}),` +`,e.jsxs(i.h2,{id:"global-options",children:["Global Options",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#global-options",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.ul,{children:[` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--debug"}),": Enable logging at debug level. Usefult for developing purposes"]}),` +`]}),` +`,e.jsxs(i.h2,{id:"commands",children:["Commands",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#commands",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.h3,{id:"run-all",children:["run-all",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#run-all",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsx(i.p,{children:"Run the complete RAG API pipeline."}),` +`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"Terminal","data-lang":"bash",children:e.jsx(i.code,{children:e.jsxs(i.span,{className:"line",children:[e.jsx(i.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"poetry"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" run"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" rag-api-pipeline"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" run-all"}),e.jsx(i.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:" [OPTIONS] API_MANIFEST_FILE"})]})})}),` +`,e.jsxs(i.h4,{id:"arguments",children:["Arguments",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#arguments",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.ul,{children:[` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"API_MANIFEST_FILE"}),": Pipeline YAML manifest that defines the Pipeline config settings and API endpoints to extract."]}),` +`]}),` +`,e.jsxs(i.h4,{id:"options",children:["Options",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#options",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.ul,{children:[` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--llm-provider [ollama|openai]"}),": Embedding model provider (default: openai)"]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--api-key TEXT"}),": API Auth key"]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--openapi-spec-file FILE"}),": OpenAPI YAML spec file (default: config/openapi.yaml)"]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--source-manifest-file FILE"}),": Source Connector YAML manifest"]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--full-refresh"}),": Clean up cache and extract API data from scratch"]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--normalized-only"}),": Run pipeline until the normalized data stage"]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--chunked-only"}),": Run pipeline until the chunked data stage"]}),` +`]}),` +`,e.jsxs(i.h3,{id:"from-normalized",children:["from-normalized",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#from-normalized",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsx(i.p,{children:"eExecutes the RAG data pipeline using an already normalized JSONL dataset."}),` +`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"Terminal","data-lang":"bash",children:e.jsx(i.code,{children:e.jsxs(i.span,{className:"line",children:[e.jsx(i.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"poetry"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" run"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" rag-api-pipeline"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" from-normalized"}),e.jsx(i.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:" [OPTIONS] API_MANIFEST_FILE"})]})})}),` +`,e.jsxs(i.h4,{id:"arguments-1",children:["Arguments",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#arguments-1",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.ul,{children:[` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"API_MANIFEST_FILE"}),": Pipeline YAML manifest that defines the Pipeline config settings and API endpoints to extract."]}),` +`]}),` +`,e.jsxs(i.h4,{id:"options-1",children:["Options",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#options-1",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.ul,{children:[` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--llm-provider [ollama|openai]"}),": Embedding model provider (default: openai)"]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--normalized-data-file FILE"}),": Normalized data in JSONL format (required)"]}),` +`]}),` +`,e.jsxs(i.h3,{id:"3-from-chunked",children:["3. from-chunked",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#3-from-chunked",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsx(i.p,{children:"Executes the RAG data pipeline using an already chunked dataset in JSONL format."}),` +`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"Terminal","data-lang":"bash",children:e.jsx(i.code,{children:e.jsxs(i.span,{className:"line",children:[e.jsx(i.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"poetry"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" run"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" rag-api-pipeline"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" from-chunked"}),e.jsx(i.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:" [OPTIONS] API_MANIFEST_FILE"})]})})}),` +`,e.jsxs(i.h4,{id:"arguments-2",children:["Arguments",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#arguments-2",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.ul,{children:[` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"API_MANIFEST_FILE"}),": Pipeline YAML manifest that defines the Pipeline config settings and API endpoints to extract."]}),` +`]}),` +`,e.jsxs(i.h4,{id:"options-2",children:["Options",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#options-2",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.ul,{children:[` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--llm-provider [ollama|openai]"}),": Embedding model provider (default: openai)"]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.code,{children:"--chunked-data-file FILE"}),": Chunked data in JSONL format (required)"]}),` +`]}),` +`,e.jsxs(i.h2,{id:"examples",children:["Examples",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#examples",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.ol,{children:[` +`,e.jsxs(i.li,{children:[` +`,e.jsx(i.p,{children:"Run the complete pipeline using Ollama as LLM provider:"}),` +`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"Terminal","data-lang":"bash",children:e.jsx(i.code,{children:e.jsxs(i.span,{className:"line",children:[e.jsx(i.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"poetry"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" run"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" rag-api-pipeline"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" run-all"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" config/api_pipeline.yaml"}),e.jsx(i.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" --openapi-spec-file"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" config/openapi.yaml"}),e.jsx(i.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" --llm-provider"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" ollama"})]})})}),` +`]}),` +`,e.jsxs(i.li,{children:[` +`,e.jsx(i.p,{children:"Run the pipeline and stop executing after data normalization:"}),` +`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"Terminal","data-lang":"bash",children:e.jsx(i.code,{children:e.jsxs(i.span,{className:"line",children:[e.jsx(i.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"poetry"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" run"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" rag-api-pipeline"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" run-all"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" config/api_pipeline.yaml"}),e.jsx(i.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" --openapi-spec-file"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" config/openapi.yaml"}),e.jsx(i.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" --llm-provider"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" ollama"}),e.jsx(i.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" --normalized-only"})]})})}),` +`]}),` +`,e.jsxs(i.li,{children:[` +`,e.jsx(i.p,{children:"Run the pipeline from normalized data:"}),` +`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"Terminal","data-lang":"bash",children:e.jsx(i.code,{children:e.jsxs(i.span,{className:"line",children:[e.jsx(i.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"poetry"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" run"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" rag-api-pipeline"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" from-normalized"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" config/api_pipeline.yaml"}),e.jsx(i.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" --normalized-data-file"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" path/to/normalized_data.jsonl"}),e.jsx(i.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" --llm-provider"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" ollama"})]})})}),` +`]}),` +`,e.jsxs(i.li,{children:[` +`,e.jsx(i.p,{children:"Run the pipeline from chunked data:"}),` +`,e.jsx(i.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"Terminal","data-lang":"bash",children:e.jsx(i.code,{children:e.jsxs(i.span,{className:"line",children:[e.jsx(i.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"poetry"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" run"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" rag-api-pipeline"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" from-chunked"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" config/api_pipeline.yaml"}),e.jsx(i.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" --chunked-data-file"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" path/to/chunked_data.jsonl"}),e.jsx(i.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" --llm-provider"}),e.jsx(i.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" ollama"})]})})}),` +`]}),` +`]}),` +`,e.jsxs(i.h2,{id:"notes",children:["Notes",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#notes",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.ul,{children:[` +`,e.jsxs(i.li,{children:["Always use ",e.jsx(i.code,{children:"poetry run"})," to execute the CLI commands within the Poetry environment."]}),` +`,e.jsxs(i.li,{children:["The CLI uses the ",e.jsx(i.code,{children:"click"})," library for command-line interface creation."]}),` +`,e.jsx(i.li,{children:"Make sure to properly configure your API manifest file and OpenAPI spec file before running the pipeline."}),` +`,e.jsxs(i.li,{children:["Double check the CLI environment variables in the ",e.jsx(i.code,{children:"config/.env"})," file. Check The ",e.jsx(i.a,{href:"/getting-started#environment-variables",children:"Environment Variables"})," section for details."]}),` +`]})]})}function d(n={}){const{wrapper:i}={...a(),...n.components};return i?e.jsx(i,{...n,children:e.jsx(s,{...n})}):s(n)}export{d as default,r as frontmatter}; diff --git a/assets/code-review-CDg5Plok.js b/assets/code-review-CDg5Plok.js deleted file mode 100644 index a781116..0000000 --- a/assets/code-review-CDg5Plok.js +++ /dev/null @@ -1,93 +0,0 @@ -import{u as a,j as e}from"./index-iPwFPOFl.js";const s={title:"RAG API Pipeline Architecture Overview",description:"undefined"};function r(i){const n={a:"a",div:"div",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...a(),...i.components};return e.jsxs(e.Fragment,{children:[e.jsx(n.header,{children:e.jsxs(n.h1,{id:"rag-api-pipeline-architecture-overview",children:["RAG API Pipeline Architecture Overview",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#rag-api-pipeline-architecture-overview",children:e.jsx(n.div,{"data-autolink-icon":!0})})]})}),` -`,e.jsxs(n.h2,{id:"introduction",children:["Introduction",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#introduction",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsx(n.p,{children:"This document provides an overview of the RAG (Retrieval-Augmented Generation) API Pipeline architecture. The system is designed to extract, process, and store data from the Boardroom Governance API, creating a knowledge base that can be queried using natural language processing techniques."}),` -`,e.jsxs(n.h2,{id:"diagram",children:["Diagram",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#diagram",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsx("iframe",{src:"https://mermaid.live/view#pako:eNplVF1vozAQ_CuWXy8l4SPQoNNJiZqmVZM2Ou7pnD44eAOogJEx7eWa_PdbQ0lzqSUke3Z2Zz22eaexFEBDmihepeTXbFMSHHWz7YBpprZ7DWxDP2bkG1lznb7x_YY-d2Qz1iu2zirIsxLIipfZDmr9TK6ufhxsyyYKuDiQ6ZJN1_dLyQWos9SniD1VUGKIRBXEfZZzyvqkTpdt0MGSCZSguIYDiVYsko2KgRS98GdGtGozXMyoNVf6QH5OFww_0rd7RjawYXstWyos_jBjD6V8y0EkQGa8Pqc_zD7YTs_GAl0YSnFhJIYiUK-g0Eqj0263Bf7zcblcMfxIgaeSn5s0ve9cujeZZ4H5is2LLQiRlcmXrItmZgs2k1wJJWVBFhK1S16ib6ai2Up_2h27d2NsjcgOuG4UEOilDp8b6tgfZvhIjkpe1anUXzgXy8UjW_CMP4ImayW1jGVOcPEm1cvzRQL5btpbPHbw3S27a5LE7PiWx4C9WyhtLtYXyZP_S0hOPrRG2wxFY6jrc_cddsM1J5E5znPcZfM_2tiVt4eWxX0Ua9IBLUAVPBP4jN4NvKE6hQI2NMSp4OplQzflEXm80TLalzENtWpgQJVskpSGO57XuGoqgRf6JuPYcXGBzkWGPZ3AvH1ENHynel-1zzerNQrEstxlicEblSOcal3V4XBowlaS6bTZWrEshnUmUnwN6evEH_qOf80dF_zA5WPXFfHWnlzvHM_eiWBkO5wejwMKrf6q-1e0v4wBrXj5G2_SqSlcG-U_NPS8seU7I8_3XMcbjQN_PKB7GrquhdBoPPa8IJg49gQL_20rjKxrN_B8Z-Lb2Ebg-sHxHxjOZcQ",width:"100%",height:"900px"}),` -`,e.jsx(n.p,{children:e.jsx(n.a,{href:"https://res.cloudinary.com/dwx9alovg/image/upload/v1725856208/rag-pipeline/toms0dzpmfbrmuw87xmd.png",children:"Full Image"})}),` -`,e.jsxs(n.h2,{id:"components",children:["Components",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#components",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.h3,{id:"1-pipeline-manifest",children:["1. Pipeline Manifest",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#1-pipeline-manifest",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.ul,{children:[` -`,e.jsx(n.li,{children:"A YAML file that defines the configuration settings and API endpoints for extraction."}),` -`,e.jsx(n.li,{children:"Read at the start of the pipeline process (step 1.1)."}),` -`]}),` -`,e.jsxs(n.h3,{id:"2-openapi-spec",children:["2. OpenAPI Spec",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#2-openapi-spec",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.ul,{children:[` -`,e.jsx(n.li,{children:"A YAML file containing the OpenAPI specification for the Boardroom Governance API."}),` -`,e.jsx(n.li,{children:"Read by the APILoader component (step 1.2)."}),` -`]}),` -`,e.jsxs(n.h3,{id:"3-apiloader",children:["3. APILoader",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#3-apiloader",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.ul,{children:[` -`,e.jsx(n.li,{children:"Reads the Pipeline Manifest and OpenAPI Spec."}),` -`,e.jsx(n.li,{children:"Generates a Source Manifest (step 2) based on the input configurations."}),` -`]}),` -`,e.jsxs(n.h3,{id:"4-source-manifest",children:["4. Source Manifest",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#4-source-manifest",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.ul,{children:[` -`,e.jsx(n.li,{children:"A YAML file generated by the APILoader."}),` -`,e.jsx(n.li,{children:"Contains detailed information about the data sources and extraction parameters."}),` -`]}),` -`,e.jsxs(n.h3,{id:"5-boardroom-governance-api",children:["5. Boardroom Governance API",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#5-boardroom-governance-api",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.ul,{children:[` -`,e.jsx(n.li,{children:"The primary data source for the pipeline."}),` -`,e.jsx(n.li,{children:"Data is extracted from this API (step 4)."}),` -`]}),` -`,e.jsxs(n.h3,{id:"6-airbyte--pathway",children:["6. Airbyte + Pathway",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#6-airbyte--pathway",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.ul,{children:[` -`,e.jsx(n.li,{children:"Airbyte is used for data extraction and initial processing."}),` -`,e.jsx(n.li,{children:"Pathway is used for data transformation and pipelining."}),` -`,e.jsx(n.li,{children:"These components work together to process the extracted data (step 5)."}),` -`]}),` -`,e.jsxs(n.h3,{id:"7-rag-pipeline",children:["7. RAG Pipeline",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#7-rag-pipeline",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.ul,{children:[` -`,e.jsxs(n.li,{children:["Consists of several sub-steps:",` -`,e.jsxs(n.ul,{children:[` -`,e.jsx(n.li,{children:"Preprocessing"}),` -`,e.jsx(n.li,{children:"Normalization"}),` -`,e.jsx(n.li,{children:"Semantic chunking"}),` -`,e.jsx(n.li,{children:"Feature embeddings"}),` -`]}),` -`]}),` -`,e.jsx(n.li,{children:"Processes the data extracted by Airbyte (step 5)."}),` -`]}),` -`,e.jsxs(n.h3,{id:"8-qdrant-vector-store",children:["8. Qdrant Vector Store",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#8-qdrant-vector-store",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.ul,{children:[` -`,e.jsx(n.li,{children:"A vector database used to store the processed and embedded data."}),` -`,e.jsx(n.li,{children:"Data is stored here after processing (step 5.5)."}),` -`]}),` -`,e.jsxs(n.h3,{id:"9-rag-api-server",children:["9. RAG API Server",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#9-rag-api-server",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.ul,{children:[` -`,e.jsxs(n.li,{children:["Hosts the following components:",` -`,e.jsxs(n.ul,{children:[` -`,e.jsx(n.li,{children:"LLM (Language Model)"}),` -`,e.jsx(n.li,{children:"Embedding model"}),` -`,e.jsx(n.li,{children:"OpenAI API integration"}),` -`]}),` -`]}),` -`,e.jsx(n.li,{children:"Interfaces with the Qdrant Vector Store to retrieve relevant information."}),` -`,e.jsx(n.li,{children:"Connects to the GaiaNet Protocol Network."}),` -`]}),` -`,e.jsxs(n.h3,{id:"10-openai-api",children:["10. OpenAI API",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#10-openai-api",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.ul,{children:[` -`,e.jsx(n.li,{children:"Used by the RAG API Server for advanced natural language processing tasks."}),` -`]}),` -`,e.jsxs(n.h3,{id:"11-gaianet-protocol-network",children:["11. GaiaNet Protocol Network",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#11-gaianet-protocol-network",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.ul,{children:[` -`,e.jsx(n.li,{children:"The broader network that the RAG API Server interfaces with."}),` -`,e.jsx(n.li,{children:"Consists of multiple Gaia Nodes."}),` -`]}),` -`,e.jsxs(n.h2,{id:"process-flow",children:["Process Flow",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#process-flow",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.ol,{children:[` -`,e.jsx(n.li,{children:"The pipeline starts by reading the Pipeline Manifest (1.1) and OpenAPI Spec (1.2)."}),` -`,e.jsx(n.li,{children:"The APILoader generates a Source Manifest based on these inputs."}),` -`,e.jsx(n.li,{children:"The pipeline begins data extraction from the Boardroom Governance API."}),` -`,e.jsx(n.li,{children:"Extracted data is processed through the Airbyte + Pathway components."}),` -`,e.jsx(n.li,{children:"The RAG Pipeline performs preprocessing, normalization, semantic chunking, and feature embedding."}),` -`,e.jsx(n.li,{children:"Processed data is stored in the Qdrant Vector Store."}),` -`,e.jsx(n.li,{children:"The RAG API Server can now access this data to respond to queries."}),` -`,e.jsx(n.li,{children:"The RAG API Server may use the OpenAI API for additional processing or generation tasks."}),` -`,e.jsx(n.li,{children:"The RAG API Server interfaces with the GaiaNet Protocol Network to provide its services."}),` -`]}),` -`,e.jsxs(n.h2,{id:"using-pre-generated-snapshots-and-models",children:["Using Pre-generated snapshots and models",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#using-pre-generated-snapshots-and-models",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.ul,{children:[` -`,e.jsx(n.li,{children:"You can also use models and snapshots supported by Gaianet node by defining them in the Gaianet node config file."}),` -`,e.jsxs(n.li,{children:["Check out the ",e.jsx(n.a,{href:"http://docs.gaianet.ai",children:"Gaianet docs"})," for more information."]}),` -`]})]})}function d(i={}){const{wrapper:n}={...a(),...i.components};return n?e.jsx(n,{...i,children:e.jsx(r,{...i})}):r(i)}export{d as default,s as frontmatter}; diff --git a/assets/code-review-Cgm8ziUG.js b/assets/code-review-Cgm8ziUG.js new file mode 100644 index 0000000..e351dcb --- /dev/null +++ b/assets/code-review-Cgm8ziUG.js @@ -0,0 +1,64 @@ +import{u as t,j as e}from"./index-DrB8Q3SN.js";const s={title:"In-depth Source Code Review",description:"undefined"};function a(n){const i={a:"a",aside:"aside",code:"code",div:"div",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...t(),...n.components};return e.jsxs(e.Fragment,{children:[e.jsx(i.header,{children:e.jsxs(i.h1,{id:"in-depth-source-code-review",children:["In-depth Source Code Review",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#in-depth-source-code-review",children:e.jsx(i.div,{"data-autolink-icon":!0})})]})}),` +`,e.jsx(i.p,{children:`In the following sections, we'll walk you through the different modules that conform the RAG (Retrieval-Augmented Generation) API Pipeline architecture. +The system is designed to extract, preprocess, parse and store data streams from an API source, then creates a vector embeddings knowledge base that can be +queried using natural language processing and/or hybrid search techniques. Resulting data from each stage of the pipeline is serialized using a Json lines format, +so they can be easily cached and reused.`}),` +`,e.jsxs(i.h2,{id:"data-flow-overview",children:["Data Flow Overview",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#data-flow-overview",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsx("iframe",{src:"https://mermaid.live/view#pako:eNplVF1vozAQ_CuWXy8l4SPQoNNJiZqmVZM2Ou7pnD44eAOogJEx7eWa_PdbQ0lzqSUke3Z2Zz22eaexFEBDmihepeTXbFMSHHWz7YBpprZ7DWxDP2bkG1lznb7x_YY-d2Qz1iu2zirIsxLIipfZDmr9TK6ufhxsyyYKuDiQ6ZJN1_dLyQWos9SniD1VUGKIRBXEfZZzyvqkTpdt0MGSCZSguIYDiVYsko2KgRS98GdGtGozXMyoNVf6QH5OFww_0rd7RjawYXstWyos_jBjD6V8y0EkQGa8Pqc_zD7YTs_GAl0YSnFhJIYiUK-g0Eqj0263Bf7zcblcMfxIgaeSn5s0ve9cujeZZ4H5is2LLQiRlcmXrItmZgs2k1wJJWVBFhK1S16ib6ai2Up_2h27d2NsjcgOuG4UEOilDp8b6tgfZvhIjkpe1anUXzgXy8UjW_CMP4ImayW1jGVOcPEm1cvzRQL5btpbPHbw3S27a5LE7PiWx4C9WyhtLtYXyZP_S0hOPrRG2wxFY6jrc_cddsM1J5E5znPcZfM_2tiVt4eWxX0Ua9IBLUAVPBP4jN4NvKE6hQI2NMSp4OplQzflEXm80TLalzENtWpgQJVskpSGO57XuGoqgRf6JuPYcXGBzkWGPZ3AvH1ENHynel-1zzerNQrEstxlicEblSOcal3V4XBowlaS6bTZWrEshnUmUnwN6evEH_qOf80dF_zA5WPXFfHWnlzvHM_eiWBkO5wejwMKrf6q-1e0v4wBrXj5G2_SqSlcG-U_NPS8seU7I8_3XMcbjQN_PKB7GrquhdBoPPa8IJg49gQL_20rjKxrN_B8Z-Lb2Ebg-sHxHxjOZcQ",width:"100%",height:"900px"}),` +`,e.jsxs(i.ol,{children:[` +`,e.jsxs(i.li,{children:[e.jsx(i.strong,{children:"API Loader"}),": generates an Airbyte declarative stream manifest using the input API pipeline manifest and the API OpenAPI spec."]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.strong,{children:"Data Extraction"}),`: PyAirbyte uses the source manifest to create individual data stream for each of the specified API endpoints. +Raw data is then cached using Airbyte DuckDB for efficient API data retrieval.`]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.strong,{children:"Processing & Transformation"}),`: Pathway handles real-time pre-processing of data streams, transforming raw data into usable format. Endpoint text fields specified +in the API pipeline manifest are joined together into a `,e.jsx(i.code,{children:"content"})," field, while the rest of fields go into a JSON ",e.jsx(i.code,{children:"metadata"})," object."]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.strong,{children:"Data Normalization"}),": pre-processed data streams are joined together into a single normalized stream."]}),` +`,e.jsxs(i.li,{children:["•",e.jsx(i.em,{children:"Data Partitioning & Chunking"}),"*: normalized data records are then partitioned and chunked."]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.strong,{children:"Vector Embeddings Generation"}),": the pipeline connects to an LLM provider to use a hosted embedding model to generate vector embeddings from chunked data records."]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.strong,{children:"Loading Knowledge Base Snapshot"}),`: a resulting QdrantDB collection snapshot can then be imported into a Gaia node so the LLM model can use the domain knowledge +to provide RAG-based answers to end users.`]}),` +`]}),` +`,e.jsxs(i.h2,{id:"pipeline-components",children:["Pipeline Components",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#pipeline-components",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.h3,{id:"cli-entrypoint-source",children:["CLI entrypoint (",e.jsx(i.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/run.py",children:"Source"}),")",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#cli-entrypoint-source",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.p,{children:["The entrypoint module uses ",e.jsx(i.a,{href:"https://click.palletsprojects.com/en/8.1.x/#documentation",children:"Click"}),` to define different CLI commands that can be used to +execute specific pipeline stages. Check the `,e.jsx(i.a,{href:"/cli-reference",children:"CLI reference"})," for more details on commands and arguments avaiable."]}),` +`,e.jsxs(i.h3,{id:"api-loader-source",children:["API Loader (",e.jsx(i.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/gaianet_rag_api_pipeline/loader.py",children:"Source"}),")",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#api-loader-source",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsx(i.p,{children:"It uses the input API pipeline manifest and API OpenAPI spec to generate/load an Airbyte declarative stream manifest that be later used to kickstart the input data streams"}),` +`,e.jsx(i.p,{children:"Input Parameters:"}),` +`,e.jsxs(i.ul,{children:[` +`,e.jsxs(i.li,{children:[e.jsx(i.em,{children:"API Pipeline Manifest"}),": A YAML file that defines the configuration settings and API endpoints for extraction. The ",e.jsx(i.a,{href:"/manifest-definition",children:"Defining the API Pipeline Manifest"}),` +reference provides details on how to create a new manifest for your target API.`]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.em,{children:"OpenAPI Spec"}),": YAML file containing the OpenAPI specification for the API source."]}),` +`]}),` +`,e.jsx(i.p,{children:"Output:"}),` +`,e.jsxs(i.ul,{children:[` +`,e.jsxs(i.li,{children:[e.jsx(i.em,{children:"api_name"}),": API Pipeline id"]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.em,{children:"api_parameters"}),": input parameter values to be injected into the Airbyte API connector."]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.em,{children:"source_manifest"}),": generated source manifest (dict serialized)"]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.em,{children:"endpoint_text_fields"}),": text fields per API endpoint"]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.em,{children:"chunking_params"}),": chunking params that will be used during the data chunking stage."]}),` +`]}),` +`,e.jsxs(i.h3,{id:"input-module-source",children:["Input module (",e.jsx(i.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/gaianet_rag_api_pipeline/input.py",children:"Source"}),")",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#input-module-source",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.p,{children:["It uses Pathway and PyAirbyte to implement the ",e.jsx(i.code,{children:"AirbyteAPIConnector"})," (",e.jsx(i.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/gaianet_rag_api_pipeline/io/airbyte/api_connector.py",children:"Source"}),`). +The input module then uses this custom connector with `,e.jsx(i.code,{children:"api_parameters"})," for creating a data stream table for each API endpoint in ",e.jsx(i.code,{children:"source_manifest"}),"."]}),` +`,e.jsxs(i.h3,{id:"rag-pipeline-source",children:["RAG Pipeline (",e.jsx(i.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/gaianet_rag_api_pipeline/pipeline.py",children:"Source"}),")",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#rag-pipeline-source",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsx(i.p,{children:"It receives a list of input data streams and execute the following processing steps:"}),` +`,e.jsxs(i.ol,{children:[` +`,e.jsxs(i.li,{children:[e.jsx(i.strong,{children:"Preprocessing"})," (",e.jsx(i.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/gaianet_rag_api_pipeline/preprocessing.py",children:"Source"}),`): transforms the +raw data streams into a `,e.jsx(i.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/gaianet_rag_api_pipeline/schema/pipeline.py#L6",children:"unified data schema"}),` using +the specified `,e.jsx(i.code,{children:"endpoint_text_fields"}),"."]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.strong,{children:"Normalization"}),": in charge of joining pre-processed data together into a single normalized stream table."]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.strong,{children:"Data partitioning and chunking"})," (",e.jsx(i.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/gaianet_rag_api_pipeline/chunking.py",children:"Source"}),`): receives +the normalized data stream and `,e.jsx(i.code,{children:"chunking params"}),` to apply data partition and chunking to each record in the stream using the +`,e.jsx(i.code,{children:"CustomParseUnstructured"})," (",e.jsx(i.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/gaianet_rag_api_pipeline/processor/parser.py",children:"Source"}),`) UDF (Pathwar User-defined function). +This function uses the `,e.jsx(i.code,{children:"unstructured"})," open-source library to semantically parse, partition and chunk incoming data records."]}),` +`,e.jsxs(i.li,{children:[e.jsx(i.strong,{children:"Feature embeddings"})," (",e.jsx(i.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/gaianet_rag_api_pipeline/embeddings.py",children:"Source"}),`): the +`,e.jsx(i.code,{children:"CustomLiteLLMEmbedder"})," (",e.jsx(i.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/gaianet_rag_api_pipeline/processor/embedder.py",children:"Source"}),`) integrates +`,e.jsx(i.code,{children:"litellm"})," and ",e.jsx(i.code,{children:"ollama"}),` libraries to connect to the selected LLM provider and use the hosted LLM embeddings model to generate vector embeddings for every +record coming from the chunked data stream.`]}),` +`]}),` +`,e.jsx(i.aside,{"data-callout":"info",children:e.jsx(i.p,{children:`NOTICE: +If you're planning to execute the pipeline on consumer hardware, we recommend using an Ollama as a more-lighweight LLM provider for vector embeddings generation.`})}),` +`,e.jsxs(i.h3,{id:"output-module-source",children:["Output module (",e.jsx(i.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/gaianet_rag_api_pipeline/output.py",children:"Source"}),")",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#output-module-source",children:e.jsx(i.div,{"data-autolink-icon":!0})})]}),` +`,e.jsxs(i.p,{children:["It uses the ",e.jsx(i.code,{children:"qdrant_client"})," library to implement the ",e.jsx(i.code,{children:"QdrantDBVectorStore"})," (",e.jsx(i.a,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline/blob/main/gaianet_rag_api_pipeline/io/qdrant.py",children:"Source"}),`). +It is then wired to a `,e.jsx(i.a,{href:"https://pathway.com/developers/user-guide/connect/connectors/python-output-connectors",children:"Pathway output connector"}),` to read records from the +embeddings stream, store vector embeddings and attached metadata into a collection in Qdrant DB, and finally generate and download a knowledge base snapshot.`]})]})}function d(n={}){const{wrapper:i}={...t(),...n.components};return i?e.jsx(i,{...n,children:e.jsx(a,{...n})}):a(n)}export{d as default,s as frontmatter}; diff --git a/assets/getting-started-ClsWKDXt.js b/assets/getting-started-BA7zDi12.js similarity index 99% rename from assets/getting-started-ClsWKDXt.js rename to assets/getting-started-BA7zDi12.js index c2d63c7..7558f73 100644 --- a/assets/getting-started-ClsWKDXt.js +++ b/assets/getting-started-BA7zDi12.js @@ -1,4 +1,4 @@ -import{u as a,j as e}from"./index-iPwFPOFl.js";const d={title:"GaiaNet RAG API Pipeline",description:"undefined"};function s(n){const i={a:"a",aside:"aside",code:"code",div:"div",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",strong:"strong",ul:"ul",...a(),...n.components};return e.jsxs(e.Fragment,{children:[e.jsx(i.header,{children:e.jsxs(i.h1,{id:"gaianet-rag-api-pipeline",children:["GaiaNet RAG API Pipeline",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#gaianet-rag-api-pipeline",children:e.jsx(i.div,{"data-autolink-icon":!0})})]})}),` +import{u as a,j as e}from"./index-DrB8Q3SN.js";const d={title:"GaiaNet RAG API Pipeline",description:"undefined"};function s(n){const i={a:"a",aside:"aside",code:"code",div:"div",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",strong:"strong",ul:"ul",...a(),...n.components};return e.jsxs(e.Fragment,{children:[e.jsx(i.header,{children:e.jsxs(i.h1,{id:"gaianet-rag-api-pipeline",children:["GaiaNet RAG API Pipeline",e.jsx(i.a,{"aria-hidden":"true",tabIndex:"-1",href:"#gaianet-rag-api-pipeline",children:e.jsx(i.div,{"data-autolink-icon":!0})})]})}),` `,e.jsxs(i.p,{children:[e.jsx(i.code,{children:"rag-api-pipeline"}),` is a Python-based data pipeline tool that allows you to easily generate a vector knowledge base from any REST API data source. The resulting database snapshot can be then plugged-in into a Gaia node's LLM model with a prompt and provide contextual responses to user queries using RAG (Retrieval Augmented Generation).`]}),` diff --git a/assets/index-CPrg7xTE.js b/assets/index-BKcVgInd.js similarity index 98% rename from assets/index-CPrg7xTE.js rename to assets/index-BKcVgInd.js index 39956a7..2dbdb9c 100644 --- a/assets/index-CPrg7xTE.js +++ b/assets/index-BKcVgInd.js @@ -1,2 +1,2 @@ -import{j as e,L as f,c as t,a as _,b,R as P,d as k,T as c,C as l,u as v}from"./index-iPwFPOFl.js";var H="vocs_Button_button",N="vocs_Button_button_accent";function y({children:a,className:n,href:r,variant:j}){return e.jsx(f,{className:t(n,H,j==="accent"&&N),href:r,variant:"styleless",children:a})}var C="vocs_HomePage_button",D="vocs_HomePage_buttons",F="vocs_HomePage_description",L="vocs_HomePage_logo",d="vocs_HomePage_packageManager",M="vocs_HomePage",R="vocs_HomePage_tabs",u="vocs_HomePage_tabsContent",B="vocs_HomePage_tabsList",I="vocs_HomePage_tagline",w="vocs_HomePage_title";function m({children:a,className:n}){return e.jsx("div",{className:t(n,M),children:a})}function g({className:a}){const{logoUrl:n,title:r}=_();return n?e.jsx("div",{className:t(a,L),children:e.jsx(b,{})}):e.jsx("h1",{className:t(a,w),children:r})}function h({children:a,className:n}){return e.jsx("div",{className:t(n,I),children:a})}function o({children:a,className:n}){return e.jsx("div",{className:t(n,F),children:a})}function p({children:a,className:n}){return e.jsx("div",{className:t(n,D),children:a})}function i(a){return e.jsx(y,{...a,className:t(C,a.className)})}function A({name:a,type:n="install"}){return e.jsxs(P,{className:R,defaultValue:"npm",children:[e.jsxs(k,{className:B,children:[e.jsx(c,{value:"npm",children:"npm"}),e.jsx(c,{value:"pnpm",children:"pnpm"}),e.jsx(c,{value:"yarn",children:"yarn"})]}),e.jsxs(l,{className:u,value:"npm",children:[e.jsx("span",{className:d,children:"npm"})," ",n==="init"?"init":"install"," ",a]}),e.jsxs(l,{className:u,value:"pnpm",children:[e.jsx("span",{className:d,children:"pnpm"})," ",n==="init"?"create":"add"," ",a]}),e.jsxs(l,{className:u,value:"yarn",children:[e.jsx("span",{className:d,children:"yarn"})," ",n==="init"?"create":"add"," ",a]})]})}const G=Object.freeze(Object.defineProperty({__proto__:null,Button:i,Buttons:p,Description:o,InstallPackage:A,Logo:g,Root:m,Tagline:h},Symbol.toStringTag,{value:"Module"})),$={layout:"landing"};function x(a){const n={code:"code",div:"div",pre:"pre",span:"span",...v(),...a.components};return G||s("HomePage",!1),i||s("HomePage.Button",!0),p||s("HomePage.Buttons",!0),o||s("HomePage.Description",!0),g||s("HomePage.Logo",!0),m||s("HomePage.Root",!0),h||s("HomePage.Tagline",!0),e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:[e.jsx(g,{}),e.jsx(h,{children:"Gaianet x RAG API Pipeline"}),e.jsx(o,{children:"Supercharge your Gaianet node by generating a vector knowledge base from any API."}),e.jsx(o,{children:"In this website you can find documentation on how to setup and use the RAG API Pipeline for your API data source."}),e.jsxs(p,{children:[e.jsx(i,{href:"/getting-started",variant:"accent",children:"Go to Documentation"}),e.jsx(i,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline",children:"GitHub"})]})]}),` +import{j as e,L as f,c as t,a as _,b,R as P,d as k,T as c,C as l,u as v}from"./index-DrB8Q3SN.js";var H="vocs_Button_button",N="vocs_Button_button_accent";function y({children:a,className:n,href:r,variant:j}){return e.jsx(f,{className:t(n,H,j==="accent"&&N),href:r,variant:"styleless",children:a})}var C="vocs_HomePage_button",D="vocs_HomePage_buttons",F="vocs_HomePage_description",L="vocs_HomePage_logo",d="vocs_HomePage_packageManager",M="vocs_HomePage",R="vocs_HomePage_tabs",u="vocs_HomePage_tabsContent",B="vocs_HomePage_tabsList",I="vocs_HomePage_tagline",w="vocs_HomePage_title";function m({children:a,className:n}){return e.jsx("div",{className:t(n,M),children:a})}function g({className:a}){const{logoUrl:n,title:r}=_();return n?e.jsx("div",{className:t(a,L),children:e.jsx(b,{})}):e.jsx("h1",{className:t(a,w),children:r})}function h({children:a,className:n}){return e.jsx("div",{className:t(n,I),children:a})}function o({children:a,className:n}){return e.jsx("div",{className:t(n,F),children:a})}function p({children:a,className:n}){return e.jsx("div",{className:t(n,D),children:a})}function i(a){return e.jsx(y,{...a,className:t(C,a.className)})}function A({name:a,type:n="install"}){return e.jsxs(P,{className:R,defaultValue:"npm",children:[e.jsxs(k,{className:B,children:[e.jsx(c,{value:"npm",children:"npm"}),e.jsx(c,{value:"pnpm",children:"pnpm"}),e.jsx(c,{value:"yarn",children:"yarn"})]}),e.jsxs(l,{className:u,value:"npm",children:[e.jsx("span",{className:d,children:"npm"})," ",n==="init"?"init":"install"," ",a]}),e.jsxs(l,{className:u,value:"pnpm",children:[e.jsx("span",{className:d,children:"pnpm"})," ",n==="init"?"create":"add"," ",a]}),e.jsxs(l,{className:u,value:"yarn",children:[e.jsx("span",{className:d,children:"yarn"})," ",n==="init"?"create":"add"," ",a]})]})}const G=Object.freeze(Object.defineProperty({__proto__:null,Button:i,Buttons:p,Description:o,InstallPackage:A,Logo:g,Root:m,Tagline:h},Symbol.toStringTag,{value:"Module"})),$={layout:"landing"};function x(a){const n={code:"code",div:"div",pre:"pre",span:"span",...v(),...a.components};return G||s("HomePage",!1),i||s("HomePage.Button",!0),p||s("HomePage.Buttons",!0),o||s("HomePage.Description",!0),g||s("HomePage.Logo",!0),m||s("HomePage.Root",!0),h||s("HomePage.Tagline",!0),e.jsxs(e.Fragment,{children:[e.jsxs(m,{children:[e.jsx(g,{}),e.jsx(h,{children:"Gaianet x RAG API Pipeline"}),e.jsx(o,{children:"Supercharge your Gaianet node by generating a vector knowledge base from any API."}),e.jsx(o,{children:"In this website you can find documentation on how to setup and use the RAG API Pipeline for your API data source."}),e.jsxs(p,{children:[e.jsx(i,{href:"/getting-started",variant:"accent",children:"Go to Documentation"}),e.jsx(i,{href:"https://github.com/raid-guild/gaianet-rag-api-pipeline",children:"GitHub"})]})]}),` `,e.jsx(n.div,{className:"code-group",children:e.jsx(n.div,{"data-title":"npm",children:e.jsx(n.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"npm","data-lang":"bash",children:e.jsx(n.code,{children:e.jsxs(n.span,{className:"line",children:[e.jsx(n.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"npm"}),e.jsx(n.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" i"}),e.jsx(n.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" viem"})]})})})})})]})}function E(a={}){const{wrapper:n}={...v(),...a.components};return n?e.jsx(n,{...a,children:e.jsx(x,{...a})}):x(a)}function s(a,n){throw new Error("Expected "+(n?"component":"object")+" `"+a+"` to be defined: you likely forgot to import, pass, or provide it.")}export{E as default,$ as frontmatter}; diff --git a/assets/index-iPwFPOFl.js b/assets/index-DrB8Q3SN.js similarity index 90% rename from assets/index-iPwFPOFl.js rename to assets/index-DrB8Q3SN.js index 1932afa..29b2e69 100644 --- a/assets/index-iPwFPOFl.js +++ b/assets/index-DrB8Q3SN.js @@ -89,7 +89,7 @@ function MDXContent(props = {}) { return { default: MDXContent }; -`},description:"Supercharge your Gaianet node by generating a vector knowledge base from any API.",editLink:{pattern:"https://github.com/raid-guild/gaianet-rag-api-pipeline/edit/main/docs/pages/:path",text:"Edit on GitHub"},iconUrl:"/gaianet-rag-api-pipeline/icon.svg",sidebar:[{text:"Getting Started",link:"/getting-started"},{text:"API Examples",collapsed:!1,link:"/apis",items:[{text:"Boardroom API",link:"/apis/boardroom-api"},{text:"Agora API",link:"/apis/agora-api"}]},{text:"Defining the API Pipeline Manifest",collapsed:!1,link:"/manifest-definition",items:[{text:"Overview",link:"/manifest-definition/overview"},{text:"Example Manifests",link:"/manifest-definition/sample-manifests"}]},{text:"Architecture",collapsed:!1,link:"/architecture",items:[{text:"Overview",link:"/architecture/overview"},{text:"Tech stack",link:"/architecture/tech-stack"},{text:"In-depth code review",link:"/architecture/code-review"}]},{text:"Gaianet Node Deployment",link:"/node-deployment"},{text:"CLI Reference",link:"/cli-reference"}],topNav:[{text:"Home",link:"/",id:33,items:[]},{text:"APIs",items:[{text:"Boardroom Governance API",link:"/apis/boardroom-api",id:35,items:[]}],id:34}],socials:[{icon:"github",link:"https://github.com/raid-guild/gaianet-rag-api-pipeline",label:"GitHub",type:"github"}],font:{},markdown:{code:{themes:{dark:"github-dark-dimmed",light:"github-light"}}},theme:{},vite:{base:"/gaianet-rag-api-pipeline"}}),w0=m.createContext(x0);function C0(){return typeof window<"u",x0}function h5({children:e,config:t}){const[n,r]=m.useState(()=>t||C0());return m.useEffect(()=>{},[]),m.useEffect(()=>{typeof window<"u"},[n]),p.jsx(w0.Provider,{value:n,children:e})}function Ze(){return m.useContext(w0)}const dd=[{lazy:()=>me(()=>import("./apis-B0DwVWWa.js"),[]),path:"/apis",type:"mdx",filePath:"apis.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./apis-B0DwVWWa.js"),[]),path:"/apis.html",type:"mdx",filePath:"apis.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./architecture-mRJLcNX3.js"),[]),path:"/architecture",type:"mdx",filePath:"architecture.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./architecture-mRJLcNX3.js"),[]),path:"/architecture.html",type:"mdx",filePath:"architecture.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./cli-reference-C2SkMtqk.js"),[]),path:"/cli-reference",type:"mdx",filePath:"cli-reference.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./cli-reference-C2SkMtqk.js"),[]),path:"/cli-reference.html",type:"mdx",filePath:"cli-reference.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./getting-started-ClsWKDXt.js"),[]),path:"/getting-started",type:"mdx",filePath:"getting-started.mdx",lastUpdatedAt:1726714466e3},{lazy:()=>me(()=>import("./getting-started-ClsWKDXt.js"),[]),path:"/getting-started.html",type:"mdx",filePath:"getting-started.mdx",lastUpdatedAt:1726714466e3},{lazy:()=>me(()=>import("./index-CPrg7xTE.js"),[]),path:"/",type:"mdx",filePath:"index.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./manifest-definition-Cj2msGos.js"),[]),path:"/manifest-definition",type:"mdx",filePath:"manifest-definition.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./manifest-definition-Cj2msGos.js"),[]),path:"/manifest-definition.html",type:"mdx",filePath:"manifest-definition.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./node-deployment-CJmI1Ph5.js"),[]),path:"/node-deployment",type:"mdx",filePath:"node-deployment.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./node-deployment-CJmI1Ph5.js"),[]),path:"/node-deployment.html",type:"mdx",filePath:"node-deployment.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./agora-api-BnVpp1TA.js"),[]),path:"/apis/agora-api",type:"mdx",filePath:"apis/agora-api.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./agora-api-BnVpp1TA.js"),[]),path:"/apis/agora-api.html",type:"mdx",filePath:"apis/agora-api.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./boardroom-api-C4uZEyVE.js"),[]),path:"/apis/boardroom-api",type:"mdx",filePath:"apis/boardroom-api.mdx",lastUpdatedAt:1726714466e3},{lazy:()=>me(()=>import("./boardroom-api-C4uZEyVE.js"),[]),path:"/apis/boardroom-api.html",type:"mdx",filePath:"apis/boardroom-api.mdx",lastUpdatedAt:1726714466e3},{lazy:()=>me(()=>import("./code-review-CDg5Plok.js"),[]),path:"/architecture/code-review",type:"mdx",filePath:"architecture/code-review.mdx",lastUpdatedAt:1726713322e3},{lazy:()=>me(()=>import("./code-review-CDg5Plok.js"),[]),path:"/architecture/code-review.html",type:"mdx",filePath:"architecture/code-review.mdx",lastUpdatedAt:1726713322e3},{lazy:()=>me(()=>import("./overview-CNVuIIsa.js"),[]),path:"/architecture/overview",type:"mdx",filePath:"architecture/overview.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./overview-CNVuIIsa.js"),[]),path:"/architecture/overview.html",type:"mdx",filePath:"architecture/overview.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./tech-stack-B7aQUXpi.js"),[]),path:"/architecture/tech-stack",type:"mdx",filePath:"architecture/tech-stack.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./tech-stack-B7aQUXpi.js"),[]),path:"/architecture/tech-stack.html",type:"mdx",filePath:"architecture/tech-stack.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./overview-C7qjM7zo.js"),[]),path:"/manifest-definition/overview",type:"mdx",filePath:"manifest-definition/overview.mdx",lastUpdatedAt:1726713322e3},{lazy:()=>me(()=>import("./overview-C7qjM7zo.js"),[]),path:"/manifest-definition/overview.html",type:"mdx",filePath:"manifest-definition/overview.mdx",lastUpdatedAt:1726713322e3},{lazy:()=>me(()=>import("./sample-manifests-D5wrIZtc.js"),[]),path:"/manifest-definition/sample-manifests",type:"mdx",filePath:"manifest-definition/sample-manifests.mdx",lastUpdatedAt:1726713322e3},{lazy:()=>me(()=>import("./sample-manifests-D5wrIZtc.js"),[]),path:"/manifest-definition/sample-manifests.html",type:"mdx",filePath:"manifest-definition/sample-manifests.mdx",lastUpdatedAt:1726713322e3}];var eu={horizontalPadding:"var(--vocs-content_horizontalPadding)",verticalPadding:"var(--vocs-content_verticalPadding)",width:"var(--vocs-content_width)"},Ip={default:"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif",mono:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'},Op={default:"var(--vocs-fontFamily_default)",mono:"var(--vocs-fontFamily_mono)"},Dp={white:"var(--vocs-color_white)",black:"var(--vocs-color_black)",background:"var(--vocs-color_background)",background2:"var(--vocs-color_background2)",background3:"var(--vocs-color_background3)",background4:"var(--vocs-color_background4)",background5:"var(--vocs-color_background5)",backgroundAccent:"var(--vocs-color_backgroundAccent)",backgroundAccentHover:"var(--vocs-color_backgroundAccentHover)",backgroundAccentText:"var(--vocs-color_backgroundAccentText)",backgroundBlueTint:"var(--vocs-color_backgroundBlueTint)",backgroundDark:"var(--vocs-color_backgroundDark)",backgroundGreenTint:"var(--vocs-color_backgroundGreenTint)",backgroundGreenTint2:"var(--vocs-color_backgroundGreenTint2)",backgroundIrisTint:"var(--vocs-color_backgroundIrisTint)",backgroundRedTint:"var(--vocs-color_backgroundRedTint)",backgroundRedTint2:"var(--vocs-color_backgroundRedTint2)",backgroundYellowTint:"var(--vocs-color_backgroundYellowTint)",border:"var(--vocs-color_border)",border2:"var(--vocs-color_border2)",borderAccent:"var(--vocs-color_borderAccent)",borderBlue:"var(--vocs-color_borderBlue)",borderGreen:"var(--vocs-color_borderGreen)",borderIris:"var(--vocs-color_borderIris)",borderRed:"var(--vocs-color_borderRed)",borderYellow:"var(--vocs-color_borderYellow)",heading:"var(--vocs-color_heading)",inverted:"var(--vocs-color_inverted)",shadow:"var(--vocs-color_shadow)",shadow2:"var(--vocs-color_shadow2)",text:"var(--vocs-color_text)",text2:"var(--vocs-color_text2)",text3:"var(--vocs-color_text3)",text4:"var(--vocs-color_text4)",textAccent:"var(--vocs-color_textAccent)",textAccentHover:"var(--vocs-color_textAccentHover)",textBlue:"var(--vocs-color_textBlue)",textBlueHover:"var(--vocs-color_textBlueHover)",textGreen:"var(--vocs-color_textGreen)",textGreenHover:"var(--vocs-color_textGreenHover)",textIris:"var(--vocs-color_textIris)",textIrisHover:"var(--vocs-color_textIrisHover)",textRed:"var(--vocs-color_textRed)",textRedHover:"var(--vocs-color_textRedHover)",textYellow:"var(--vocs-color_textYellow)",textYellowHover:"var(--vocs-color_textYellowHover)",title:"var(--vocs-color_title)"},tu={0:"var(--vocs-space_0)",1:"var(--vocs-space_1)",2:"var(--vocs-space_2)",3:"var(--vocs-space_3)",4:"var(--vocs-space_4)",6:"var(--vocs-space_6)",8:"var(--vocs-space_8)",12:"var(--vocs-space_12)",14:"var(--vocs-space_14)",16:"var(--vocs-space_16)",18:"var(--vocs-space_18)",20:"var(--vocs-space_20)",22:"var(--vocs-space_22)",24:"var(--vocs-space_24)",28:"var(--vocs-space_28)",32:"var(--vocs-space_32)",36:"var(--vocs-space_36)",40:"var(--vocs-space_40)",44:"var(--vocs-space_44)",48:"var(--vocs-space_48)",56:"var(--vocs-space_56)",64:"var(--vocs-space_64)",72:"var(--vocs-space_72)",80:"var(--vocs-space_80)"};function E0(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t"".concat(l,":").concat(this[l])).join(";")},writable:!1}),n}var v5="var(--vocs_ExternalLink_iconUrl)",m5="vocs_ExternalLink";const g5=m.forwardRef(({className:e,children:t,hideExternalIcon:n,href:r,...o},i)=>{const{basePath:a}=Ze(),l=a;return p.jsx("a",{ref:i,className:F(e,n||typeof t!="string"?void 0:m5),href:r,target:"_blank",rel:"noopener noreferrer",style:Jt({[v5]:`url(${l}/.vocs/icons/arrow-diagonal.svg)`}),...o,children:t})});var Fp="vocs_Link_accent_underlined",zp="vocs_Link",$p="vocs_Link_styleless",Tc=new Map,ba=new WeakMap,Bp=0,y5=void 0;function x5(e){return e?(ba.has(e)||(Bp+=1,ba.set(e,Bp.toString())),ba.get(e)):"0"}function w5(e){return Object.keys(e).sort().filter(t=>e[t]!==void 0).map(t=>`${t}_${t==="root"?x5(e.root):e[t]}`).toString()}function C5(e){const t=w5(e);let n=Tc.get(t);if(!n){const r=new Map;let o;const i=new IntersectionObserver(a=>{a.forEach(l=>{var s;const c=l.isIntersecting&&o.some(f=>l.intersectionRatio>=f);e.trackVisibility&&typeof l.isVisible>"u"&&(l.isVisible=c),(s=r.get(l.target))==null||s.forEach(f=>{f(c,l)})})},e);o=i.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:i,elements:r},Tc.set(t,n)}return n}function E5(e,t,n={},r=y5){if(typeof window.IntersectionObserver>"u"&&r!==void 0){const s=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:typeof n.threshold=="number"?n.threshold:0,time:0,boundingClientRect:s,intersectionRect:s,rootBounds:s}),()=>{}}const{id:o,observer:i,elements:a}=C5(n),l=a.get(e)||[];return a.has(e)||a.set(e,l),l.push(t),i.observe(e),function(){l.splice(l.indexOf(t),1),l.length===0&&(a.delete(e),i.unobserve(e)),a.size===0&&(i.disconnect(),Tc.delete(o))}}function S0({threshold:e,delay:t,trackVisibility:n,rootMargin:r,root:o,triggerOnce:i,skip:a,initialInView:l,fallbackInView:s,onChange:c}={}){var f;const[u,d]=m.useState(null),h=m.useRef(),[x,v]=m.useState({inView:!!l,entry:void 0});h.current=c,m.useEffect(()=>{if(a||!u)return;let w;return w=E5(u,(E,_)=>{v({inView:E,entry:_}),h.current&&h.current(E,_),_.isIntersecting&&i&&w&&(w(),w=void 0)},{root:o,rootMargin:r,threshold:e,trackVisibility:n,delay:t},s),()=>{w&&w()}},[Array.isArray(e)?e.toString():e,u,o,r,i,a,n,s,t]);const C=(f=x.entry)==null?void 0:f.target,g=m.useRef();!u&&C&&!i&&!a&&g.current!==C&&(g.current=C,v({inView:!!l,entry:void 0}));const y=[d,x.inView,x.entry];return y.ref=y[0],y.inView=y[1],y.entry=y[2],y}function S5(...e){return t=>{_5(t,...e)}}function _5(e,...t){t.forEach(n=>{typeof n=="function"?n(e):n!=null&&(n.current=e)})}const ir=m.forwardRef((e,t)=>{const n=()=>{var i;return(i=dd.find(a=>a.path===e.to))==null?void 0:i.lazy()},{ref:r,inView:o}=S0();return m.useEffect(()=>{o&&n()},[o,n]),p.jsx(ss,{ref:S5(t,r),...e})}),sn=m.forwardRef((e,t)=>{const{href:n,variant:r="accent underlined"}=e,{pathname:o}=$e();if(n!=null&&n.match(/^(www|https?)/))return p.jsx(g5,{...e,ref:t,className:F(e.className,zp,r==="accent underlined"&&Fp,r==="styleless"&&$p),hideExternalIcon:e.hideExternalIcon});const[i,a]=(n||"").split("#"),l=`${i||o}${a?`#${a}`:""}`;return p.jsx(ir,{...e,ref:t,className:F(e.className,zp,r==="accent underlined"&&Fp,r==="styleless"&&$p),to:l})});var T5="vocs_NotFound_divider",R5="vocs_NotFound",N5="vocs_H1",_0="vocs_Heading",T0="vocs_Heading_slugTarget";function Uo({level:e,...t}){const n=`h${e}`;return p.jsxs(n,{...t,id:void 0,className:F(t.className,_0),children:[p.jsx("div",{id:t.id,className:T0}),t.children]})}function R0(e){return p.jsx(Uo,{...e,className:F(e.className,N5),level:1})}var k5="vocs_Paragraph";function N0(e){return p.jsx("p",{...e,className:F(e.className,k5)})}function P5(){return p.jsxs("div",{className:R5,children:[p.jsx(R0,{children:"Page Not Found"}),p.jsx("div",{style:{height:tu[24]}}),p.jsx("hr",{className:T5}),p.jsx("div",{style:{height:tu[24]}}),p.jsx(N0,{children:"The page you were looking for could not be found."}),p.jsx("div",{style:{height:tu[8]}}),p.jsx(sn,{href:"/",children:"Go to Home Page"})]})}var A5="var(--vocs_Banner_bannerBackgroundColor)",b5="var(--vocs_Banner_bannerHeight)",j5="var(--vocs_Banner_bannerTextColor)",L5="vocs_Banner_closeButton",M5="vocs_Banner_content",I5="vocs_Banner_inner",O5="vocs_Banner";const D5=Object.getPrototypeOf(F5).constructor;async function F5(e,t){return new D5(String(e))(t)}function z5(e,t){return new Function(String(e))(t)}function Br(e,t){if(e==null)return{};var n={},r=Object.keys(e),o,i;for(i=0;i=0)&&(n[o]=e[o]);return n}var $5=["color"],B5=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Br(e,$5);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),m.createElement("path",{d:"M6.85355 3.14645C7.04882 3.34171 7.04882 3.65829 6.85355 3.85355L3.70711 7H12.5C12.7761 7 13 7.22386 13 7.5C13 7.77614 12.7761 8 12.5 8H3.70711L6.85355 11.1464C7.04882 11.3417 7.04882 11.6583 6.85355 11.8536C6.65829 12.0488 6.34171 12.0488 6.14645 11.8536L2.14645 7.85355C1.95118 7.65829 1.95118 7.34171 2.14645 7.14645L6.14645 3.14645C6.34171 2.95118 6.65829 2.95118 6.85355 3.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),U5=["color"],H5=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Br(e,U5);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),m.createElement("path",{d:"M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),V5=["color"],W5=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Br(e,V5);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),m.createElement("path",{d:"M12.8536 2.85355C13.0488 2.65829 13.0488 2.34171 12.8536 2.14645C12.6583 1.95118 12.3417 1.95118 12.1464 2.14645L7.5 6.79289L2.85355 2.14645C2.65829 1.95118 2.34171 1.95118 2.14645 2.14645C1.95118 2.34171 1.95118 2.65829 2.14645 2.85355L6.79289 7.5L2.14645 12.1464C1.95118 12.3417 1.95118 12.6583 2.14645 12.8536C2.34171 13.0488 2.65829 13.0488 2.85355 12.8536L7.5 8.20711L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L8.20711 7.5L12.8536 2.85355Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),K5=["color"],G5=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Br(e,K5);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),m.createElement("path",{d:"M3.5 2C3.22386 2 3 2.22386 3 2.5V12.5C3 12.7761 3.22386 13 3.5 13H11.5C11.7761 13 12 12.7761 12 12.5V6H8.5C8.22386 6 8 5.77614 8 5.5V2H3.5ZM9 2.70711L11.2929 5H9V2.70711ZM2 2.5C2 1.67157 2.67157 1 3.5 1H8.5C8.63261 1 8.75979 1.05268 8.85355 1.14645L12.8536 5.14645C12.9473 5.24021 13 5.36739 13 5.5V12.5C13 13.3284 12.3284 14 11.5 14H3.5C2.67157 14 2 13.3284 2 12.5V2.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),Y5=["color"],Q5=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Br(e,Y5);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),m.createElement("path",{d:"M1.5 5.25C1.91421 5.25 2.25 4.91421 2.25 4.5C2.25 4.08579 1.91421 3.75 1.5 3.75C1.08579 3.75 0.75 4.08579 0.75 4.5C0.75 4.91421 1.08579 5.25 1.5 5.25ZM4 4.5C4 4.22386 4.22386 4 4.5 4H13.5C13.7761 4 14 4.22386 14 4.5C14 4.77614 13.7761 5 13.5 5H4.5C4.22386 5 4 4.77614 4 4.5ZM4.5 7C4.22386 7 4 7.22386 4 7.5C4 7.77614 4.22386 8 4.5 8H13.5C13.7761 8 14 7.77614 14 7.5C14 7.22386 13.7761 7 13.5 7H4.5ZM4.5 10C4.22386 10 4 10.2239 4 10.5C4 10.7761 4.22386 11 4.5 11H13.5C13.7761 11 14 10.7761 14 10.5C14 10.2239 13.7761 10 13.5 10H4.5ZM2.25 7.5C2.25 7.91421 1.91421 8.25 1.5 8.25C1.08579 8.25 0.75 7.91421 0.75 7.5C0.75 7.08579 1.08579 6.75 1.5 6.75C1.91421 6.75 2.25 7.08579 2.25 7.5ZM1.5 11.25C1.91421 11.25 2.25 10.9142 2.25 10.5C2.25 10.0858 1.91421 9.75 1.5 9.75C1.08579 9.75 0.75 10.0858 0.75 10.5C0.75 10.9142 1.08579 11.25 1.5 11.25Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),X5=["color"],hd=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Br(e,X5);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),m.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),Z5=["color"],J5=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Br(e,Z5);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),m.createElement("path",{d:"M12.1464 1.14645C12.3417 0.951184 12.6583 0.951184 12.8535 1.14645L14.8535 3.14645C15.0488 3.34171 15.0488 3.65829 14.8535 3.85355L10.9109 7.79618C10.8349 7.87218 10.7471 7.93543 10.651 7.9835L6.72359 9.94721C6.53109 10.0435 6.29861 10.0057 6.14643 9.85355C5.99425 9.70137 5.95652 9.46889 6.05277 9.27639L8.01648 5.34897C8.06455 5.25283 8.1278 5.16507 8.2038 5.08907L12.1464 1.14645ZM12.5 2.20711L8.91091 5.79618L7.87266 7.87267L8.12731 8.12732L10.2038 7.08907L13.7929 3.5L12.5 2.20711ZM9.99998 2L8.99998 3H4.9C4.47171 3 4.18056 3.00039 3.95552 3.01877C3.73631 3.03668 3.62421 3.06915 3.54601 3.10899C3.35785 3.20487 3.20487 3.35785 3.10899 3.54601C3.06915 3.62421 3.03669 3.73631 3.01878 3.95552C3.00039 4.18056 3 4.47171 3 4.9V11.1C3 11.5283 3.00039 11.8194 3.01878 12.0445C3.03669 12.2637 3.06915 12.3758 3.10899 12.454C3.20487 12.6422 3.35785 12.7951 3.54601 12.891C3.62421 12.9309 3.73631 12.9633 3.95552 12.9812C4.18056 12.9996 4.47171 13 4.9 13H11.1C11.5283 13 11.8194 12.9996 12.0445 12.9812C12.2637 12.9633 12.3758 12.9309 12.454 12.891C12.6422 12.7951 12.7951 12.6422 12.891 12.454C12.9309 12.3758 12.9633 12.2637 12.9812 12.0445C12.9996 11.8194 13 11.5283 13 11.1V6.99998L14 5.99998V11.1V11.1207C14 11.5231 14 11.8553 13.9779 12.1259C13.9549 12.407 13.9057 12.6653 13.782 12.908C13.5903 13.2843 13.2843 13.5903 12.908 13.782C12.6653 13.9057 12.407 13.9549 12.1259 13.9779C11.8553 14 11.5231 14 11.1207 14H11.1H4.9H4.87934C4.47686 14 4.14468 14 3.87409 13.9779C3.59304 13.9549 3.33469 13.9057 3.09202 13.782C2.7157 13.5903 2.40973 13.2843 2.21799 12.908C2.09434 12.6653 2.04506 12.407 2.0221 12.1259C1.99999 11.8553 1.99999 11.5231 2 11.1207V11.1206V11.1V4.9V4.87935V4.87932V4.87931C1.99999 4.47685 1.99999 4.14468 2.0221 3.87409C2.04506 3.59304 2.09434 3.33469 2.21799 3.09202C2.40973 2.71569 2.7157 2.40973 3.09202 2.21799C3.33469 2.09434 3.59304 2.04506 3.87409 2.0221C4.14468 1.99999 4.47685 1.99999 4.87932 2H4.87935H4.9H9.99998Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))});function Ml(e,t){if(typeof e!="object"||e===null)return e;if(Array.isArray(e))return e.map((r,o)=>Ml(r,o));const n=e.props.children?{...e.props,children:Ml(e.props.children)}:e.props;return de.createElement(e.type,{...n,key:t})}function q5({hide:e}){const{banner:t}=Ze(),n=m.useMemo(()=>{const r=(t==null?void 0:t.content)??"";if(!r)return null;if(typeof r!="string")return()=>Ml(r);const{default:o}=z5(r,{...ww,Fragment:m.Fragment});return o},[t]);return n?p.jsx("div",{className:F(O5),style:Jt({[A5]:t==null?void 0:t.backgroundColor,[j5]:t==null?void 0:t.textColor}),children:p.jsxs("div",{className:F(I5),children:[p.jsx("div",{className:F(M5),children:p.jsx(n,{})}),(t==null?void 0:t.dismissable)!=="false"&&p.jsx("button",{className:F(L5),onClick:e,type:"button",children:p.jsx(W5,{width:14,height:14})})]})}):null}var eE="vocs_Content";function k0({children:e,className:t}){return p.jsx("article",{className:F(t,eE),children:e})}function P0({items:e,pathname:t}){const n=t.replace(/\.html$/,""),r=[];for(const o of e)(o.link&&n.startsWith(o.match||o.link)||o.items&&P0({items:o.items,pathname:t}).length>0)&&r.push(o.id);return r}function qi({items:e,pathname:t}){return m.useMemo(()=>P0({items:e,pathname:t}),[e,t])}function Ur(){const e=m.useContext(A0);if(!e)throw new Error("`usePageData` must be used within `PageDataContext.Provider`.");return e}const A0=m.createContext(void 0);function us(){const{pathname:e}=$e(),t=Ze(),{sidebar:n}=t;if(!n)return{items:[]};if(Array.isArray(n))return{items:n};const r=m.useMemo(()=>{const o=Object.keys(n).filter(i=>e.startsWith(i));return o[o.length-1]},[n,e]);return r?Array.isArray(n[r])?{key:r,items:n[r]}:{...n[r],key:r}:{items:[]}}function Hr(){const e=us(),{frontmatter:t}=Ur(),{layout:n,showLogo:r,showOutline:o,showSidebar:i,showTopNav:a}=t||{},l=n??"docs";return{layout:l,get showLogo(){return typeof r<"u"?r:!0},get showOutline(){return typeof o<"u"?o:l==="docs"},get showSidebar(){return e.items.length===0?!1:typeof i<"u"?i:!(l==="minimal"||l==="landing")},get showTopNav(){return typeof a<"u"?a:!0}}}function tE(){const[e,t]=m.useState(()=>{if(!(typeof window>"u")){if(localStorage.getItem("vocs.theme")){const n=localStorage.getItem("vocs.theme");if(n)return n}return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}});return m.useEffect(()=>{e&&localStorage.setItem("vocs.theme",e),e==="dark"?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")},[e]),{theme:e,toggle(){t(n=>n==="light"?"dark":"light")}}}var nE="vocs_utils_visibleDark",rE="vocs_utils_visibleLight",b0="vocs_utils_visuallyHidden";function oe(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function oE(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function pd(...e){return t=>e.forEach(n=>oE(n,t))}function ze(...e){return m.useCallback(pd(...e),e)}function iE(e,t){const n=m.createContext(t);function r(i){const{children:a,...l}=i,s=m.useMemo(()=>l,Object.values(l));return p.jsx(n.Provider,{value:s,children:a})}function o(i){const a=m.useContext(n);if(a)return a;if(t!==void 0)return t;throw new Error(`\`${i}\` must be used within \`${e}\``)}return r.displayName=e+"Provider",[r,o]}function bn(e,t=[]){let n=[];function r(i,a){const l=m.createContext(a),s=n.length;n=[...n,a];function c(u){const{scope:d,children:h,...x}=u,v=(d==null?void 0:d[e][s])||l,C=m.useMemo(()=>x,Object.values(x));return p.jsx(v.Provider,{value:C,children:h})}function f(u,d){const h=(d==null?void 0:d[e][s])||l,x=m.useContext(h);if(x)return x;if(a!==void 0)return a;throw new Error(`\`${u}\` must be used within \`${i}\``)}return c.displayName=i+"Provider",[c,f]}const o=()=>{const i=n.map(a=>m.createContext(a));return function(l){const s=(l==null?void 0:l[e])||i;return m.useMemo(()=>({[`__scope${e}`]:{...l,[e]:s}}),[l,s])}};return o.scopeName=e,[r,aE(o,...t)]}function aE(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){const a=r.reduce((l,{useScope:s,scopeName:c})=>{const u=s(i)[`__scope${c}`];return{...l,...u}},{});return m.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return n.scopeName=t.scopeName,n}var qt=globalThis!=null&&globalThis.document?m.useLayoutEffect:()=>{},lE=ff.useId||(()=>{}),sE=0;function un(e){const[t,n]=m.useState(lE());return qt(()=>{n(r=>r??String(sE++))},[e]),t?`radix-${t}`:""}function at(e){const t=m.useRef(e);return m.useEffect(()=>{t.current=e}),m.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function jn({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,o]=uE({defaultProp:t,onChange:n}),i=e!==void 0,a=i?e:r,l=at(n),s=m.useCallback(c=>{if(i){const u=typeof c=="function"?c(e):c;u!==e&&l(u)}else o(c)},[i,e,o,l]);return[a,s]}function uE({defaultProp:e,onChange:t}){const n=m.useState(e),[r]=n,o=m.useRef(r),i=at(t);return m.useEffect(()=>{o.current!==r&&(i(r),o.current=r)},[r,o,i]),n}var Lo=m.forwardRef((e,t)=>{const{children:n,...r}=e,o=m.Children.toArray(n),i=o.find(fE);if(i){const a=i.props.children,l=o.map(s=>s===i?m.Children.count(a)>1?m.Children.only(null):m.isValidElement(a)?a.props.children:null:s);return p.jsx(Rc,{...r,ref:t,children:m.isValidElement(a)?m.cloneElement(a,void 0,l):null})}return p.jsx(Rc,{...r,ref:t,children:n})});Lo.displayName="Slot";var Rc=m.forwardRef((e,t)=>{const{children:n,...r}=e;if(m.isValidElement(n)){const o=hE(n);return m.cloneElement(n,{...dE(r,n.props),ref:t?pd(t,o):o})}return m.Children.count(n)>1?m.Children.only(null):null});Rc.displayName="SlotClone";var cE=({children:e})=>p.jsx(p.Fragment,{children:e});function fE(e){return m.isValidElement(e)&&e.type===cE}function dE(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...l)=>{i(...l),o(...l)}:o&&(n[r]=o):r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}function hE(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var pE=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],ie=pE.reduce((e,t)=>{const n=m.forwardRef((r,o)=>{const{asChild:i,...a}=r,l=i?Lo:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(l,{...a,ref:o})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function Nc(e,t){e&&$o.flushSync(()=>e.dispatchEvent(t))}function vE(e,t=globalThis==null?void 0:globalThis.document){const n=at(e);m.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var mE="DismissableLayer",kc="dismissableLayer.update",gE="dismissableLayer.pointerDownOutside",yE="dismissableLayer.focusOutside",Up,j0=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),cs=m.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:a,onDismiss:l,...s}=e,c=m.useContext(j0),[f,u]=m.useState(null),d=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,h]=m.useState({}),x=ze(t,T=>u(T)),v=Array.from(c.layers),[C]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),g=v.indexOf(C),y=f?v.indexOf(f):-1,w=c.layersWithOutsidePointerEventsDisabled.size>0,E=y>=g,_=CE(T=>{const S=T.target,P=[...c.branches].some(A=>A.contains(S));!E||P||(o==null||o(T),a==null||a(T),T.defaultPrevented||l==null||l())},d),R=EE(T=>{const S=T.target;[...c.branches].some(A=>A.contains(S))||(i==null||i(T),a==null||a(T),T.defaultPrevented||l==null||l())},d);return vE(T=>{y===c.layers.size-1&&(r==null||r(T),!T.defaultPrevented&&l&&(T.preventDefault(),l()))},d),m.useEffect(()=>{if(f)return n&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(Up=d.body.style.pointerEvents,d.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(f)),c.layers.add(f),Hp(),()=>{n&&c.layersWithOutsidePointerEventsDisabled.size===1&&(d.body.style.pointerEvents=Up)}},[f,d,n,c]),m.useEffect(()=>()=>{f&&(c.layers.delete(f),c.layersWithOutsidePointerEventsDisabled.delete(f),Hp())},[f,c]),m.useEffect(()=>{const T=()=>h({});return document.addEventListener(kc,T),()=>document.removeEventListener(kc,T)},[]),p.jsx(ie.div,{...s,ref:x,style:{pointerEvents:w?E?"auto":"none":void 0,...e.style},onFocusCapture:oe(e.onFocusCapture,R.onFocusCapture),onBlurCapture:oe(e.onBlurCapture,R.onBlurCapture),onPointerDownCapture:oe(e.onPointerDownCapture,_.onPointerDownCapture)})});cs.displayName=mE;var xE="DismissableLayerBranch",wE=m.forwardRef((e,t)=>{const n=m.useContext(j0),r=m.useRef(null),o=ze(t,r);return m.useEffect(()=>{const i=r.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),p.jsx(ie.div,{...e,ref:o})});wE.displayName=xE;function CE(e,t=globalThis==null?void 0:globalThis.document){const n=at(e),r=m.useRef(!1),o=m.useRef(()=>{});return m.useEffect(()=>{const i=l=>{if(l.target&&!r.current){let s=function(){L0(gE,n,c,{discrete:!0})};const c={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=s,t.addEventListener("click",o.current,{once:!0})):s()}else t.removeEventListener("click",o.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",i),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function EE(e,t=globalThis==null?void 0:globalThis.document){const n=at(e),r=m.useRef(!1);return m.useEffect(()=>{const o=i=>{i.target&&!r.current&&L0(yE,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Hp(){const e=new CustomEvent(kc);document.dispatchEvent(e)}function L0(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?Nc(o,i):o.dispatchEvent(i)}var nu="focusScope.autoFocusOnMount",ru="focusScope.autoFocusOnUnmount",Vp={bubbles:!1,cancelable:!0},SE="FocusScope",vd=m.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...a}=e,[l,s]=m.useState(null),c=at(o),f=at(i),u=m.useRef(null),d=ze(t,v=>s(v)),h=m.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;m.useEffect(()=>{if(r){let v=function(w){if(h.paused||!l)return;const E=w.target;l.contains(E)?u.current=E:$n(u.current,{select:!0})},C=function(w){if(h.paused||!l)return;const E=w.relatedTarget;E!==null&&(l.contains(E)||$n(u.current,{select:!0}))},g=function(w){if(document.activeElement===document.body)for(const _ of w)_.removedNodes.length>0&&$n(l)};document.addEventListener("focusin",v),document.addEventListener("focusout",C);const y=new MutationObserver(g);return l&&y.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",v),document.removeEventListener("focusout",C),y.disconnect()}}},[r,l,h.paused]),m.useEffect(()=>{if(l){Kp.add(h);const v=document.activeElement;if(!l.contains(v)){const g=new CustomEvent(nu,Vp);l.addEventListener(nu,c),l.dispatchEvent(g),g.defaultPrevented||(_E(PE(M0(l)),{select:!0}),document.activeElement===v&&$n(l))}return()=>{l.removeEventListener(nu,c),setTimeout(()=>{const g=new CustomEvent(ru,Vp);l.addEventListener(ru,f),l.dispatchEvent(g),g.defaultPrevented||$n(v??document.body,{select:!0}),l.removeEventListener(ru,f),Kp.remove(h)},0)}}},[l,c,f,h]);const x=m.useCallback(v=>{if(!n&&!r||h.paused)return;const C=v.key==="Tab"&&!v.altKey&&!v.ctrlKey&&!v.metaKey,g=document.activeElement;if(C&&g){const y=v.currentTarget,[w,E]=TE(y);w&&E?!v.shiftKey&&g===E?(v.preventDefault(),n&&$n(w,{select:!0})):v.shiftKey&&g===w&&(v.preventDefault(),n&&$n(E,{select:!0})):g===y&&v.preventDefault()}},[n,r,h.paused]);return p.jsx(ie.div,{tabIndex:-1,...a,ref:d,onKeyDown:x})});vd.displayName=SE;function _E(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if($n(r,{select:t}),document.activeElement!==n)return}function TE(e){const t=M0(e),n=Wp(t,e),r=Wp(t.reverse(),e);return[n,r]}function M0(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Wp(e,t){for(const n of e)if(!RE(n,{upTo:t}))return n}function RE(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function NE(e){return e instanceof HTMLInputElement&&"select"in e}function $n(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&NE(e)&&t&&e.select()}}var Kp=kE();function kE(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=Gp(e,t),e.unshift(t)},remove(t){var n;e=Gp(e,t),(n=e[0])==null||n.resume()}}}function Gp(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function PE(e){return e.filter(t=>t.tagName!=="A")}var AE="Portal",md=m.forwardRef((e,t)=>{var l;const{container:n,...r}=e,[o,i]=m.useState(!1);qt(()=>i(!0),[]);const a=n||o&&((l=globalThis==null?void 0:globalThis.document)==null?void 0:l.body);return a?nd.createPortal(p.jsx(ie.div,{...r,ref:t}),a):null});md.displayName=AE;function bE(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var zt=e=>{const{present:t,children:n}=e,r=jE(t),o=typeof n=="function"?n({present:r.isPresent}):m.Children.only(n),i=ze(r.ref,LE(o));return typeof n=="function"||r.isPresent?m.cloneElement(o,{ref:i}):null};zt.displayName="Presence";function jE(e){const[t,n]=m.useState(),r=m.useRef({}),o=m.useRef(e),i=m.useRef("none"),a=e?"mounted":"unmounted",[l,s]=bE(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return m.useEffect(()=>{const c=ja(r.current);i.current=l==="mounted"?c:"none"},[l]),qt(()=>{const c=r.current,f=o.current;if(f!==e){const d=i.current,h=ja(c);e?s("MOUNT"):h==="none"||(c==null?void 0:c.display)==="none"?s("UNMOUNT"):s(f&&d!==h?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,s]),qt(()=>{if(t){const c=u=>{const h=ja(r.current).includes(u.animationName);u.target===t&&h&&$o.flushSync(()=>s("ANIMATION_END"))},f=u=>{u.target===t&&(i.current=ja(r.current))};return t.addEventListener("animationstart",f),t.addEventListener("animationcancel",c),t.addEventListener("animationend",c),()=>{t.removeEventListener("animationstart",f),t.removeEventListener("animationcancel",c),t.removeEventListener("animationend",c)}}else s("ANIMATION_END")},[t,s]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:m.useCallback(c=>{c&&(r.current=getComputedStyle(c)),n(c)},[])}}function ja(e){return(e==null?void 0:e.animationName)||"none"}function LE(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ou=0;function I0(){m.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??Yp()),document.body.insertAdjacentElement("beforeend",e[1]??Yp()),ou++,()=>{ou===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),ou--}},[])}function Yp(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",e}var on=function(){return on=Object.assign||function(t){for(var n,r=1,o=arguments.length;r"u")return XE;var t=ZE(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},qE=z0(),wo="data-scroll-locked",e4=function(e,t,n,r){var o=e.left,i=e.top,a=e.right,l=e.gap;return n===void 0&&(n="margin"),` +`},description:"Supercharge your Gaianet node by generating a vector knowledge base from any API.",editLink:{pattern:"https://github.com/raid-guild/gaianet-rag-api-pipeline/edit/main/docs/pages/:path",text:"Edit on GitHub"},iconUrl:"/gaianet-rag-api-pipeline/icon.svg",sidebar:[{text:"Getting Started",link:"/getting-started"},{text:"API Examples",collapsed:!1,link:"/apis",items:[{text:"Boardroom API",link:"/apis/boardroom-api"},{text:"Agora API",link:"/apis/agora-api"}]},{text:"Defining the API Pipeline Manifest",collapsed:!1,link:"/manifest-definition",items:[{text:"Overview",link:"/manifest-definition/overview"},{text:"Example Manifests",link:"/manifest-definition/sample-manifests"}]},{text:"Architecture",collapsed:!1,link:"/architecture",items:[{text:"Overview",link:"/architecture/overview"},{text:"Tech stack",link:"/architecture/tech-stack"},{text:"In-depth code review",link:"/architecture/code-review"}]},{text:"Gaianet Node Deployment",link:"/node-deployment"},{text:"CLI Reference",link:"/cli-reference"}],topNav:[{text:"APIs",items:[{text:"Boardroom Governance API",link:"/apis/boardroom-api",id:29,items:[]}],id:28}],socials:[{icon:"github",link:"https://github.com/raid-guild/gaianet-rag-api-pipeline",label:"GitHub",type:"github"}],font:{},markdown:{code:{themes:{dark:"github-dark-dimmed",light:"github-light"}}},theme:{},vite:{base:"/gaianet-rag-api-pipeline"}}),w0=m.createContext(x0);function C0(){return typeof window<"u",x0}function h5({children:e,config:t}){const[n,r]=m.useState(()=>t||C0());return m.useEffect(()=>{},[]),m.useEffect(()=>{typeof window<"u"},[n]),p.jsx(w0.Provider,{value:n,children:e})}function Ze(){return m.useContext(w0)}const dd=[{lazy:()=>me(()=>import("./apis-Cou4k2E7.js"),[]),path:"/apis",type:"mdx",filePath:"apis.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./apis-Cou4k2E7.js"),[]),path:"/apis.html",type:"mdx",filePath:"apis.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./architecture-CqTZhhuc.js"),[]),path:"/architecture",type:"mdx",filePath:"architecture.mdx",lastUpdatedAt:1726721893e3},{lazy:()=>me(()=>import("./architecture-CqTZhhuc.js"),[]),path:"/architecture.html",type:"mdx",filePath:"architecture.mdx",lastUpdatedAt:1726721893e3},{lazy:()=>me(()=>import("./cli-reference-DYtAc2Qd.js"),[]),path:"/cli-reference",type:"mdx",filePath:"cli-reference.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./cli-reference-DYtAc2Qd.js"),[]),path:"/cli-reference.html",type:"mdx",filePath:"cli-reference.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./getting-started-BA7zDi12.js"),[]),path:"/getting-started",type:"mdx",filePath:"getting-started.mdx",lastUpdatedAt:1726714466e3},{lazy:()=>me(()=>import("./getting-started-BA7zDi12.js"),[]),path:"/getting-started.html",type:"mdx",filePath:"getting-started.mdx",lastUpdatedAt:1726714466e3},{lazy:()=>me(()=>import("./index-BKcVgInd.js"),[]),path:"/",type:"mdx",filePath:"index.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./manifest-definition-Cq0BDVML.js"),[]),path:"/manifest-definition",type:"mdx",filePath:"manifest-definition.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./manifest-definition-Cq0BDVML.js"),[]),path:"/manifest-definition.html",type:"mdx",filePath:"manifest-definition.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./node-deployment-DIhHCU_w.js"),[]),path:"/node-deployment",type:"mdx",filePath:"node-deployment.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./node-deployment-DIhHCU_w.js"),[]),path:"/node-deployment.html",type:"mdx",filePath:"node-deployment.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./agora-api-AW-_nqh0.js"),[]),path:"/apis/agora-api",type:"mdx",filePath:"apis/agora-api.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./agora-api-AW-_nqh0.js"),[]),path:"/apis/agora-api.html",type:"mdx",filePath:"apis/agora-api.mdx",lastUpdatedAt:1726705468e3},{lazy:()=>me(()=>import("./boardroom-api-B4I70Tn0.js"),[]),path:"/apis/boardroom-api",type:"mdx",filePath:"apis/boardroom-api.mdx",lastUpdatedAt:1726714466e3},{lazy:()=>me(()=>import("./boardroom-api-B4I70Tn0.js"),[]),path:"/apis/boardroom-api.html",type:"mdx",filePath:"apis/boardroom-api.mdx",lastUpdatedAt:1726714466e3},{lazy:()=>me(()=>import("./code-review-Cgm8ziUG.js"),[]),path:"/architecture/code-review",type:"mdx",filePath:"architecture/code-review.mdx",lastUpdatedAt:1726713322e3},{lazy:()=>me(()=>import("./code-review-Cgm8ziUG.js"),[]),path:"/architecture/code-review.html",type:"mdx",filePath:"architecture/code-review.mdx",lastUpdatedAt:1726713322e3},{lazy:()=>me(()=>import("./overview-CpJMzdLn.js"),[]),path:"/architecture/overview",type:"mdx",filePath:"architecture/overview.mdx",lastUpdatedAt:1726721893e3},{lazy:()=>me(()=>import("./overview-CpJMzdLn.js"),[]),path:"/architecture/overview.html",type:"mdx",filePath:"architecture/overview.mdx",lastUpdatedAt:1726721893e3},{lazy:()=>me(()=>import("./tech-stack-Ci2bj2yU.js"),[]),path:"/architecture/tech-stack",type:"mdx",filePath:"architecture/tech-stack.mdx",lastUpdatedAt:1726721893e3},{lazy:()=>me(()=>import("./tech-stack-Ci2bj2yU.js"),[]),path:"/architecture/tech-stack.html",type:"mdx",filePath:"architecture/tech-stack.mdx",lastUpdatedAt:1726721893e3},{lazy:()=>me(()=>import("./overview-Dhlrq6gv.js"),[]),path:"/manifest-definition/overview",type:"mdx",filePath:"manifest-definition/overview.mdx",lastUpdatedAt:1726713322e3},{lazy:()=>me(()=>import("./overview-Dhlrq6gv.js"),[]),path:"/manifest-definition/overview.html",type:"mdx",filePath:"manifest-definition/overview.mdx",lastUpdatedAt:1726713322e3},{lazy:()=>me(()=>import("./sample-manifests-DJROeNIj.js"),[]),path:"/manifest-definition/sample-manifests",type:"mdx",filePath:"manifest-definition/sample-manifests.mdx",lastUpdatedAt:1726713322e3},{lazy:()=>me(()=>import("./sample-manifests-DJROeNIj.js"),[]),path:"/manifest-definition/sample-manifests.html",type:"mdx",filePath:"manifest-definition/sample-manifests.mdx",lastUpdatedAt:1726713322e3}];var eu={horizontalPadding:"var(--vocs-content_horizontalPadding)",verticalPadding:"var(--vocs-content_verticalPadding)",width:"var(--vocs-content_width)"},Ip={default:"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif",mono:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'},Op={default:"var(--vocs-fontFamily_default)",mono:"var(--vocs-fontFamily_mono)"},Dp={white:"var(--vocs-color_white)",black:"var(--vocs-color_black)",background:"var(--vocs-color_background)",background2:"var(--vocs-color_background2)",background3:"var(--vocs-color_background3)",background4:"var(--vocs-color_background4)",background5:"var(--vocs-color_background5)",backgroundAccent:"var(--vocs-color_backgroundAccent)",backgroundAccentHover:"var(--vocs-color_backgroundAccentHover)",backgroundAccentText:"var(--vocs-color_backgroundAccentText)",backgroundBlueTint:"var(--vocs-color_backgroundBlueTint)",backgroundDark:"var(--vocs-color_backgroundDark)",backgroundGreenTint:"var(--vocs-color_backgroundGreenTint)",backgroundGreenTint2:"var(--vocs-color_backgroundGreenTint2)",backgroundIrisTint:"var(--vocs-color_backgroundIrisTint)",backgroundRedTint:"var(--vocs-color_backgroundRedTint)",backgroundRedTint2:"var(--vocs-color_backgroundRedTint2)",backgroundYellowTint:"var(--vocs-color_backgroundYellowTint)",border:"var(--vocs-color_border)",border2:"var(--vocs-color_border2)",borderAccent:"var(--vocs-color_borderAccent)",borderBlue:"var(--vocs-color_borderBlue)",borderGreen:"var(--vocs-color_borderGreen)",borderIris:"var(--vocs-color_borderIris)",borderRed:"var(--vocs-color_borderRed)",borderYellow:"var(--vocs-color_borderYellow)",heading:"var(--vocs-color_heading)",inverted:"var(--vocs-color_inverted)",shadow:"var(--vocs-color_shadow)",shadow2:"var(--vocs-color_shadow2)",text:"var(--vocs-color_text)",text2:"var(--vocs-color_text2)",text3:"var(--vocs-color_text3)",text4:"var(--vocs-color_text4)",textAccent:"var(--vocs-color_textAccent)",textAccentHover:"var(--vocs-color_textAccentHover)",textBlue:"var(--vocs-color_textBlue)",textBlueHover:"var(--vocs-color_textBlueHover)",textGreen:"var(--vocs-color_textGreen)",textGreenHover:"var(--vocs-color_textGreenHover)",textIris:"var(--vocs-color_textIris)",textIrisHover:"var(--vocs-color_textIrisHover)",textRed:"var(--vocs-color_textRed)",textRedHover:"var(--vocs-color_textRedHover)",textYellow:"var(--vocs-color_textYellow)",textYellowHover:"var(--vocs-color_textYellowHover)",title:"var(--vocs-color_title)"},tu={0:"var(--vocs-space_0)",1:"var(--vocs-space_1)",2:"var(--vocs-space_2)",3:"var(--vocs-space_3)",4:"var(--vocs-space_4)",6:"var(--vocs-space_6)",8:"var(--vocs-space_8)",12:"var(--vocs-space_12)",14:"var(--vocs-space_14)",16:"var(--vocs-space_16)",18:"var(--vocs-space_18)",20:"var(--vocs-space_20)",22:"var(--vocs-space_22)",24:"var(--vocs-space_24)",28:"var(--vocs-space_28)",32:"var(--vocs-space_32)",36:"var(--vocs-space_36)",40:"var(--vocs-space_40)",44:"var(--vocs-space_44)",48:"var(--vocs-space_48)",56:"var(--vocs-space_56)",64:"var(--vocs-space_64)",72:"var(--vocs-space_72)",80:"var(--vocs-space_80)"};function E0(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t"".concat(l,":").concat(this[l])).join(";")},writable:!1}),n}var v5="var(--vocs_ExternalLink_iconUrl)",m5="vocs_ExternalLink";const g5=m.forwardRef(({className:e,children:t,hideExternalIcon:n,href:r,...o},i)=>{const{basePath:a}=Ze(),l=a;return p.jsx("a",{ref:i,className:F(e,n||typeof t!="string"?void 0:m5),href:r,target:"_blank",rel:"noopener noreferrer",style:Jt({[v5]:`url(${l}/.vocs/icons/arrow-diagonal.svg)`}),...o,children:t})});var Fp="vocs_Link_accent_underlined",zp="vocs_Link",$p="vocs_Link_styleless",Tc=new Map,ba=new WeakMap,Bp=0,y5=void 0;function x5(e){return e?(ba.has(e)||(Bp+=1,ba.set(e,Bp.toString())),ba.get(e)):"0"}function w5(e){return Object.keys(e).sort().filter(t=>e[t]!==void 0).map(t=>`${t}_${t==="root"?x5(e.root):e[t]}`).toString()}function C5(e){const t=w5(e);let n=Tc.get(t);if(!n){const r=new Map;let o;const i=new IntersectionObserver(a=>{a.forEach(l=>{var s;const c=l.isIntersecting&&o.some(f=>l.intersectionRatio>=f);e.trackVisibility&&typeof l.isVisible>"u"&&(l.isVisible=c),(s=r.get(l.target))==null||s.forEach(f=>{f(c,l)})})},e);o=i.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:i,elements:r},Tc.set(t,n)}return n}function E5(e,t,n={},r=y5){if(typeof window.IntersectionObserver>"u"&&r!==void 0){const s=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:typeof n.threshold=="number"?n.threshold:0,time:0,boundingClientRect:s,intersectionRect:s,rootBounds:s}),()=>{}}const{id:o,observer:i,elements:a}=C5(n),l=a.get(e)||[];return a.has(e)||a.set(e,l),l.push(t),i.observe(e),function(){l.splice(l.indexOf(t),1),l.length===0&&(a.delete(e),i.unobserve(e)),a.size===0&&(i.disconnect(),Tc.delete(o))}}function S0({threshold:e,delay:t,trackVisibility:n,rootMargin:r,root:o,triggerOnce:i,skip:a,initialInView:l,fallbackInView:s,onChange:c}={}){var f;const[u,d]=m.useState(null),h=m.useRef(),[x,v]=m.useState({inView:!!l,entry:void 0});h.current=c,m.useEffect(()=>{if(a||!u)return;let w;return w=E5(u,(E,_)=>{v({inView:E,entry:_}),h.current&&h.current(E,_),_.isIntersecting&&i&&w&&(w(),w=void 0)},{root:o,rootMargin:r,threshold:e,trackVisibility:n,delay:t},s),()=>{w&&w()}},[Array.isArray(e)?e.toString():e,u,o,r,i,a,n,s,t]);const C=(f=x.entry)==null?void 0:f.target,g=m.useRef();!u&&C&&!i&&!a&&g.current!==C&&(g.current=C,v({inView:!!l,entry:void 0}));const y=[d,x.inView,x.entry];return y.ref=y[0],y.inView=y[1],y.entry=y[2],y}function S5(...e){return t=>{_5(t,...e)}}function _5(e,...t){t.forEach(n=>{typeof n=="function"?n(e):n!=null&&(n.current=e)})}const ir=m.forwardRef((e,t)=>{const n=()=>{var i;return(i=dd.find(a=>a.path===e.to))==null?void 0:i.lazy()},{ref:r,inView:o}=S0();return m.useEffect(()=>{o&&n()},[o,n]),p.jsx(ss,{ref:S5(t,r),...e})}),sn=m.forwardRef((e,t)=>{const{href:n,variant:r="accent underlined"}=e,{pathname:o}=$e();if(n!=null&&n.match(/^(www|https?)/))return p.jsx(g5,{...e,ref:t,className:F(e.className,zp,r==="accent underlined"&&Fp,r==="styleless"&&$p),hideExternalIcon:e.hideExternalIcon});const[i,a]=(n||"").split("#"),l=`${i||o}${a?`#${a}`:""}`;return p.jsx(ir,{...e,ref:t,className:F(e.className,zp,r==="accent underlined"&&Fp,r==="styleless"&&$p),to:l})});var T5="vocs_NotFound_divider",R5="vocs_NotFound",N5="vocs_H1",_0="vocs_Heading",T0="vocs_Heading_slugTarget";function Uo({level:e,...t}){const n=`h${e}`;return p.jsxs(n,{...t,id:void 0,className:F(t.className,_0),children:[p.jsx("div",{id:t.id,className:T0}),t.children]})}function R0(e){return p.jsx(Uo,{...e,className:F(e.className,N5),level:1})}var k5="vocs_Paragraph";function N0(e){return p.jsx("p",{...e,className:F(e.className,k5)})}function P5(){return p.jsxs("div",{className:R5,children:[p.jsx(R0,{children:"Page Not Found"}),p.jsx("div",{style:{height:tu[24]}}),p.jsx("hr",{className:T5}),p.jsx("div",{style:{height:tu[24]}}),p.jsx(N0,{children:"The page you were looking for could not be found."}),p.jsx("div",{style:{height:tu[8]}}),p.jsx(sn,{href:"/",children:"Go to Home Page"})]})}var A5="var(--vocs_Banner_bannerBackgroundColor)",b5="var(--vocs_Banner_bannerHeight)",j5="var(--vocs_Banner_bannerTextColor)",L5="vocs_Banner_closeButton",M5="vocs_Banner_content",I5="vocs_Banner_inner",O5="vocs_Banner";const D5=Object.getPrototypeOf(F5).constructor;async function F5(e,t){return new D5(String(e))(t)}function z5(e,t){return new Function(String(e))(t)}function Br(e,t){if(e==null)return{};var n={},r=Object.keys(e),o,i;for(i=0;i=0)&&(n[o]=e[o]);return n}var $5=["color"],B5=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Br(e,$5);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),m.createElement("path",{d:"M6.85355 3.14645C7.04882 3.34171 7.04882 3.65829 6.85355 3.85355L3.70711 7H12.5C12.7761 7 13 7.22386 13 7.5C13 7.77614 12.7761 8 12.5 8H3.70711L6.85355 11.1464C7.04882 11.3417 7.04882 11.6583 6.85355 11.8536C6.65829 12.0488 6.34171 12.0488 6.14645 11.8536L2.14645 7.85355C1.95118 7.65829 1.95118 7.34171 2.14645 7.14645L6.14645 3.14645C6.34171 2.95118 6.65829 2.95118 6.85355 3.14645Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),U5=["color"],H5=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Br(e,U5);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),m.createElement("path",{d:"M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),V5=["color"],W5=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Br(e,V5);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),m.createElement("path",{d:"M12.8536 2.85355C13.0488 2.65829 13.0488 2.34171 12.8536 2.14645C12.6583 1.95118 12.3417 1.95118 12.1464 2.14645L7.5 6.79289L2.85355 2.14645C2.65829 1.95118 2.34171 1.95118 2.14645 2.14645C1.95118 2.34171 1.95118 2.65829 2.14645 2.85355L6.79289 7.5L2.14645 12.1464C1.95118 12.3417 1.95118 12.6583 2.14645 12.8536C2.34171 13.0488 2.65829 13.0488 2.85355 12.8536L7.5 8.20711L12.1464 12.8536C12.3417 13.0488 12.6583 13.0488 12.8536 12.8536C13.0488 12.6583 13.0488 12.3417 12.8536 12.1464L8.20711 7.5L12.8536 2.85355Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),K5=["color"],G5=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Br(e,K5);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),m.createElement("path",{d:"M3.5 2C3.22386 2 3 2.22386 3 2.5V12.5C3 12.7761 3.22386 13 3.5 13H11.5C11.7761 13 12 12.7761 12 12.5V6H8.5C8.22386 6 8 5.77614 8 5.5V2H3.5ZM9 2.70711L11.2929 5H9V2.70711ZM2 2.5C2 1.67157 2.67157 1 3.5 1H8.5C8.63261 1 8.75979 1.05268 8.85355 1.14645L12.8536 5.14645C12.9473 5.24021 13 5.36739 13 5.5V12.5C13 13.3284 12.3284 14 11.5 14H3.5C2.67157 14 2 13.3284 2 12.5V2.5Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),Y5=["color"],Q5=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Br(e,Y5);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),m.createElement("path",{d:"M1.5 5.25C1.91421 5.25 2.25 4.91421 2.25 4.5C2.25 4.08579 1.91421 3.75 1.5 3.75C1.08579 3.75 0.75 4.08579 0.75 4.5C0.75 4.91421 1.08579 5.25 1.5 5.25ZM4 4.5C4 4.22386 4.22386 4 4.5 4H13.5C13.7761 4 14 4.22386 14 4.5C14 4.77614 13.7761 5 13.5 5H4.5C4.22386 5 4 4.77614 4 4.5ZM4.5 7C4.22386 7 4 7.22386 4 7.5C4 7.77614 4.22386 8 4.5 8H13.5C13.7761 8 14 7.77614 14 7.5C14 7.22386 13.7761 7 13.5 7H4.5ZM4.5 10C4.22386 10 4 10.2239 4 10.5C4 10.7761 4.22386 11 4.5 11H13.5C13.7761 11 14 10.7761 14 10.5C14 10.2239 13.7761 10 13.5 10H4.5ZM2.25 7.5C2.25 7.91421 1.91421 8.25 1.5 8.25C1.08579 8.25 0.75 7.91421 0.75 7.5C0.75 7.08579 1.08579 6.75 1.5 6.75C1.91421 6.75 2.25 7.08579 2.25 7.5ZM1.5 11.25C1.91421 11.25 2.25 10.9142 2.25 10.5C2.25 10.0858 1.91421 9.75 1.5 9.75C1.08579 9.75 0.75 10.0858 0.75 10.5C0.75 10.9142 1.08579 11.25 1.5 11.25Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),X5=["color"],hd=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Br(e,X5);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),m.createElement("path",{d:"M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),Z5=["color"],J5=m.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Br(e,Z5);return m.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),m.createElement("path",{d:"M12.1464 1.14645C12.3417 0.951184 12.6583 0.951184 12.8535 1.14645L14.8535 3.14645C15.0488 3.34171 15.0488 3.65829 14.8535 3.85355L10.9109 7.79618C10.8349 7.87218 10.7471 7.93543 10.651 7.9835L6.72359 9.94721C6.53109 10.0435 6.29861 10.0057 6.14643 9.85355C5.99425 9.70137 5.95652 9.46889 6.05277 9.27639L8.01648 5.34897C8.06455 5.25283 8.1278 5.16507 8.2038 5.08907L12.1464 1.14645ZM12.5 2.20711L8.91091 5.79618L7.87266 7.87267L8.12731 8.12732L10.2038 7.08907L13.7929 3.5L12.5 2.20711ZM9.99998 2L8.99998 3H4.9C4.47171 3 4.18056 3.00039 3.95552 3.01877C3.73631 3.03668 3.62421 3.06915 3.54601 3.10899C3.35785 3.20487 3.20487 3.35785 3.10899 3.54601C3.06915 3.62421 3.03669 3.73631 3.01878 3.95552C3.00039 4.18056 3 4.47171 3 4.9V11.1C3 11.5283 3.00039 11.8194 3.01878 12.0445C3.03669 12.2637 3.06915 12.3758 3.10899 12.454C3.20487 12.6422 3.35785 12.7951 3.54601 12.891C3.62421 12.9309 3.73631 12.9633 3.95552 12.9812C4.18056 12.9996 4.47171 13 4.9 13H11.1C11.5283 13 11.8194 12.9996 12.0445 12.9812C12.2637 12.9633 12.3758 12.9309 12.454 12.891C12.6422 12.7951 12.7951 12.6422 12.891 12.454C12.9309 12.3758 12.9633 12.2637 12.9812 12.0445C12.9996 11.8194 13 11.5283 13 11.1V6.99998L14 5.99998V11.1V11.1207C14 11.5231 14 11.8553 13.9779 12.1259C13.9549 12.407 13.9057 12.6653 13.782 12.908C13.5903 13.2843 13.2843 13.5903 12.908 13.782C12.6653 13.9057 12.407 13.9549 12.1259 13.9779C11.8553 14 11.5231 14 11.1207 14H11.1H4.9H4.87934C4.47686 14 4.14468 14 3.87409 13.9779C3.59304 13.9549 3.33469 13.9057 3.09202 13.782C2.7157 13.5903 2.40973 13.2843 2.21799 12.908C2.09434 12.6653 2.04506 12.407 2.0221 12.1259C1.99999 11.8553 1.99999 11.5231 2 11.1207V11.1206V11.1V4.9V4.87935V4.87932V4.87931C1.99999 4.47685 1.99999 4.14468 2.0221 3.87409C2.04506 3.59304 2.09434 3.33469 2.21799 3.09202C2.40973 2.71569 2.7157 2.40973 3.09202 2.21799C3.33469 2.09434 3.59304 2.04506 3.87409 2.0221C4.14468 1.99999 4.47685 1.99999 4.87932 2H4.87935H4.9H9.99998Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))});function Ml(e,t){if(typeof e!="object"||e===null)return e;if(Array.isArray(e))return e.map((r,o)=>Ml(r,o));const n=e.props.children?{...e.props,children:Ml(e.props.children)}:e.props;return de.createElement(e.type,{...n,key:t})}function q5({hide:e}){const{banner:t}=Ze(),n=m.useMemo(()=>{const r=(t==null?void 0:t.content)??"";if(!r)return null;if(typeof r!="string")return()=>Ml(r);const{default:o}=z5(r,{...ww,Fragment:m.Fragment});return o},[t]);return n?p.jsx("div",{className:F(O5),style:Jt({[A5]:t==null?void 0:t.backgroundColor,[j5]:t==null?void 0:t.textColor}),children:p.jsxs("div",{className:F(I5),children:[p.jsx("div",{className:F(M5),children:p.jsx(n,{})}),(t==null?void 0:t.dismissable)!=="false"&&p.jsx("button",{className:F(L5),onClick:e,type:"button",children:p.jsx(W5,{width:14,height:14})})]})}):null}var eE="vocs_Content";function k0({children:e,className:t}){return p.jsx("article",{className:F(t,eE),children:e})}function P0({items:e,pathname:t}){const n=t.replace(/\.html$/,""),r=[];for(const o of e)(o.link&&n.startsWith(o.match||o.link)||o.items&&P0({items:o.items,pathname:t}).length>0)&&r.push(o.id);return r}function qi({items:e,pathname:t}){return m.useMemo(()=>P0({items:e,pathname:t}),[e,t])}function Ur(){const e=m.useContext(A0);if(!e)throw new Error("`usePageData` must be used within `PageDataContext.Provider`.");return e}const A0=m.createContext(void 0);function us(){const{pathname:e}=$e(),t=Ze(),{sidebar:n}=t;if(!n)return{items:[]};if(Array.isArray(n))return{items:n};const r=m.useMemo(()=>{const o=Object.keys(n).filter(i=>e.startsWith(i));return o[o.length-1]},[n,e]);return r?Array.isArray(n[r])?{key:r,items:n[r]}:{...n[r],key:r}:{items:[]}}function Hr(){const e=us(),{frontmatter:t}=Ur(),{layout:n,showLogo:r,showOutline:o,showSidebar:i,showTopNav:a}=t||{},l=n??"docs";return{layout:l,get showLogo(){return typeof r<"u"?r:!0},get showOutline(){return typeof o<"u"?o:l==="docs"},get showSidebar(){return e.items.length===0?!1:typeof i<"u"?i:!(l==="minimal"||l==="landing")},get showTopNav(){return typeof a<"u"?a:!0}}}function tE(){const[e,t]=m.useState(()=>{if(!(typeof window>"u")){if(localStorage.getItem("vocs.theme")){const n=localStorage.getItem("vocs.theme");if(n)return n}return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}});return m.useEffect(()=>{e&&localStorage.setItem("vocs.theme",e),e==="dark"?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")},[e]),{theme:e,toggle(){t(n=>n==="light"?"dark":"light")}}}var nE="vocs_utils_visibleDark",rE="vocs_utils_visibleLight",b0="vocs_utils_visuallyHidden";function oe(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function oE(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function pd(...e){return t=>e.forEach(n=>oE(n,t))}function ze(...e){return m.useCallback(pd(...e),e)}function iE(e,t){const n=m.createContext(t);function r(i){const{children:a,...l}=i,s=m.useMemo(()=>l,Object.values(l));return p.jsx(n.Provider,{value:s,children:a})}function o(i){const a=m.useContext(n);if(a)return a;if(t!==void 0)return t;throw new Error(`\`${i}\` must be used within \`${e}\``)}return r.displayName=e+"Provider",[r,o]}function bn(e,t=[]){let n=[];function r(i,a){const l=m.createContext(a),s=n.length;n=[...n,a];function c(u){const{scope:d,children:h,...x}=u,v=(d==null?void 0:d[e][s])||l,C=m.useMemo(()=>x,Object.values(x));return p.jsx(v.Provider,{value:C,children:h})}function f(u,d){const h=(d==null?void 0:d[e][s])||l,x=m.useContext(h);if(x)return x;if(a!==void 0)return a;throw new Error(`\`${u}\` must be used within \`${i}\``)}return c.displayName=i+"Provider",[c,f]}const o=()=>{const i=n.map(a=>m.createContext(a));return function(l){const s=(l==null?void 0:l[e])||i;return m.useMemo(()=>({[`__scope${e}`]:{...l,[e]:s}}),[l,s])}};return o.scopeName=e,[r,aE(o,...t)]}function aE(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){const a=r.reduce((l,{useScope:s,scopeName:c})=>{const u=s(i)[`__scope${c}`];return{...l,...u}},{});return m.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return n.scopeName=t.scopeName,n}var qt=globalThis!=null&&globalThis.document?m.useLayoutEffect:()=>{},lE=ff.useId||(()=>{}),sE=0;function un(e){const[t,n]=m.useState(lE());return qt(()=>{n(r=>r??String(sE++))},[e]),t?`radix-${t}`:""}function at(e){const t=m.useRef(e);return m.useEffect(()=>{t.current=e}),m.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function jn({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,o]=uE({defaultProp:t,onChange:n}),i=e!==void 0,a=i?e:r,l=at(n),s=m.useCallback(c=>{if(i){const u=typeof c=="function"?c(e):c;u!==e&&l(u)}else o(c)},[i,e,o,l]);return[a,s]}function uE({defaultProp:e,onChange:t}){const n=m.useState(e),[r]=n,o=m.useRef(r),i=at(t);return m.useEffect(()=>{o.current!==r&&(i(r),o.current=r)},[r,o,i]),n}var Lo=m.forwardRef((e,t)=>{const{children:n,...r}=e,o=m.Children.toArray(n),i=o.find(fE);if(i){const a=i.props.children,l=o.map(s=>s===i?m.Children.count(a)>1?m.Children.only(null):m.isValidElement(a)?a.props.children:null:s);return p.jsx(Rc,{...r,ref:t,children:m.isValidElement(a)?m.cloneElement(a,void 0,l):null})}return p.jsx(Rc,{...r,ref:t,children:n})});Lo.displayName="Slot";var Rc=m.forwardRef((e,t)=>{const{children:n,...r}=e;if(m.isValidElement(n)){const o=hE(n);return m.cloneElement(n,{...dE(r,n.props),ref:t?pd(t,o):o})}return m.Children.count(n)>1?m.Children.only(null):null});Rc.displayName="SlotClone";var cE=({children:e})=>p.jsx(p.Fragment,{children:e});function fE(e){return m.isValidElement(e)&&e.type===cE}function dE(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...l)=>{i(...l),o(...l)}:o&&(n[r]=o):r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}function hE(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var pE=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],ie=pE.reduce((e,t)=>{const n=m.forwardRef((r,o)=>{const{asChild:i,...a}=r,l=i?Lo:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),p.jsx(l,{...a,ref:o})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function Nc(e,t){e&&$o.flushSync(()=>e.dispatchEvent(t))}function vE(e,t=globalThis==null?void 0:globalThis.document){const n=at(e);m.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var mE="DismissableLayer",kc="dismissableLayer.update",gE="dismissableLayer.pointerDownOutside",yE="dismissableLayer.focusOutside",Up,j0=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),cs=m.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:a,onDismiss:l,...s}=e,c=m.useContext(j0),[f,u]=m.useState(null),d=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,h]=m.useState({}),x=ze(t,T=>u(T)),v=Array.from(c.layers),[C]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),g=v.indexOf(C),y=f?v.indexOf(f):-1,w=c.layersWithOutsidePointerEventsDisabled.size>0,E=y>=g,_=CE(T=>{const S=T.target,P=[...c.branches].some(A=>A.contains(S));!E||P||(o==null||o(T),a==null||a(T),T.defaultPrevented||l==null||l())},d),R=EE(T=>{const S=T.target;[...c.branches].some(A=>A.contains(S))||(i==null||i(T),a==null||a(T),T.defaultPrevented||l==null||l())},d);return vE(T=>{y===c.layers.size-1&&(r==null||r(T),!T.defaultPrevented&&l&&(T.preventDefault(),l()))},d),m.useEffect(()=>{if(f)return n&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(Up=d.body.style.pointerEvents,d.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(f)),c.layers.add(f),Hp(),()=>{n&&c.layersWithOutsidePointerEventsDisabled.size===1&&(d.body.style.pointerEvents=Up)}},[f,d,n,c]),m.useEffect(()=>()=>{f&&(c.layers.delete(f),c.layersWithOutsidePointerEventsDisabled.delete(f),Hp())},[f,c]),m.useEffect(()=>{const T=()=>h({});return document.addEventListener(kc,T),()=>document.removeEventListener(kc,T)},[]),p.jsx(ie.div,{...s,ref:x,style:{pointerEvents:w?E?"auto":"none":void 0,...e.style},onFocusCapture:oe(e.onFocusCapture,R.onFocusCapture),onBlurCapture:oe(e.onBlurCapture,R.onBlurCapture),onPointerDownCapture:oe(e.onPointerDownCapture,_.onPointerDownCapture)})});cs.displayName=mE;var xE="DismissableLayerBranch",wE=m.forwardRef((e,t)=>{const n=m.useContext(j0),r=m.useRef(null),o=ze(t,r);return m.useEffect(()=>{const i=r.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),p.jsx(ie.div,{...e,ref:o})});wE.displayName=xE;function CE(e,t=globalThis==null?void 0:globalThis.document){const n=at(e),r=m.useRef(!1),o=m.useRef(()=>{});return m.useEffect(()=>{const i=l=>{if(l.target&&!r.current){let s=function(){L0(gE,n,c,{discrete:!0})};const c={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=s,t.addEventListener("click",o.current,{once:!0})):s()}else t.removeEventListener("click",o.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",i),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function EE(e,t=globalThis==null?void 0:globalThis.document){const n=at(e),r=m.useRef(!1);return m.useEffect(()=>{const o=i=>{i.target&&!r.current&&L0(yE,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Hp(){const e=new CustomEvent(kc);document.dispatchEvent(e)}function L0(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?Nc(o,i):o.dispatchEvent(i)}var nu="focusScope.autoFocusOnMount",ru="focusScope.autoFocusOnUnmount",Vp={bubbles:!1,cancelable:!0},SE="FocusScope",vd=m.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...a}=e,[l,s]=m.useState(null),c=at(o),f=at(i),u=m.useRef(null),d=ze(t,v=>s(v)),h=m.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;m.useEffect(()=>{if(r){let v=function(w){if(h.paused||!l)return;const E=w.target;l.contains(E)?u.current=E:$n(u.current,{select:!0})},C=function(w){if(h.paused||!l)return;const E=w.relatedTarget;E!==null&&(l.contains(E)||$n(u.current,{select:!0}))},g=function(w){if(document.activeElement===document.body)for(const _ of w)_.removedNodes.length>0&&$n(l)};document.addEventListener("focusin",v),document.addEventListener("focusout",C);const y=new MutationObserver(g);return l&&y.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",v),document.removeEventListener("focusout",C),y.disconnect()}}},[r,l,h.paused]),m.useEffect(()=>{if(l){Kp.add(h);const v=document.activeElement;if(!l.contains(v)){const g=new CustomEvent(nu,Vp);l.addEventListener(nu,c),l.dispatchEvent(g),g.defaultPrevented||(_E(PE(M0(l)),{select:!0}),document.activeElement===v&&$n(l))}return()=>{l.removeEventListener(nu,c),setTimeout(()=>{const g=new CustomEvent(ru,Vp);l.addEventListener(ru,f),l.dispatchEvent(g),g.defaultPrevented||$n(v??document.body,{select:!0}),l.removeEventListener(ru,f),Kp.remove(h)},0)}}},[l,c,f,h]);const x=m.useCallback(v=>{if(!n&&!r||h.paused)return;const C=v.key==="Tab"&&!v.altKey&&!v.ctrlKey&&!v.metaKey,g=document.activeElement;if(C&&g){const y=v.currentTarget,[w,E]=TE(y);w&&E?!v.shiftKey&&g===E?(v.preventDefault(),n&&$n(w,{select:!0})):v.shiftKey&&g===w&&(v.preventDefault(),n&&$n(E,{select:!0})):g===y&&v.preventDefault()}},[n,r,h.paused]);return p.jsx(ie.div,{tabIndex:-1,...a,ref:d,onKeyDown:x})});vd.displayName=SE;function _E(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if($n(r,{select:t}),document.activeElement!==n)return}function TE(e){const t=M0(e),n=Wp(t,e),r=Wp(t.reverse(),e);return[n,r]}function M0(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Wp(e,t){for(const n of e)if(!RE(n,{upTo:t}))return n}function RE(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function NE(e){return e instanceof HTMLInputElement&&"select"in e}function $n(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&NE(e)&&t&&e.select()}}var Kp=kE();function kE(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=Gp(e,t),e.unshift(t)},remove(t){var n;e=Gp(e,t),(n=e[0])==null||n.resume()}}}function Gp(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function PE(e){return e.filter(t=>t.tagName!=="A")}var AE="Portal",md=m.forwardRef((e,t)=>{var l;const{container:n,...r}=e,[o,i]=m.useState(!1);qt(()=>i(!0),[]);const a=n||o&&((l=globalThis==null?void 0:globalThis.document)==null?void 0:l.body);return a?nd.createPortal(p.jsx(ie.div,{...r,ref:t}),a):null});md.displayName=AE;function bE(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var zt=e=>{const{present:t,children:n}=e,r=jE(t),o=typeof n=="function"?n({present:r.isPresent}):m.Children.only(n),i=ze(r.ref,LE(o));return typeof n=="function"||r.isPresent?m.cloneElement(o,{ref:i}):null};zt.displayName="Presence";function jE(e){const[t,n]=m.useState(),r=m.useRef({}),o=m.useRef(e),i=m.useRef("none"),a=e?"mounted":"unmounted",[l,s]=bE(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return m.useEffect(()=>{const c=ja(r.current);i.current=l==="mounted"?c:"none"},[l]),qt(()=>{const c=r.current,f=o.current;if(f!==e){const d=i.current,h=ja(c);e?s("MOUNT"):h==="none"||(c==null?void 0:c.display)==="none"?s("UNMOUNT"):s(f&&d!==h?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,s]),qt(()=>{if(t){const c=u=>{const h=ja(r.current).includes(u.animationName);u.target===t&&h&&$o.flushSync(()=>s("ANIMATION_END"))},f=u=>{u.target===t&&(i.current=ja(r.current))};return t.addEventListener("animationstart",f),t.addEventListener("animationcancel",c),t.addEventListener("animationend",c),()=>{t.removeEventListener("animationstart",f),t.removeEventListener("animationcancel",c),t.removeEventListener("animationend",c)}}else s("ANIMATION_END")},[t,s]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:m.useCallback(c=>{c&&(r.current=getComputedStyle(c)),n(c)},[])}}function ja(e){return(e==null?void 0:e.animationName)||"none"}function LE(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ou=0;function I0(){m.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??Yp()),document.body.insertAdjacentElement("beforeend",e[1]??Yp()),ou++,()=>{ou===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),ou--}},[])}function Yp(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.cssText="outline: none; opacity: 0; position: fixed; pointer-events: none",e}var on=function(){return on=Object.assign||function(t){for(var n,r=1,o=arguments.length;r"u")return XE;var t=ZE(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},qE=z0(),wo="data-scroll-locked",e4=function(e,t,n,r){var o=e.left,i=e.top,a=e.right,l=e.gap;return n===void 0&&(n="margin"),` .`.concat(IE,` { overflow: hidden `).concat(r,`; padding-right: `).concat(l,"px ").concat(r,`; diff --git a/assets/manifest-definition-Cj2msGos.js b/assets/manifest-definition-Cq0BDVML.js similarity index 92% rename from assets/manifest-definition-Cj2msGos.js rename to assets/manifest-definition-Cq0BDVML.js index ecf5504..ca19b6c 100644 --- a/assets/manifest-definition-Cj2msGos.js +++ b/assets/manifest-definition-Cq0BDVML.js @@ -1,2 +1,2 @@ -import{u as a,j as e}from"./index-iPwFPOFl.js";const r={title:"Defining the API Pipeline Manifest",description:"undefined"};function t(i){const n={a:"a",div:"div",h1:"h1",header:"header",p:"p",...a(),...i.components};return e.jsxs(e.Fragment,{children:[e.jsx(n.header,{children:e.jsxs(n.h1,{id:"defining-the-api-pipeline-manifest",children:["Defining the API Pipeline Manifest",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#defining-the-api-pipeline-manifest",children:e.jsx(n.div,{"data-autolink-icon":!0})})]})}),` +import{u as a,j as e}from"./index-DrB8Q3SN.js";const r={title:"Defining the API Pipeline Manifest",description:"undefined"};function t(i){const n={a:"a",div:"div",h1:"h1",header:"header",p:"p",...a(),...i.components};return e.jsxs(e.Fragment,{children:[e.jsx(n.header,{children:e.jsxs(n.h1,{id:"defining-the-api-pipeline-manifest",children:["Defining the API Pipeline Manifest",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#defining-the-api-pipeline-manifest",children:e.jsx(n.div,{"data-autolink-icon":!0})})]})}),` `,e.jsx(n.p,{children:"In the following sections you'll learn how to define your own API pipeline manifest for any API you're targeting for extracting a knowledge base."})]})}function s(i={}){const{wrapper:n}={...a(),...i.components};return n?e.jsx(n,{...i,children:e.jsx(t,{...i})}):t(i)}export{s as default,r as frontmatter}; diff --git a/assets/node-deployment-CJmI1Ph5.js b/assets/node-deployment-CJmI1Ph5.js deleted file mode 100644 index 611d64f..0000000 --- a/assets/node-deployment-CJmI1Ph5.js +++ /dev/null @@ -1,79 +0,0 @@ -import{u as a,j as e}from"./index-iPwFPOFl.js";const l={title:"RAG API Pipeline Deployment",description:"undefined"};function n(i){const s={a:"a",code:"code",div:"div",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",ul:"ul",...a(),...i.components};return e.jsxs(e.Fragment,{children:[e.jsx(s.header,{children:e.jsxs(s.h1,{id:"rag-api-pipeline-deployment",children:["RAG API Pipeline Deployment",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#rag-api-pipeline-deployment",children:e.jsx(s.div,{"data-autolink-icon":!0})})]})}),` -`,e.jsxs(s.h2,{id:"overview",children:["Overview",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#overview",children:e.jsx(s.div,{"data-autolink-icon":!0})})]}),` -`,e.jsx(s.p,{children:"This page outlines the deployment process for the AI pipeline, including the necessary components and their configurations."}),` -`,e.jsxs(s.h2,{id:"deployment-process",children:["Deployment Process",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#deployment-process",children:e.jsx(s.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(s.h3,{id:"local-development",children:["Local development",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#local-development",children:e.jsx(s.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(s.p,{children:["Start with building your containers: ",e.jsx(s.code,{children:"docker compose -f local.yml build"}),"."]}),` -`,e.jsxs(s.p,{children:[`You are ready to start developing your application! -Define your custom logic in `,e.jsx(s.code,{children:"gaianet_rag_api_pipeline/pipeline.py"}),". It already contains a sample code which sums all the input values."]}),` -`,e.jsx(s.p,{children:"You can test it in the following modes:"}),` -`,e.jsxs(s.ul,{children:[` -`,e.jsxs(s.li,{children:["[debug (batch mode)] run your Pathway app code with pytest with ",e.jsx(s.code,{children:"docker compose -f local.yml run --rm pathway_app pytest"})]}),` -`,e.jsxs(s.li,{children:["[streaming] run your Pathway app ",e.jsx(s.code,{children:"docker compose -f local.yml up"}),". Modify ",e.jsx(s.code,{children:"InfiniteStream"})," in ",e.jsx(s.code,{children:"gaianet_rag_api_pipeline/input.py"})," to feed it with different data. The results are streamed to the ",e.jsx(s.code,{children:"output.csv"})," file (you can change this in ",e.jsx(s.code,{children:"gaianet_rag_api_pipeline/output.py"}),")"]}),` -`]}),` -`,e.jsxs(s.h3,{id:"production-environment",children:["Production environment",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#production-environment",children:e.jsx(s.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(s.p,{children:["Production environment streams data from ",e.jsx(s.code,{children:"redpanda"}),`. -Build production containers with `,e.jsx(s.code,{children:"docker compose -f prod.yml build"})]}),` -`,e.jsx(s.p,{children:"To run your application invoke:"}),` -`,e.jsxs(s.ol,{children:[` -`,e.jsxs(s.li,{children:[e.jsx(s.code,{children:"docker compose -f prod.yml rm -svf"})," to clean the state so that ",e.jsx(s.code,{children:"redpanda"})," can start without issues"]}),` -`,e.jsx(s.li,{children:e.jsx(s.code,{children:"docker compose -f prod.yml up"})}),` -`]}),` -`,e.jsxs(s.p,{children:[`For test, you can push messages to redpanda by running -`,e.jsx(s.code,{children:"docker compose -f prod.yml exec redpanda rpk topic create gaianet_rag_api_pipeline"}),` to make sure the topic is created -and then `,e.jsx(s.code,{children:"docker compose -f prod.yml exec redpanda rpk topic produce gaianet_rag_api_pipeline"})]}),` -`,e.jsxs(s.p,{children:[`and typing in the messages, e.g: -`,e.jsx(s.code,{children:'{"value":10}'})]}),` -`,e.jsxs(s.h2,{id:"working-with-a-snapshot",children:["Working with a Snapshot",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#working-with-a-snapshot",children:e.jsx(s.div,{"data-autolink-icon":!0})})]}),` -`,e.jsx(s.p,{children:"You can optionally use ollama to generate a snapshot and work with it for your gaianet node"}),` -`,e.jsxs(s.h3,{id:"setting-up-ollama",children:["Setting up Ollama",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#setting-up-ollama",children:e.jsx(s.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(s.p,{children:["Download and install ollama from official ",e.jsx(s.a,{href:"https://ollama.com/download",children:"website"})]}),` -`,e.jsxs(s.h3,{id:"setting-up-embeddings-model-with-ollama",children:["Setting up Embeddings Model with Ollama",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#setting-up-embeddings-model-with-ollama",children:e.jsx(s.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(s.ol,{children:[` -`,e.jsxs(s.li,{children:["Download the prefered embedding model from ",e.jsx(s.a,{href:"https://huggingface.co/gaianet/Nomic-embed-text-v1.5-Embedding-GGUF/resolve/main/nomic-embed-text-v1.5.f16.gguf",children:"HuggingFace"})]}),` -`,e.jsxs(s.li,{children:["Create ",e.jsx(s.code,{children:"Modelfile"})," to use embedding model with ollama"]}),` -`]}),` -`,e.jsx(s.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsx(s.code,{children:e.jsx(s.span,{className:"line",children:e.jsx(s.span,{children:"FROM ./nomic-embed-text-v1.5.f16.gguf # this is the path to the embedding model"})})})}),` -`,e.jsxs(s.p,{children:["Learn more about Ollama Modelfile ",e.jsx(s.a,{href:"https://github.com/ollama/ollama/blob/main/docs/modelfile.md",children:"here"})]}),` -`,e.jsx(s.p,{children:"To use the new Modelfile Save it as a file (e.g. Modelfile) and run the following command:"}),` -`,e.jsx(s.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsxs(s.code,{children:[e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"ollama"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" create"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" choose-a-model-name"}),e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" -f"}),e.jsx(s.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:" <"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:"location"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" of"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" the"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" file"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" e.g."}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" ./Modelfil"}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"e"}),e.jsx(s.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:">"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:"'"})]}),` -`,e.jsx(s.span,{className:"line",children:e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:"ollama run choose-a-model-name"})})]})}),` -`,e.jsxs(s.h3,{id:"setup-a-qdrant-vector-db-instance",children:["Setup a qdrant vector db instance",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#setup-a-qdrant-vector-db-instance",children:e.jsx(s.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(s.ul,{children:[` -`,e.jsx(s.li,{children:"Run the following command to start a qdrant vector db instance (make sure to have docker daemon running)"}),` -`]}),` -`,e.jsx(s.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsx(s.code,{children:e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"docker"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" run"}),e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" -p"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" 6333:6333"}),e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" -p"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" 6334:6334"}),e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" -v"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" ./qdrant_dev:/qdrant/storage:z"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" qdrant/qdrant:v1.10.1"})]})})}),` -`,e.jsxs(s.h3,{id:"generating-a-snapshopt",children:["Generating a Snapshopt",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#generating-a-snapshopt",children:e.jsx(s.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(s.h3,{id:"using-the-snapshot",children:["Using the Snapshot",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#using-the-snapshot",children:e.jsx(s.div,{"data-autolink-icon":!0})})]}),` -`,e.jsx(s.p,{children:"to use the generated snapshot with gaianet node without the full pipeline, you can edit the config file and add the following:"}),` -`,e.jsx(s.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsx(s.code,{children:e.jsx(s.span,{className:"line",children:e.jsx(s.span,{children:'"snapshot": "/your-snapshot-path-or-url", # this can be http url or local path'})})})}),` -`,e.jsx(s.p,{children:"make sure to add the snapshot to the config file run the following command to start the node:"}),` -`,e.jsx(s.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsxs(s.code,{children:[e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"gaianet"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" init"})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"gaianet"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" start"})]})]})}),` -`,e.jsxs(s.h2,{id:"recommended-gaianet-node-configuration",children:["Recommended GaiaNet Node Configuration",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#recommended-gaianet-node-configuration",children:e.jsx(s.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(s.ul,{children:[` -`,e.jsx(s.li,{children:"Tested on Mac Studio 32GB RAM"}),` -`]}),` -`,e.jsx(s.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0",children:e.jsxs(s.code,{children:[e.jsx(s.span,{className:"line",children:e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"{"})}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "address"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"your-node-address"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "chat"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"https://huggingface.co/gaianet/Meta-Llama-3.1-8B-Instruct-GGUF/resolve/main/Meta-Llama-3.1-8B-Instruct-Q5_K_M.gguf"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "chat_batch_size"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"64"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "chat_ctx_size"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"8192"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "chat_name"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"Boardroom-Llama-3-Chat"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "description"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"Llama-3-chat model. with Boardroom API snapshot"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "domain"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"us.gaianet.network"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "embedding"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"https://huggingface.co/gaianet/Nomic-embed-text-v1.5-Embedding-GGUF/resolve/main/nomic-embed-text-v1.5.f16.gguf"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "embedding_batch_size"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"2048"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "embedding_collection_name"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"boardroom_api_collection"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:", "}),e.jsx(s.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:"#"}),e.jsx(s.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" this"}),e.jsx(s.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" is"}),e.jsx(s.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" the"}),e.jsx(s.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" name"}),e.jsx(s.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" of"}),e.jsx(s.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" the"}),e.jsx(s.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" collection"}),e.jsx(s.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" in"}),e.jsx(s.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" the"}),e.jsx(s.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" snapshot"})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "embedding_ctx_size"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"2048"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "embedding_name"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"Nomic-embed-text-v1.5"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "llamaedge_port"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"8080"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "prompt_template"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"llama-3-chat"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "qdrant_limit"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"1"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "qdrant_score_threshold"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"0.5"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "rag_policy"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"system-message"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "rag_prompt"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:`"Use the following pieces of context to answer the user's question. Respond directly to the user with your answer, do not say 'this is the answer' or 'this is the answer' or similar language. Never mention your knowledge base or say 'according to the context' or 'hypothetical' or other similar language. Use json metadata included in knowledge base whenever possible enrich your answers. The term aave refers the DAO protocol where discussions and proposals are posted. If you don't know the answer, don't try to make up an answer. `}),e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#F47067"},children:"\\n"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:"----------------"}),e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#F47067"},children:"\\n"}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "reverse_prompt"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'""'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "snapshot"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"/your-snapshot-path-or-url"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` -`,e.jsxs(s.span,{className:"line",children:[e.jsx(s.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "system_prompt"'}),e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),e.jsx(s.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"You are an AI assistant designed to provide clear, concise, and accurate answers to user queries. Your primary functions include retrieving relevant information from the provided RAG (Retrieval-Augmented Generation) data and utilizing your pre-training data when necessary. Use json metadata included in RAG data whenever possible enrich your answers. The term aave refers the DAO protocol where discussions and proposals are posted. If no relevant information is found, you will inform the user that you are not familiar with the knowledge."'})]}),` -`,e.jsx(s.span,{className:"line",children:e.jsx(s.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"}"})})]})})]})}function d(i={}){const{wrapper:s}={...a(),...i.components};return s?e.jsx(s,{...i,children:e.jsx(n,{...i})}):n(i)}export{d as default,l as frontmatter}; diff --git a/assets/node-deployment-DIhHCU_w.js b/assets/node-deployment-DIhHCU_w.js new file mode 100644 index 0000000..ecce84f --- /dev/null +++ b/assets/node-deployment-DIhHCU_w.js @@ -0,0 +1,50 @@ +import{u as n,j as s}from"./index-DrB8Q3SN.js";const r={title:"RAG API Pipeline x GaiaNet node",description:"undefined"};function a(i){const e={a:"a",code:"code",div:"div",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",ul:"ul",...n(),...i.components};return s.jsxs(s.Fragment,{children:[s.jsx(e.header,{children:s.jsxs(e.h1,{id:"rag-api-pipeline-x-gaianet-node",children:["RAG API Pipeline x GaiaNet node",s.jsx(e.a,{"aria-hidden":"true",tabIndex:"-1",href:"#rag-api-pipeline-x-gaianet-node",children:s.jsx(e.div,{"data-autolink-icon":!0})})]})}),` +`,s.jsx(e.p,{children:"This page contains some quick notes and instructions for efficient methods for generating vector embeddings, as well as quick instructions on how to import a knowledge base snapshot and deploy a GaiaNet node."}),` +`,s.jsxs(e.h2,{id:"generating-vector-embeddings",children:["Generating Vector embeddings",s.jsx(e.a,{"aria-hidden":"true",tabIndex:"-1",href:"#generating-vector-embeddings",children:s.jsx(e.div,{"data-autolink-icon":!0})})]}),` +`,s.jsx(e.p,{children:`If you're planning to use the pipeline on consumer hardware that cannot handle a GaiaNet node running in the background, you can opt-in to use Ollama +as LLM provider. Some of the advantages are that it is more lighweight, easier to install and ready to use with Mac GPU devices.`}),` +`,s.jsxs(e.h3,{id:"setting-up-ollama",children:["Setting up Ollama",s.jsx(e.a,{"aria-hidden":"true",tabIndex:"-1",href:"#setting-up-ollama",children:s.jsx(e.div,{"data-autolink-icon":!0})})]}),` +`,s.jsxs(e.p,{children:["Download and install ollama from the official ",s.jsx(e.a,{href:"https://ollama.com/download",children:"website"})]}),` +`,s.jsxs(e.h3,{id:"setting-up-embeddings-model-with-ollama",children:["Setting up Embeddings Model with Ollama",s.jsx(e.a,{"aria-hidden":"true",tabIndex:"-1",href:"#setting-up-embeddings-model-with-ollama",children:s.jsx(e.div,{"data-autolink-icon":!0})})]}),` +`,s.jsxs(e.ol,{children:[` +`,s.jsxs(e.li,{children:["Download the embeddings model of your preference (e.g. from ",s.jsx(e.a,{href:"https://huggingface.co/gaianet/Nomic-embed-text-v1.5-Embedding-GGUF/resolve/main/nomic-embed-text-v1.5.f16.gguf",children:"HuggingFace"}),")"]}),` +`,s.jsxs(e.li,{children:["Create ",s.jsx(e.code,{children:"Modelfile"})," to use the embedding model with Ollama. Learn more about Ollama Modelfile ",s.jsx(e.a,{href:"https://github.com/ollama/ollama/blob/main/docs/modelfile.md",children:"here"})]}),` +`]}),` +`,s.jsx(e.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"Modelfile","data-lang":"docker",children:s.jsx(e.code,{children:s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:"FROM"}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:" ./nomic-embed-text-v1.5.f16.gguf # this is the path to the embedding model"})]})})}),` +`,s.jsxs(e.ol,{start:"3",children:[` +`,s.jsx(e.li,{children:"Import the model into Ollama"}),` +`]}),` +`,s.jsx(e.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"Terminal","data-lang":"bash",children:s.jsx(e.code,{children:s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"ollama"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" create"}),s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:" <"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:"model-nam"}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"e"}),s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:">"}),s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#6CB6FF"},children:" -f"}),s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:" <"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:"Modelfil"}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"e"}),s.jsx(e.span,{style:{color:"#D73A49","--shiki-dark":"#F47067"},children:">"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:"'"})]})})}),` +`,s.jsxs(e.h2,{id:"selecting-a-knowledge-base-and-prompts-for-your-gaianet-node",children:["Selecting a knowledge base and prompts for your GaiaNet node",s.jsx(e.a,{"aria-hidden":"true",tabIndex:"-1",href:"#selecting-a-knowledge-base-and-prompts-for-your-gaianet-node",children:s.jsx(e.div,{"data-autolink-icon":!0})})]}),` +`,s.jsxs(e.p,{children:["In order to supplement the LLM model hosted on your Gaia node with a custom knowledge base and prompts follow the instructions outlined in this ",s.jsx(e.a,{href:"https://docs.gaianet.ai/node-guide/customize#select-a-knowledge-base",children:"link"}),`. +Remember to re-initialize and re-start the node after you make configuration changes.`]}),` +`,s.jsx(e.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"Terminal","data-lang":"bash",children:s.jsxs(e.code,{children:[s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"gaianet"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" init"})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#6F42C1","--shiki-dark":"#F69D50"},children:"gaianet"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:" start"})]})]})}),` +`,s.jsxs(e.h3,{id:"recommended-gaianet-node-configuration",children:["Recommended GaiaNet Node Configuration",s.jsx(e.a,{"aria-hidden":"true",tabIndex:"-1",href:"#recommended-gaianet-node-configuration",children:s.jsx(e.div,{"data-autolink-icon":!0})})]}),` +`,s.jsxs(e.ul,{children:[` +`,s.jsx(e.li,{children:"Tested on Mac Studio 32GB RAM"}),` +`,s.jsxs(e.li,{children:["Custom prompts for the ",s.jsx(e.a,{href:"/apis/boardroom-api",children:"Boardroom Aave example"})]}),` +`]}),` +`,s.jsx(e.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"config.json","data-lang":"json",children:s.jsxs(e.code,{children:[s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"{"})}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "address"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"your-node-address"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "chat"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"https://huggingface.co/gaianet/Meta-Llama-3.1-8B-Instruct-GGUF/resolve/main/Meta-Llama-3.1-8B-Instruct-Q5_K_M.gguf"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "chat_batch_size"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"64"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "chat_ctx_size"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"8192"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "chat_name"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"Boardroom-Llama-3-Chat"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "description"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"Llama-3-chat model. with Boardroom API snapshot"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "domain"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"us.gaianet.network"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "embedding"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"https://huggingface.co/gaianet/Nomic-embed-text-v1.5-Embedding-GGUF/resolve/main/nomic-embed-text-v1.5.f16.gguf"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "embedding_batch_size"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"2048"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "embedding_collection_name"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"boardroom_api_collection"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:", "}),s.jsx(e.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:"#"}),s.jsx(e.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" this"}),s.jsx(e.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" is"}),s.jsx(e.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" the"}),s.jsx(e.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" name"}),s.jsx(e.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" of"}),s.jsx(e.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" the"}),s.jsx(e.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" collection"}),s.jsx(e.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" in"}),s.jsx(e.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" the"}),s.jsx(e.span,{style:{color:"#B31D28","--shiki-dark":"#FF938A",fontStyle:"italic","--shiki-dark-font-style":"italic"},children:" snapshot"})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "embedding_ctx_size"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"2048"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "embedding_name"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"Nomic-embed-text-v1.5"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "llamaedge_port"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"8080"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "prompt_template"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"llama-3-chat"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "qdrant_limit"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"1"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "qdrant_score_threshold"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"0.5"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "rag_policy"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"system-message"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "rag_prompt"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:`"Use the following pieces of context to answer the user's question. Respond directly to the user with your answer, do not say 'this is the answer' or 'this is the answer' or similar language. Never mention your knowledge base or say 'according to the context' or 'hypothetical' or other similar language. Use json metadata included in knowledge base whenever possible enrich your answers. The term aave refers the DAO protocol where discussions and proposals are posted. If you don't know the answer, don't try to make up an answer. `}),s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#F47067"},children:"\\n"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:"----------------"}),s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#F47067"},children:"\\n"}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "reverse_prompt"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'""'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "snapshot"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"/your-snapshot-path-or-url"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:","})]}),` +`,s.jsxs(e.span,{className:"line",children:[s.jsx(e.span,{style:{color:"#005CC5","--shiki-dark":"#8DDB8C"},children:' "system_prompt"'}),s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(e.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"You are an AI assistant designed to provide clear, concise, and accurate answers to user queries. Your primary functions include retrieving relevant information from the provided RAG (Retrieval-Augmented Generation) data and utilizing your pre-training data when necessary. Use json metadata included in RAG data whenever possible enrich your answers. The term aave refers the DAO protocol where discussions and proposals are posted. If no relevant information is found, you will inform the user that you are not familiar with the knowledge."'})]}),` +`,s.jsx(e.span,{className:"line",children:s.jsx(e.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:"}"})})]})})]})}function o(i={}){const{wrapper:e}={...n(),...i.components};return e?s.jsx(e,{...i,children:s.jsx(a,{...i})}):a(i)}export{o as default,r as frontmatter}; diff --git a/assets/overview-CNVuIIsa.js b/assets/overview-CpJMzdLn.js similarity index 97% rename from assets/overview-CNVuIIsa.js rename to assets/overview-CpJMzdLn.js index 82457f7..274b82c 100644 --- a/assets/overview-CNVuIIsa.js +++ b/assets/overview-CpJMzdLn.js @@ -1,4 +1,4 @@ -import{u as r,j as e}from"./index-iPwFPOFl.js";const d={title:"Architecture Overview",description:"undefined"};function i(t){const n={a:"a",code:"code",div:"div",h1:"h1",header:"header",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...r(),...t.components};return e.jsxs(e.Fragment,{children:[e.jsx(n.header,{children:e.jsxs(n.h1,{id:"architecture-overview",children:["Architecture Overview",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#architecture-overview",children:e.jsx(n.div,{"data-autolink-icon":!0})})]})}),` +import{u as r,j as e}from"./index-DrB8Q3SN.js";const d={title:"Architecture Overview",description:"undefined"};function i(t){const n={a:"a",code:"code",div:"div",h1:"h1",header:"header",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...r(),...t.components};return e.jsxs(e.Fragment,{children:[e.jsx(n.header,{children:e.jsxs(n.h1,{id:"architecture-overview",children:["Architecture Overview",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#architecture-overview",children:e.jsx(n.div,{"data-autolink-icon":!0})})]})}),` `,e.jsx(n.p,{children:e.jsx(n.img,{src:"/architecture.png",alt:"architecture"})}),` `,e.jsxs(n.p,{children:["The diagram above showcases the system architecture. When running the ",e.jsx(n.code,{children:"rag-api-pipeline"})," CLI, the tool executes the following steps:"]}),` `,e.jsxs(n.ol,{children:[` diff --git a/assets/overview-C7qjM7zo.js b/assets/overview-Dhlrq6gv.js similarity index 99% rename from assets/overview-C7qjM7zo.js rename to assets/overview-Dhlrq6gv.js index a226199..d27d964 100644 --- a/assets/overview-C7qjM7zo.js +++ b/assets/overview-Dhlrq6gv.js @@ -1,4 +1,4 @@ -import{u as r,j as e}from"./index-iPwFPOFl.js";const l={title:"API Pipeline Manifest - Overview",description:"undefined"};function n(i){const s={a:"a",code:"code",div:"div",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",ul:"ul",...r(),...i.components};return e.jsxs(e.Fragment,{children:[e.jsx(s.header,{children:e.jsxs(s.h1,{id:"api-pipeline-manifest---overview",children:["API Pipeline Manifest - Overview",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#api-pipeline-manifest---overview",children:e.jsx(s.div,{"data-autolink-icon":!0})})]})}),` +import{u as r,j as e}from"./index-DrB8Q3SN.js";const l={title:"API Pipeline Manifest - Overview",description:"undefined"};function n(i){const s={a:"a",code:"code",div:"div",em:"em",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",ul:"ul",...r(),...i.components};return e.jsxs(e.Fragment,{children:[e.jsx(s.header,{children:e.jsxs(s.h1,{id:"api-pipeline-manifest---overview",children:["API Pipeline Manifest - Overview",e.jsx(s.a,{"aria-hidden":"true",tabIndex:"-1",href:"#api-pipeline-manifest---overview",children:e.jsx(s.div,{"data-autolink-icon":!0})})]})}),` `,e.jsxs(s.p,{children:["Under the hood, the ",e.jsx(s.code,{children:"rag-api-pipeline"})," uses ",e.jsx(s.a,{href:"https://docs.airbyte.com/connector-development/config-based/low-code-cdk-overview",children:"Airbyte’s CDK low-code framework"}),` to build source connectors for any REST APIs by generating a `,e.jsx(s.a,{href:"https://docs.airbyte.com/connector-development/config-based/understanding-the-yaml-file/yaml-overview",children:"declarative stream"}),` manifest in YAML format using two required spec files:`]}),` diff --git a/assets/sample-manifests-D5wrIZtc.js b/assets/sample-manifests-DJROeNIj.js similarity index 99% rename from assets/sample-manifests-D5wrIZtc.js rename to assets/sample-manifests-DJROeNIj.js index c87b36d..2e3103e 100644 --- a/assets/sample-manifests-D5wrIZtc.js +++ b/assets/sample-manifests-DJROeNIj.js @@ -1,4 +1,4 @@ -import{u as n,j as s}from"./index-iPwFPOFl.js";const a={title:"Sample API Pipeline Manifests",description:"undefined"};function e(i){const l={a:"a",code:"code",div:"div",h1:"h1",h2:"h2",header:"header",pre:"pre",span:"span",...n(),...i.components};return s.jsxs(s.Fragment,{children:[s.jsx(l.header,{children:s.jsxs(l.h1,{id:"sample-api-pipeline-manifests",children:["Sample API Pipeline Manifests",s.jsx(l.a,{"aria-hidden":"true",tabIndex:"-1",href:"#sample-api-pipeline-manifests",children:s.jsx(l.div,{"data-autolink-icon":!0})})]})}),` +import{u as n,j as s}from"./index-DrB8Q3SN.js";const a={title:"Sample API Pipeline Manifests",description:"undefined"};function e(i){const l={a:"a",code:"code",div:"div",h1:"h1",h2:"h2",header:"header",pre:"pre",span:"span",...n(),...i.components};return s.jsxs(s.Fragment,{children:[s.jsx(l.header,{children:s.jsxs(l.h1,{id:"sample-api-pipeline-manifests",children:["Sample API Pipeline Manifests",s.jsx(l.a,{"aria-hidden":"true",tabIndex:"-1",href:"#sample-api-pipeline-manifests",children:s.jsx(l.div,{"data-autolink-icon":!0})})]})}),` `,s.jsxs(l.h2,{id:"boardroom-governance-api",children:["Boardroom Governance API",s.jsx(l.a,{"aria-hidden":"true",tabIndex:"-1",href:"#boardroom-governance-api",children:s.jsx(l.div,{"data-autolink-icon":!0})})]}),` `,s.jsx(l.pre,{className:"shiki shiki-themes github-light github-dark-dimmed",style:{backgroundColor:"#fff","--shiki-dark-bg":"#22272e",color:"#24292e","--shiki-dark":"#adbac7"},tabIndex:"0","data-title":"boardroom_api_pipeline.yaml","data-lang":"yaml",children:s.jsxs(l.code,{children:[s.jsxs(l.span,{className:"line",children:[s.jsx(l.span,{style:{color:"#22863A","--shiki-dark":"#8DDB8C"},children:"version"}),s.jsx(l.span,{style:{color:"#24292E","--shiki-dark":"#ADBAC7"},children:": "}),s.jsx(l.span,{style:{color:"#032F62","--shiki-dark":"#96D0FF"},children:'"3.0.0"'})]}),` `,s.jsx(l.span,{className:"line","data-empty-line":!0,children:" "}),` diff --git a/assets/tech-stack-B7aQUXpi.js b/assets/tech-stack-Ci2bj2yU.js similarity index 82% rename from assets/tech-stack-B7aQUXpi.js rename to assets/tech-stack-Ci2bj2yU.js index 4526e4c..bbb7edd 100644 --- a/assets/tech-stack-B7aQUXpi.js +++ b/assets/tech-stack-Ci2bj2yU.js @@ -1,5 +1,6 @@ -import{u as s,j as e}from"./index-iPwFPOFl.js";const a={title:"Tech Stack",description:"undefined"};function r(i){const n={a:"a",code:"code",div:"div",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...s(),...i.components};return e.jsxs(e.Fragment,{children:[e.jsx(n.header,{children:e.jsxs(n.h1,{id:"tech-stack",children:["Tech Stack",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#tech-stack",children:e.jsx(n.div,{"data-autolink-icon":!0})})]})}),` +import{u as r,j as e}from"./index-DrB8Q3SN.js";const a={title:"Tech Stack",description:"undefined"};function i(s){const n={a:"a",code:"code",div:"div",em:"em",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...r(),...s.components};return e.jsxs(e.Fragment,{children:[e.jsx(n.header,{children:e.jsxs(n.h1,{id:"tech-stack",children:["Tech Stack",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#tech-stack",children:e.jsx(n.div,{"data-autolink-icon":!0})})]})}),` `,e.jsxs(n.p,{children:["This page outlines the technologies and tools integrated into the ",e.jsx(n.code,{children:"rag-api-pipeline"})," by navigating throughout the different execution stages."]}),` +`,e.jsxs(n.h2,{id:"tools--frameworks",children:["Tools & Frameworks",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#tools--frameworks",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` `,e.jsxs(n.h3,{id:"1-rag-pipeline-over-data-stream-pathway-docs",children:["1. RAG Pipeline over data stream: Pathway (",e.jsx(n.a,{href:"https://pathway.com/developers/user-guide/introduction/welcome/",children:"Docs"}),")",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#1-rag-pipeline-over-data-stream-pathway-docs",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` `,e.jsxs(n.ul,{children:[` `,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"Description"}),": A Python-based data processing framework designed for creating AI-driven pipelines over data streams."]}),` @@ -66,12 +67,4 @@ Embeddings generated here are used downstream in vector search and other AI mode `,e.jsxs(n.li,{children:["Acts as a ",e.jsx(n.strong,{children:"knowledge base snapshot"})," repository, storing vectors generated from processed data and feature embeddings."]}),` `]}),` `]}),` -`]}),` -`,e.jsxs(n.h2,{id:"data-flow-overview",children:["Data Flow Overview",e.jsx(n.a,{"aria-hidden":"true",tabIndex:"-1",href:"#data-flow-overview",children:e.jsx(n.div,{"data-autolink-icon":!0})})]}),` -`,e.jsxs(n.ol,{children:[` -`,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"Data Extraction"}),": PyAirbyte connects to various data sources, using Airbyte DuckDB Cache for efficient retrieval."]}),` -`,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"Processing & Transformation"}),": Pathway handles real-time processing of data streams, transforming raw data into usable formats."]}),` -`,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"Data Normalization & Caching"}),": Data undergoes normalization, is chunked, and stored in JSONL format."]}),` -`,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"Embedding Generation"}),": Gaia Node generates vector embeddings from processed data."]}),` -`,e.jsxs(n.li,{children:[e.jsx(n.strong,{children:"Vector Search"}),": QdrantDB allows for vector similarity search, enabling efficient knowledge retrieval based on embeddings."]}),` -`]})]})}function o(i={}){const{wrapper:n}={...s(),...i.components};return n?e.jsx(n,{...i,children:e.jsx(r,{...i})}):r(i)}export{o as default,a as frontmatter}; +`]})]})}function d(s={}){const{wrapper:n}={...r(),...s.components};return n?e.jsx(n,{...s,children:e.jsx(i,{...s})}):i(s)}export{d as default,a as frontmatter}; diff --git a/cli-reference/index.html b/cli-reference/index.html index 5289dcf..266153b 100644 --- a/cli-reference/index.html +++ b/cli-reference/index.html @@ -12,7 +12,7 @@ - + diff --git a/getting-started/index.html b/getting-started/index.html index 5289dcf..266153b 100644 --- a/getting-started/index.html +++ b/getting-started/index.html @@ -12,7 +12,7 @@ - + diff --git a/index.html b/index.html index 5289dcf..266153b 100644 --- a/index.html +++ b/index.html @@ -12,7 +12,7 @@ - + diff --git a/manifest-definition/index.html b/manifest-definition/index.html index 5289dcf..266153b 100644 --- a/manifest-definition/index.html +++ b/manifest-definition/index.html @@ -12,7 +12,7 @@ - + diff --git a/manifest-definition/overview/index.html b/manifest-definition/overview/index.html index 5289dcf..266153b 100644 --- a/manifest-definition/overview/index.html +++ b/manifest-definition/overview/index.html @@ -12,7 +12,7 @@ - + diff --git a/manifest-definition/sample-manifests/index.html b/manifest-definition/sample-manifests/index.html index 5289dcf..266153b 100644 --- a/manifest-definition/sample-manifests/index.html +++ b/manifest-definition/sample-manifests/index.html @@ -12,7 +12,7 @@ - + diff --git a/node-deployment/index.html b/node-deployment/index.html index 5289dcf..266153b 100644 --- a/node-deployment/index.html +++ b/node-deployment/index.html @@ -12,7 +12,7 @@ - +