项目简介

'dspy-cli' 是一个功能强大的命令行工具,旨在简化基于 DSPy 框架构建的AI应用的开发和部署流程。它通过提供标准化的项目结构、自动生成API端点、OpenAPI 规范和 Docker 配置,大大加速了DSPy程序的工程化。最重要的是,'dspy-cli' 支持将您的DSPy程序作为标准 HTTP API 或 Model Context Protocol (MCP) 服务器对外提供服务,使您的LLM应用程序能够以结构化、可扩展的方式访问和调用这些AI功能。

主要功能点

  • DSPy项目脚手架: 快速创建一个包含标准目录结构、配置文件和示例代码的DSPy项目。
  • HTTP API 自动生成: 自动将您项目中的DSPy模块转换为具有RESTful HTTP 端点的 FastAPI 服务,支持类型验证和热重载。
  • OpenAPI 规范生成: 自动为生成的API提供 OpenAPI (Swagger) 规范,便于第三方工具和客户端集成。
  • MCP 服务器支持: 可选启用 Model Context Protocol (MCP) 服务器。启用后,LLM客户端可以通过标准 JSON-RPC 协议与服务器通信,发现并调用您的DSPy程序作为工具(Tools),并获取程序相关的元数据作为上下文资源(Resources)。
  • Docker 部署支持: 自动生成 Dockerfile 和 '.dockerignore' 文件,简化应用的容器化和部署流程。
  • 交互式 Web UI: 提供一个简单的网页用户界面,方便手动测试和运行您的DSPy程序,并查看调用日志。
  • 灵活的模型配置: 支持通过 YAML 文件配置多种大型语言模型 (LLM) 提供商,并可在程序级别指定使用的模型。
  • 日志记录: 自动记录程序调用的输入、输出、耗时和错误信息,便于调试和监控。

安装步骤

  1. 安装 'uv' (Python 包管理工具,推荐): 'uv' 是一个快速的 Python 包安装器和解析器。如果您的系统尚未安装,可以使用 'pip' 进行安装:

    pip install uv
  2. 安装 'dspy-cli': 通过 'uv' 安装 'dspy-cli':

    uv tool install dspy-cli

    或者,您也可以直接使用 'pip' 安装:

    pip install dspy-cli
  3. 安装 'fastmcp' 和 'asgi-lifespan' 以启用 MCP 服务器支持 (可选但推荐): 要使用 'dspy-cli' 的 MCP 服务器功能,您需要额外安装 'fastmcp' 和 'asgi-lifespan' 库:

    pip install fastmcp asgi-lifespan

MCP 服务器配置

MCP 客户端需要以下 JSON 格式的配置信息才能连接到 'dspy-cli' 启动的 MCP 服务器。请根据您的实际部署环境替换 'command' 数组中的 'host' 和 'port' 值。

{
  "server_name": "dspy-cli",
  "command": [
    "dspy-cli",
    "serve",
    "--mcp",                 // 启用MCP服务器模式
    "--host", "0.0.0.0",     // 服务器监听地址,请根据您的部署环境(例如,服务器IP地址或localhost)修改
    "--port", "8000"        // 服务器监听端口,请确保该端口可用且防火墙允许访问
  ],
  "args": {
    // 您可以在此添加其他可选的MCP服务器参数,例如:
    // "--reload": "false", // 生产环境建议禁用热重载以提高性能和稳定性
    // "--save-openapi": "false", // 可选:生产环境可禁用OpenAPI规范文件的自动保存
    // "--logs-dir": "/var/log/dspy-cli" // 可选:指定日志文件的存储目录
  },
  "description": "一个用于托管和调用DSPy程序的MCP服务器。通过此服务器,LLM客户端可以发现、访问和执行DSPy模块作为功能工具,并获取程序元数据作为上下文资源。"
}

基本使用方法

以下步骤将引导您如何使用 'dspy-cli' 创建一个项目,并启动一个同时支持 HTTP API、Web UI 和 MCP 服务的服务器。

  1. 创建新的 DSPy 项目: 运行以下命令并按照交互式提示,配置您的项目名称、第一个DSPy程序名称、模块类型、签名和使用的LLM模型。

    dspy-cli new my-awesome-dspy-app

    例如,您可以创建一个名为 'summarizer' 的程序,签名 'blog_post -> summary'。

  2. 进入项目目录并安装依赖: 创建项目后,进入新生成的项目文件夹,并安装所有依赖项。

    cd my-awesome-dspy-app
    uv sync # 或者使用 pip install -e .
  3. 激活项目的虚拟环境: 为了确保所有依赖正确加载,请激活项目的虚拟环境。

    • Linux/macOS:
      source .venv/bin/activate
    • Windows (Command Prompt):
      .venv\Scripts\activate
    • Windows (PowerShell):
      .venv\Scripts\Activate.ps1
  4. 启动服务器 (启用 MCP 功能): 运行以下命令来启动服务器。'--mcp' 参数将启用 MCP 服务器,使其在 '/mcp' 路径下可访问。请根据需要调整 '--port' 和 '--host'。

    dspy-cli serve --mcp --port 8000 --host 0.0.0.0

    服务器启动后,您将在控制台看到类似以下的信息:

    Server starting on http://0.0.0.0:8000
    ...
    ✓ MCP server enabled at /mcp
    ...
  5. 访问和使用您的服务:

    • Web UI: 在浏览器中访问 'http://localhost:8000',您可以找到一个直观的Web界面,用于测试和运行您部署的DSPy程序。
    • HTTP API: 您的DSPy程序也将作为 HTTP POST 端点暴露,例如 '/SummarizerPredict'。您可以使用 'curl' 或任何 HTTP 客户端调用它。
    • MCP 客户端: 使用您的 MCP 客户端连接到 'http://localhost:8000/mcp'。您的 DSPy 程序将作为可用的工具和资源被发现,LLM 可以通过 MCP 协议进行交互。

信息

分类

开发者工具