大模型接口
刀刀
0字
0分钟
2026/8/17
前言
大模型不需要自己开发,通常所说的 AI 落地,都是调用各厂提供的大模型接口。
实际开发的是 AI 应用的前后端,使用的是 LLM 大模型接口。
国内大模型接口厂商类型
国内大模型接口厂商大致分为以下几类:
- 涵盖多家大模型的集成接口:除自家模型外,还可选择其他家模型。如字节和阿里,还能搭配 DeepSeek、Kimi 等
- 大模型厂商自己的接口:DeepSeek 和 Kimi 都有自己的对外接口,这些接口通常只能选择自家的不同版本模型
HTTP 请求
大模型接口基本都是 HTTP 接口,可直接发起 HTTP 请求。需注意找到支持 HTTP 直接请求的接口,与通过 SDK 库请求的接口不同。
js
axios
.post(
'接口地址',
{
model: '模型名称',
messages: [
{
role: 'user',
content: '请求内容',
},
],
},
{
headers: {
Authorization: 'Bearer 接口密钥',
'Content-Type': 'application/json',
},
},
)
.then((res) => {
console.log(res.data)
})上方代码可以看到,大模型的请求体有两个核心属性:
model:模型名称,具体调用的大模型,通过看官方文档可以找到messages:请求内容,包括角色和内容
role
system:系统提示,一般用来设置大模型的行为,帮助 AI 更准确回答问题整体情况user:用户输入,assistant:大模型输出,AI 之前的回复。大模型接口没有状态,每次提问它是不会记得上一次的问题和回答的,所以需要带上
content
content 不单单是一个字符串,如果涉及到图生图、图生文等,也可以是一个数组。
js
{
role: 'user',
content: [
{
type: 'image_url',
image_url: { url: '图片地址' },
},
{
type: 'text',
content: '把上方图片生成汇总文本',
},
],
}HTTP 响应
js
"choices": [
{
'message': {
'role': 'assistant',
'content': '回复内容'
},
'finish_reason': 'stop',
'index': 0,
'logprobs': null
}
],
"object": "chat.completion.chunk",
"usage": {
// ...
},
"created_at": 1704179169,
"model": "模型名称",
"id": "请求id"
"system_fingerprint": "系统指纹"choices
核心是 choices,包含具体回答,是核心数据。通常只有一个选项,取第一个即可。
choices 对象包含:
message:本次回答内容,role为assistant,content为回答内容(SSE 流式传输时无message,而是delta)finish_reason:回答结束原因,stop表示正常结束,length表示回答长度超限index:回答索引logprobs:回答对数概率,即模型认为该回答与提问的相关度,有多个回答时可参考,通常不需要
其他可能有用属性解析
id:每次调用接口提问,回答都有一个唯一id,流式传输时有用usage:本次问答消耗的 Token 相关
答疑
Q:
message里必须带system和之前的问答记录吗?A: 可以不带,但接口是无状态的,带上可提升回答准确性
Q:
role一定要准确带上吗?A: 涉及准确性。如把
system的消息作为user给过去,多半也不会出错,乱用role不会有严重问题。但准确的role有利于大模型回答的准确性,也方便人阅读消息Q: 其他厂商的接口入参和出参也是这样的格式吗?
A:不一定,但大多数主流厂商遵循此消息格式,可将其视为标准。