2. client.chat.completions.create 简单使用

client.chat.completions.create() 是 OpenAI Python SDK(v1.0+)中用于调用 ChatGPT 模型的核心方法。以下是该方法的 完整参数详解使用示例


一、基础必填参数

参数名类型必填说明
modelstr模型名称,如 "gpt-3.5-turbo""gpt-4-turbo"
messagesList[dict]对话消息列表,每条消息需包含 rolecontent(见下方消息格式)
📌 消息格式示例
messages = [
    {"role": "system", "content": "你是一个专业的翻译官"},  # 系统指令(可选)
    {"role": "user", "content": "将'Hello'翻译成中文"},    # 用户输入
    # 可包含历史消息 {"role": "assistant", "content": "你好"}
]

二、常用可选参数

参数名类型默认值说明
max_tokensintinf限制生成的最大token数(1个汉字≈1.3token)
temperaturefloat1.0控制随机性(0.0-2.0),值越低输出越确定
top_pfloat1.0核采样概率(与temperature二选一)
nint1生成几条候选回复
stopList[str]None遇到指定字符串时停止生成(如 ["\n"]
streamboolFalse是否流式输出(逐字返回)
presence_penaltyfloat0.0惩罚重复话题(-2.0~2.0)
frequency_penaltyfloat0.0惩罚重复用词(-2.0~2.0)
seedintNone固定随机种子(确保相同输入输出一致)

三、高级参数

参数名类型适用场景
response_formatdict强制返回JSON格式(如 {"type": "json_object"}
tools / tool_choiceList函数调用(Function Calling)
logprobsbool返回每个token的概率(调试用)
userstr终端用户ID(用于滥用监控)

四、完整代码示例

1. 基础调用
from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
    model="gpt-3.5-turbo-0125",
    messages=[
        {"role": "system", "content": "你是一个幽默的助手"},
        {"role": "user", "content": "讲个程序员笑话"}
    ],
    max_tokens=100,
    temperature=0.7,
)
print(response.choices[0].message.content)
2. 流式输出(适合长文本)
response = client.chat.completions.create(
    model="gpt-4-turbo",
    messages=[{"role": "user", "content": "用100字介绍AI"}],
    stream=True
)

for chunk in response:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
3. 强制返回JSON
response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user", "content": "生成包含name和age的JSON,示例数据"}
    ],
    response_format={"type": "json_object"}  # 必须搭配system提示
)
print(response.choices[0].message.content)
# 输出示例: {"name": "张三", "age": 28}
4. 函数调用(Tools)
from openai.types.chat import ChatCompletionTool

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "获取城市天气",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {"type": "string"}
                },
                "required": ["city"]
            }
        }
    }
]

response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "上海今天天气如何?"}],
    tools=tools,
    tool_choice="auto"  # 让模型决定是否调用函数
)
print(response.choices[0].message.tool_calls)

五、响应对象结构

返回的 response 包含以下关键属性:

response.id                  # 本次调用的唯一ID
response.choices[0].message  # 主要回复内容
response.usage               # token消耗统计
典型响应示例:
ChatCompletion(
    id="chatcmpl-xxx",
    choices=[
        ChatCompletionChoice(
            finish_reason="stop",
            index=0,
            message=ChatCompletionMessage(
                content="你好!我是AI助手。",
                role="assistant",
                tool_calls=None
            )
        )
    ],
    created=1710000000,
    model="gpt-3.5-turbo-0125",
    usage=CompletionUsage(
        prompt_tokens=10,
        completion_tokens=20,
        total_tokens=30
    )
)

六、注意事项

  1. 模型兼容性
    response_format 仅支持 gpt-3.5-turbo-0125gpt-4-turbo 及以上版本
    • 函数调用需模型支持 tools 参数

  2. 费用控制
    • 通过 max_tokens 限制生成长度
    • 监控 response.usage.total_tokens

  3. 错误处理

    from openai import APIError
    
    try:
        response = client.chat.completions.create(...)
    except APIError as e:
        print(f"API错误: {e.status_code} - {e.message}")
    

掌握这些参数后,你可以精准控制AI的生成行为。建议从官方文档获取最新参数说明。

### 客户端创建对话补全的方法参数 #### 方法签名 ```python client.chat.completions.create( model="model_name", messages=[ {"role": "system", "content": "System message"}, {"role": "user", "content": "User input"} ] ) ``` 此函数用于向指定模型发送消息并获取响应。以下是各个参数的具体描述: - **`model`**: 指定要使用的预训练语言模型名称,例如 `"deepseek-chat"`[^1]。 - **`messages`**: 这是一个列表,包含了多个字典对象,每个字典代表一条消息。每条消息都应包含两个键:"role" 和 "content"。 - *`role`*: 可选值为 `"system"`、`"user"` 或者 `"assistant"`。这决定了该消息的角色定位,在会话中的身份角色。 - *`content`*: 字符串形式的消息正文内容。对于不同角色的消息有不同的用途;比如系统指令可以用来指导模型的行为模式。 此外还有其他可选参数可以根据需求设置,如温度 (`temperature`) 控制输出随机性的程度,默认情况下这些高级选项保持默认即可满足大多数应用场景的需求。 ```python def get_response(text): client = OpenAI(api_key='your_api_key_here', base_url="https://api.deepseek.com") completion = client.chat.completions.create( model="deepseek-chat", messages=[ {'role': 'system', 'content': '总结user提交的内容。用一句不超过50字的话总结这段小说的情节。仅回答总结,不需要添加其他内容。'}, {'role': 'user', 'content': text} ], temperature=0.7 # 随机度控制参数,这里设为了0.7作为例子 ) return completion.choices[0].message.content ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值