如何使用OpenAI API和Python SDK构建自己的聊天机器人

这篇具有很好参考价值的文章主要介绍了如何使用OpenAI API和Python SDK构建自己的聊天机器人。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

近日,OpenAI公司的ChatGPT模型走红网络。同时,OpenAI也推出了Chat API和gpt-3.5-turbo模型,让开发者能够更轻松地使用与ChatGPT类似的自然语言处理模型。

通过OpenAI API,我们可以使用gpt-3.5-turbo模型,实现多种任务,包括:撰写电子邮件或其他文本内容,编写Python代码,创建对话代理,回答各类问题,为软件提供自然语言界面,进行各学科的辅导,翻译语言,为视频游戏模拟角色等,还有许多未被挖掘的应用场景。

如何使用OpenAI API和Python SDK构建自己的聊天机器人

本文将为大家介绍如何使用OpenAI的Python SDK实现自己的聊天机器人。如果你已经使用过OpenAI的Python SDK,请确保将其升级到最新版本(0.27.0)。如果你还没有安装Python运行环境,请先安装Python 3.10。

接下来,我们将用FastAPI快速创建一个API,它的接口定义如下:

POST /chatbot/talk

Request Body:
{
    “message”: "你好!"
}

Response:
{
    “content”: “机器人回复消息”
}

首先,你需要在命令行中安装FastAPI和OpenAI SDK,运行以下命令:

pip install fastapi uvicorn openai

为了方便演示,下面是一个最基本的FastAPI服务实现,文件保存在main/app.py文件中。

import openai
from typing import List
from fastapi import FastAPI
from pydantic import BaseModel
from starlette.middleware.cors import CORSMiddleware

history = []
app = FastAPI()

app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["HEAD", "OPTIONS", "GET", "PUT", "PATCH", "POST", "DELETE"],
    allow_headers=["*"],
    max_age=86400
)

openai.api_key = "输入您的Key"

class TalkRequest(BaseModel):
    message: str

@app.post("/chatbot/talk")
async def chatbot_talk(user_input: TalkRequest):
    if not history:
        history.append({"role": "system", "content": "你好,我是你的私人助手!"})
    history.append({"role": "user", "content": user_input.message.strip() })

    response = await openai.ChatCompletion.acreate(
         model="gpt-3.5-turbo",
         messages=history)
    bot_response = response.choices[0].message
    history.append({"role": "bot", "content": bot_response})
    return {"content": bot_response}

现在只需创建一个 run.py文件来启动 FastAPI 服务。

import uvicorn

from main.app import app

if __name__ == '__main__':
    uvicorn.run(
        app=app,
        host="127.0.0.1",
        port=8080,
        use_colors=True,
        log_level="debug"
    )

接下来运行 run.py。

在浏览器中打开 http://127.0.0.1:8080/docs 即可看到 Swagger 界面已经加载并显示出我们的 Talk API,如下图所示:

点击 Try it out, 在 message 里填入一个句子,例如我们这里输入的”你好”,点击 Execute按钮。如果没有问题应该能得到下面的响应结果:

OK,到这里我们的后台服务就已经准备好了。

这是一个用于搭建聊天机器人 UI 界面的代码示例,其中使用了 Vue.js 和 Axios。用户可以在浏览器中打开一个页面,输入文本消息并发送到聊天机器人 API,然后接收聊天机器人的响应。

首先,需要在 Vue 项目中创建一个名为 Chat.vue 的组件。在 Chat.vue 中,可以添加一个文本框和一个发送按钮,用于向聊天机器人发送消息。然后,使用 Vue.js 的数据绑定功能,将文本框的值绑定到一个名为 message 的 Vue 组件数据属性。在发送按钮上添加一个点击事件,该事件将调用一个 sendMessage 方法,该方法将使用 Axios(或其他 HTTP 库)将消息 POST 到聊天机器人 API。在发送成功后,使用 Axios 响应中的数据更新 Vue 组件数据属性的值,以显示聊天机器人的响应消息。

这里提供了一个基本的 Chat.vue 文件代码示例:

<template>
  <div>
    <div v-for="(message, index) in messages" :key="index">
      <div v-if="message.isBot">{{ message.content }}</div>
      <div v-else>{{ message.content }}</div>
    </div>
    <input v-model="message" type="text" placeholder="Type your message here...">
    <button @click="sendMessage">Send</button>
  </div>
</template>

<script>
import axios from 'axios'

export default {
  name: "ChatView",
  data() { 
    return {
      message: '',
      messages: [],
    }
  },
  methods: {
    async sendMessage() {
      const url = 'http://127.0.0.1:8080/chatbot/talk'
      const data = { message: this.message }
      const response = await axios.post(url, data)
      this.messages.push({ content: this.message, isBot: false })
      this.messages.push({ content: response.data.content, isBot: true })
      this.message = ''
    },
  },
}
</script>

在这个示例中,messages 是一个数组,它用于存储聊天记录。sendMessage 方法将新消息添加到 messages 数组中,并使用 Axios 发送消息并更新响应的数据属性。最后,它清空了 message 数据属性,以便用户可以输入下一个消息。在模板中,我们使用 v-for 循环遍历 messages 数组,并根据 isBot 数据属性来判断消息是用户的消息还是聊天机器人的消息。

需要注意的是,这个示例中聊天机器人 API 的地址是 http://127.0.0.1:8080/chatbot/talk。如果聊天机器人 API 的地址不同,需要相应地修改 sendMessage 方法中的 url 变量。

最后,要在浏览器中运行 Vue 应用程序,需要执行以下步骤。

确保已经安装了 Node.js 和 npm,这将使我们能够使用 Vue 的命令行工具来创建和管理项目。

打开命令行终端,导航到项目目录,并使用以下命令安装 Vue CLI:

npm install -g cnpm --registry=https://registry.npmmirror.com

cnpm install -g @vue/cli

使用以下命令创建一个新的 Vue 项目:

vue create my-chat-app

根据需求进行选择,稍等片刻项目即可创建成功。

进入 my-chat-app 目录,安装 Axios:

cnpm install axios --save

将 Chat.vue 组件添加到 src/components 文件夹中。

打开 src/App.vue 文件,并将以下代码添加到模板中:

<template>
  <div>
    <Chat />
  </div>
</template>
<script>
import Chat from './components/Chat.vue'

export default {
  name: 'App',
  components: {
    Chat,
  },
}
</script>

在命令行终端中运行以下命令启动开发服务器:

npm run serve

打开 http://localhost:8081/,可以看到一个基本的聊天窗口可以体验聊天机器人。

因文章篇幅有限,感兴趣的同行完全可以利用前端技术做出更精美的机器人聊天窗口。文章来源地址https://www.toymoban.com/news/detail-429998.html

到了这里,关于如何使用OpenAI API和Python SDK构建自己的聊天机器人的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ChatGPT:2. 使用OpenAI创建自己的AI网站:1. 初探API

    如果你还是一个OpenAI的小白,有OpenAI的账号,但想调用OpenAI的API搞一些有意思的事,那么这一系列的教程将仔细的为你讲解如何使用OpenAI的API制作属于自己的AI网站。博主只能利用下班时间更新,进度慢,请海涵🥳。 😼1. OpenAI API的首页:https://platform.openai.com/ 😸2. 查看自己

    2024年02月08日
    浏览(42)
  • 使用Azure OpenAI+ChatGPT Web快速构建自己的ChatGPT,无需FQ,无忧封号

    登录Azure网站,申请Azure OpenAI服务 创建 Azure OpenAI 资源创建完成✅后,可以在\\\"资源管理\\\"-\\\"密钥和终结点\\\"部分看到调用Azure OpenAI服务需要用到的api key和endpoint 在Azure OpenAI Studio中部署模型 通过以上操作,我们得到以下资源信息,先记下来,后面搭建网站会用到 名称 值 说明 A

    2024年02月12日
    浏览(43)
  • 使用Java和ChatGPT Api来创建自己的大模型聊天机器人

    什么是大模型? 大型语言模型(LLM)是一种深度学习模型,它使用大量数据进行预训练,并能够通过提示工程解决各种下游任务。LLM 的出发点是建立一个适用于自然语言处理的基础模型,通过预训练和提示工程的方式实现模型在新的数据分布和任务上的强大泛化能力。LLM 旨

    2024年02月12日
    浏览(49)
  • 【GPT,Flask】用Python Flask结合OpenAI的GPT API构建一个可自主搭建的内容生成应用网站

    自己构建模型并进行训练需要很高的知识,技能和资源门槛。如今,通过OpenAI提供的API,则可以快速通过GPT能力构建可以提供内容生成服务的在线网站。这套框架可以提供给用户,用户可以利用该框架在自己的环境(比如自己的公司内)构建内容生成服务。你也可以自己上线

    2024年02月11日
    浏览(60)
  • 使用纯flutter3.0版本,2个dart文件,搭建ChatGPT简易版聊天客户端程序(含openai与api2d版本)

    使用纯Flutter 3.0版本,仅需2个Dart文件,即可搭建ChatGPT简易版聊天客户端程序(包括OpenAI与API2D版本) 随着人工智能的快速发展,聊天机器人成为了现代社交和客户服务的重要工具。ChatGPT是OpenAI开发的一款基于深度学习的语言模型,能够模拟人类对话,实现智能化的对话交互

    2024年02月07日
    浏览(44)
  • OpenAi最简洁的Java流式返回接入方式,没有第三方依赖,只需要使用Spring Boot即可!轻松构建你的带有聊天记忆、画图功能的chatgpt!

    OpenAi最简洁的Java流式返回接入方式,没有第三方依赖,只需要使用Spring Boot即可!轻松构建你的带有聊天记忆、画图功能的chatgpt! GitHub - NiuXiangQian/chatgpt-stream: OpenAi最简洁的Java流式返回接入方式,没有第三方依赖,只需要使用Spring Boot即可!轻松构建你的带有聊天记忆、画图

    2024年02月12日
    浏览(60)
  • 如何通过 Axios 和 JavaScript 使用 OpenAI API

    领先的 AI 研究实验室 OpenAI 创建了一个强大的 API,允许开发人员利用尖端的 AI 功能并使用 GPT3 等生成语言模型。在本教程中,我们将向您展示如何将 OpenAI API 与 Axios 和 JavaScript 结合使用,让您一窥由 AI 驱动的 Web 开发的未来。 Axios 是一个流行的 JavaScript 库,用于发出 HTTP

    2024年02月07日
    浏览(44)
  • 【虹科分享】基于Redis Enterprise,LangChain,OpenAI 构建一个电子商务聊天机器人

    如何构建你自己的商务聊天机器人?注意哦,是你自己的聊天机器人。一起来看看 Redis Enterprise的向量检索是怎么帮你实现这个愿望的吧。   鉴于最近人工智能支持的 API和网络开发工具的激增,似乎每个人都在将聊天机器人集成到他们的应用程序中。   LangChain是一种备受欢

    2024年02月05日
    浏览(71)
  • 如何在Ubuntu上方便使用OpenAI API key

    上一篇博客中怎么样使用OpenAI的Python API_蛐蛐蛐的博客-CSDN博客,我简单介绍了怎么使用OpenAI API,按照这个网页中的建议:https://platform.openai.com/docs/api-reference/authentication Remember that your API key is a secret! Do not share it with others or expose it in any client-side code (browsers, apps). Production req

    2024年02月02日
    浏览(41)
  • OpenAI 入门(三)|构建自己的 Visual Studio Code Copilot 组件

    点击蓝字 关注我们 编辑:Alan Wang 排版:Rani Sun 微软 Reactor 为帮助广开发者,技术爱好者,更好的学习 .NET Core, C#, Python,数据科学,机器学习,AI,区块链, IoT 等技术,将每周三到周六,组织 3~5 场线上分享活动。欢迎跟着我们一起来学习。  近来,随着 ChatGPT 的风靡,人工

    2024年02月04日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包