How refone/tiny-rag works
Shop Assistant Agent ingests PDF and Markdown documents into a searchable knowledge base, then answers user queries using vectorization, three-way retrieval, and generation. The documented import graph routes PDFs through MinerU, processes Markdown images, splits and recognizes content, then embeds and persists it. Shared configuration, model, storage, and tracing modules support these stages. The query, API, and web implementations are not present in the sampled source; query stages are shown only at the level documented in the README.
Main entry points: main_graph.py Import workflow · node_md_img.py Image processing · node_entry.py File detection · node_pdf_to_md.py PDF conversion
Components 24
Document ingestion
- Import workflow
src/processor/import_processor/main_graph.py - Import state
src/processor/import_processor/state.py - File detection
src/processor/import_processor/nodes/node_entry.py - PDF conversion
src/processor/import_processor/nodes/node_pdf_to_md.py - Image processing
src/processor/import_processor/nodes/node_md_img.py - Document splitting
src/processor/import_processor/nodes/node_document_split.py - Item recognition
src/processor/import_processor/nodes/node_item_name_recognize.py - Embedding
src/processor/import_processor/nodes/node_bge_embedding.py - Vector persistence
src/processor/import_processor/nodes/node_upsert_milvus.py
Query answering
- Query vectorization
src/processor/query_processor - Three-way retrieval
src/processor/query_processor - Answer generation
src/processor/query_processor
Shared services
- Vision-language model
src/common/model/vlm.py - Image object storage
src/common/client/minio_client.py - Environment config
src/common/config/env_config.py - Application config
src/common/config/app_config.py - Document types
src/common/enum/doc_type.py - Prompt loading
src/common/prompt/load_prompt.py
Runtime infrastructure
- Node tracing
src/utils/node_utils.py - Task tracking
src/utils/task_utils.py - Logging
src/utils/logging_utils.py
Other components
- Assistant user
- MinerU service
- Milvus
Connections 27
- Import workflow → File detection: dispatches first
src/processor/import_processor/main_graph.py - Import workflow → PDF conversion: routes PDFs
src/processor/import_processor/main_graph.py - Import workflow → Image processing: routes Markdown
src/processor/import_processor/main_graph.py - Import workflow → Document splitting: dispatches after images
src/processor/import_processor/main_graph.py - Import workflow → Item recognition: dispatches after split
src/processor/import_processor/main_graph.py - Import workflow → Embedding: dispatches after recognition
src/processor/import_processor/main_graph.py - Import workflow → Vector persistence: dispatches after embedding
src/processor/import_processor/main_graph.py - File detection → Import state: updates
src/processor/import_processor/nodes/node_entry.py - PDF conversion → MinerU service: uploads and polls
src/processor/import_processor/nodes/node_pdf_to_md.py - PDF conversion → Import state: writes Markdown path
src/processor/import_processor/nodes/node_pdf_to_md.py - Image processing → Vision-language model: requests image summaries
src/processor/import_processor/nodes/node_md_img.py - Image processing → Prompt loading: loads image prompt
src/processor/import_processor/nodes/node_md_img.py - Image processing → Image object storage: uploads images
src/processor/import_processor/nodes/node_md_img.py - Image processing → Application config: checks image formats
src/processor/import_processor/nodes/node_md_img.py - Image processing → Import state: reads and updates
src/processor/import_processor/nodes/node_md_img.py - Vector persistence → Milvus: persists vectors
README.md - Assistant user → Query vectorization: submits query
README.md - Query vectorization → Three-way retrieval: provides query vectors
README.md - Three-way retrieval → Milvus: retrieves matches
README.md - Three-way retrieval → Answer generation: provides retrieved context
README.md - Answer generation → Assistant user: returns answer
README.md - Vision-language model → Environment config: reads model settings
src/common/model/vlm.py - Image object storage → Environment config: reads storage settings
src/common/client/minio_client.py - File detection → Document types: detects file type
src/processor/import_processor/nodes/node_entry.py - Node tracing → Task tracking: records node status
src/utils/node_utils.py - Node tracing → Logging: logs node activity
src/utils/node_utils.py - Logging → Environment config: reads logging settings
src/utils/logging_utils.py