人工智能协议模拟
用于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
