OpenAI 的 GPT⑷ 模型初学者指南

英文| https://medium.com/geekculture/beginners-guide-to-openai-s-gpt⑷-model⑴4779c9ebbc9
翻译 | 杨小爱


在昨天我们跟大家分享了关于GPT⑶.5模型的初学者教程指南《OpenAI 的 GPT⑶.5-Turbo 模型初学者指南》,今天这篇文章,我们再来分享一个关于构建 ChatGPT 的 GPT⑷ 聊天机器人的进程,其中包括分步说明和完全的代码片断。我将介绍有关 GPT⑷ API 的基本信息,并提供实用的见解来帮助您创建一个功能强大、引人入胜的聊天机器人。
我们将深入研究模型定价,探索聊天完成令牌的确切计算方式。另外,我将讨论 GPT⑶.5-turbo 和 GPT⑷ 之间的区分,比较它们的性能,让您全面了解 GPT⑷ 一定要提供的功能。
01、了解 GPT⑷ 模型
如果您浏览了本文教程,您极可能已熟习 OpenAI 和 ChatGPT。GPT 模型 API 允许像我们这样的开发人员访问和使用 GPT 系列中的预训练语言模型,例如 GPT⑷ 和 GPT⑶.5-turbo。这些模型能够生成类似人类的文本,履行自然语言处理任务,并支持广泛的相关利用。
GPT⑷ 是 OpenAI 的 GPT 模型家族中最新且功能最强大的成员。OpenAI 宣称 GPT⑷ 在大多数测试基准中都超过了 ChatGPT,这意味着我们有更好的机会实现我们想要的结果。
另外,它还具有改进的安全功能。但是,GPT⑷ 其实不是 GPT 模型的全部和终结,其实不意味着我们应当立即停止使用其他模型。我将在本教程后面的与 GPT⑶.5-turbo 的比较部份进一步讨论这一点。
02、取得对 GPT⑷ 模型的访问权限
在撰写本教程时,公众可以通过两种方式访问 GPT⑷ 模型。
ChatGPT Plus 定阅:通过定阅 ChatGPT Plus,您将取得对 GPT⑷ 的有限访问权限。此定阅允许用户每 3 小时发送 25 条聊天消息。
GPT⑷ API(仅限受邀者):目前只有受邀者才能通过等候名单访问 GPT⑷ API。我在注册后大约 48 小时收到了我的约请邮件。
请记住,可用性可能会随着时间的推移而改变,因此请确保及时了解 OpenAI 的公告。
03、使用 GPT⑷ 模型构建聊天机器人
升级到新的 GPT⑷ 模型 API 非常简单,由于它使用与 GPT⑶.5-turbo 相同的聊天完成方法。如果我们有权访问,我们可以期望我们现有的代码能够与 GPT⑷ 无缝协作。
在本教程中,我将演示怎样在 Node.js 中使用 GPT⑷ API 构建聊天机器人。但是,相同的概念适用于您选择的其他编程语言。
如果您不肯定提示完成和聊天完成的概念,请务必查看 GPT⑶.5-Turbo 教程《OpenAI 的 GPT⑶.5-Turbo 模型初学者指南》,我在其中提供了二者的详细比较和示例。
在继续之前,请确保您已获得 OpenAI API 密钥并相应地设置您的项目。
现在我们已掌握了基础知识,让我们开始构建我们的 GPT⑷ 支持的聊天机器人。
04、安装必要的 NPM 包
npm install dotenv openai chalk

这些库有以下用处:

  • dotenv:允许我们将 API 密钥安全地存储为环境变量。

  • openai:用于轻松调用 OpenAI 模型 API 的官方 Node.js 库。

  • chalk:由于我们正在构建一个在我们的终端中运行的聊天机器人,我们将使用 Chalk 为对话添加一些风格,使其更具可读性和视觉吸引力。

  • readline:一个内置的 Node.js 库,我们将使用它来读取用户输入,从而可以轻松地通过命令行与我们的聊天机器人进行交互。

代码片断:打造您的聊天机器人

// index.js 
// 导入所需的库import dotenv from "dotenv";import { Configuration, OpenAIApi } from "openai";import readline from "readline";import chalk from "chalk";
// Load environment variablesdotenv.config();
// Initialize the OpenAI API clientconst openai = new OpenAIApi( new Configuration({ apiKey: process.env.OPENAI_API_KEY }));
// Create a readline interface for user inputconst rl = readline.createInterface({ input: process.stdin, output: process.stdout});
// Define an array to store the conversation messagesconst GPTMessages = [];
// Set the model name; replace with other model names if neededconst modelName = "gpt⑷"; // "gpt⑶.5-turbo"
// Define an async function to call the GPT APIconst GPT = async (message) => { // Call the GPT API with the model, messages, and max tokens const response = await openai.createChatCompletion({ model: modelName, messages: message, max_tokens: 100, });
// Return the response content and the total number of tokens used return { content: response.data.choices[0].message.content, tokensUsed: response.data.usage.total_tokens, };};
// Define a function to ask the user a question and handle their inputconst askUserQuestion = (role) => { // Set the prompt text based on the role (system or user) const prompt = role === "system" ? "Enter system message: " : "Enter your question: ";
// Ask the user a question and process their input rl.question(prompt, async (userInput) => { // Add the user's input to the GPTMessages array GPTMessages.push({ role: role, content: userInput });
// If the input is a system message, ask the user for their question if (role === "system") { askUserQuestion("user"); } else { // Call the GPT function with the current conversation messages const assistantResponse = await GPT(GPTMessages);
// Add the assistant's response to the GPTMessages array GPTMessages.push({ role: "assistant", content: assistantResponse.content });
// Display the assistant's response and the number of tokens used console.log(chalk.yellow("-----")); console.log(chalk.green("Assistant: "), assistantResponse.content); console.log(chalk.cyan("Tokens used: "), assistantResponse.tokensUsed);
// Ask the user another question askUserQuestion("user"); } });};
// Display the model name and begin the conversationconsole.log(`### I'm ${chalk.blue(modelName.toUpperCase())}. ####`);askUserQuestion("system");

要有效地使用聊天完成构建聊天机器人,请依照以下步骤操作:

  1. 为用户输入和输出做准备:我们为聊天机器人设置了一种方式来接收来自用户的消息,并使用“readline”库通过命令行发送响应。

  2. 跟踪对话:我们创建一个名为 GPTMessages 的数组来存储用户和聊天机器人之间交换的消息。我们还在 modelName 变量中指定要使用的 GPT 模型(例如 GPT⑶.5-turbo 或 GPT⑷)。

  3. 制作聊天机器人功能:我们创建一个名为 GPT 的功能,它将用户的消息发送到 OpenAI API 并接收响应。它还会跟踪聊天机器人在其响应中使用了多少令牌,并返回内容和令牌使用情况。

  4. 创建来回对话:我们构建一个名为 askUserQuestion 的函数,它要求用户输入,将输入保存在 GPTMessages 数组中,并通过调用 GPT 函数获得聊天机器人的响应。然后它使用“chalk”库以格式良好的方式显示聊天机器人的响应。

  5. 启动聊天机器人:我们输入一条欢迎消息,让用户知道他们正在与哪一个聊天机器人聊天。然后,我们通过使用初始消息的“系统”角色调用 askUserQuestion 函数来开始对话。

提示:在写这篇文章的时候,GPT⑷ 模型有点不稳定,你会常常看到服务器毛病、使用限制问题。我建议你为 GPT 函数实现一个自动重试功能,如果服务器没有返回状态 200,它允许利用程序延迟重试 API 调用。这个自动重试功能应当有配置最大值的选项 重试次数和重试之间的延迟。

05、GPT⑷ 聊天机器人在行动:一个演示

下面是我们的聊天机器人的一个例子,展现了它如何有效地回答问题并在全部聊天进程中保持对话的上下文。请注意,由于 max_tokens 设置为 100,部份响应可能会被截断,您可以根据您的要求进行调剂。

请注意,在此实现中,根据约请电子邮件,对话会话的最大令牌限制为 8k。不过,OpenAI 还有一个 32k 的 GPT⑷ 模型,可以一次性生成多达 50 页的文本。截至目前,仿佛还没法访问此模型,或可能仅适用于他们的企业合作火伴。

当您使用提供的代码运行聊天机器人时,您可以与模型进行对话,它会记住聊天记录以相应地回答新问题。这有助于为与聊天机器人交互的用户创造更加无缝和自然的对话体验。

当您测试聊天机器人并探索其功能时,您会发现 GPT⑷ 相对之前模型的改进,包括更好的响应质量、上下文理解和安全功能(值得商议

ChatGPT相关资讯

ChatGPT热门资讯

X

截屏,微信识别二维码

微信号:muhuanidc

(点击微信号复制,添加好友)

打开微信

微信号已复制,请打开微信添加咨询详情!