大语言模型对话
基本信息
Action:/chat/completions
Method: POST
Content-Type:application/json
Authorization:需提前在 API 密钥管理中创建和获取。
计费方式:input 和 output token 数量。
请求参数
参数 | 类型 | 作用 | 是否必须 | 示例 |
---|---|---|---|---|
messages |
对象数组 |
包含对话历史描述的消息列表。 |
是 |
[{"role": "system", "content": "You are a helpful assistent."}, {"role": "user", "content": "你好"}] |
model |
字符串 |
要使用的模型 |
是 |
Qwen2-7B-Instruct |
temperature |
浮点型 |
默认为 1。表示要使用的采样温度(temperature),介于 0 ~ 2 之间。较高的值(如 0.8)会使输出更随机,而较低的值(如 0.2)则会使其更加专注和确定。 |
否 |
1 |
top_p |
浮点型 |
默认为 1。一种称为“核心采样”的采样替代方法,其中模型考虑概率质量值在前 top_p 的标记的结果。因此,0.1 意味着仅考虑概率质量值前 10% 的标记。 |
否 |
1 |
n |
整数型 |
默认为 1。要生成的每个输入消息的聊天完成选项数量。 |
否 |
1 |
stream |
布尔类型 |
是否为流式响应 |
否 |
false |
stop |
字符串或数组类型 |
默认为 null。API 最多将生成 4 个序列,这些序列将停止生成更多标记。 |
否 |
[] |
max_tokens |
整数型 |
默认为 inf,表示最大生成 token 数 |
否 |
1024 |
presence_penalty |
浮点型 |
默认为 0。介于 -2.0~2.0 之间的数字。正值会根据新标记在迄今为止的文本中出现的频率惩罚新标记,增加模型谈论新话题的可能性。 |
否 |
0 |
frequency_penalty |
浮点型 |
默认为 0。范围在 -2.0~2.0 之间的数字。正值会根据其在文本中的现有频率惩罚新标记,从而减少模型重复同一行的可能性。 |
否 |
0 |
logit_bias |
dict |
默认为 null。修改出现在完成中的指定标记的可能性。 |
否 |
- |
响应参数
-
choices
为对象数组类型,其相关参数说明:参数 类型 描述 finish_reason
字符串
会话结束原因
message 为对象类型
role
字符串
角色
content
字符串
会话内容
-
usage
为对象类型,用于描述 token 使用量,其相关参数说明:参数 类型 描述 prompt_tokens
整数型
输入 token 数量
completion_tokens
整数型
生成文本 token 数量
total_tokens
整数型
总 token 数量
请求示例
Curl
curl -i -X POST \
-H "Content-Type:application/json" \
-H "Authorization:Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-d \
'{"model": "Qwen2-0.5B-Instruct", "stream": true, "messages": [{"role": "system", "content": "You are a helpful assistent."}, {"role": "user", "content": "你好"}]}' \
'https://openapi.coreshub.cn/v1/chat/completions'
Python
from openai import OpenAI
client = OpenAI(api_key='sk-xxxxxxxxxx', base_url='https://openapi.coreshub.cn/v1')
# 流式输出方式
completion = client.chat.completions.create(
model="Qwen2-0.5B-Instruct",
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'}],
stream=True
)
for chunk in completion:
print(chunk.model_dump_json())
# 文本输出方式
completion = client.chat.completions.create(
model="Qwen2-0.5B-Instruct",
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'}],
)
print(completion.model_dump_json())
响应示例
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [{
"index": 0,
"message": { "role": "assistant", "content": "\n\nHello there, how may I assist you today?", },
"finish_reason": "stop"
}],
"usage": { "prompt_tokens": 9, "completion_tokens": 12, "total_tokens": 21 }
}