智能对话平台

MCP (Model Context Protocol) 是一个基于多LLM提供商(OpenAI、Anthropic和Google Gemini)的智能对话服务器,提供上下文感知的对话能力、语义记忆管理和多模态内容处理。

  • by Chris-June
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 chris-june/mcp-server-python

使用说明

MCP(模型上下文协议)服务器:智能对话平台

概述

MCP(模型上下文协议)是一个复杂的人工智能服务器,旨在提供智能、上下文感知的会话功能。这个独立服务器利用多个LLM提供商(OpenAI、Anthropic和Google Gemini)、FastAPI和Pyppeteer的网络浏览功能,在各个业务领域提供细致入微、上下文相关的响应。

注: 此存储库仅包含MCP服务器实现。虽然文档中提供了前端示例用于说明,但此存储库中不包括实际的前端实现。MCP服务器设计为通过其RESTful API与任何前端集成。

主要特点

  • 🤖 基于角色的AI顾问系统,具有可定制的指令和音调
  • 🧠 基于向量相似度搜索的语义记忆管理
  • 🌊 实时流式响应,改善用户体验
  • 🌐 用于人工智能辅助研究的集成网络浏览功能
  • 🔄 基于会话触发的动态上下文切换
  • 📝 增强的markdown格式,打造专业外观的内容
  • 🖼️ 用于处理图像和其他媒体的多模式上下文支持
  • 🔍 按关键字、域和语气进行高级角色搜索和过滤
  • 🔗 具有标记、共享和继承功能的高级内存功能
  • 🔄 多个LLM提供商支持(OpenAI、Anthropic、Google Gemini)

技术栈

  • 后端:带asyncio的Python
  • Web框架:FastAPI
  • AI模型:
    • OpenAI GPT-4o-mini
    • 拟人克劳德模型
    • 谷歌双子座模型
  • 浏览器自动化:Pyppeteer(Puppeteer的Python移植版)
  • API文档:通过FastAPI切换用户界面

设置和安装

先决条件

  • Python 3.11+
  • OpenAI API密钥
  • Git(用于克隆存储库)

安装步骤

  1. 克隆存储库
  2. 创建虚拟环境: python -m venv venv
  3. 激活虚拟环境:
    • 窗户: venv\Scripts\activate
    • macOS/Linux: source venv/bin/activate
  4. 安装依赖项: pip install -r requirements.txt
  5. 配置环境变量(见下文)
  6. 运行服务器: python -m app.main
  7. 访问API文档: http://localhost:8000/docs

配置

创建一个 .env 文件基于 .env.example 具有以下变量:

# OpenAI Configuration
OPENAI_API_KEY=your_openai_api_key
OPENAI_MODEL=gpt-4o-mini
OPENAI_VISION_MODEL=gpt-4o

# Anthropic Configuration (Optional)
ANTHROPIC_API_KEY=your_anthropic_api_key
ANTHROPIC_MODEL=claude-3-haiku-20240307

# Google Gemini Configuration (Optional)
GEMINI_API_KEY=your_gemini_api_key
GEMINI_MODEL=gemini-1.5-pro

# Default Provider Configuration
DEFAULT_PROVIDER=openai  # Options: openai, anthropic, gemini
EMBEDDING_MODEL=text-embedding-ada-002
# Server Settings
PORT=8000
DEBUG=False

最近的改进

专业领域的上下文分析

  • 为各种业务领域实施了特定领域的分析功能
  • 为财务、营销、运营、销售等创建了专门的分析模板
  • 添加了对特定领域术语和模式的自动提取
  • 将特定领域的指标和框架集成到AI响应中
  • 通过特定领域的指导增强系统提示
  • 为域分析和模板管理创建了API端点
  • 提高人工智能对特定领域反应的相关性和特异性

高级内存功能

  • 实施记忆标记和分类系统,以更好地组织
  • 创建了具有基于角色的权限的分层内存访问控制
  • 基于角色的知识共享内存继承机制设计
  • 添加了角色之间可配置的内存共享权限
  • 开发了跨角色记忆检索的语义搜索
  • 实现了用于相关性排名的记忆嵌入和相似性评分
  • 增加了用于内存共享和继承管理的API端点
  • 为高级内存功能创建了全面的文档

角色搜索和筛选

  • 实现了按关键字查找角色的高级搜索功能
  • 添加了基于域的筛选,以查找具有特定专业知识的角色
  • 为通信风格偏好创建了基于音调的过滤
  • 添加了用于角色搜索的API端点,并具有组合的筛选选项
  • 已实现域发现端点以检索所有唯一域
  • 为搜索和过滤功能创建了全面的测试套件

多模态上下文支持

  • 添加了对处理图像和文本查询的支持
  • 实施专用多模式处理服务
  • 为多模式内容处理创建了API端点
  • 增加了媒体内容的文件上传功能
  • 与跨提供商的视觉模型集成
  • 增加了对多模式响应的流媒体支持

多LLM提供商支持

  • 为多个LLM提供商(OpenAI、Anthropic、Google Gemini)提供支持
  • 创建了一个具有通用接口的模块化提供商架构
  • 为每个LLM服务添加了特定于提供商的优化
  • 为所有API终结点实现了提供程序选择

测试脚本改进

  • 更新了所有测试脚本,以便在端点之间一致地使用API前缀
  • 通过适当跳过未实现的端点来增强测试结构
  • 通过使用一致的客户端夹具提高了测试可靠性
  • 为角色管理、域分析和内存功能添加了全面的测试覆盖率
  • 为各种服务实现了适当的模拟,以隔离测试
  • 修复了测试文件中的导入错误和KeyError问题
  • 为直接访问提供商创建了专用的提供商路由
  • 当主要提供商缺乏能力时,为多模式内容添加了回退机制
  • 实现了提供程序发现端点,以列出可用的提供程序
  • 更新配置以支持特定于提供商的设置

增强格式

  • 为所有提示添加了明确的格式说明
  • 跨不同内容类型的标准化标记格式
  • 改进了格式化内容的客户端呈现
  • 增强CSS样式,提高可读性

流媒体功能

  • 实现了AI响应的实时流式传输
  • 添加了流状态的视觉指示器
  • 修复了SSE处理中的字符串文字问题
  • 改进了UI以显示不同的加载状态

综合测试套件

  • 为所有主要组件创建了特定功能的测试脚本
  • 实施了上下文切换功能的测试
  • 增加了对内存功能的测试,包括标记和检索
  • 创建了带有模拟响应的网页浏览功能测试
  • 为多个LLM提供者集成实施了测试
  • 增加了域分析功能的测试
  • 为角色编辑和管理功能创建了测试
  • 已实施角色搜索和筛选测试
  • 增加了多模式内容处理测试
  • 创建了包含使用说明的全面测试文档

发展

  • 使用 requirements.txt 用于服务器依赖关系管理
  • 更新 todo.txt 每次迭代后都有新功能和改进
  • 在每个新功能实现后更新README.md

文档

详细文档可在 docs 目录:

  • ROUTES.md:API端点及其功能
  • MODELS.md:数据结构和模式
  • ARCHITECTURE.md:系统设计和组件交互
  • SERVICES.md:核心业务逻辑实现
  • SERVER_CAPABILITIES.md:特性和功能
  • multimodal_context_support.md:多模式处理能力
  • role_search_filtering.md:角色搜索和筛选功能
  • role_editing.md:角色管理和编辑功能
  • CONTEXT_SWITCHING.md:角色之间的动态上下文切换
  • advanced_memory_features.md:高级内存功能,包括标记、共享和继承

贡献

请阅读CONTRIBUTING.md,了解我们的行为准则和提交拉取请求的流程的详细信息。

许可证

[指定许可证]

联系

[您的联系方式]