文本分析应用

MCP是一款基于Flask和React的Web应用,提供文本摘要、情感分析和关键词提取功能,适用于自动化文本处理场景。

  • by NovaisGabriel
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 NovaisGabriel/mcp-langchain

使用说明

多通道处理应用(MCP)


项目概述

MCP(多通道处理) 这是一个用于自动化文本分析的网络应用程序。用户通过简单的界面提交文本,后端会对文本进行处理并提供:

  1. 总结 – 对文本的简洁总结。
  2. 情感分析 – 确定情感(正面、中性、负面)。
  3. 关键词提取 – 从文本中识别出关键主题。

后端使用 Flask(一个轻量级的Web应用框架), LangChain,以及 OpenAI GPT-3.5,而前端则是用(某种技术或语言)构建的 React结果存储在 SQLite 用于持久化和追踪。


特性/功能

  • 直观的React前端,用于文本提交和结果显示。
  • 带REST API的Flask后端用于处理文本。
  • 使用模块化LLM(大型语言模型)流水线 LangChain(朗链)。
  • 在 SQLite 中持久存储消息和分析结果。
  • 自动化测试套件,配备有 pytest 并对大型语言模型(LLM)的调用进行了嘲讽。

技术栈

  • 前端: React(Vite)、JavaScript、Axios
  • 后端: Flask、SQLAlchemy、Flask-CORS
  • 数据库: SQLite
  • 大型语言模型/人工智能: LangChain v0.2+,OpenAI GPT-3.5
  • 测试: Pytest,Flask 测试客户端,Monkeypatch

它是如何工作的

  1. 用户输入: 在前端输入文本。
  2. API调用: 前端发送一个POST请求到 /api/analyze。
  3. 文本处理: 后端使用 run_chain 生成:
    • 摘要
    • 情感
    • 关键词
  4. 数据库存储: 结果保存在 SQLite 数据库中。
  5. 显示结果: 返回的JSON数据在前端显示。

结构:

  • 后端/:存储消息并调用LangChain链的Flask API
  • 前端:使用Vite + React构建的前端,调用API

运行后端:

  • 进入后端目录
  • `python -m venv .venv` 翻译成中文是:使用 Python 的 venv 模块创建一个名为 .venv 的虚拟环境
  • `.venv\Scripts\activate.ps1` 翻译成中文是:“虚拟环境脚本目录下的激活.ps1文件”。不过,通常我们不会直接这样翻译文件名,而是根据上下文解释其用途,比如可以说:“这是用于激活虚拟环境的PowerShell脚本文件(位于.venv\Scripts目录下)”
  • 使用 pip 安装 requirements.txt 文件中列出的包
  • 根据上面的信息,执行如下指令:
  • 运行 python app.py

后端单元测试:

  • pytest -v 翻译为中文是:“使用详细模式运行 pytest”

注意:此测试会启动一个内存中的 SQLite 数据库(因此您的实际 messages.db 文件将保持不变)。使用 monkeypatch 模拟 LangChain 的 LLM 以跳过 API 调用并返回模拟结果。向 /api/analyze 发送带有测试文本的 POST 请求。验证:响应是有效的 JSON,包含摘要、情感、关键词,并且数据库中插入了一条消息。

运行前端:

  • cd frontend(在命令行中,这表示切换到名为“frontend”的目录)
  • npm install(安装npm包)
  • `npm run dev` 翻译成中文是:“运行 npm 脚本中的 dev 任务”

注:对于生产环境,请添加认证机制,并将大型语言模型(LLM)的调用移至后台工作进程。

提示技巧:

  1. 总结:要求设定字数或句数限制;指明格式要求(使用项目符号还是整段落)。
  2. 偏好:倾向于使用JSON输出或固定枚举值(正面/中性/负面)以简化解析。
  3. 关键词:要求恰好N个关键词或短语;如果您想要多词短语,请指示模型:“偏好1–3词的短语”。
  4. 温度:使用低温(0 — 0.3)以获得确定性输出。
  5. 令牌限制:对于非常长的文本,应在总结前进行分块处理,或使用思维链式总结模式(分块→中间总结→最终总结)。

未来的改进方向

针对大型文本输入的异步后台处理(使用Celery/RQ)。

专家仪表盘,用于查看或修正结果。

前端和后端的Docker化部署。

身份验证与多用户支持。