天天新消息丨基于Python制作AI聊天软件的示例代码
目录
效果图需要用到的库窗体设计函数为粉丝们额外添加的功能完整代码效果图
先看一下效果图
【资料图】
就当是女友无聊的时候自己抽不出时间的小分身吧!
需要用到的库
tkinter、time、urllib、requests
tkinter负责窗体、time显示时间、urllib和requests负责请求
窗体设计
from tkinter import * win1 = Tk() win1.geometry("400x644+100+100") win1.title("xxx男神的AI分身") Label11 = Label(win1, text="男神白", font=("黑体", 12), anchor="center").place(y=13, x=15, width=380, height=20) Entry11 = Entry(win1, font=("等线", 11), width = 70) Entry11.place(y=600, x=15, width=310, height=26) Button11 = Button(win1, text="发送", font=("等线", 11), command = mecha).place(y=598, x=328, width=65, height=30) console = Text(win1, font=("等线", 11)) console.place(y=35, x=15, width=368, height=550) console.insert(1.0," 欢迎来到你与男神的小天地!\n你可以把你想说的内容输入到下面的输入框哦\n") console.mark_set("markOne", 1.0) console.mark_set("markTwo", 3.0) console.tag_add("tag1", "markOne", "markTwo") console.tag_config("tag1", foreground="red") win1.bind("", test_fun) win1.mainloop()
函数
在txet部件上显示发送时间及颜色处理,使用requests和urllib库来调用接口处理回复你女朋友的信息。
def liaotian(): global b import time b = 3 def mecha(): global b b+=2 console.insert("end",time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + "\n") console.insert("end",str(Entry11.get())+"\n") console.mark_set(str(b-1), str(b-1)+".0") console.mark_set(str(b), str(b)+".0") console.tag_add(str(b), str(b-1), str(b)) console.tag_config(str(b), foreground="blue") console.see(END) console.update() console.insert("end",time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + "\n") console.insert("end",aicha()+"\n") console.mark_set(str(b-1), str(b-1)+".0") console.mark_set(str(b), str(b)+".0") console.tag_add(str(b), str(b-1), str(b)) console.tag_config(str(b), foreground="red") console.see(END) Entry11.delete(0,END) console.update() def test_fun(self): mecha() def aicha(): global b b+=2 msg = str(Entry11.get()) else: import urllib import requests def qingyunke(msg): url = "http://api.qingyunke.com/api.php?key=free&appid=0&msg={}".format(urllib.parse.quote(msg)) html = requests.get(url) return html.json()["content"] print("原话>>", msg) res = qingyunke(msg) res = res.replace("菲菲", "你男神") res = res.replace("我", "你男神") print("智能回复>>", res) return res
为粉丝们额外添加的功能
根据女友输入的内容自定义回复
我自己添加的内容太肉麻的,不太适合分享给你们哈。于是我就给你们做多了一个自定义回复的功能。嘿嘿!那就是独一无二的代码了
坚持着你们直接能使用代码不做任何修改的原则,我就不让你们在代码里面添加了,当你第一次运行此代码的时候会自动创建一个txt文件(甚至还不用让你创建文件),你就可以在txt文件中自定义回复内容了。
使用异常处理模块try来尝试open读取名为“自定义回复.txt”的文件,若不存在except就创建,若已存在直接读取即可。操作读取的字符串逐个添加到zidingyi字典中,判断输入的语句是否在zidingyi.keys()中即可做出相应回复。
添加后的效果图:
zidingyi = {} try: with open("自定义回复.txt", "r", encoding="utf8") as f: asd = f.readlines() print(asd) for line in asd: line = line.strip("\n") wen, da = line.split(":", 1) zidingyi[wen] = da except: with open("自定义回复.txt", "w+", encoding="utf8") as f: f.write("提示——>采用“输入:回复”格式 如——>你吃饭了吗?:我吃饭啦 回车以继续下一自定义回复(注意使用英文的冒号)") with open("自定义回复.txt", "r", encoding="utf8") as f: asd = f.readlines() print(asd) for line in asd[1:]: line = line.strip("\n") wen, da = line.split(":", 1) zidingyi[wen] = da print(line) print(zidingyi)
完整代码
from tkinter import * def liaotian(): global b import time b = 3 def mecha(): global b b += 2 console.insert("end", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + "\n") console.insert("end", str(Entry11.get()) + "\n") console.mark_set(str(b - 1), str(b - 1) + ".0") console.mark_set(str(b), str(b) + ".0") console.tag_add(str(b), str(b - 1), str(b)) console.tag_config(str(b), foreground="blue") console.see(END) console.update() console.insert("end", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + "\n") console.insert("end", aicha() + "\n") console.mark_set(str(b - 1), str(b - 1) + ".0") console.mark_set(str(b), str(b) + ".0") console.tag_add(str(b), str(b - 1), str(b)) console.tag_config(str(b), foreground="red") console.see(END) Entry11.delete(0, END) console.update() def test_fun(self): mecha() def aicha(): global b b += 2 msg = str(Entry11.get()) if msg in zidingyi.keys(): res = zidingyi[msg] return res else: import urllib import requests def qingyunke(msg): url = "http://api.qingyunke.com/api.php?key=free&appid=0&msg={}".format(urllib.parse.quote(msg)) html = requests.get(url) return html.json()["content"] print("原话>>", msg) res = qingyunke(msg) res = res.replace("菲菲", "你男神") res = res.replace("我", "你男神") print("智能回复>>", res) return res zidingyi = {} try: with open("自定义回复.txt", "r", encoding="utf8") as f: asd = f.readlines() print(asd) for line in asd: line = line.strip("\n") wen, da = line.split(":", 1) zidingyi[wen] = da except: with open("自定义回复.txt", "w+", encoding="utf8") as f: f.write("提示——>采用“输入:回复”格式 如——>你吃饭了吗?:我吃饭啦 回车以继续下一自定义回复(注意使用英文的冒号)") with open("自定义回复.txt", "r", encoding="utf8") as f: asd = f.readlines() print(asd) for line in asd[1:]: line = line.strip("\n") wen, da = line.split(":", 1) zidingyi[wen] = da print(line) print(zidingyi) win1 = Tk() win1.geometry("400x644+100+100") win1.title("男神的AI分身") Label11 = Label(win1, text="你男神", font=("黑体", 12), anchor="center").place(y=13, x=15, width=380, height=20) Entry11 = Entry(win1, font=("等线", 11), width=70) Entry11.place(y=600, x=15, width=310, height=26) Button11 = Button(win1, text="发送", font=("等线", 11), command=mecha).place(y=598, x=328, width=65, height=30) console = Text(win1, font=("等线", 11)) console.place(y=35, x=15, width=368, height=550) console.insert(1.0, " 欢迎来到你与男神的小天地!\n 你可以把你想说的内容输入到下面的输入框哦\n") console.mark_set("markOne", 1.0) console.mark_set("markTwo", 3.0) console.tag_add("tag1", "markOne", "markTwo") console.tag_config("tag1", foreground="red") win1.bind("", test_fun) win1.mainloop() liaotian()
怎么样,是不是特别简单~快复制去送给你心中的那个女神吧~
以上就是基于Python制作AI聊天软件的示例代码的详细内容,更多关于Python聊天软件的资料请关注脚本之家其它相关文章!
X 关闭
X 关闭
- 1转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 2充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 3好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 4名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 5亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 6京东绿色建材线上平台上线 新增用户70%来自下沉市场
- 7网红淘品牌“七格格”chuu在北京又开一家店 潮人新宠chuu能红多久
- 8市场竞争加剧,有车企因经营不善出现破产、退网、退市
- 9北京市市场监管局为企业纾困减负保护经济韧性
- 10市场监管总局发布限制商品过度包装标准和第1号修改单