摘要:今天,我对 ChatGPT 的存在感到平静——但当它第一次推出时,我很害怕。我妈妈是一名四年级的老师,她立即告诉我(一位职业作家和技术内容经理)我很快就要失业了。多年后,我仍然受雇,现在努力让 ChatGPT 成为我的盟友。我不仅开始体会到它的帮助,而且我还认
通过代码示例,帮助初学者在几分钟内学习使用 Python 和 OpenAI 的 API 构建一个简单的聊天机器人。
图片来自 Unsplash
今天,我对 ChatGPT 的存在感到平静——但当它第一次推出时,我很害怕。我妈妈是一名四年级的老师,她立即告诉我(一位职业作家和技术内容经理)我很快就要失业了。多年后,我仍然受雇,现在努力让 ChatGPT 成为我的盟友。我不仅开始体会到它的帮助,而且我还认为当机器人接管时,不要成为第一敌人是明智的。
话虽如此,为什么我还要喋喋不休呢?嗯,了解敌人是与它交朋友的一步。使用 AI 是一项非常有价值的技能。这不仅仅是问 ChatGPT 问题(我现在很喜欢)。学习如何与模型一起编码是真正利用 GPT 功能的下一步。
我设计了这个教程,就是为了帮助初学者开始理解 ChatGPT 的 API 和响应逻辑。它不会教你如何在 GPT 上构建一个花哨的应用程序,但它会帮助你了解如何编写与 openai(ChatGPT 的创建者)API 交互的代码。由于这是一个简洁的教程,因此我使用 Jupyter Notebook 构建了它。Jupyter Notebook 非常适合原型设计和测试想法。如果您不熟悉 Jupyter Notebooks,请查看此入门指南。
在 platform.openai.com 注册。访问 API 控制面板。转到 API 密钥页面 ,单击“创建新的密钥”并立即复制密钥。您以后将无法再次查看它。添加账单信息。虽然 OpenAI 提供免费试用,但我添加了一种付款方式。10 美元的信用额度通常足以试验 GPT-3.5。注意:您需要免费试用或有效计费才能使用 GPT-3.5。导入所需的库和依赖项
将以下内容粘贴到您的第一个 Jupyter Notebook 单元格中:
openai 允许您与 OpenAI 的模型进行交互,例如 GPT-3.5。 python-dotenv 安全地管理 API 密钥等敏感信息,将它们从 .env 文件加载到 Python 环境中。
导入模块
使用以下代码导入 openai、os 和 dotenv,它们有助于配置环境并与 API 交互:
加载您的 API 密钥
确保您已在 OpenAI 控制面板中创建 API 密钥。现在,您将设置一个 .env 文件来安全地存储它:
将实际的 API 密钥粘贴到 sk-proj-api-key-here 的位置。接下来,将密钥加载到笔记本中:
定义 Chatbot 功能
在这里,我们定义了聊天机器人如何与 OpenAI 的 API 通信并处理对话。
该方法 openai.chat.completions.create 是专为交互式聊天设计的最新 API 调用。此方法允许通过发送消息列表并根据正在进行的对话接收相关响应来与 GPT-3.5 进行实时通信。
GPT-3.5 等 GPT 模型旨在在会话期间保留内存。这意味着他们参考了对话的早期部分,以提供更连贯和有用的回应。我们的 chat_with_gpt 函数接受一个消息列表,该列表用作正在进行的对话历史记录。这有助于助手在上下文中做出响应。
列表中的每条消息都包含一个 “role” 值,用于告诉模型消息来自谁:
“user” 表示提问者GPT 响应的 “助手”“system” 设置行为指令(可选)temperature 值控制助手响应的随机性或创造性。范围从 0 到 1,其中 0 是响应的可预测端,1 表示更随机和更具创意。建议将 0.7 作为最佳平衡。
API 返回响应对象。从那里,我们使用 choices[0].message.content 提取助手的回复,它指的是 GPT 生成的实际文本。
运行 Chat 循环
现在,我们将使聊天机器人具有交互性,以便用户可以与模型进行持续对话。
while True: user_input = input("You: ") if user_input.lower in ["exit", "quit"]: print("Goodbye!") break messages.append({"role": "user", "content": user_input}) reply = chat_with_gpt(messages) messages.append({"role": "assistant", "content": reply}) print(f"Assistant: {reply}")此部分设置一个无限循环,允许聊天机器人继续运行,直到用户键入 exit 或 quit。无限循环通过跟踪已经说过的内容,使聊天机器人成为对话式并“了解”过去的消息。此循环使对话继续进行,同时保留上下文。该上下文允许 GPT-3.5 以更自然、更有意义的方式做出响应。
以下是逐步发生的事情:
该项目让您对如何使用 GPT-3.5 构建聊天机器人有一个基本的了解。虽然这只是一个开始,但您现在知道如何使用 OpenAI API 进行身份验证、维护对话循环以及使用 Jupyter Notebooks 测试和运行代码。这是迈向更高级的 AI 开发和与机器人交朋友的重要第一步。
来源:AI中国一点号