使用说明

项目简介

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 部署方案,方便用户快速搭建和部署整个系统。

安装步骤

  1. 克隆仓库

    git clone https://github.com/AditHash/Gemini-Router.git
    cd Gemini-Router
  2. 配置环境变量 在 'backend' 目录下创建 '.env' 文件,并填入 Gemini API 密钥和 OpenWeather API 密钥:

    GEMINI_API_KEY=<your_gemini_api_key>
    OPENWEATHER_API_KEY=<your_openweather_api_key>

    注意: 你需要拥有有效的 Gemini API 密钥和 OpenWeather API 密钥才能运行此项目。

  3. 启动后端服务 进入 'backend' 目录,使用 Docker Compose 启动后端服务:

    cd backend
    docker-compose up --build

    这将构建并启动所有后端服务,包括 Router、Chat、Search、RAG、Think 和 Weather 服务。

  4. 启动前端应用 进入 '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 服务器,则需要配置服务器的网络地址和端口信息。

基本使用方法

  1. 启动 Gemini Router 服务器和前端应用。
  2. 在前端界面输入用户查询。
  3. Gemini Router 将根据查询内容,智能地路由到相应的 AI 服务模块进行处理。
  4. 服务器将返回处理结果,并在前端界面展示。

与服务器交互:

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与计算