大语言模型对话
基本信息
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 }
}