使用说明
RAG系统-本地多模RAG+存储器
本地 RAG 系统,具有多模式嵌入、会话内存 (mem0) 和原生工具调用。
建筑
main.py (entry point)
├── chat.py → Chat ricorsiva con tool calling (LLM sceglie i tool)
│ ├── llm.py → Client OpenAI-compatible (Ollama, LM Studio, vLLM, ecc.)
│ ├── search.py → Ricerca semantica + reranking (Jina Reranker v2)
│ ├── memory.py → mem0 (memoria conversazionale + knowledge base)
│ └── markdown_writer.py → Generazione/editing file .md
├── ingest.py → Indicizzazione documenti (RAG + mem0)
│ └── extractors.py → dots.ocr (PDF/img), Whisper (audio), ecc.
└── config.yaml → Configurazione centralizzata unica
特性
- 全部本地法学硕士,嵌入式,数据,内存 - 零云依赖
- 工具调用nativoLLM自主决定何时使用RAG,内存或创建文件
- 双嵌入多模名称:v4(主要) + NVIDIA Nemotron(次要)
- mem0内存与 RAG 知识库共享的持久内存
- dots.ocr多语种支持意大利语和英语
- Whisper涡轮增压器音频转录
- 重新排序Jina Reranker v2 自适应门槛
- Markdown 生成按需创建/编辑 .md 文件
- 灵活配置:混合di
config.yaml环境变量(.env) - 生成文件简化所有流程的管理
快速开始
1. 初始设置
# Configura l'ambiente
cp .env.example .env
# Avvia i servizi (Qdrant + Ollama) e scarica i modelli LLM
make install
2. 索引和聊天
# Metti i tuoi file in ./data/ e indicizzali
make ingest
# Avvia la chat interattiva
make chat
使用
快速命令(Makefile)
| Comando | Descrizione |
|---|---|
make install |
初始设置:启动服务并下载模板 |
make start 启动服务(如果已安装) |
|
make ingest 将新文档索引到 ./data/ |
|
make chat 启动聊天界面。 |
|
make status |
显示矢量数据库统计 |
make stop 停止所有服务 |
|
make clean 删除容器,卷和生成的文件。 |
CLI 快速搜索
您可以在不使用聊天功能的情况下进行快速搜索:
make search QUERY="tua domanda"
聊天命令
在聊天中(make chat您可以使用以下命令:
| Comando | Descrizione |
|---|---|
/help 显示命令列表。 |
|
/stats 系统统计。 |
|
/sources 索引文件列表 |
|
/save <n> 将对话保存到标记文件 |
|
/memory 查看存储在长期记忆中的事实 |
|
/clear 重置当前对话的上下文。 |
|
/exit |
Chiude la sessione |
配置
系统使用层次结构。环境变量优先于 config.yaml.
环境变量 (.env)
| 变量 | 描述 | Default (config.yaml) |
|---|---|---|
LLM_API_KEY |
每个LLM的API密钥 | ollama |
LLM_BASE_URL |
Endpoint API OpenAI兼容 | http://ollama:11434/v1 |
LLM_MODEL 要使用的LLM模型 qwen3.5:4b |
||
QDRANT_HOST |
主机di Qdrant | qdrant |
QDRANT_PORT |
Port di Qdrant | 6333 |
QDRANT_URL |
完整的 Qdrant URL (例如 Cloud) | - |
DOCUMENTS_PATH |
文件夹路径 | ./data |
OUTPUT_PATH 标记输出文件夹路径 ./output |
文件config.yaml
其余的都可以配置为 config.yaml:
- 嵌入:双模式(Jina v4/Nemotron),modalita自动/主/辅
- 搜索:Top-k,阈值adattivo,重新评级Jina v2
- 记忆mem0 使用 Qdrant + 本地查看器
- 光学字符识别引擎和语言配置(默认:
en,it) - 扩展按类别支持的文件格式
技术堆栈
| Componente | Tecnologia |
|---|---|
| LLM | 兼容Qualsiasi OpenAI(Ollama、LM Studio、vLLM) |
| 嵌入 | Jina v4(1024D)/NVIDIA Nemotron(4096D) |
| 重新排名 | Jina Reranker v2多语言版 |
| 矢量数据库 | Qdrant |
| Memoria | mem0 |
| OCR | dots.OCR(红色音符hilab) |
| 音频 | 耳语涡轮增压 |
| 框架 | DataPizza |
支持的格式
| Categoria | Estensioni | Estrazione |
|---|---|---|
| Testo/Codice | .txt,.md,.py,.js,.ts,.json,.yaml,.html,.css,.csv,.java,.cpp,.go,.rb,.php,.sh,.sql | 直接读取 |
| dots.ocr | ||
| Immagini | .png, .jpg, .jpeg, .gif, .bmp, .tiff, .webp | dots.ocr |
| 音频 | .mp3、.m4a、.opus、.wav、.ogg、.flac | 耳语涡轮 |
| 视频 | .mp4、.mkv、.avi、.mov、.webm | 耳语(音频)+dots.ocr(关键帧) |
| Notebook | .ipynb | 解析JSON单元格 |
| Excel | .xlsx、.xls | openpyxl |
| Presentazioni | .pptx | python-pptx |