# Chat(修改图片) 

**方法**: `POST`
**路径**: `/v1/chat/completions`

[官方指南](https://platform.openai.com/docs/guides/text-generation/chat-completions-api)
[官方API文档](https://platform.openai.com/docs/api-reference/chat)
所有对话模型，都可使用此接口， 修改 model 属性为模型名
需要模型支持生图能力

## 请求参数

### Header 参数

```text
Content-Type
string
必需
示例:
application/json
Accept
string
必需
示例:
application/json
Authorization
string
可选
默认值:
Bearer {{YOUR_API_KEY}}
```

### Body 参数 application/json

```text
model
string
必需
要使用的模型的 ID。有关哪些模型适用于聊天 API 的详细信息，请参阅
模型端点兼容性表。
messages
array
[object]
必需
以
聊天格式
生成聊天完成的消息。
role
string
可选
content
string
可选
temperature
integer
可选
使用什么采样温度，介于 0 和 2 之间。较高的值（如 0.8）将使输出更加随机，而较低的值（如 0.2）将使输出更加集中和确定。  我们通常建议改变这个或
top_p
但不是两者。
top_p
integer
可选
一种替代温度采样的方法，称为核采样，其中模型考虑具有 top_p 概率质量的标记的结果。所以 0.1 意味着只考虑构成前 10% 概率质量的标记。  我们通常建议改变这个或
temperature
但不是两者。
n
integer
可选
为每个输入消息生成多少个聊天完成选项。
stream
boolean
可选
如果设置，将发送部分消息增量，就像在 ChatGPT 中一样。当令牌可用时，令牌将作为纯数据
服务器发送事件
data: [DONE]
发送，流由消息终止。
有关示例代码
，请参阅 OpenAI Cookbook 。
stop
string
可选
API 将停止生成更多令牌的最多 4 个序列。
max_tokens
integer
可选
聊天完成时生成的最大令牌数。  输入标记和生成标记的总长度受模型上下文长度的限制。
presence_penalty
number
可选
-2.0 和 2.0 之间的数字。正值会根据到目前为止是否出现在文本中来惩罚新标记，从而增加模型谈论新主题的可能性。
查看有关频率和存在惩罚的更多信息。
frequency_penalty
number
可选
-2.0 和 2.0 之间的数字。正值会根据新标记在文本中的现有频率对其进行惩罚，从而降低模型逐字重复同一行的可能性。
查看有关频率和存在惩罚的更多信息。
logit_bias
null
可选
修改指定标记出现在完成中的可能性。  接受一个 json 对象，该对象将标记（由标记器中的标记 ID 指定）映射到从 -100 到 100 的关联偏差值。从数学上讲，偏差会在采样之前添加到模型生成的 logits 中。确切的效果因模型而异，但 -1 和 1 之间的值应该会减少或增加选择的可能性；像 -100 或 100 这样的值应该导致相关令牌的禁止或独占选择。
user
string
可选
代表您的最终用户的唯一标识符，可以帮助 OpenAI 监控和检测滥用行为。
了解更多
。
示例
{
"model"
:
"string"
,
"messages"
:
[
{
"role"
:
"string"
,
"content"
:
"string"
}
]
,
"temperature"
:
0
,
"top_p"
:
0
,
"n"
:
0
,
"stream"
:
true
,
"stop"
:
"string"
,
"max_tokens"
:
0
,
"presence_penalty"
:
0
,
"frequency_penalty"
:
0
,
"logit_bias"
:
null
,
"user"
:
"string"
}
```

## 请求示例代码

### Shell

```bash
curl --location --request POST '/v1/chat/completions' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{YOUR_API_KEY}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "model": "string",
    "messages": [
        {
            "role": "string",
            "content": "string"
        }
    ],
    "temperature": 0,
    "top_p": 0,
    "n": 0,
    "stream": true,
    "stop": "string",
    "max_tokens": 0,
    "presence_penalty": 0,
    "frequency_penalty": 0,
    "logit_bias": null,
    "user": "string"
}'
```

## 返回响应

### 🟢 200 OK

**内容类型**: `application/json`

#### 响应结构

```text
id
string
必需
object
string
必需
created
integer
必需
choices
array
[object]
必需
index
integer
可选
message
object
可选
finish_reason
string
可选
usage
object
必需
prompt_tokens
integer
必需
completion_tokens
integer
必需
total_tokens
integer
必需
```

#### 示例

```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
    }
}
```
