调用 OpenAI 兼容接口实战:从 /v1/models 校验到发起一次对话请求

举报
yd_289830645 发表于 2026/11/08 03:53:44 2026/11/08
【摘要】 越来越多模型服务提供 OpenAI 兼容接口。本文记录最短验证链路:先用 GET /v1/models 确认密钥与模型,再用 POST /v1/chat/completions 发起一次对话,并给出 Python 示例与常见问题排查。

越来越多模型服务都提供 OpenAI 兼容接口:只要 Base URL 指向 /v1,就能用同一套请求格式调用不同模型。本文记录一次最短的验证链路:先查 /v1/models 确认密钥与模型,再发一次 /v1/chat/completions 对话请求。


一、先确认服务与密钥:GET /v1/models


curl -s http://<host>:<port>/v1/models -H "Authorization: Bearer $API_KEY"


返回的 data 数组里每个模型都有 id,挑一个支持对话的模型记下来,后面发起对话就用它。若返回 401,先检查密钥是否带了多余空格或换行;若连接失败,先确认 Base URL 的协议、端口与路径里是否多写或少写了 /v1。


二、发起一次对话:POST /v1/chat/completions


请求体示例:{"model": "<模型id>", "messages": [{"role": "user", "content": "用一句话介绍 HTTP 状态码 200 的含义。"}], "temperature": 0.7}


成功后在 choices[0].message.content 里取回答。建议先用一个事实性小问题验证,避免一上来就问开放问题,难以判断模型是否真的按预期工作。


三、Python 示例(requests)


import os, requests

base = os.environ["BASE_URL"]

key = os.environ["API_KEY"]

resp = requests.get(f"{base}/v1/models", headers={"Authorization": f"Bearer {key}"}, timeout=30)

resp.raise_for_status()

print([m["id"] for m in resp.json()["data"]])


密钥只放环境变量,不要写进代码、日志和聊天记录;报错时也不要把密钥打印出来。


四、常见问题


模型列表有模型,但对话报 model not found:确认 chat 请求的 model 字段与 models 返回的 id 完全一致。

超时:先调大 timeout,再看服务端日志。

回答为空:检查 choices 是否为空、finish_reason 是 stop 还是 length。


小结:/v1/models 校验连通性与权限,/v1/chat/completions 验证真实对话能力,两步走完,一个 OpenAI 兼容服务就算接通了。(完)

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。