OpenAI 发布:AI 推理模型的应用与最佳实践

AI知识库4个月前更新 Sharenet.ai
807 0
Trae

在人工智能领域,模型的选择至关重要。OpenAI 作为行业领导者,提供了两种主要类型的模型系列:推理模型 (Reasoning Models) 和 GPT 模型 (GPT Models)。前者以 o 系列模型为代表,例如 o1 和 o3-mini;后者则以 GPT 系列模型著称,例如 GPT-4o。理解这两类模型的差异,以及它们各自擅长的应用场景,对于充分利用 AI 的潜力至关重要。

本文将深入探讨:

  1. OpenAI 推理模型与 GPT 模型之间的关键区别。
  2. 何时应优先考虑使用 OpenAI 的推理模型。
  3. 如何有效地提示推理模型,以获得最佳性能。

前几天微软工程师发布了一份 面向 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 发布:AI 推理模型的应用与最佳实践

例如,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 模型在复杂视觉信息理解和跨文档推理方面的强大能力。

OpenAI 发布:AI 推理模型的应用与最佳实践

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”)用于指导模型在生成回复之前进行多少推理计算。用户可以为该参数指定 lowmedium 或 high 三个值之一。其中,low 模式侧重于速度和较低的 token 成本,而 high 模式则会促使模型进行更深入和全面的推理,但会增加 token 消耗和响应时间。默认值设置为 medium,旨在实现速度与推理准确性之间的平衡。开发者可以根据实际应用场景的需求,灵活调整推理强度,以达到最佳的性能和成本效益。

推理工作原理:深入解析模型 “思考” 过程

推理模型在传统输入和输出 token 的基础上,引入了 推理 token 这一概念。这些推理 token 类似于模型的 “思考过程”,模型利用它们来分解对用户提示的理解,并探索生成答案的多种可行路径。在完成推理 token 的生成后,模型才会输出最终的答案,即用户可见的补全 token,并从上下文中丢弃推理 token。

下图展示了一个用户与助手之间多步骤对话的示例。在对话的每个步骤中,输入和输出 token 会被保留,而推理 token 则会被模型丢弃。

OpenAI 发布:AI 推理模型的应用与最佳实践

值得注意的是,尽管推理 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);

 

官方示例

© 版权声明
AiPPT

相关文章

暂无评论

none
暂无评论...