diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 41b0cae7..676b35ed 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -14,10 +14,7 @@
"postStartCommand": ".devcontainer/postStart.sh",
"postCreateCommand": ".devcontainer/postCreate.sh",
"forwardPorts": [
- 1984,
- 1985,
- 3000,
- 4173
+ 1985
],
"customizations": {
"vscode": {
diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh
index 97f6227a..7018c0df 100755
--- a/.devcontainer/postCreate.sh
+++ b/.devcontainer/postCreate.sh
@@ -1,4 +1,7 @@
#!/bin/bash
+echo "Setting up pnpm store..."
+mkdir -p /tmp/pnpm && pnpm config set store-dir /tmp/pnpm/
+
echo "Building the project..."
-gradle npmInstall build
\ No newline at end of file
+gradle pnpmInstall build
\ No newline at end of file
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index c8a9b9bb..9105a31d 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -24,4 +24,4 @@
- [ ] I have added unit and integration tests for my change
- [ ] I have manually run all the unit and integration tests in the module I have added/changed, and they are all green
-- [ ] I have added/updated the [documentation](https://github.com/dRAGon-Okinawa/dRAGon/tree/main/docs)
+- [ ] I have added/updated the [documentation](https://docs.dragon.okinawa)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 47863c15..40598710 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -28,6 +28,9 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: 20
+ - uses: pnpm/action-setup@v4
+ with:
+ version: 9.4.0
- uses: gradle/actions/setup-gradle@v3
with:
gradle-version: 8.7
@@ -42,15 +45,10 @@ jobs:
run: gradle createRelease
- name: Set Frontend Version
- run: npm version from-git --no-git-tag-version --prefix frontend
- - name: Set Docs Version
- run: npm version from-git --no-git-tag-version --prefix docs
+ run: pnpm version from-git --no-git-tag-version --prefix frontend
- name: Test dRAGon
- run: gradle npmInstall npmLint checkstyleMain checkstyleTest test
-
- - name: Build Documentation
- run: npm install --prefix docs && npm run build --prefix docs
+ run: gradle pnpmInstall pnpmLint checkstyleMain checkstyleTest test --stacktrace
- name: Build dRAGon
run: gradle bootJar -Pversion=$(gradle cV -q -Prelease.quiet)
@@ -93,13 +91,3 @@ jobs:
github.ref == 'refs/heads/main' &&
github.repository == 'dragon-okinawa/dragon'
run: gradle pushRelease
-
- - name: Deploy Documentation
- uses: JamesIves/github-pages-deploy-action@releases/v3
- if: |
- github.ref == 'refs/heads/main' &&
- github.repository == 'dragon-okinawa/dragon'
- with:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- BRANCH: gh-pages
- FOLDER: docs/build
diff --git a/.gitignore b/.gitignore
index 35c0214e..12584f5e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,7 @@
-build
gradle
.gradle
bin
.vscode
.DS_Store
-*.class
\ No newline at end of file
+*.class
+.pnpm-store
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index 93d63876..31641eca 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,7 +2,7 @@ FROM mcr.microsoft.com/openjdk/jdk:17-ubuntu
LABEL org.opencontainers.image.source="https://github.com/dRAGon-Okinawa/dRAGon"
EXPOSE 1985
-EXPOSE 1984
+EXPOSE 8519
RUN mkdir /data
RUN chown app:app /data
diff --git a/README.md b/README.md
index 37ec91a9..2684b32e 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-![Build dRAGon Project](https://github.com/dragon-okinawa/dragon/actions/workflows/build.yml/badge.svg?branch=main)
+[![Build dRAGon Project](https://github.com/dragon-okinawa/dragon/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/dRAGon-Okinawa/dRAGon/actions)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=dRAGon-Okinawa_dRAGon&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=dRAGon-Okinawa_dRAGon)
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=dRAGon-Okinawa_dRAGon&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=dRAGon-Okinawa_dRAGon)
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=dRAGon-Okinawa_dRAGon&metric=bugs)](https://sonarcloud.io/summary/new_code?id=dRAGon-Okinawa_dRAGon)
diff --git a/backend/.gitignore b/backend/.gitignore
new file mode 100644
index 00000000..c795b054
--- /dev/null
+++ b/backend/.gitignore
@@ -0,0 +1 @@
+build
\ No newline at end of file
diff --git a/backend/build.gradle b/backend/build.gradle
index ee5005a1..63c64358 100644
--- a/backend/build.gradle
+++ b/backend/build.gradle
@@ -128,17 +128,20 @@ tasks.register("bootProdRun") {
systemProperty("spring.profiles.active", "prod")
}
}
- finalizedBy("bootRun")
+}
+
+jacoco {
+ toolVersion = "0.8.12"
}
tasks.register('copyWebApp', Copy) {
- dependsOn(':frontend:jar')
+ dependsOn(':frontend:pnpmBuild')
from "$rootDir/frontend/dist"
into "$buildDir/resources/main/static/."
}
tasks.named('compileJava') {
- dependsOn(':frontend:jar')
+ dependsOn(':frontend:pnpmBuild')
}
tasks.named('processResources') {
diff --git a/backend/gradle.properties b/backend/gradle.properties
index 5f233db1..338affca 100644
--- a/backend/gradle.properties
+++ b/backend/gradle.properties
@@ -1 +1,2 @@
-version=0.0.0
\ No newline at end of file
+version=0.0.0
+org.gradle.daemon=false
\ No newline at end of file
diff --git a/backend/src/main/java/ai/dragon/controller/api/app/HealthOpenApiController.java b/backend/src/main/java/ai/dragon/controller/api/app/HealthAppApiController.java
similarity index 87%
rename from backend/src/main/java/ai/dragon/controller/api/app/HealthOpenApiController.java
rename to backend/src/main/java/ai/dragon/controller/api/app/HealthAppApiController.java
index 423fb00c..69b487cd 100644
--- a/backend/src/main/java/ai/dragon/controller/api/app/HealthOpenApiController.java
+++ b/backend/src/main/java/ai/dragon/controller/api/app/HealthAppApiController.java
@@ -9,10 +9,10 @@
import io.swagger.v3.oas.annotations.tags.Tag;
@RestController
-@RequestMapping("/api/app/health")
+@RequestMapping("/api/app")
@Tag(name = "Health", description = "Health Check API Endpoints")
-public class HealthOpenApiController {
- @GetMapping("/status")
+public class HealthAppApiController {
+ @GetMapping("/health")
@ApiResponse(responseCode = "200", description = "dRAGon app is alive.")
@Operation(summary = "Check dRAGon app health", description = "Returns a simple message to confirm that the app is alive.")
public String health() {
diff --git a/backend/src/main/java/ai/dragon/controller/api/app/InfoAppApiController.java b/backend/src/main/java/ai/dragon/controller/api/app/InfoAppApiController.java
new file mode 100644
index 00000000..29914fea
--- /dev/null
+++ b/backend/src/main/java/ai/dragon/controller/api/app/InfoAppApiController.java
@@ -0,0 +1,22 @@
+package ai.dragon.controller.api.app;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import ai.dragon.util.VersionUtil;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.tags.Tag;
+
+@RestController
+@RequestMapping("/api/app/info")
+@Tag(name = "App Information", description = "Information about the dRAGon app.")
+public class InfoAppApiController {
+ @GetMapping("/version")
+ @ApiResponse(responseCode = "200", description = "dRAGon app version.")
+ @Operation(summary = "Get dRAGon app version", description = "Returns the version of the dRAGon app.")
+ public String version() {
+ return VersionUtil.getVersion();
+ }
+}
diff --git a/backend/src/main/java/ai/dragon/listener/DragonApplicationListener.java b/backend/src/main/java/ai/dragon/listener/DragonApplicationListener.java
index e41bb3df..65f13d18 100644
--- a/backend/src/main/java/ai/dragon/listener/DragonApplicationListener.java
+++ b/backend/src/main/java/ai/dragon/listener/DragonApplicationListener.java
@@ -38,7 +38,7 @@ private void showAppURLs() {
System.out.println("================================================");
System.out.println(String.format("APP URL\t\t : %s://%s:%d/", scheme, host, port));
System.out.println(String.format("Swagger UI\t : %s://%s:%d/api/swagger-ui.html", scheme, host, port));
- System.out.println(String.format("JobRunr\t\t : %s://%s:%d/", scheme, host, 1984));
+ System.out.println(String.format("JobRunr\t\t : %s://%s:%d/", scheme, host, 8519));
System.out.println("================================================");
}
}
diff --git a/backend/src/main/resources/application-prod.yaml b/backend/src/main/resources/application-prod.yaml
index a55d578a..b11f07a5 100644
--- a/backend/src/main/resources/application-prod.yaml
+++ b/backend/src/main/resources/application-prod.yaml
@@ -22,7 +22,7 @@ org:
enabled: true
dashboard:
enabled: true
- port: 1984
+ port: 8519
jobs:
default-number-of-retries: 10 # Number of retries for a failing job
retry-back-off-time-seed: 3 # Time seed for the exponential back-off policy
diff --git a/backend/src/main/resources/application.yaml b/backend/src/main/resources/application.yaml
index 5941a338..8a6cad34 100644
--- a/backend/src/main/resources/application.yaml
+++ b/backend/src/main/resources/application.yaml
@@ -32,7 +32,7 @@ org:
enabled: true
dashboard:
enabled: true
- port: 1984
+ port: 8519
jobs:
default-number-of-retries: 10 # Number of retries for a failing job
retry-back-off-time-seed: 3 # Time seed for the exponential back-off policy
diff --git a/backend/src/test/java/ai/dragon/controller/api/raag/OpenAiCompatibleV1ApiControllerTest.java b/backend/src/test/java/ai/dragon/controller/api/raag/OpenAiCompatibleV1ApiControllerTest.java
index fd5520c9..866d6fd1 100644
--- a/backend/src/test/java/ai/dragon/controller/api/raag/OpenAiCompatibleV1ApiControllerTest.java
+++ b/backend/src/test/java/ai/dragon/controller/api/raag/OpenAiCompatibleV1ApiControllerTest.java
@@ -58,7 +58,7 @@ static void beforeAll(@Autowired FarmRepository farmRepository,
// OpenAI settings for RaaG
String apiKeySetting = String.format("apiKey=%s", System.getenv("OPENAI_API_KEY"));
- String modelNameSetting = "modelName=gpt-4o";
+ String modelNameSetting = "modelName=gpt-3.5-turbo"; // TODO Migrate to gpt-4o-mini when reliable
// Farm with no silo
FarmEntity farmWithoutSilo = new FarmEntity();
diff --git a/docs/.gitignore b/docs/.gitignore
deleted file mode 100644
index 6da97d92..00000000
--- a/docs/.gitignore
+++ /dev/null
@@ -1,23 +0,0 @@
-# Dependencies
-/node_modules
-package-lock.json
-pnpm-lock.yaml
-
-# Production
-/build
-dist
-
-# Generated files
-.docusaurus
-.cache-loader
-
-# Misc
-.DS_Store
-.env.local
-.env.development.local
-.env.test.local
-.env.production.local
-
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
diff --git a/docs/README.md b/docs/README.md
deleted file mode 100644
index 9ba9f527..00000000
--- a/docs/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# Website
-
-dRAGon documentation is built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
-
-### Installation
-
-```
-$ yarn
-```
-
-### Local Development
-
-```
-$ yarn start
-```
-
-This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
-
-### Build
-
-```
-$ yarn build
-```
-
-This command generates static content into the `build` directory and can be served using any static contents hosting service.
-
diff --git a/docs/babel.config.js b/docs/babel.config.js
deleted file mode 100644
index e00595da..00000000
--- a/docs/babel.config.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
-};
diff --git a/docs/build.gradle b/docs/build.gradle
index 6a875c24..910b52c1 100644
--- a/docs/build.gradle
+++ b/docs/build.gradle
@@ -1,6 +1,5 @@
plugins {
id 'com.github.node-gradle.node' version '7.0.2'
- id 'org.openapi.generator' version '7.5.0'
}
ext {
@@ -22,38 +21,3 @@ task test(type: NpmTask) {
outputs.dir("dist")
args = ['run', 'build']
}
-
-task buildOpenApiMarkdownDocs(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask) {
- dependsOn(':backend:generateOpenApiDocs')
- generatorName.set("markdown")
- inputSpecRootDirectory.set("$backendBuildDir/docs/api")
- cleanupOutput.set(true)
- outputDir.set("$backendBuildDir/docs/api/markdown")
- doFirst {
- delete "$backendBuildDir/docs/api/markdown"
- }
- doLast {
- delete "docs/api/specification"
- copy {
- from("$backendBuildDir/docs/api/markdown")
- into("docs/api/specification")
- filter {
- String line -> line
- .replace("[**Map**](../Models/object.md)", "**Map**")
- .replace("[**Object**](.md)", "**object**")
- .replace("{uuid}", "\\{uuid\\}")
- .replace("http://localhost:8080", "http://localhost:1985")
- .replace("# Documentation for merged spec", "# Specification")
- }
- }
- delete "docs/api/specification/.openapi-generator"
- delete "docs/api/specification/.openapi-generator-ignore"
- delete "static/openapi"
- copy {
- from("$backendBuildDir/docs/api") {
- include 'swagger-*.json'
- }
- into("static/openapi")
- }
- }
-}
\ No newline at end of file
diff --git a/docs/docs/about-dragon/README.mdx b/docs/docs/about-dragon/README.mdx
deleted file mode 100644
index 7def2c26..00000000
--- a/docs/docs/about-dragon/README.mdx
+++ /dev/null
@@ -1,28 +0,0 @@
-# About dRAGon
-:::note
- dRAGon (Dynamic Retrieval Augmented Generation for Optimized Nimble) is a versatile Retrieval-Augmented Generation (RAG) engine that enhances the capabilities of Language Model-based applications.
-
- By enabling comprehensive searches across various document types, dRAGon generates high-quality answers that improve decision-making processes for individuals, organizations, and enterprises.
-
- Our platform empowers multiple technologies, including JavaScript, Java, Docker, and AI frameworks like LangChain4j, making it a robust tool for diverse use cases.
-
- As an open-source project, dRAGon encourages community participation, allowing users to fork, extend, and contribute to its development. This collaborative approach ensures continuous improvement and widespread access to cutting-edge information retrieval technology.
-
- Join us in building a smarter, more connected world through dRAGon.
-:::
-
-## Technical Stack
-### Backend
-* Java 17
-* Spring Boot 3 / Spring Framework 6
-* LangChain4j
-* Nitrite
-
-### Frontend
-* Vue.js 3
-* Vite
-* PrimeVue
-
-### Other
-* Docker
-* Dev Container
\ No newline at end of file
diff --git a/docs/docs/about-dragon/_category_.yml b/docs/docs/about-dragon/_category_.yml
deleted file mode 100644
index 06bdb300..00000000
--- a/docs/docs/about-dragon/_category_.yml
+++ /dev/null
@@ -1 +0,0 @@
-label: 'About dRAGon'
\ No newline at end of file
diff --git a/docs/docs/about-dragon/glossary/_category_.yml b/docs/docs/about-dragon/glossary/_category_.yml
deleted file mode 100644
index ec60e629..00000000
--- a/docs/docs/about-dragon/glossary/_category_.yml
+++ /dev/null
@@ -1 +0,0 @@
-label: 'Glossary'
\ No newline at end of file
diff --git a/docs/docs/about-dragon/glossary/farm.mdx b/docs/docs/about-dragon/glossary/farm.mdx
deleted file mode 100644
index 87191727..00000000
--- a/docs/docs/about-dragon/glossary/farm.mdx
+++ /dev/null
@@ -1,27 +0,0 @@
----
-sidebar_position: 2
----
-import WIPS from '../../../src/components/Admonitions/_wip_section.mdx';
-
-# What's a Farm?
-In dRAGon land, a Farm is a collection of Silos :
-```mermaid
-flowchart LR
- Request-->Router
- subgraph farm1 [Farm]
- Router-->Silo1
- Router-->Silo2
- Router-->SiloN
- click Silo1 href "/docs/about-dragon/glossary/silo" "What's a Silo?"
- click Silo2 href "/docs/about-dragon/glossary/silo" "What's a Silo?"
- click SiloN href "/docs/about-dragon/glossary/silo" "What's a Silo?"
- end
- Silo1-->Response
- Silo2-->Response
- SiloN-->Response
-```
-
-:::note
-* You can aggregate multiple kind of Silos in a Farm, for example, you can have a Silo for your documents about your products, another Silo for your blog posts (extracted from URLs of a WordPress blog), and another Silo for Frequently Asked Questions (FAQs).
-* There is no limit to the number of Silos you can have in a Farm, but you should keep in mind that the more Silos you have, the more time it will take to process the requests.
-:::
\ No newline at end of file
diff --git a/docs/docs/about-dragon/glossary/raag.mdx b/docs/docs/about-dragon/glossary/raag.mdx
deleted file mode 100644
index 61061175..00000000
--- a/docs/docs/about-dragon/glossary/raag.mdx
+++ /dev/null
@@ -1,113 +0,0 @@
----
-sidebar_position: 3
----
-import WIPS from '../../../src/components/Admonitions/_wip_section.mdx';
-
-# What's RaaG?
-Ever wanted to have a chat with a LLM (Large Language Model) like GPT-4o, but with the ability to ask it questions about your data? RaaG is the answer to your needs!
-
-RaaG is the acronyme for "RAG as a GPT"
-
-## Why do we need dRAGon RaaG?
-You can already use LangChain or LlamaIndex to query your data, so why do you need RaaG?
-
-As you know, a typical RAG application is composed of two main components with each several sub-tasks :
-1. **Indexing**: This involves the offline process of ingesting data from a source and indexing it.
- 1. **Load**: The data is loaded using Document Loaders.
- 2. **Split**: The loaded data is divided into smaller chunks using Document Splitters.
- 3. **Store**: The chunks are stored and indexed for future searching, typically utilizing a VectorStore and an Embeddings model.
-2. **Retrieval and Generation**: This is the core RAG chain that operates during runtime, handling user queries.
- 1. **Retrieve**: Relevant data chunks are fetched from the storage in response to a user query using a Retriever.
- 2. **Generate**: A ChatModel/LLM generates an answer by incorporating the user query and the retrieved data into a prompt.
-
-Let's say you want to build a RAG pipeline using LangChain: You would need to write code to handle each of these sub-tasks, which can be quite complex and time-consuming.
-
-## How does dRAGon RaaG simplify the process?
-So instead of having an app code like this :
-```python
-from langchain import hub
-from langchain_postgres.vectorstores import PGVector
-from langchain_community.document_loaders import WebBaseLoader
-from langchain_core.output_parsers import StrOutputParser
-from langchain_core.runnables import RunnablePassthrough
-from langchain_openai import OpenAIEmbeddings
-from langchain_text_splitters import RecursiveCharacterTextSplitter
-from langchain_openai import ChatOpenAI
-
-os.environ["OPENAI_API_KEY"] = "YOUR_API_KEY"
-
-loader = WebBaseLoader(
- web_paths=("https://dragon.okinawa")
-)
-docs = loader.load()
-
-text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
-splits = text_splitter.split_documents(docs)
-
-connection = "postgresql+psycopg://user:paswword@server:5433/vectors"
-collection_name = "my_rag_chunks"
-embeddings = OpenAIEmbeddings()
-
-vectorstore = PGVector(
- embeddings=embeddings,
- collection_name=collection_name,
- connection=connection,
- use_jsonb=True,
-)
-
-retriever = vectorstore.as_retriever()
-prompt = hub.pull("rlm/rag-prompt")
-
-def format_docs(docs):
- return "\n\n".join(doc.page_content for doc in docs)
-
-llm = ChatOpenAI(model="gpt-4o")
-
-rag_chain = (
- {"context": retriever | format_docs, "question": RunnablePassthrough()}
- | prompt
- | llm
- | StrOutputParser()
-)
-
-rag_chain.invoke("What's dRAGon?")
-```
-
-You will simply use the following code with a dRAGon powered RAG pipeline :
-```python
-from langchain_openai import OpenAI
-
-llm = OpenAI(
- model_name="your-dragon-raag-farm-name",
- openai_api_base="http://your.dragon.host:1985/api/raag/v1",
-)
-
-prompt = "What's dRAGon?"
-llm.invoke(prompt)
-```
-
-dRAGon simplifies the process of building a RAG pipeline by providing a single interface to manage all these components by providing an OpenAI API compliant endpoint to interact with your RAG pipeline.
-
-## Components involved in dRAGon RaaG
-```mermaid
-flowchart LR
- request[Chat Request] --> endpoint
- subgraph raag1 [RaaG]
- endpoint[OpenAI Compliant Endpoint] --> Router
- subgraph farm1 [Farm]
- Router-->Silo1
- Router-->Silo2
- Router-->SiloN
- click Silo1 href "/docs/about-dragon/glossary/silo" "What's a Silo?"
- click Silo2 href "/docs/about-dragon/glossary/silo" "What's a Silo?"
- click SiloN href "/docs/about-dragon/glossary/silo" "What's a Silo?"
- end
- end
- Silo1-->Response
- Silo2-->Response
- SiloN-->Response
-```
-
-## Tutorials
-* [LangChain : Chat with a Farm](/docs/tutorials/raag-api/raag-api-farm-chat-python-langchain-client)
-* [FAQ : SQL Ingestor as a RAG Data Provider](/docs/tutorials/raag-api/raag-faq-sql-ingestor)
\ No newline at end of file
diff --git a/docs/docs/about-dragon/glossary/silo.mdx b/docs/docs/about-dragon/glossary/silo.mdx
deleted file mode 100644
index 53ff0190..00000000
--- a/docs/docs/about-dragon/glossary/silo.mdx
+++ /dev/null
@@ -1,28 +0,0 @@
----
-sidebar_position: 1
----
-import WIPS from '../../../src/components/Admonitions/_wip_section.mdx';
-
-# What's a Silo?
-This entity is designed to store and retrieve chunks, the result of embeddings of documents. It is the basic building block of dRAGon.
-
-A Silo is composed of three main components :
-```mermaid
-flowchart LR
- subgraph silo1 [Silo]
- IngestorLoader
- EmbeddingModel
- VectorStore
- end
-```
-
-## How does it work?
-The Ingestor Loader is responsible for loading the documents into the Silo : it can be done by reading files in a directory or by providing URLs.
-After the documents are loaded they are split into chunks (eg. paragraphs, sentences, etc.) by the Silo Splitter.
-Each chunk is then transformed into a vector by the Embedding Model, which is then stored in the Vector Store for later retrieval.
-```mermaid
-flowchart TB
- IngestorLoader-- Load files over file system, URLs, ... -->DocumentSplitter
- DocumentSplitter-- Split documents into chunks -->EmbeddingModel
- EmbeddingModel-- Vectorize each chunk for retrieval similarity -->VectorStore
-```
\ No newline at end of file
diff --git a/docs/docs/api/_category_.yml b/docs/docs/api/_category_.yml
deleted file mode 100644
index 30db0755..00000000
--- a/docs/docs/api/_category_.yml
+++ /dev/null
@@ -1 +0,0 @@
-label: 'API'
\ No newline at end of file
diff --git a/docs/docs/api/introduction.mdx b/docs/docs/api/introduction.mdx
deleted file mode 100644
index 7eb12ef5..00000000
--- a/docs/docs/api/introduction.mdx
+++ /dev/null
@@ -1,18 +0,0 @@
-import WIPS from '../../src/components/Admonitions/_wip_section.mdx';
-
-# Introduction
-
{description}
-{siteConfig.tagline}
-