How ooo1208/ai-rag-knowledge works
This is a Spring-based chat and retrieval-augmented generation service. Users can generate chat responses through Ollama or OpenAI, or upload files/import a Git repository into tagged knowledge collections and ask questions against them. The RAG controller owns ingestion and retrieval; chat controllers own model calls. Source excerpts show the Ollama and OpenAI RAG paths, Redis tag tracking, and PostgreSQL vector storage. The tree also contains configuration for an in-memory vector store, but the sampled ingestion and RAG query methods use PgVectorStore. No README was provided, so capability coverage is based on the sampled controllers and tree.
Main entry points: RAGController.java RAG controller · OllamaConfig.java PgVector store · OllamaController.java Ollama controller · OpenAiController.java OpenAI controller
Components 18
HTTP interfaces
- RAG controller
ooo1208-trigger/src/main/java/io/github/ooo1208/http/RAGController.java - Ollama controller
ooo1208-trigger/src/main/java/io/github/ooo1208/http/OllamaController.java - OpenAI controller
ooo1208-trigger/src/main/java/io/github/ooo1208/http/OpenAiController.java
Knowledge ingestion and retrieval
- Document parsing
ooo1208-trigger/src/main/java/io/github/ooo1208/http/RAGController.java - Text splitting
ooo1208-trigger/src/main/java/io/github/ooo1208/http/RAGController.java - Context retrieval
ooo1208-trigger/src/main/java/io/github/ooo1208/http/OllamaController.java - Context retrieval
ooo1208-trigger/src/main/java/io/github/ooo1208/http/OpenAiController.java
Chat and embeddings
- Ollama chat model
ooo1208-app/src/main/java/io/github/ooo1208/config/OllamaConfig.java - OpenAI chat model
ooo1208-trigger/src/main/java/io/github/ooo1208/http/OpenAiController.java - Embedding models
ooo1208-app/src/main/java/io/github/ooo1208/config/OllamaConfig.java
Persistence and runtime
- PgVector store
ooo1208-app/src/main/java/io/github/ooo1208/config/OllamaConfig.java - Redis client config
ooo1208-app/src/main/java/io/github/ooo1208/config/RedisClientConfig.java - Redis tag list
- PostgreSQL pgvector
Other components
- API client
- Ollama service
- OpenAI service
- Git repository
Connections 23
- API client → RAG controller: uploads / queries
- API client → Ollama controller: chat requests
- API client → OpenAI controller: chat requests
- RAG controller → Document parsing: parses content
- RAG controller → Text splitting: splits documents
- RAG controller → PgVector store: writes chunks
- RAG controller → Redis tag list: reads / writes tags
- RAG controller → Git repository: clones repository
- RAG controller → Redis client config: uses client
- Redis client config → Redis tag list: connects
- PgVector store → Embedding models: embeds stored text
- PgVector store → PostgreSQL pgvector: persists vectors
- Ollama controller → Context retrieval: retrieves context
- Context retrieval → PgVector store: similarity search
- Ollama controller → Ollama chat model: streams response
- Ollama chat model → Ollama service: calls model
- OpenAI controller → Context retrieval: retrieves context
- Context retrieval → PgVector store: similarity search
- OpenAI controller → OpenAI chat model: calls model
- OpenAI chat model → OpenAI service: calls model
- Ollama controller → API client: returns response
- OpenAI controller → API client: returns response
- RAG controller → API client: returns result