本地多模态RAG系统

一个支持多模态嵌入、对话记忆和原生工具调用的本地RAG系统,适用于文档处理、知识管理和自动化任务。

  • by cookkie03
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 cookkie03/mcp-rag-system

使用说明

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 直接读取
PDF .PDF 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