一般通过男网友百度快照优化的优势是什么
client.chat.completions.create()
是 OpenAI Python SDK(v1.0+)中用于调用 ChatGPT 模型的核心方法。以下是该方法的 完整参数详解 和 使用示例:
一、基础必填参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
model | str | ✅ | 模型名称,如 "gpt-3.5-turbo" 、"gpt-4-turbo" |
messages | List[dict] | ✅ | 对话消息列表,每条消息需包含 role 和 content (见下方消息格式) |
📌 消息格式示例
messages = [{"role": "system", "content": "你是一个专业的翻译官"}, # 系统指令(可选){"role": "user", "content": "将'Hello'翻译成中文"}, # 用户输入# 可包含历史消息 {"role": "assistant", "content": "你好"}
]
二、常用可选参数
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
max_tokens | int | inf | 限制生成的最大token数(1个汉字≈1.3token) |
temperature | float | 1.0 | 控制随机性(0.0-2.0),值越低输出越确定 |
top_p | float | 1.0 | 核采样概率(与temperature二选一) |
n | int | 1 | 生成几条候选回复 |
stop | List[str] | None | 遇到指定字符串时停止生成(如 ["\n"] ) |
stream | bool | False | 是否流式输出(逐字返回) |
presence_penalty | float | 0.0 | 惩罚重复话题(-2.0~2.0) |
frequency_penalty | float | 0.0 | 惩罚重复用词(-2.0~2.0) |
seed | int | None | 固定随机种子(确保相同输入输出一致) |
三、高级参数
参数名 | 类型 | 适用场景 |
---|---|---|
response_format | dict | 强制返回JSON格式(如 {"type": "json_object"} ) |
tools / tool_choice | List | 函数调用(Function Calling) |
logprobs | bool | 返回每个token的概率(调试用) |
user | str | 终端用户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 ChatCompletionTooltools = [{"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)
)
六、注意事项
-
模型兼容性
•response_format
仅支持gpt-3.5-turbo-0125
和gpt-4-turbo
及以上版本
• 函数调用需模型支持tools
参数 -
费用控制
• 通过max_tokens
限制生成长度
• 监控response.usage.total_tokens
-
错误处理
from openai import APIErrortry:response = client.chat.completions.create(...) except APIError as e:print(f"API错误: {e.status_code} - {e.message}")
掌握这些参数后,你可以精准控制AI的生成行为。建议从官方文档获取最新参数说明。