How prshntkrr/rag_pipe works
This repository is a FastAPI document-ingestion and retrieval-augmented generation (RAG) API. Its main workflows accept documents for ingestion into a vector store, then embed user questions, retrieve relevant chunks, generate answers, return source references, and log query outcomes. Collection management and query analytics are additional product areas visible in the tree. The ingestion and query paths are grounded in sampled source; several collection, analytics, and provider-factory internals are represented by their exact tree paths, but their detailed wiring was not sampled.
Main entry points: ingestion_service.py Ingestion service · query_service.py Query service · main.py FastAPI app · collection.py Collection API
Components 28
API entry points
- FastAPI app
app/main.py - Document API
app/api/document.py - Query API
app/api/query.py - Collection API
app/api/collection.py - Collection services
app/services/collection_service.py - Document collection service
app/services/collection_document_service.py
Document ingestion
- Ingestion service
app/services/ingestion_service.py - Document loaders
app/loaders/loader_factory.py - Chunk splitter
app/chunking/splitter.py - Embedding factory
app/embeddings/embedding_factory.py - Embedding providers
app/embeddings/openai_embedding.py
Retrieval and answers
- Query service
app/services/query_service.py - Retriever
app/retrieval/retriever.py - Prompt builder
app/prompts/prompt_builder.py - OpenAI service
app/llm/openai_service.py - Retrieval service
app/services/retrieval_service.py
Persistence and integrations
- S3 service
app/services/s3_service.py - Vector DB factory
app/vectordb/vectordb_factory.py - Chroma vector store
app/vectordb/chroma_service.py - Query log repository
app/repositories/rag_query_repository.py - Query log model
app/models/rag_query_log.py - Collection repository
app/repositories/collection_repository.py - Collection-document repository
app/repositories/collection_document_repository.py - Query analytics
app/services/analytics_service.py
Other components
- API client
- Amazon S3
- OpenAI API
- SQL database
Connections 24
- API client → FastAPI app: sends requests
- FastAPI app → Document API: registers router
- FastAPI app → Query API: registers router
- FastAPI app → Collection API: registers router
- Query API → Query service: calls ask
- Query service → Retriever: retrieves matches
- Query service → Prompt builder: builds prompt
- Query service → OpenAI service: generates answer
- Query service → Query log repository: writes query log
- Retriever → Embedding factory: embeds question
- Retriever → Vector DB factory: searches vectors
- OpenAI service → OpenAI API: invokes model
- Query log repository → SQL database: commits and queries
- Ingestion service → S3 service: downloads file
- S3 service → Amazon S3
- Ingestion service → Document loaders: loads document
- Ingestion service → Chunk splitter: splits pages
- Ingestion service → Embedding factory: embeds chunks
- Ingestion service → Vector DB factory: stores vectors
- Collection API → Collection services
- Collection API → Document collection service
- Collection services → Collection repository
- Document collection service → Collection-document repository
- Query analytics → Query log repository