How princebansal21/chatbot works
This is a cloud-agnostic document ingestion and retrieval-augmented generation service. Its main workflow accepts an indexing payload, resolves document and strategy configuration, converts and processes the source, chunks and embeds its content, then indexes vectors; optional image and graph-knowledge-base processing enriches that path. Retrieval strategies and model adapters provide separate capabilities. The graph emphasizes relationships visible in the excerpts or SOURCE INDEX; the README is empty, and several subsystem implementations were not sampled, so uncertain links are omitted.
Main entry points: app.py Pipeline entry · document_processor.py Document processor · indexing_orchestrator.py Index orchestration · graph_service.py Graph knowledge service
Components 26
Ingestion
- Pipeline entry
app.py
Content Processing
- Document fetch
services/document/document_fetcher.py - Document processor
services/document/document_processor.py - Markdown conversion
services/document/markdown.py - Image processing
services/image/image_extractor.py - Image chunk generation
services/image/image_chunk_generator.py - Markdown image embedding
services/image/markdown_image_embedder.py - Markdown repository
services/document/document_processor.py
Indexing
- Index orchestration
services/indexing/indexing_orchestrator.py - Chunking
services/indexing/chunking.py - Embedding
services/indexing/embedding.py - Vector indexing
services/indexing/vectordb_indexer.py
RAG Capabilities
- Graph knowledge service
services/graph_service.py - Entity extraction
rag_lib/adapters/entity_extraction/__init__.py - Entity resolution
rag_lib/adapters/entity_extraction/entity_resolver.py - Graph storage adapter
rag_lib/adapters/graph/__init__.py - Retrieval strategies
rag_lib/adapters/retriever/standard_retriever.py - Hybrid retrieval
rag_lib/adapters/retriever/hybrid_retriever.py - Hierarchical retrieval
rag_lib/adapters/retriever/hierarchical_retriever.py - Graph retrieval
rag_lib/adapters/retriever/graph_retriever.py
Configuration and Adapters
- Strategy resolution
services/config/strategy_resolver.py - File type config
services/config/file_type_config_resolver.py - Adapter factory
rag_lib/factory.py
Other components
- Ingestion caller
- Vector database
- Cloud services
Connections 27
- Ingestion caller → Pipeline entry: submits payload
- Pipeline entry → Strategy resolution: resolves strategies
app.py - Pipeline entry → Document processor: processes document
app.py - Pipeline entry → Index orchestration: indexes content
app.py - Pipeline entry → Graph knowledge service: uses graph service
app.py - Strategy resolution → File type config: resolves file type
services/config/strategy_resolver.py - Strategy resolution → Adapter factory: selects adapters
services/config/strategy_resolver.py - Document processor → Document fetch: fetches source
services/document/document_processor.py - Document processor → Markdown conversion: converts content
services/document/document_processor.py - Document processor → Image processing: uses image services
services/document/document_processor.py - Document processor → Markdown repository: stores markdown
services/document/document_processor.py - Index orchestration → Chunking: creates chunks
services/indexing/indexing_orchestrator.py - Index orchestration → Embedding: creates embeddings
services/indexing/indexing_orchestrator.py - Index orchestration → Vector indexing: indexes chunks
services/indexing/indexing_orchestrator.py - Index orchestration → Image chunk generation: uses image chunks
services/indexing/indexing_orchestrator.py - Embedding → Adapter factory: creates embedder
services/indexing/embedding.py - Vector indexing → Vector database: writes vectors
- Image processing → Image chunk generation: supports extraction
- Markdown image embedding → Image chunk generation: enriches images
- Graph knowledge service → Entity extraction: extracts entities
services/graph_service.py - Graph knowledge service → Entity resolution: resolves entities
services/graph_service.py - Graph knowledge service → Graph storage adapter: stores graph data
services/graph_service.py - Retrieval strategies → Vector database: retrieves chunks
- Hybrid retrieval → Vector database: searches vectors
- Hierarchical retrieval → Vector database: fetches parents
- Graph retrieval → Graph storage adapter: queries graph
- Adapter factory → Cloud services: configures providers