统一的AI服务API服务器,支持多个AI提供商的动态配置和管理。
- 只要某个厂商的api支持如下格式的python的api调用,就可以使用该接口去请求,注意配置和调用时的模型名。
from openai import OpenAI
client = OpenAI(
api_key="MODELSCOPE_SDK_TOKEN",
base_url="https://api-inference.modelscope.cn/v1"
)
response = client.chat.completions.create(
model="Qwen/Qwen2.5-Coder-32B-Instruct",
messages=[
{
'role': 'system',
'content': 'You are a helpful assistant.'
},
{
'role': 'user',
'content': '用python写一下快排'
}
],
stream=True
)
for chunk in response:
print(chunk.choices[0].delta.content, end='', flush=True)
- 支持多个AI服务提供商(智谱AI、Novita AI、PPInfra AI、ModelScope AI)
- 动态配置支持,可通过Web界面实时更新配置
- 安全的API认证机制
- 兼容OpenAI API格式
- Docker容器化部署支持
- 构建Docker镜像:
docker build -t ai-service-api .
- 运行容器:
docker run -d -p 7778:7778 ai-service-api
-
访问配置页面:
http://localhost:7778
-
在配置页面输入JSON格式的配置信息:
{
"myapikey": "your-api-key", // 设置API访问密钥
"zhipu": {
"url": "",
"provider": "zhipu",
"key": "your-zhipu-key"
},
"novita": {
"url": "https://api.novita.ai/v3/openai",
"provider": "novita",
"key": "your-novita-key"
}
}
注意:
myapikey
字段必填,用于后续API访问认证- 至少需要配置智谱AI(zhipu)
- 其他提供商配置可选
所有API请求需要在header中包含认证信息:
Authorization: Bearer your-api-key
curl -X POST "http://localhost:7778/v1/chat/completions" \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "test|zhipu|glm-4",
"messages": [
{"role": "user", "content": "你好"}
]
}'
模型格式说明:
- 格式:
test|provider|model
- provider: 提供商标识(zhipu/novita/ppinfra/modelscope)
- model: 具体的模型名称
-
API密钥管理
- API密钥通过配置JSON的
myapikey
字段设置 - 密钥仅保存在内存中,不会持久化存储
- 每次重新配置可以更换API密钥
- API密钥通过配置JSON的
-
配置安全
- 配置完成后,敏感信息(如API密钥)会从配置中移除
- 可以随时通过配置页面更新配置
-
配置要求
- 智谱AI(zhipu)配置是必需的
- 其他提供商配置可选
- 必须提供
myapikey
用于API认证
-
API访问
- 所有API请求都需要提供正确的Authorization header
- Bearer token格式:
Bearer your-api-key
-
错误处理
- 401: API密钥无效
- 404: 提供商或模型未找到
- 503: 服务未配置