在人工智能领域,模型的选择至关重要。OpenAI 作为行业领导者,提供了两种主要类型的模型系列:推理模型 (Reasoning Models) 和 GPT 模型 (GPT Models)。前者以 o 系列模型为代表,例如 o1
和 o3-mini
;后者则以 GPT 系列模型著称,例如 GPT-4o
。理解这两类模型的差异,以及它们各自擅长的应用场景,对于充分利用 AI 的潜力至关重要。
本文将深入探讨:
- OpenAI 推理模型与 GPT 模型之间的关键区别。
- 何时应优先考虑使用 OpenAI 的推理模型。
- 如何有效地提示推理模型,以获得最佳性能。
前几天微软工程师发布了一份 面向 OpenAI O1 与 O3-mini 推理模型的提示工程 ,可以比较两者在应用上的差异。
推理模型 vs. GPT 模型:策略家与执行者
OpenAI 的 o 系列推理模型,与我们熟知的 GPT 模型相比,在不同类型的任务中展现出各自的优势,并且需要采用不同的提示策略。 重要的是理解,这两类模型并非简单的优劣之分,而是能力侧重有所不同。这反映了 OpenAI 持续拓展其模型能力边界的努力,旨在应对日益复杂和需要深度推理的应用需求。
OpenAI 对 o 系列模型(内部代号为 “规划者” (Planners))进行了专门训练,使其具备更长时间和更深入的思考能力,从而在策略制定、复杂问题规划以及基于大量模糊信息进行决策等领域表现卓越。 这些模型能够以高精度和准确性完成任务,使其成为传统上依赖人类专家的领域的理想选择,例如数学、科学、工程、金融服务和法律服务等专业领域。
另一方面,OpenAI 的 GPT 模型(内部代号为 “主力军” (Workhorses)),则更注重低延迟和成本效益,专为直接执行任务而设计。 在实际应用中,一种常见的模式是结合使用这两类模型:利用 o 系列模型制定解决问题的宏观策略,然后借助 GPT 模型高效执行具体的子任务,尤其是在速度和成本效益比绝对精度更为关键的场景下。 这种分工协作的模式,体现了 AI 模型设计理念的成熟,即规划与执行相分离。
如何选择合适的模型? 理解您的需求
在选择模型时,关键在于明确您的应用场景的核心需求:
- 速度与成本: 如果您优先考虑速度和成本效率,那么 GPT 模型通常是更快速且经济的选择。
- 明确定义的任务: 对于目标清晰、任务边界明确的应用,GPT 模型能够出色地完成执行任务。
- 准确性与可靠性: 如果您的应用对结果的准确性和可靠性有极高要求,o 系列模型是更值得信赖的决策者。
- 复杂问题解决: 面对模糊性高、复杂度高的问题,o 系列模型能够有效应对。
因此,如果速度和成本是首要考虑因素,并且您的用例主要涉及直接、定义明确的任务,那么 OpenAI 的 GPT 模型将是理想之选。 然而,如果准确性和可靠性至关重要,并且您需要解决的是复杂、多步骤的问题,那么 OpenAI 的 o 系列模型可能更适合您的需求。
在许多实际的 AI 工作流程中,最佳实践往往是结合使用这两种模型:o 系列模型作为 “规划者” 负责代理规划和决策,而 GPT 系列模型则作为 “执行者” 负责具体的任务执行。 这种组合策略能够充分发挥两类模型的优势。
例如,OpenAI 的 GPT-4o 和 GPT-4o mini 模型可以用于客户服务场景中,首先利用客户信息对订单详细信息进行分类,识别订单问题和退货政策,然后将这些数据点输入到 o3-mini 模型中,由 o3-mini 根据预设政策最终决策退货的可行性。
推理模型的应用场景:擅长复杂与模糊
OpenAI 通过与客户的合作以及内部观察,总结出了一些推理模型成功应用的典型模式。 以下列举的应用场景并非全部,而是一些实用的指导,旨在帮助您更好地评估和测试 OpenAI 的 o 系列模型。
1. 驾驭模糊不清的任务:从碎片化信息中理解意图
推理模型尤其擅长处理信息不完整或分散的任务。 即使在提示信息有限的情况下,推理模型也能有效理解用户的真实意图,并妥善处理指令中的模糊之处。 值得一提的是,推理模型通常不会急于做出不明智的猜测或试图自行填补信息空白,而是会主动提出澄清问题,以确保准确理解任务需求。 这充分体现了推理模型在处理不确定性和复杂任务时的优势。
法律和金融领域的 AI 知识平台 Hebbia 表示: “o1 的卓越推理能力使得 OpenAI 的多代理平台 Matrix 能够高效处理复杂文档,并生成详尽、结构良好且信息丰富的响应。 例如,o1 使得 Matrix 能够通过简单的提示,轻松识别信贷协议中受限支付能力下的可用额度。 此前,没有任何其他模型能够达到如此出色的性能水平。 在 52% 的密集信贷协议复杂提示测试中,o1 相较于其他模型,取得了更显著的成果。”
——Hebbia,面向法律和金融领域的 AI 知识平台公司
2. 信息检索:大海捞针,精准定位
当面对海量非结构化信息时,推理模型展现出强大的信息理解能力,能够精准提取与问题最相关的信息,从而高效地回答用户提问。 这突显了推理模型在信息检索和关键信息过滤方面的卓越性能,尤其是在处理大规模数据集时。
AI 金融情报平台 Endex 分享道:“为了深入分析公司的收购行为,o1 模型被用于审查数十份公司文件,包括合同和租赁协议,旨在查找可能对交易产生不利影响的潜在条款。 模型的任务是标记关键条款。 在此过程中,o1 在脚注中敏锐地识别出一个关键的 “控制权变更” 条款:该条款规定,如果公司被出售,则必须立即偿还 7500 万美元的贷款。 o1 对细节的高度关注,使得 OpenAI 的 AI 代理能够有效支持金融专业人士的工作,精准识别关键任务信息。”
——Endex,AI 金融情报平台
3. 关系发现与细微差别识别:深入挖掘数据价值
OpenAI 发现,推理模型尤其擅长分析数百页篇幅的密集、非结构化文档,例如法律合同、财务报表和保险索赔等。 这些模型能够有效地从复杂文档中提取信息,并在不同文档之间建立联系,并基于数据中隐含的事实进行推理决策。 这表明推理模型在处理复杂文档和挖掘深层信息方面具有显著优势。
税务研究 AI 平台 Blue J 提到:“税务研究通常需要整合多份文档的信息,才能形成最终的、有说服力的结论。 OpenAI 将 GPT-4o 模型替换为 o1 模型后,发现 o1 在推理文档之间的相互作用方面表现更佳,能够得出在任何单一文档中都不明显的逻辑结论。 因此,通过切换到 o1 模型,OpenAI 的端到端性能提升了 4 倍,效果令人印象深刻。”
——Blue J,税务研究 AI 平台
推理模型同样擅长理解细致的政策和规则,并将其应用于具体任务,从而得出合理的结论。
投资管理 AI 平台 BlueFlame AI 举例说明:“在金融分析领域,分析师经常需要处理与股东权益相关的复杂情况,并且需要深入理解相关的法律复杂性。 OpenAI 使用一个具有挑战性但十分常见的问题,对来自不同供应商的约 10 个模型进行了测试:融资行为将如何影响现有股东,特别是当他们行使反稀释特权时? 这个问题需要对融资前后的公司估值进行推理,并处理循环稀释的复杂情况——即使是顶级的金融分析师也需要花费 20-30 分钟才能理清思路。 OpenAI 发现,o1 和 o3-mini 模型能够完美地解决这个问题! 这些模型甚至生成了一个清晰的计算表格,详细展示了融资行为对 10 万美元股东的影响。”
——BlueFlame AI,投资管理 AI 平台
4. 多步骤代理规划: 运筹帷幄,决胜千里
推理模型在代理规划和策略制定方面发挥着至关重要的作用。 OpenAI 观察到,当推理模型被定位为 “规划者” 时,能够为复杂问题生成详细的、多步骤的解决方案。 随后,系统可以根据对延迟和智能程度的不同需求,为每个步骤选择和分配最合适的 GPT 模型 (“执行者”) 来执行。 这进一步印证了模型组合使用的优势,推理模型如同 “大脑” 负责策略规划,而 GPT 模型则如同 “手脚” 负责具体执行。
制药行业 AI 知识平台 Argon AI 透露: “OpenAI 在其代理基础设施中采用 o1 模型作为规划者,使其能够协调工作流程中的其他模型,以高效完成多步骤任务。 OpenAI 发现,o1 模型非常擅长选择合适的数据类型,并将大型复杂问题分解为更小的、易于管理的模块,从而使其他模型能够专注于具体执行。”
——Argon AI,制药行业 AI 知识平台
工作 AI 助理 Lindy.AI 分享道:“o1 模型为 OpenAI 的 AI 工作助理 Lindy 的众多代理工作流程提供强大支持。 该模型能够利用函数调用,从用户的日历或电子邮件中提取关键信息,从而自动协助用户安排会议、发送电子邮件以及管理日常任务的其他环节。 OpenAI 将 Lindy 过去所有导致问题的代理步骤都切换到了 o1 模型,并观察到 Lindy 的代理功能几乎在一夜之间变得完美无瑕!”
——Lindy.AI,工作 AI 助理
5. 视觉推理: 洞察图像背后的信息
截至目前,o1
是唯一支持视觉推理能力的推理模型。 o1
与 GPT-4o
的显著区别在于,o1
甚至能够有效处理最具挑战性的视觉信息,例如结构复杂的图表、表格,或图像质量欠佳的照片。 这突显了 o1
在视觉信息处理领域的独特优势。
AI 商户监控平台 Safetykit 提到:“OpenAI 致力于为数百万在线产品(包括奢侈珠宝仿制品、濒危物种和管制物品等)实现自动化风险和合规审查。 在 OpenAI 最具挑战性的图像分类任务中,GPT-4o 模型的准确率仅为 50%。 而
o1
模型在未对 OpenAI 现有流程进行任何修改的情况下,实现了高达 88% 的惊人准确率。”——Safetykit,AI 商户监控平台
OpenAI 自身的内部测试也表明,o1
模型能够从高度详细的建筑图纸中识别出固定装置和材料,并生成全面的材料清单。 OpenAI 观察到的最令人惊讶的现象之一是,o1
模型能够跨越不同图像建立联系——例如,它可以获取建筑图纸某一页上的图例,并将其准确地应用于另一页,而无需明确的指令。 在下面的示例中,我们可以看到,对于 “4x4 PT 木柱”,o1
模型能够根据图例正确识别出 “PT” 代表 “pressure treated”(防腐处理)。 这充分展示了 o1
模型在复杂视觉信息理解和跨文档推理方面的强大能力。
6. 代码审查、调试与质量提升: 精益求精,代码优化
推理模型在代码审查和改进方面表现出色,尤其擅长处理大规模代码库。 考虑到推理模型相对较高的延迟,代码审查任务通常在后台运行。 这表明,尽管存在延迟,推理模型在代码分析和质量控制领域仍具有重要的应用价值,尤其适用于对实时性要求不高的场景。
AI 代码审查初创公司 CodeRabbit 透露:“OpenAI 在 GitHub 和 GitLab 等代码托管平台上提供自动 AI 代码审查服务。 代码审查过程本质上对延迟不敏感,但需要深入理解跨多个文件的代码变更。 这正是 o1 模型的优势所在——它能够可靠地检测到代码库中细微的更改,而这些更改可能容易被人工审查员忽略。 在切换到 o 系列模型后,OpenAI 的产品转化率提升了 3 倍。”
——CodeRabbit,AI 代码审查初创公司
虽然 GPT-4o
和 GPT-4o mini
模型可能更适合低延迟的代码编写场景,但 OpenAI 也观察到 o3-mini
模型在对延迟不敏感的代码生成用例中表现突出。 这意味着 o3-mini
在代码生成领域也具备潜力,尤其是在对代码质量有较高要求,而对延迟相对宽容的应用场景中。
AI 驱动的代码补全初创公司 Codeium 评价道:“即使面对极具挑战性的编码任务,
o3-mini
模型也能够始终如一地生成高质量、结论性的代码,并且在问题定义明确的情况下,非常频繁地给出正确的解决方案。 其他模型可能仅适用于小规模、快速的代码迭代,但o3-mini
模型擅长规划和执行复杂的软件设计系统。”——Codeium,AI 驱动的代码扩展初创公司
7. 模型评估与基准测试: 客观评价,优中选优
OpenAI 还发现,推理模型在基准测试和评估其他模型响应方面表现出色。 数据验证对于确保数据集的质量和可靠性至关重要,尤其是在医疗保健等敏感领域。 传统的验证方法依赖于预定义的规则和模式,但像 o1
和 o3-mini
这样的高级模型能够理解上下文并进行推理,从而实现更灵活、更智能的验证方法。 这表明推理模型可以作为 “裁判” 来评估其他模型的输出质量,这对于 AI 系统的迭代优化至关重要。
AI 评估平台 Braintrust 指出:“许多客户在 Braintrust 平台中使用 LLM-as-a-judge 功能,将其作为评估流程的一部分。 例如,一家医疗保健公司可能会使用像
gpt-4o
这样的主力模型来总结患者病历问题,然后使用o1
模型评估摘要的质量。 一位 Braintrust 客户发现,使用4o
模型作为裁判时,F1 分数为 0.12,而切换到o1
模型后,F1 分数跃升至 0.74! 在这些用例中,他们发现o1
模型的推理能力在捕捉完成结果的细微差别方面具有变革性意义,尤其是在最困难和最复杂的评分任务中。”——Braintrust,AI 评估平台
有效提示推理模型的技巧: 简洁至上
推理模型在接收到简洁明了的提示时,往往能发挥最佳性能。 一些传统的提示工程技巧,例如指示模型 “逐步思考”,可能并不能有效提升性能,甚至有时会适得其反。 以下是一些最佳实践,或者您可以直接参考 提示示例 开始尝试。
- 开发者消息取代系统消息: 从
o1-2024-12-17
版本开始,推理模型开始支持开发者消息,而非传统的系统消息,以符合 模型规范 中描述的指令链行为。 - 保持提示简洁直接: 推理模型擅长理解和响应简洁明了的指令。 因此,对于推理模型而言,清晰直接的指令比复杂的提示工程技巧更为有效。
- 避免思维链提示: 由于推理模型在内部已经具备推理能力,因此无需提示其 “逐步思考” 或 “解释你的推理过程”。 这种冗余的提示方式反而可能降低模型性能。
- 使用分隔符提升清晰度: 使用 Markdown、XML 标签和章节标题等分隔符,清晰地标示输入内容的不同部分,有助于模型准确理解不同部分的内容。
- 优先尝试零样本提示,再考虑少样本提示: 推理模型通常无需少样本示例即可产生良好的结果。 因此,建议首先尝试编写不带示例的零样本提示。 如果您对输出结果有更复杂的要求,那么在提示中加入一些输入和期望输出的示例可能会有所帮助。 但务必确保示例与您的提示指令高度一致,因为两者之间的偏差可能会导致不良结果。
- 提供明确具体的指导: 如果存在明确的约束条件可以限制模型的响应范围(例如 “提出预算低于 500 美元的解决方案”),请在提示中清晰地阐述这些约束条件。
- 明确最终目标: 在指令中,尽可能具体地描述成功响应的评判标准,并鼓励模型不断进行推理和迭代,直到满足您的成功标准。
- Markdown 格式控制: 从
o1-2024-12-17
版本开始,API 中的推理模型默认避免生成带有 Markdown 格式的响应。 如果您希望模型在响应中包含 Markdown 格式,请在开发者消息的第一行添加字符串Formatting re-enabled
。
推理模型API使用示例
推理模型的独特之处在于其“思考”过程。与传统的语言模型不同,推理模型在给出答案之前,会进行深入的内部思考,构建一个漫长的推理链条。正如 OpenAI 官方介绍中所述,这些模型在响应用户之前,会进行 深思熟虑。这种机制赋予了推理模型卓越的能力,使其在解决复杂难题、进行代码编写、开展科学推理以及为 Agent 工作流进行多步骤规划等任务中表现出色。
与 OpenAI 的 GPT 模型类似,OpenAI 也提供了两种推理模型以满足不同需求:o3-mini
模型以其较小的规模和更快的速度脱颖而出,同时 token 成本也相对较低;而 o1
模型则以更大的规模和稍慢的速度为代价,换取了更强大的问题解决能力。o1
模型在处理复杂任务时通常能生成更优质的回复,并在不同领域展现出更优秀的泛化性能。
快速入门
为了帮助开发者快速上手,OpenAI 提供了简便易用的 API 接口。以下是如何在 chat completions 中使用推理模型的快速入门示例:
在 chat completions 中使用推理模型
import OpenAI from "openai";
const openai = new OpenAI();
const prompt = `
编写一个 bash 脚本,该脚本接收一个以字符串形式表示的矩阵,
格式为 '[1,2],[3,4],[5,6]',并以相同的格式打印转置矩阵。
`;
const completion = await openai.chat.completions.create({
model: "o3-mini",
reasoning_effort: "medium",
messages: [
{
role: "user",
content: prompt
}
],
});
console.log(completion.choices[0].message.content);
from openai import OpenAI
client = OpenAI();
prompt = """
编写一个 bash 脚本,该脚本接收一个以字符串形式表示的矩阵,
格式为 '[1,2],[3,4],[5,6]',并以相同的格式打印转置矩阵。
"""
response = client.chat.completions.create(
model="o3-mini",
reasoning_effort="medium",
messages=[
{
"role": "user",
"content": prompt
}
]
);
print(response.choices[0].message.content);
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "o3-mini",
"reasoning_effort": "medium",
"messages": [
{
"role": "user",
"content": "编写一个 bash 脚本,该脚本接收一个以字符串形式表示的矩阵,格式为 \"[1,2],[3,4],[5,6]\",并以相同的格式打印转置矩阵。"
}
]
}'
推理强度:掌控模型的思考深度
在上述示例中,reasoning_effort
参数(在这些模型的开发过程中被亲切地称为 “juice”)用于指导模型在生成回复之前进行多少推理计算。用户可以为该参数指定 low
、medium
或 high
三个值之一。其中,low
模式侧重于速度和较低的 token 成本,而 high
模式则会促使模型进行更深入和全面的推理,但会增加 token 消耗和响应时间。默认值设置为 medium
,旨在实现速度与推理准确性之间的平衡。开发者可以根据实际应用场景的需求,灵活调整推理强度,以达到最佳的性能和成本效益。
推理工作原理:深入解析模型 “思考” 过程
推理模型在传统输入和输出 token 的基础上,引入了 推理 token 这一概念。这些推理 token 类似于模型的 “思考过程”,模型利用它们来分解对用户提示的理解,并探索生成答案的多种可行路径。在完成推理 token 的生成后,模型才会输出最终的答案,即用户可见的补全 token,并从上下文中丢弃推理 token。
下图展示了一个用户与助手之间多步骤对话的示例。在对话的每个步骤中,输入和输出 token 会被保留,而推理 token 则会被模型丢弃。
值得注意的是,尽管推理 token 通过 API 接口不可见,但它们仍然会占用模型的上下文窗口空间,并且会计入总 token 使用量,如同 输出 token 一样需要付费。因此,在实际应用中,开发者需要充分考虑推理 token 的影响,合理管理模型的上下文窗口和 token 消耗。
上下文窗口管理:确保模型拥有充足的 “思考空间”
在创建 completions 请求时,务必确保上下文窗口有足够的空间来容纳模型生成的推理 token。根据问题的复杂程度,模型可能需要生成几百到数万个推理 token。用户可以通过 chat completion 响应对象的 usage object 中的 completion_tokens_details
字段,查看模型在特定请求中使用的确切推理 token 数量:
{
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21,
"completion_tokens_details": {
"reasoning_tokens": 0,
"accepted_prediction_tokens": 0,
"rejected_prediction_tokens": 0
}
}
}
用户可以在 模型参考页面 上查阅不同模型的上下文窗口长度。合理评估和管理上下文窗口,对于确保推理模型有效运行至关重要。
成本控制:精打细算,优化 token 消耗
为了有效管理推理模型的成本,用户可以使用 max_completion_tokens
参数,限制模型生成的 token 总数,包括推理 token 和补全 token。
在早期的模型中,max_tokens
参数同时控制着模型生成的 token 数量和用户可见的 token 数量,两者始终保持一致。然而,对于推理模型而言,由于内部推理 token 的引入,模型生成的 token 总数可能会超过用户最终看到的 token 数量。
考虑到部分应用可能依赖于 max_tokens
参数与 API 返回的 token 数量保持一致,OpenAI 特别推出了 max_completion_tokens
参数,以便更明确地控制模型生成的 token 总量,包括推理 token 和用户可见的补全 token。这种显式的参数设置确保了现有应用在使用新模型时能够平稳过渡,避免潜在的兼容性问题。对于所有之前的模型,max_tokens
参数的功能保持不变。
为推理预留空间:避免 “思考” 中断
如果生成的 token 数量达到上下文窗口限制或用户设置的 max_completion_tokens
值,API 将返回一个 chat completion 响应,并将 finish_reason
字段设置为 length
。这种情况可能发生在模型生成任何用户可见的补全 token 之前,这意味着用户可能需要为输入 token 和推理 token 付费,但最终没有收到任何可见的回复。
为了避免上述情况,请务必确保上下文窗口预留了充足的空间,或者将 max_completion_tokens
参数调整为更高的数值。OpenAI 建议,在初次尝试这些推理模型时,至少为推理和输出过程预留 25,000 个 token 的空间。在用户逐渐熟悉其提示所需的推理 token 数量后,可以根据实际情况调整此缓冲区大小,以实现更精细化的成本控制。
提示建议:释放推理模型的潜力
在提示推理模型和 GPT 模型时,有一些关键差异需要用户注意。总体而言,对于仅提供高层次指导的任务,推理模型往往能给出更出色的结果。这一点与 GPT 模型有所区别,GPT 模型通常在接收到非常精确的指令时表现更佳。
- 推理模型如同经验丰富的资深同事 —— 用户只需告知他们要实现的目标,便可以信任他们自主解决具体的细节问题。
- GPT 模型则更像初级助手 —— 它们在拥有明确且详细的指令,以便创建特定输出时,才能发挥最佳水平。
要了解更多关于使用推理模型的最佳实践,请参考 OpenAI 官方指南。
提示示例:应用场景展示
编码 (代码重构)
OpenAI 的 o-series 模型展现出了强大的算法理解和代码生成能力。以下示例展示了如何利用 o1 模型,根据特定标准重构 React 组件。
重构代码
import OpenAI from "openai";
const openai = new OpenAI();
const prompt = `
指令:
- 给定以下 React 组件,修改它,使非小说类书籍显示红色文本。
- 回复中仅返回代码
- 不要包含任何额外的格式,例如 markdown 代码块
- 对于格式,使用四个空格缩进,并且不允许任何代码行超过 80 列
const books = [
{ title: 'Dune', category: 'fiction', id: 1 },
{ title: 'Frankenstein', category: 'fiction', id: 2 },
{ title: 'Moneyball', category: 'nonfiction', id: 3 },
];
export default function BookList() {
const listItems = books.map(book =>
<li>
{book.title}
</li>
);
return (
<ul>{listItems}</ul>
);
}
`.trim();
const completion = await openai.chat.completions.create({
model: "o3-mini",
messages: [
{
role: "user",
content: prompt,
},
],
});
console.log(completion.usage.completion_tokens_details);
from openai import OpenAI
client = OpenAI();
prompt = """
指令:
- 给定以下 React 组件,修改它,使非小说类书籍显示红色文本。
- 回复中仅返回代码
- 不要包含任何额外的格式,例如 markdown 代码块
- 对于格式,使用四个空格缩进,并且不允许任何代码行超过 80 列
const books = [
{ title: 'Dune', category: 'fiction', id: 1 },
{ title: 'Frankenstein', category: 'fiction', id: 2 },
{ title: 'Moneyball', category: 'nonfiction', id: 3 },
];
export default function BookList() {
const listItems = books.map(book =>
<li>
{book.title}
</li>
);
return (
<ul>{listItems}</ul>
);
}
"""
response = client.chat.completions.create(
model="o3-mini",
messages=[
{
"role": "user",
"content": prompt
}
]
);
print(response.choices[0].message.content);
编码 (项目规划)
OpenAI 的 o-series 模型同样擅长制定多步骤的项目计划。以下示例展示了如何利用 o1 模型,为一个 Python 应用创建完整的文件系统结构,并生成实现所需功能的 Python 代码。
计划并创建一个 Python 项目
import OpenAI from "openai";
const openai = new OpenAI();
const prompt = `
我想构建一个 Python 应用程序,它可以接收用户的问题,并在数据库中查找答案。
数据库中存储了问题到答案的映射关系。如果找到密切匹配的问题,则检索匹配的答案。
如果没有找到,则要求用户提供答案,并将问题/答案对存储在数据库中。
为我创建一个目录结构计划,我需要这个结构,然后完整地返回每个文件中的代码。
只在开头和结尾提供你的推理过程,不要在代码中穿插推理。
`.trim();
const completion = await openai.chat.completions.create({
model: "o3-mini",
messages: [
{
role: "user",
content: prompt,
},
],
});
console.log(completion.usage.completion_tokens_details);
from openai import OpenAI
client = OpenAI();
prompt = """
我想构建一个 Python 应用程序,它可以接收用户的问题,并在数据库中查找答案。
数据库中存储了问题到答案的映射关系。如果找到密切匹配的问题,则检索匹配的答案。
如果没有找到,则要求用户提供答案,并将问题/答案对存储在数据库中。
为我创建一个目录结构计划,我需要这个结构,然后完整地返回每个文件中的代码。
只在开头和结尾提供你的推理过程,不要在代码中穿插推理。
"""
response = client.chat.completions.create(
model="o3-mini",
messages=[
{
"role": "user",
"content": prompt
}
]
);
print(response.choices[0].message.content);
STEM 研究
OpenAI 的 o-series 模型在 STEM (科学、技术、工程和数学) 研究领域展现出卓越的性能。对于旨在支持基础研究任务的提示,这些模型通常能给出令人印象深刻的结果。
提出与基础科学研究相关的问题
import OpenAI from "openai";
const openai = new OpenAI();
const prompt = `
为了推进新型抗生素的研究,我们应该考虑研究哪三种化合物?
为什么我们应该考虑它们?
`;
const completion = await openai.chat.completions.create({
model: "o3-mini",
messages: [
{
role: "user",
content: prompt,
}
],
});
console.log(completion.choices[0].message.content);
from openai import OpenAI
client = OpenAI();
prompt = """
为了推进新型抗生素的研究,我们应该考虑研究哪三种化合物?
为什么我们应该考虑它们?
"""
response = client.chat.completions.create(
model="o3-mini",
messages=[
{
"role": "user",
"content": prompt
}
]
);
print(response.choices[0].message.content);
官方示例