900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > ChatGPT AI聊天机器人实践

ChatGPT AI聊天机器人实践

时间:2021-11-16 13:03:47

相关推荐

ChatGPT AI聊天机器人实践

背景

ChatGPT 时代,开发新的 AI 应用的门槛大大降低了,你无需要去研究机器学习,深度学习等等模型,还有去准备GPU硬件,再新的趋势下,伴随着 GPT-3、Stable Diffusion 这样预训练好的大型基础模型的出现,以及这些模型的能力通过开放 API 的形式提供出来,即使没有任何机器学习的理论知识,你只需要一两天时间,就能做出一个能解决实际问题的 AI 应用。

API

大型语言模型的接口其实非常简单,像 OpenAI 就只提供了 Complete 和 Embedding 两个接口,其中,Complete 可以让模型根据你的输入进行自动续写,Embedding 可以将你输入的文本转化成向量。

业务描述

以前实现聊天机器需要套模板。这个的缺点,就是每次的回答都一模一样。当然,我们可以设计多个模版轮换着表达相同的意思,但是最多也就是三四个模版,整体的体验还是相当呆板。

有了 GPT 这样的生成式的语言模型,我们就可以让 AI 自动根据我们的需求去写文案了。只要把我们的需求提给 Open AI 提供的 Completion 接口,他就会自动为我们写出这样一段文字。

ChatGPT 参数

Open AI 提供的 Completion 接口 ,参数列表:

engine,OpenAI 使用哪一个引擎,选择text-davinci-003prompt,输入的提示语max_tokens,调用生成的内容允许的最大 token 数量,token 是分词之后的一个字符序列里的一个单元。n,AI 给你生成几条内容供你选择,在这样自动生成客服内容的场景里,我们当然设置成 1。stop,模型输出的内容在遇到什么内容的时候就停下来。

实现

import loggingimport openaifrom telegram import Updatefrom telegram.ext import filters, MessageHandler, ApplicationBuilder, CommandHandler, ContextTypes# 设置日志记录logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',level=logging.INFO)# 设置 OpenAI API keyopenai.api_key = "你的Open AI Key"# 定义函数,处理 "/start" 命令async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):await context.bot.send_message(chat_id=update.effective_chat.id, text="我是一个机器人,请和我聊天吧!")# 定义函数,使用 OpenAI 生成回复async def generate_response(update: Update, context: ContextTypes.DEFAULT_TYPE):# 获取用户的消息message = update.message.text# 使用 OpenAI 生成回复response = pletion.create(engine="text-davinci-003",prompt=f"{message}\n",max_tokens=128,n=1,stop=None,temperature=0.5,).choices[0].text# 将回复发送给用户await context.bot.send_message(chat_id=update.effective_chat.id, text=response)# 定义函数,处理未知命令async def unknown(update: Update, context: ContextTypes.DEFAULT_TYPE):await context.bot.send_message(chat_id=update.effective_chat.id, text="抱歉,我不明白您的命令。")if __name__ == '__main__':# 设置 Telegram 机器人application = ApplicationBuilder().token('你的Telegram Token').build()# 添加 "/start" 命令处理器start_handler = CommandHandler('start', start)application.add_handler(start_handler)# 添加消息处理器,使用 OpenAI 生成回复generate_response_handler = MessageHandler(filters.TEXT & (~MAND), generate_response)application.add_handler(generate_response_handler) # 添加未知命令处理器unknown_handler = MessageHandler(MAND, unknown)application.add_handler(unknown_handler)# 启动机器人,并等待消息的到来application.run_polling()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。