OpenAI聊天指南

2025-03-11 55
OpenAI

类型:人工智能

简介:一家开放人工智能研究和部署公司,推出了ChatGPT。

本指南旨在帮助开发者调用基于聊天的语言模型API,并分享一些优化结果的实用技巧。大家还可以在 OpenAI Playground 中体验全新的聊天模式。

通过 OpenAI Chat API,可以利用 gpt-3.5-turbo 和 gpt-4 构建各类应用程序,完成以下任务:

  • 撰写邮件或文档
  • 编写 Python 代码
  • 解答文档相关问题
  • 创建对话代理
  • 为软件提供自然语言交互界面
  • 提供多学科辅导
  • 语言翻译
  • 模拟视频游戏角色

一、OpenAI聊天核心概念

聊天模型以一系列消息作为输入,并返回由模型生成的消息作为输出。尽管聊天模式专为多轮对话设计,但它同样适用于单轮任务(如传统指令跟踪模型 text-davinci-003 所执行的任务)。

1、示例API调用

import openai

openai.ChatCompletion.create( 
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "是一位乐于助人的助手。"},
{"role": "user", "content": "2020 年世界大赛的冠军是谁?"},
{"role": "assistant", "content": "2020 年世界大赛的冠军是洛杉矶道奇队。"},
{"role": "user", "content": "比赛在哪里举行?"}
]
)

关键输入是 messages 参数,它是一个消息对象数组。每个消息对象包含一个角色(系统、用户 或 助手)和内容(消息文本)。

2、对话结构

系统消息:用于设定助手的行为。例如,上例中的系统消息是“是一位乐于助人的助手。”

用户消息:用于指导助手,可以是最终用户输入或开发者预设的指令;

助手消息:存储先前的响应,帮助模型保持对话连贯性。

注意:gpt-3.5-turbo-0301 对系统消息的关注度有限,未来版本将更重视系统指令。因此,重要指令建议放在用户消息中。

二、OpenAI API响应格式

示例 API 响应如下:

{
"id": "chatcmpl-6p9XYPYSTTRi0xEviKjjilqrWU2Ve",
"object": "chat.completion", 
"created": 1677649420,
"model": "gpt-3.5-turbo",
"usage": {"prompt_tokens": 56, "completion_tokens": 31, "total_tokens": 87},
"choices": [
{
"message": {
"role": "assistant",
"content": "2020 年世界大赛在德克萨斯州阿灵顿的 Globe Life Field 举行,这是德州游骑兵队的新主场。"
},
"finish_reason": "stop",
"index": 0
}
]
}

在 Python 中,可通过 response[‘choices’][0][‘message’][‘content’] 提取助手的回复。

finish_reason 的可能值:

  • stop:API 返回完整输出;
  • length:因 max_tokens 或标记限制导致输出不完整;
  • content_filter:因内容过滤器被省略;
  • null:API 响应仍在进行中。

三、标记(Tokens)管理

语言模型将文本分解为标记(tokens)。例如,英文句子 “ChatGPT is great!” 被编码为 6 个标记:[“Chat”, “G”, “PT”, ” is”, ” great”, “!”]。

1、标记总数的影响

  • API 调用成本:按标记计费;
  • API 调用时间:标记越多,生成时间越长;
  • 模型限制:gpt-3.5-turbo 的最大标记限制为 4096。

提示:使用 OpenAI 的 tiktoken Python 库计算文本标记数,避免超出模型限制。

2、优化模型输出

如果模型输出不符合预期,可尝试以下方法:

  • 明确指令:让指令更具体;
  • 指定格式:要求模型按特定格式回答;
  • 逐步思考:让模型在回答前先分析利弊;
  • 调整参数:如 temperature(控制输出的随机性)和 max_tokens(限制回复长度)。

注意:temperature 值越高(如 0.8),输出越随机;值越低(如 0.2),输出越集中。

四、聊天模式与完成模式的对比

gpt-3.5-turbo 在文本生成能力上与 text-davinci-003 相似,但成本仅为后者的 10%。因此,建议在大多数场景中使用 gpt-3.5-turbo。

转换示例:

完成模式:

Translate the following English text to French: "{text}"

聊天模式:

[
{"role": "system", "content": "是一位擅长英法翻译的助手。"},
{"role": "user", "content": "将以下英文翻译成法语:'{text}'"}
]
  • 广告合作

  • QQ群号:707632017

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。
Laravel服务提供者
上一篇: Laravel控制器
OpenAI
下一篇: OpenAI图像生成