MCP-自动文档排序
使用的自动文档排序系统 工具调用 等等 模型上下文协议(MCP) 智能地组织您的文件。
双重利用模式:
| 模式 | LLM | 协议 | 先决条件 |
|---|---|---|---|
| 流光灯+双子座 | Gemini(小费) | 函数调用 | Python+Ollama |
| 克劳德桌面+MCP | Claude(Anthropic) | MCP标准 | Docker+Ollama+Claude桌面 |
______________________________________________________________________
选项1:Streamlit+Gemini(免费)
具有Gemini(Google AI)及其本机调用功能的web界面。切换基线/MCP进行比较。
先决条件
- Python 3.10+ 已安装
- 奥拉玛 已安装并正在运行
- CléAPI Gemini (免费): 转到Google AI Studio
安装
# 1. Cloner le projet
git clone https://github.com/Tytyaz2/Projet_NLP_MCP.git
cd Projet_NLP_MCP
# 2. Créer un environnement virtuel
python -m venv venv
# Windows PowerShell :
.\venv\Scripts\Activate.ps1
# Windows CMD :
.\venv\Scripts\activate.bat
# Linux/Mac :
source venv/bin/activate
# 3. Installer les dépendances
pip install -r requirements_streamlit.txt
# 4. Configurer l'environnement
cp .env.example .env
# Éditer .env et ajouter votre GEMINI_API_KEY发射
# Terminal 1 : Lancer Ollama
ollama serve
# Terminal 2 : Lancer l'application
.\venv\Scripts\python.exe -m streamlit run streamlit_app.py应用程序打开 http://localhost:8501
使用
- 粘贴您的Gemini API密钥 在侧边栏中
- 模式基线 (默认):提问,人工智能无需工具(如ChatGPT)即可回答
- 活性MCP :切换切换以访问分类工具
- 排序文件 (启用MCP模式):使用 chemins Windows absolus :
- *“解析文件C:/users/user/documents/report.pdf”* - *“排序文件夹C:/users/user/downloads”* - *“在干运行模式下排序C:/users/user/desktop”* (无移动模拟)
重要 :在Streamlit模式下,使用 实际Windows路径 (例如: C:/Users/VotreNom/Documents).______________________________________________________________________
选项2:Claude桌面+MCP(协议标准)
符合MCP的体系结构,Docker中的FastMCP服务器通过stdio协议连接到Claude桌面。
先决条件
- Docker桌面 安装并启动
- 奥拉玛 已安装并正在运行
- 克劳德桌面版 使用连接的帐户安装
安装
# 1. Construire l'image Docker
cd docker
docker-compose build
# 2. Installer la config Claude Desktop
cd ..
python install_claude_desktop.py
# 3. Redémarrer Claude Desktop (fermer complètement et relancer)使用
在Claude Desktop中,说:
“尝试档案/主页/用户/下载”
“尝试/主页/用户/文档模式模拟运行”
召回 :在Docker模式下,使用路径 /home/user/... (不是Windows路径)。路径匹配(Docker)
| 你的电脑(Windows) | 你对克劳德说了什么 |
|---|---|
C:\Users\VotreNom\Downloads | /home/user/Downloads |
C:\Users\VotreNom\Documents | /home/user/Documents |
C:\Users\VotreNom\Desktop | /home/user/Desktop |
______________________________________________________________________
建筑
模式流光(工具调用)
┌────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Navigateur │ --> │ Streamlit │ --> │ Gemini (Google) │
│ :8501 │ │ streamlit_app │ │ Function Calling │
└────────────┘ └───────┬─────────┘ └─────────────────┘
│
(mode MCP activé)
│
┌───────▼─────────┐
│ Ollama (local) │
│ localhost:11434 │
└─────────────────┘- 双子座 :具有本机功能调用的LLM云(免费,15请求/分钟)
- 奥拉玛 :本地分析文件内容
- 溪流 :界面web交互式
克劳德桌面模式(MCP标准)
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Claude Desktop │ --> │ Docker (MCP) │ --> │ Ollama (local) │
│ (client MCP) │ │ FastMCP server │ │ localhost:11434 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │
protocole MCP protocole stdio
(JSON-RPC 2.0) (stdin/stdout)- 克劳德桌面版 :本机MCP客户端(发送JSON-RPC请求)
- 快速MCP :通过标准协议公开工具的Python MCP服务器
- 码头工人 :MCP服务器隔离和可移植性
- 奥拉玛 :分析电影制作人所在地
______________________________________________________________________
操作模式
| 模式 | 输出 | 描述 | 界面 |
|---|---|---|---|
| 基线 | 禁用 | 简单聊天,无需访问文件。无分析或排序。 | Streamlit(切换) |
| 工具调用 | 启用 | LLM可以调用工具来分析和排序您的文件。 | Streamlit(切换)+Claude桌面 |
- 溪流 :在侧边栏中切换切换。时尚的变化 自动开始新对话.
- 克劳德桌面版 :工具始终可通过MCP服务器使用。
______________________________________________________________________
可用工具
| 工具 | 描述 | 可在 |
|---|---|---|
list_files_to_sort | 列出文件夹中的文件 | Streamlit+Claude Desktop |
analyze_file | 分析文件(类型、日期、关键字) | Streamlit+Claude Desktop |
sort_folder | 自动排序整个文件夹 | Streamlit+Claude Desktop |
group_files | 按类型和主题分组文档 | 仅限Claude桌面 |
apply_file_plan | 应用组织计划 | 仅限Claude Desktop |
______________________________________________________________________
处理管道
[Fichiers bruts]
→ [Extraction contenu (PDF, DOCX, TXT)]
→ [Prétraitement NLP (nettoyage, tokenisation, stemming)]
→ [Analyse LLM (Ollama)]
→ [Classification par type et thème]
→ [Organisation automatique en dossiers]结果示例
先锋:
Downloads/
├── article_retine.pdf
├── article_ia.pdf
├── CV_Martin.pdf
├── facture_edf.pdf
└── rapport_stage.pdf之后:
Downloads/
├── article/
│ ├── medical-retine/
│ │ └── article_retine.pdf
│ └── intelligence-artificielle/
│ └── article_ia.pdf
├── cv/
│ └── CV_Martin.pdf
├── facture/
│ └── facture_edf.pdf
└── rapport/
└── rapport_stage.pdf______________________________________________________________________
配置
环境变量(.env)
cp .env.example .env| 变量 | 描述 | 默认值 | 由 | 使用 |
|---|---|---|---|---|
GEMINI_API_KEY | CléAPI Gemini | - | Streamlit | |
GEMINI_MODEL 双子座模型 | gemini-2.0-flash | 流光灯 | ||
OLLAMA_HOST | URL d’Olama | http://localhost:11434 | 二人组 | |
OLLAMA_MODEL_NAME | 模型Ollama | gpt-oss:20b-cloud | 二人组 |
获取Gemini API密钥(免费)
- 继续 谷歌AI工作室
- 使用Google帐户登录
- 点击 “创建API密钥”
- 复制密钥(格式:
AIzaSy...xxxxx) - 把它粘在
.env或者直接在应用程序的侧边栏中
小费限额:
| 限制 | 值 |
|---|---|
| 请求/分钟 | 15 |
| 请求/天 | 1500 |
配置Ollama
# Installer un modèle (au choix)
ollama pull llama3:latest # Recommandé pour débuter
ollama pull mistral:latest # Alternative légère______________________________________________________________________
项目结构
Projet_NLP_MCP/
├── streamlit_app.py # Interface web Streamlit (Gemini + function calling)
├── .env.example # Configuration (Gemini + Ollama)
├── requirements_streamlit.txt # Dépendances Streamlit
├── requirements.txt # Dépendances MCP (Docker)
├── src/
│ ├── classifier/
│ │ ├── analyzer.py # Extraction + analyse LLM (Ollama)
│ │ ├── preprocessor.py # Pipeline NLP (NLTK)
│ │ └── organizer.py # Regroupement + déplacement
│ ├── mcp/
│ │ └── server.py # Serveur FastMCP
│ └── tools/
│ └── server.py # Outils MCP exposés (5 tools)
├── docker/
│ ├── Dockerfile # Image Docker du serveur MCP
│ └── docker-compose.yml # Orchestration
├── install_claude_desktop.py # Script d'installation Claude Desktop
├── claude_desktop_config.template.json
└── files_to_sort/ # Dossier de test avec fichiers exemples______________________________________________________________________
支持的格式
- PDF(.PDF)
- Word(.docx、.doc)
- 文本(.txt)
- OpenDocument(.odt)
______________________________________________________________________
基线与工具调用的比较
| 标准 | 基线(无工具) | 带工具调用 |
|---|---|---|
| 访问文件 否 | 是 | |
| 内容分析 | 否 | 是(通过奥拉马) |
| 自动分拣 否 | 是 | |
| 文件响应的质量 | 可能的幻觉 | 基于真实内容 |
| Cas d'usage | 一般聊天 | 文件分类和组织 |
______________________________________________________________________
故障排除
错误429“超出配额”(双子座)
Gemini的免费配额已用尽。
- 解决方案 :等待第二天(配额每天重置)
- 替代 :使用新密钥在Google AI Studio上创建新项目
Erreur“找不到模型”(Ollama)
ollama pull llama3:latest奥拉玛没有回答
# Vérifier qu'Ollama tourne
ollama serve
# Vérifier les modèles installés
ollama list不精确分类
- 使用更强大的Ollama模型
- 检查您的文件是否包含可提取文本
______________________________________________________________________
安全与隐私
- 本地分析的文件 -奥拉玛在你的机器上旋转
- 无删除 -文件已移动,从未删除
- 开源 -代码可审计
______________________________________________________________________
技术
- 双子座(谷歌人工智能) -具有功能调用的LLM云(免费)
- 克劳德桌面版 -客户MCP自然人(人类学)
- 快速MCP -标准MCP服务器的Python框架
- MCP(模型上下文协议) -IA标准化协议\工具(JSON-RPC 2.0)
- 奥拉玛 -本地运行LLMS进行文件分析
- 溪流 -界面web交互式
- 自然语言工具包 -管道NLP(标记化、词干提取、停用词)
- 码头工人 -MCP服务器隔离
- Python 3.10+ -后端
