目录
OpenAI Chat API 详解:打造智能对话应用的基石
OpenAI API 提供了强大的自然语言处理能力, 通过简单的 API 调用, 开发者可以将先进的语言模型集成到各种应用中。然而, 要充分发挥这些模型的潜力, 理解并灵活运用其丰富的调用参数至关重要。本文将带你深入探索 OpenAI API 的各项参数, 并结合实际案例, 助你成为驾驭语言力量的行家。
参数概览
在深入每个参数之前, 我们先通过一个表格对 OpenAI API 的常用调用参数进行概览, 其中包含了参数及其默认值, 让你对整体有一个清晰的认识。
| 参数名 | 类型 | 是否必需 | 描述 | 常用取值示例 | 默认值 |
|---|---|---|---|---|---|
model |
String | 是 | 指定要使用的模型。 | "gpt-3.5-turbo", "text-davinci-003", "code-davinci-002" |
无 |
message |
Array | 是 | messages 参数是一个包含消息对象的数组,用于表示到目前为止的对话历史 。每个消息对象必须包含 role 和 content 字段。role 可以是 system、user 或 assistant,分别代表系统指令、用户的输入和助手的回复。通过在 messages 数组中按时间顺序包含所有相关的先前消息,可以为模型提供必要的上下文,从而实现连贯的多轮对话。 | "请写一首关于春天的诗歌", [{"role": "user", "content": "你好"}, {"role": "assistant", "content": "你好!有什么我可以帮您?"}] |
无 |
prompt |
String/Array | 否 | 在一些较旧的或基于补全的模型中,仍然会使用 prompt 参数。prompt 接受一个字符串或字符串数组,作为生成文本补全的输入 。对于构建类似 ChatGPT 的应用程序,推荐使用带有聊天补全端点的 messages 参数 。 | "你好" |
无 |
max_tokens |
Integer | 否 | 生成文本的最大 token 数。限制生成文本的长度, 防止模型输出过长。 | 50, 200, 1000 |
模型默认最大值 |
temperature |
Float | 否 | 控制生成文本的随机性。值越高, 输出越随机和有创造性;值越低, 输出越确定和集中。通常在 0 到 2 之间。 | 0.2, 0.7, 1.5 |
1.0 |
top_p |
Float | 否 | 控制生成文本的核采样。模型会考虑概率最高的 top-p 的 token 集合。与 temperature 类似, 但以不同的方式控制随机性。建议不要同时调整 temperature 和 top_p。 |
0.5, 0.9 |
1.0 |
n |
Integer | 否 | 为每个输入提示生成多少个独立的补全。 | 1, 3, 5 |
1 |
stream |
Boolean | 否 | 是否启用流式传输。如果设置为 True, 模型将以数据流的形式逐个返回 token。 |
True, False |
False |
stop |
String/Array | 否 | 模型在生成文本时遇到这些序列时会停止生成。可以是一个字符串或一个字符串数组。 | "\n", `[“###”, "< |
file_separator |
presence_penalty |
Float | 否 | 对模型生成新 token 的惩罚, 鼓励模型生成之前文本中没有出现过的新概念。范围通常在 -2.0 到 2.0 之间。 | -1.0, 0.5, 2.0 |
0.0 |
frequency_penalty |
Float | 否 | 对模型生成已经频繁出现的 token 的惩罚, 降低模型重复输出相同内容的倾向。范围通常在 -2.0 到 2.0 之间。 | -1.0, 0.5, 2.0 |
0.0 |
logit_bias |
Map | 否 | 修改特定 token 出现在完成结果中的可能性。接受一个 JSON 对象, 该对象将 token (由 tokenizer 计算) 映射到介于 -100 和 100 之间的偏差值。正偏差会增加 token 的可能性, 而负偏差会降低其可能性。 | {"50256": -100} (降低 `< |
endoftext |
user |
String | 否 | 代表最终用户的唯一标识符, 有助于 OpenAI 监控和检测滥用行为。 | "user-1234", "internal-app-user" |
null |
注意: max_tokens 的默认值取决于所选模型的最大上下文长度。stop 和 user 默认值为 null,表示没有设置。logit_bias 默认值为空字典 {},表示没有对任何 token 的概率进行调整。
核心参数详解与实战
接下来, 我们将对一些最核心和常用的参数进行更深入的探讨, 并通过实际案例展示它们的应用。
1. model: 选择你的 AI 大脑
model 参数决定了你将使用哪个 OpenAI 模型来处理你的请求。不同的模型在能力、速度和成本上都有所不同。
gpt-3.5-turbo: 目前最流行的模型之一, 性价比高, 适用于各种文本生成和对话任务。text-davinci-003: 功能强大的文本生成模型, 擅长创意性写作、长文本生成和复杂指令理解。code-davinci-002: 专门为代码生成和理解而优化的模型。
实战案例 (Python SDK):
假设你想生成一篇关于未来旅行的短文, 你可以选择 text-davinci-003 以获得更具创意和深度的内容:
import openai
client = openai.OpenAI(api_key="YOUR_API_KEY")
response = client.completions.create(
model="text-davinci-003",
prompt="展望未来,人们会以怎样的方式旅行?",
max_tokens=200,
temperature=0.8 # 覆盖默认值 1.0
)
print(response.choices

最低0.47元/天 解锁文章
1098

被折叠的 条评论
为什么被折叠?



