使用说明
项目简介
Gemini Router 是一个基于 Model Context Protocol (MCP) 理念构建的后端服务,它利用 Google Gemini 1.5 Flash API 作为核心模型,旨在演示如何通过中央路由器协调多个独立的 AI 服务模块。该项目将不同的 AI 功能(如通用对话、网页搜索、文档问答、深度思考和天气查询)拆分为独立的微服务,并通过一个智能路由器进行统一调度和管理。
主要功能点
- 模块化 AI 服务: 将不同的 AI 功能(聊天、搜索、RAG、思考等)作为独立的微服务运行,易于扩展和维护。
- 中央智能路由: 根据用户输入的意图,智能地将请求路由到最合适的 AI 服务模块进行处理。路由器使用 Gemini 模型进行意图分析和工具选择。
- 集成 Gemini 1.5 Flash: 利用 Gemini 1.5 Flash 模型强大的推理、生成和信息检索能力,提升各服务模块的性能。
- 集成 OpenWeather: 通过搜索服务集成 OpenWeather API,提供实时的天气查询功能。
- 支持文档问答 (RAG): 允许用户上传文档,并基于文档内容进行问答。
- 会话管理: 支持基于 session_id 的会话管理,保持对话上下文。
- Docker 部署: 提供 Docker Compose 部署方案,方便用户快速搭建和部署整个系统。
安装步骤
-
克隆仓库
git clone https://github.com/AditHash/Gemini-Router.git cd Gemini-Router -
配置环境变量 在 'backend' 目录下创建 '.env' 文件,并填入 Gemini API 密钥和 OpenWeather API 密钥:
GEMINI_API_KEY=<your_gemini_api_key> OPENWEATHER_API_KEY=<your_openweather_api_key>注意: 你需要拥有有效的 Gemini API 密钥和 OpenWeather API 密钥才能运行此项目。
-
启动后端服务 进入 'backend' 目录,使用 Docker Compose 启动后端服务:
cd backend docker-compose up --build这将构建并启动所有后端服务,包括 Router、Chat、Search、RAG、Think 和 Weather 服务。
-
启动前端应用 进入 'frontend' 目录,安装依赖并启动前端开发服务器:
cd ../frontend npm install npm run dev前端应用默认运行在 'http://localhost:5173/'。
服务器配置
MCP 客户端需要配置以下 JSON 信息以连接 Gemini Router 服务器:
{ "serverName": "GeminiRouter", "command": "docker-compose", "args": [ "up", "--build" ], "notes": "请确保在 backend 目录下执行 'docker-compose up --build' 命令以启动 Gemini Router 服务器。首次启动可能需要下载 Docker 镜像,请耐心等待。" }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,用于在 MCP 客户端中标识该服务器。
- 'command': 启动服务器的命令,这里使用 'docker-compose'。
- 'args': 启动命令的参数,'up --build' 指示 Docker Compose 构建并启动服务。
- 'notes': 配置说明,提供启动服务器的额外信息或注意事项。
注意: 上述配置假设 MCP 客户端能够直接在安装了 Docker 和 Docker Compose 的环境中执行命令。实际部署时,可能需要根据 MCP 客户端的具体部署方式和服务器环境进行调整。例如,如果 MCP 客户端需要通过网络连接到 Gemini Router 服务器,则需要配置服务器的网络地址和端口信息。
基本使用方法
- 启动 Gemini Router 服务器和前端应用。
- 在前端界面输入用户查询。
- Gemini Router 将根据查询内容,智能地路由到相应的 AI 服务模块进行处理。
- 服务器将返回处理结果,并在前端界面展示。
与服务器交互:
MCP 客户端通常通过 JSON-RPC 协议与 MCP 服务器交互。对于 Gemini Router,客户端可以通过 HTTP POST 请求向 '/ask' 端点发送用户查询,请求体为 JSON 格式,包含 'session_id' 和 'message' 字段。
请求示例:
{ "session_id": "user123", "message": "今天东京天气怎么样?" }
响应示例 (成功):
{ "status": "success", "cached": false, "data": { "tool_used": "weather", "confidence": "high", "parameters": { "query": "东京" }, "reply": { "response": "The weather in Tokyo is currently overcast clouds with a temperature of 22°C. It feels like 22.1°C with a humidity level of 84%." } } }
响应示例 (错误):
{ "status": "error", "message": "Failed to call tool 'weather'", "details": "..." }
更多 API 细节和使用方法,请参考仓库代码和前端应用。
信息
分类
AI与计算