使用说明

项目简介

TySVA (TypeScript Voice Assistant) 是一个旨在帮助用户学习 TypeScript 的 AI 助手。它利用 MCP (Model Context Protocol) 服务器作为后端,集成 TypeScript 文档检索和网络深度搜索功能,并通过语音和文本交互,提供便捷的学习体验。

主要功能点

  • TypeScript 文档检索: 通过集成的 TypeScript 文档数据库,快速查找和获取 TypeScript 相关的知识和信息。
  • 网络深度搜索: 利用 LinkUp 深度网络搜索工具,扩展知识来源,解决更复杂和深入的 TypeScript 问题,例如错误调试和高级概念。
  • 语音和文本交互: 支持语音输入和输出,方便用户以自然的方式与助手交流。
  • MCP 服务器后端: 使用 MCP 服务器架构,标准化工具和资源管理,为 AI Agent 提供结构化的上下文信息。

安装步骤

Docker 方式 (推荐):

  1. 安装 Docker 和 Docker Compose: 确保你的系统已安装 Docker 和 Docker Compose。
  2. 克隆仓库:
    git clone https://github.com/AstraBert/TySVA.git
    cd TySVA
  3. 配置 API 密钥:
    • 复制 '.env.example' 文件并重命名为 '.env':
      mv .env.example .env
    • 在 '.env' 文件中填入 'groq_api_key', 'elevenlabs_api_key' 和 'linkup_api_key'。这些密钥可以分别在以下网站获取:
  4. 启动服务:
    • Linux/macOS 用户运行:
      bash start_services.sh
    • Windows 用户运行:
      .\start_services.ps1
    • 或者手动启动:
      docker compose up vector_db -d
      docker compose up mcp -d
      docker compose up app -d

源码方式:

  1. 安装 Docker, Docker Compose 和 Conda: 确保你的系统已安装 Docker, Docker Compose 和 Conda。
  2. 克隆仓库:
    git clone https://github.com/AstraBert/TySVA.git
    cd TySVA
  3. 配置 API 密钥:
    • 复制 'scripts/.env.example' 文件并重命名为 'scripts/.env':
      mv scripts/.env.example scripts/.env
    • 在 'scripts/.env' 文件中填入 'groq_api_key', 'elevenlabs_api_key' 和 'linkup_api_key' (获取方式同 Docker 方式)。
  4. 设置 Conda 环境和向量数据库:
    • Linux/macOS 用户运行:
      bash setup.sh
    • Windows 用户运行:
      .\setup.ps1
    • 或者手动操作:
      docker compose up vector_db -d
      conda env create -f environment.yml
  5. 加载 TypeScript 文档:
    conda activate typescript-assistant-voice
    python3 scripts/data.py
  6. 启动 MCP 服务器:
    conda activate typescript-assistant-voice
    cd scripts
    python3 server.py
  7. 启动应用: 在新的终端窗口中运行:
    uvicorn app:app --host 0.0.0.0 --port 7999

服务器配置 (MCP Server for MCP Client)

TySVA 的 MCP 服务器 ('server.py') 默认通过 SSE (Server-Sent Events) 协议与客户端通信。

MCP 客户端配置 (以 TySVA 客户端为例):

在 TySVA 的客户端代码 ('app.py' 或 'scripts/app.py') 中,MCP 客户端通过 'BasicMCPClient' 连接到 MCP 服务器。

配置信息 (JSON):

{
  "server name": "TySVA MCP Server",
  "command": "python",
  "args": ["server.py", "--server_type", "sse"],
  "description": "TySVA 的 MCP 服务器,提供文档搜索和网络搜索工具。"
}

参数注释:

  • '"server name"': 服务器的名称,可以自定义。
  • '"command"': 启动服务器的命令,这里使用 'python'。
  • '"args"': 传递给 'server.py' 脚本的参数列表:
    • '"server.py"': MCP 服务器脚本的文件名。
    • '"server_type"': 指定服务器类型,这里设置为 'sse' (Server-Sent Events)。 可以选择 'stdio' 或 'sse'。
  • '"description"': 服务器的描述信息,可以自定义。

注意: 上述 JSON 配置信息是用于描述 MCP 服务器的启动方式,在 TySVA 项目中,客户端 ('app.py') 已经硬编码了 MCP 服务器的地址 ('http://localhost:8000/sse' 或 'http://mcp:8000/sse'),通常不需要用户手动配置客户端连接参数。 用户需要关注的是如何正确启动 MCP 服务器 ('server.py')。

基本使用方法

  1. 访问应用: 在浏览器中访问 'http://localhost:7999/app' (或 Docker 方式的 'http://localhost:7999/app')。
  2. 开始对话: 在聊天输入框中输入 TypeScript 相关的问题,或点击麦克风图标进行语音输入。
  3. 查看结果: AI 助手会返回 TypeScript 相关的解答,并提供 agentic process 的摘要 (点击 "Agentic Process" summary 可以展开查看工具调用过程)。如果启用了语音输出,还会提供语音回复。

信息

分类

网页与API