AI协议模拟服务器

为AI-Protocol运行时提供统一的模拟服务器,支持HTTP提供者模拟(OpenAI和Anthropic格式)和MCP JSON-RPC模拟,用于测试ai-lib-python、ai-lib-rust等运行时。

  • by hiddenpath
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 hiddenpath/ai-protocol-mock

使用说明

人工智能协议模拟

用于AI协议运行时的统一模拟服务器。提供HTTP提供者模拟(OpenAI和Anthropic格式)和MCP JSON-RPC模拟,用于测试ai lib-python、ai lib-rust和其他运行时。

特性

  • 清单驱动的HTTP模拟:根据提供者清单生成OpenAI或Anthropic格式的响应
  • MCP JSON-RPC模拟:实施 tools/list, tools/call, capabilities, initialize
  • 可配置的:响应延迟、错误率、通过环境变量模拟内容
  • 码头工人:一个命令启动 docker-compose up

快速开始

# Install and run
pip install -e .
python scripts/sync_manifests.py --force  # Sync manifests from ai-protocol
uvicorn ai_protocol_mock.main:app --host 0.0.0.0 --port 4010

或者使用Docker:

docker-compose up -d

配置

变量 默认值 描述
HTTP_PORT 4010 HTTP和MCP的端口(MCP位于/MCP)
MANIFEST_DIR 清单 同步清单目录
MANIFEST_SYNC_URL https://raw.githubusercontent.com/hiddenpath/ai-protocol/main/ 清单同步的来源
RESPONSE_DELAY 0 响应前的延迟秒数
ERROR_RATE 0 返回429/500/503的概率(0-1)
MOCK_CONTENT 来自ai协议模拟的模拟响应 默认响应内容

端点

  • POST /v1/chat/completions -OpenAI格式聊天
  • POST /v1/messages -人像格式聊天
  • POST /mcp -MCP JSON-RPC(工具/列表、工具/调用、功能)
  • GET /health -健康检查
  • GET /status -带有清单同步元数据的状态

使用ai库python

import os
os.environ["MOCK_HTTP_URL"] = "http://localhost:4010"

from ai_lib_python.client import AiClient
from ai_lib_python.types.message import Message

client = await AiClient.create(
    "openai/gpt-4o",
    api_key="sk-test",
    base_url="http://localhost:4010"
)
response = await client.chat().messages([Message.user("Hi")]).execute()
print(response.content)

与ai-lib-rust一起使用

export MOCK_HTTP_URL=http://localhost:4010
cargo run --example basic_usage

或者在代码中:

let client = AiClientBuilder::new()
    .base_url_override("http://localhost:4010")
    .build("openai/gpt-4o")
    .await?;

清单同步

从ai协议存储库同步清单:

python scripts/sync_manifests.py [--force] [--url URL]

在启动服务器之前运行,以确保清单是最新的。Docker Compose在启动时自动运行同步。

许可证

麻省理工学院或阿帕奇-2.0