大家好,给大家分享一下python中如何做一个连体机器人的代码,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!
原始地址:https://dev.to/kalebu/learn-how-to-build-a-simple-chatbot-app-in-python-dne
在Python中构建一个简单的聊天机器人应用
在本教程中,您将学习如何在Python中构建自己的聊天机器人,它能够回答您大部分的常见问题。
什么是聊天机器人?
聊天机器人是能够模拟与用户的对话(或聊天)的人工智能(AI)软件,您将在本教程中学习如何使用Python构建自己简单的聊天机器人python画树状图。
要求
如果您使用的是Windows操作系统,则无需安装任何东西,因为我们将要使用的每个模块都自动随Python标准库一起安装。
然而,如果您使用的是Linux系统,则可能需要自行安装Tkinter库。
安装
$ pip install python-tk
此外,您需要在本地文件夹中拥有一个json字典,它将作为我们聊天机器人的知识库。
下载下面的Json字典并将其放在您的项目目录中。
项目目录
您的项目目录应如下所示:
.
├── app.py
└── knowledge.json
0个目录,2个文件
构建我们的聊天机器人
现在,在您设置好了一切清楚之后,让我们开始构建我们的应用程序。在整个项目中,我们将使用以下Python模块。
导入模块
现在导入所有必要的模块,准备开始构建我们的聊天机器人。
import json
from difflib import get_close_matches
from tkinter import Tk, Label, Entry, Button, Text, Scrollbar, Frame
为我们的聊天机器人应用程序提供外骨骼
我们现在需要创建我们的应用程序的外骨骼,使用Tkinter库为我们的聊天机器人设计用户界面。
我们的聊天机器人用户界面将需要具备以下功能:
- 输入框,允许我们输入消息
- 按钮,用于提交消息
- 消息部分,用于显示与聊天机器人的对话
- 滚动条,帮助我们浏览对话中的内容
使用Tkinter的知识,我已经将上述功能写入了下面的Python代码。
app.py
import json
from difflib import get_close_matches
from tkinter import Tk, Label, Entry, Button, Text, Scrollbar, Frame
class Chatbot:
def __init__(self, window):
window.title('Iris bot')
window.geometry('400x400')
window.resizable(0,0)
self.message_session = Text(window, bd=3, relief="flat", font=("Times", 10), undo=True, wrap="word")
self.message_session.config(width=45, height=15,bg="#596", fg="white", state='disabled')
self.overscroll = Scrollbar(window, command=self.message_session.yview)
self.overscroll.config(width=20)
self.message_session["yscrollcommand"] = self.overscroll.set
self.message_position = 1.5
self.send_button = Button(window, text='send', fg='white', bg='blue',width=9,font=('Times', 12), relief ='flat')
self.Message_Entry = Entry(window, width=40, font=('Times', 12))
self.message_session.place(x=20, y=20)
self.overscroll.place(x=370, y=50)
self.send_button.place(x=0, y=360)
self.Message_Entry.place(x=135, y=365)
self.Brain = json.load(open('knowledge.json'))
root = Tk()
Chatbot(root)
root.mainloop()
在上述代码中,我还将我的知识库JSON加载到应用程序中,准备在对话中使用。
输出:
当您运行上述用户界面代码时,它将产生以下输出。
为我们的聊天机器人构建逻辑块
我们将编写一个从输入框获取消息并在字典知识库中搜索相关关键字的函数,如果找到任何关键字,则将它返回给用户。
我添加了两个简单的方法来完成这个任务,并将发送按钮与我们刚刚创建的方法联系起来。
现在,我们完整的聊天机器人代码如下所示。
import json
from difflib import get_close_matches
from tkinter import Tk, Label, Entry, Button, Text, Scrollbar, Frame
class Chatbot:
def __init__(self, window):
window.title('Iris Assitant')
window.geometry('400x400')
window.resizable(0,0)
self.message_session = Text(window, bd=3, relief="flat", font=("Times", 10), undo=True, wrap="word")
self.message_session.config(width=45, height=15,bg="#596", fg="white", state='disabled')
self.overscroll = Scrollbar(window, command=self.message_session.yview)
self.overscroll.config(width=20)
self.message_session["yscrollcommand"] = self.overscroll.set
self.message_position = 1.5
self.send_button = Button(window, text='send', fg='white', bg='blue',width=9,font=('Times', 12), relief ='flat', command=self.reply_to_you)
self.Message_Entry = Entry(window, width=40, font=('Times', 12))
self.message_session.place(x=20, y=20)
self.overscroll.place(x=370, y=50)
self.send_button.place(x=0, y=360)
self.Message_Entry.place(x=135, y=365)
self.Brain = json.load(open('knowledge.json'))
def add_chat(self, message):
self.message_position += 1.5
print(self.message_position)
self.Message_Entry.delete(0, 'end')
self.message_session.config(state='normal')
self.message_session.insert(self.message_position, message)
self.message_session.see('end')
self.message_session.config(state='disabled')
def reply_to_you(self, event=None):
message = self.Message_Entry.get().lower()
message = 'you: ' + message + '\n'
close_match = get_close_matches(message, self.Brain.keys())
if close_match:
reply = 'Iris: ' + self.Brain[close_match[0]][0] + '\n'
else:
reply = 'Iris: ' + 'Cant it in my knowledge base\n'
self.add_chat(message)
self.add_chat(reply)
root = Tk()
Chatbot(root)
root.mainloop()
输出:
当您运行上述代码时,它将产生以下结果。
希望您会觉得这篇文章有趣,现在通过点击“tweet this”与您的同行们分享。
原始文章可以在kalebujordan.dev上找到。
如果有任何建议或评论,请在评论框中留言,我会立即回复您。
Kalebu / Desktop-chatbot-app
一款基于Python的知识库聊天机器人应用,使用Tkinter构建
#知识库聊天机器人
这是一个使用[tkinter]构建的跨平台桌面应用程序,简单地充当一个字典聊天机器人,您可以向其发送消息,它将返回在一个非常大的字典中查询到的消息。
入门
要开始使用这个应用程序,您可能需要首先克隆或下载存储库;
git clone https://github.com/Kalebu/Desktop-chatbot-app
cd Desktop-chatbot-app
Desktop-chatbot-app->
依赖项
对于Windows用户,不需要安装额外的依赖项,但是对于Linux或Mac上的用户,有时Python没有安装Tkinter,因此您可能需要手动安装它;
sudo apt-get install python3-tk
启动
现在,一旦安装完成,通过与正常的Python脚本一样的方式运行它,聊天机器人的图形界面将弹出;
python app.py
启动界面
您的聊天机器人应用程序的界面可能会如下所示;
问题
…