推理 API 使用说明
七牛云推理 API 是一个高性能、易集成的 AI 大模型推理服务,支持多款主流模型。通过调用完全兼容 OpenAI 标准的 API 接口,您可以快速将强大的 AI 能力集成到各种业务场景和应用中。
API 接入点
七牛云推理 API 提供两个接入域名:
- 主要接入点:
https://openai.qiniu.com/v1
(推荐使用) - 备用接入点:
https://api.qnaigc.com/v1
(备用域名)
建议优先使用主要接入点 openai.qiniu.com
,如遇网络问题可切换至备用接入点。
API 介绍说明
只需调用七牛云的推理 API 接口(兼容 openai 库),就可以将主流模型的 AI 能力快速集成到您的业务和应用中。
获取接口密钥
支持接口列表
接口名 | 说明 |
---|---|
/v1/models | 列举可用模型 |
/v1/chat/completions | 对话型推理接口,支持图片文字识别、文件识别 图片格式:支持 JPG、JPEG、PNG、BMP、PDF 等常见格式,建议使用 JPG 格式 联网搜索:部分模型支持,通过在模型名后添加"?search"启用 |
获取可用模型列表
# 获取所有可用模型
export OPENAI_BASE_URL="https://openai.qiniu.com/v1"
export OPENAI_API_KEY="<七牛云 AI API KEY>"
curl "$OPENAI_BASE_URL/models" \
-H "Authorization: Bearer $OPENAI_API_KEY"
或使用 Python:
from openai import OpenAI
client = OpenAI(
base_url='https://openai.qiniu.com/v1',
api_key='your qiniu_ai_api_key'
)
# 获取可用模型列表
models = client.models.list()
for model in models.data:
print(f"模型ID: {model.id}")
HTTP 调用示例
使用上一步获取的 七牛云 API KEY 调用 chat 接口,支持的模型列表也可以通过我们的模型广场查看,例如:
# 调用推理 API
export OPENAI_BASE_URL="https://openai.qiniu.com/v1"
export OPENAI_API_KEY="<七牛云 AI API KEY>"
curl "$OPENAI_BASE_URL/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"messages": [{"role": "user", "content": "夸一夸七牛云 AI 推理服务"}],
"model": "deepseek-v3",
"stream": true
}'
Python openai 库代码示例
- 流式调用
from openai import OpenAI
openai_base_url = 'https://openai.qiniu.com/v1'
openai_api_key = 'your qiniu_ai_api_key'
client = OpenAI(
base_url=openai_base_url,
api_key=openai_api_key
)
# 发送带有流式输出的请求
content = ""
messages = [
{"role": "user", "content": "夸一夸七牛云 AI 推理服务"}
]
response = client.chat.completions.create(
model="deepseek-v3",
messages=messages,
stream=True, # 启用流式输出
max_tokens=4096
)
# 逐步接收并处理响应
for chunk in response:
if chunk.choices[0].delta.content:
content += chunk.choices[0].delta.content
print("第一轮回复:")
print(content)
# Round 2 - 继续对话
messages.append({"role": "assistant", "content": content})
messages.append({'role': 'user', 'content': "继续"})
response = client.chat.completions.create(
model="deepseek-v3",
messages=messages,
stream=True
)
# 重置 content 变量来存储第二轮回复
second_content = ""
for chunk in response:
if chunk.choices[0].delta.content:
second_content += chunk.choices[0].delta.content
print("第二轮回复:")
print(second_content)
- 非流式调用
from openai import OpenAI
openai_base_url = 'https://openai.qiniu.com/v1'
openai_api_key = 'your qiniu_ai_api_key'
client = OpenAI(
base_url=openai_base_url,
api_key=openai_api_key
)
# 发送非流式输出的请求
messages = [
{"role": "user", "content": "夸一夸七牛云 AI 推理服务"}
]
response = client.chat.completions.create(
model="deepseek-v3",
messages=messages,
stream=False,
max_tokens=4096
)
content = response.choices[0].message.content
print("第一轮回复:")
print(content)
# Round 2 - 继续对话
messages.append({"role": "assistant", "content": content})
messages.append({'role': 'user', 'content': "继续"})
response = client.chat.completions.create(
model="deepseek-v3",
messages=messages,
stream=False
)
second_content = response.choices[0].message.content
print("第二轮回复:")
print(second_content)
联网搜索推理
API 支持联网功能,为保持对 OpenAI 的兼容,联网功能通过在模型后面加 ”?search” 来开启。例如:
# 调用联网搜索 API
export OPENAI_BASE_URL="https://openai.qiniu.com/v1"
export OPENAI_API_KEY="<七牛云 AI API KEY>"
curl "$OPENAI_BASE_URL/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"messages": [{"role": "user", "content": "今天的天气怎么样?请搜索最新信息"}],
"model": "deepseek-v3?search"
}'
文件识别推理
API 已经支持文件内容识别推理,示例代码如下:
# 调用文件识别 API
export OPENAI_BASE_URL="https://openai.qiniu.com/v1"
export OPENAI_API_KEY="<七牛云 AI API KEY>"
curl --location "$OPENAI_BASE_URL/chat/completions" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer $OPENAI_API_KEY" \
--data '{
"model": "deepseek-v3",
"messages": [
{
"role": "user",
"content": [
{
"type": "pdf",
"file_url": {
"url": "https://aitoken-public.qnaigc.com/test/transformer.pdf"
}
},
{
"type": "text",
"text": "总结一下文档内容"
}
]
}
]
}'
- 参数:type 为文件格式,url 为文件地址
- 文件格式:目前仅支持 pdf、docx、xlsx、pptx 类型
- 注意:文件内容,仍受上下文长度限制(64K tokens),所以需注意文件内容长度
推荐使用七牛对象存储来存储文件并获取在线访问地址,提供给模型来进行识别和推理。
图片文字识别推理
API 已经支持图片文字识别推理,同时接口依然兼容 OpenAI,示例代码如下:
# 调用图片识别 API
export OPENAI_BASE_URL="https://openai.qiniu.com/v1"
export OPENAI_API_KEY="<七牛云 AI API KEY>"
curl "$OPENAI_BASE_URL/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "请帮我整理图片中的内容并整理一份报告给我"
},
{
"type": "image_url",
"image_url": {
"url": "https://www.qiniu.com/qiniu_ai_token_snapshot.png"
}
}
]
}
],
"model": "deepseek-v3"
}'
- 注意:image_url 指向的文件大小不能超过 8MB
- 文件格式:支持 JPG、JPEG、PNG、BMP、PDF 等常见格式,建议使用 JPG 格式
如何通过对象存储获取输入图片地址?
推荐使用七牛对象存储来存储文件并获取在线访问地址,提供给模型来进行识别和推理。
可以通过 curl 快速进行上传测试:
# 上传文件到七牛对象存储
curl "$你的空间区域上传地址" \
-F "file=@$你的文件路径" \
-F "token=$你的上传token" \
-F "key=$你的文件名"
或者在代码中使用 Python 来实现:
import requests
# 上传文件到七牛对象存储
def upload_file_to_qiniu(file_path, upload_url, upload_token, file_key):
"""
上传文件到七牛对象存储
Args:
file_path: 本地文件路径
upload_url: 空间区域上传地址
upload_token: 上传 token
file_key: 保存的文件名称
Returns:
response: 上传响应结果
"""
# 使用 with 语句确保文件正确关闭
with open(file_path, "rb") as file:
files = {
"file": file
}
# 其他表单字段
data = {
"key": file_key,
"token": upload_token
}
# 发送 POST 请求
response = requests.post(upload_url, files=files, data=data)
# 输出响应
print("Status Code:", response.status_code)
print("Response Body:", response.text)
return response
# 使用示例
if __name__ == "__main__":
upload_url = "你的空间区域上传地址"
file_path = "上传的文件地址"
upload_token = "你的上传token"
file_key = "保存的文件名称"
result = upload_file_to_qiniu(file_path, upload_url, upload_token, file_key)
我们还提供了许多语言的上传 SDK,简单易用,欢迎查看我们的【SDK 中心】来了解。
更多对象存储信息欢迎参考对象存储的【产品使用文档】。
参考文档
文档反馈
(如有产品使用问题,请 提交工单)