4.6 KiB
4.6 KiB
Lang Agent OpenAI 兼容API
这是一个符合OpenAI接口规范的聊天API,允许用户使用与OpenAI API相同的方式访问您的Lang Agent服务。
快速开始
1. 启动服务器
cd /path/to/lang-agent/fastapi_server
python server.py
服务器将在 http://localhost:8488 上启动。
2. 使用API
使用curl命令
curl -X POST "http://localhost:8488/v1/chat/completions" \
-H "Authorization: Bearer 123tangledup-ai" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-plus",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你是谁?"
}
]
}'
使用Python requests
import requests
API_BASE_URL = "http://localhost:8488"
API_KEY = "123tangledup-ai"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
data = {
"model": "qwen-plus",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你是谁?"
}
]
}
response = requests.post(f"{API_BASE_URL}/v1/chat/completions", headers=headers, json=data)
print(response.json())
使用OpenAI Python库
from openai import OpenAI
client = OpenAI(
api_key="123tangledup-ai",
base_url="http://localhost:8488/v1"
)
response = client.chat.completions.create(
model="qwen-plus",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "你是谁?"}
]
)
print(response.choices[0].message.content)
API 端点
1. 聊天完成 /v1/chat/completions
与OpenAI的chat completions API完全兼容。
请求参数:
| 参数 | 类型 | 必需 | 默认值 | 描述 |
|---|---|---|---|---|
| model | string | 是 | - | 模型名称 |
| messages | array | 是 | - | 消息列表 |
| temperature | number | 否 | 0.7 | 采样温度 |
| max_tokens | integer | 否 | 500 | 最大生成token数 |
| stream | boolean | 否 | false | 是否流式返回 |
| thread_id | integer | 否 | 3 | 线程ID,用于多轮对话 |
响应格式:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1677652288,
"model": "qwen-plus",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "您好!我是一个AI助手..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 56,
"completion_tokens": 31,
"total_tokens": 87
}
}
2. 健康检查 /health
检查API服务状态。
请求:
GET /health
响应:
{
"status": "healthy"
}
3. API信息 /
获取API基本信息。
请求:
GET /
响应:
{
"message": "Lang Agent Chat API",
"version": "1.0.0",
"description": "使用OpenAI格式调用pipeline.invoke的聊天API",
"authentication": "Bearer Token (API Key)",
"endpoints": {
"/v1/chat/completions": "POST - 聊天完成接口,兼容OpenAI格式,需要API密钥验证",
"/": "GET - API信息",
"/health": "GET - 健康检查接口"
}
}
认证
API使用Bearer Token认证。默认API密钥为 123tangledup-ai。
在请求头中包含:
Authorization: Bearer 123tangledup-ai
测试脚本
项目提供了两个测试脚本:
- Bash脚本 (
test_openai_api.sh) - 使用curl命令测试API - Python脚本 (
test_openai_api.py) - 使用Python requests库测试API
运行测试脚本:
# 运行Bash测试脚本
chmod +x test_openai_api.sh
./test_openai_api.sh
# 运行Python测试脚本
python test_openai_api.py
与OpenAI API的兼容性
此API完全兼容OpenAI的chat completions API,您可以:
- 使用任何支持OpenAI API的客户端库
- 将base_url更改为
http://localhost:8488/v1 - 使用提供的API密钥进行认证
注意事项
- 确保服务器正在运行且可访问
- 流式响应(stream=true)目前可能不完全支持
- 模型参数(model)主要用于标识,实际使用的模型由服务器配置决定
- 多轮对话使用thread_id参数来维护上下文
故障排除
- 连接错误: 确保服务器正在运行,检查URL和端口是否正确
- 认证错误: 检查API密钥是否正确设置
- 请求格式错误: 确保请求体是有效的JSON格式,包含所有必需字段