资讯专栏INFORMATION COLUMN

怎么使用Python制作AI聊天软件?具体实例代码如下

89542767 / 977人阅读

  小编写这篇文章的一个主要目的,主要是给大家去做一个详细解答,解答的内容是基于Python的,基于Python去制作AI聊天软件,实现远程聊天。那么,现在有没有现成的代码呢?下面就给大家详细解答下。


  效果图


  先看一下效果图

01.png

  就当是女友无聊的时候自己抽不出时间的小分身吧!


  需要用到的库


  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("<Return>",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()中即可做出相应回复。


  添加后的效果图:

02.png

  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("<Return>",test_fun)
  win1.mainloop()
  liaotian()

  综上所述,这篇文章就给大家介绍到这里了,希望可以给各位读者带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128345.html

相关文章

  • js版微信聊天机器人——wechat-robot

    摘要:基于和端微信开发的聊天机器人。使用的微信账号即充当机器人的账号为个人账号,可自定义指令。关闭玫瑰感谢您的使用玫瑰闪电需要开启请在控制台启动程序闪电微信发出关闭口令,程序退出。 Github: https://github.com/doterlin/wechat-robot showImg(https://segmentfault.com/img/remote/1460000010601...

    Darkgel 评论0 收藏0
  • “价值2个亿”的AI代码

    摘要:前两天朋友圈里看到一段号称价值一亿的代码可以智能应答,很厉害是不是源码极简版吗其实就是几个字符替换抖了个机灵,也顺便黑了把当下某些言必称的风气。方法一模块是一个生成自动应答的第三方库。那我这两段代码怎么也得值个亿吧,可以直接轮了。 前两天朋友圈里看到一段号称价值一亿的代码: showImg(https://segmentfault.com/img/remote/146000001743...

    Genng 评论0 收藏0
  • AWS的人工智能版图

    摘要:的人工智能版图人工智能版图由应用平台框架三大部分组成应用层是提供各种应用服务,比如平台层是平台。应用层主推三大成熟应用基于深度学习的图像和视频分析它能实现对象与场景检测人脸分析面部比较人脸识别名人识别图片调节等功能。 AWS的人工智能版图AWS人工智能版图由:应用、平台、框架三大部分组成AI应用层:是提供各种...

    Pluser 评论0 收藏0
  • 使用Recast.AI创建具有人工智能的聊天机器人

    摘要:也完美地将不需要应用开发人员了解的机器学习底层细节进行了封装,我们将要做的这个聊天机器人甚至不需要太多的编码。回到我创建的聊天机器人,目前没有分配任何。最后,我们可以把这个创建好的聊天机器人进行发布,让它可以被其他平台消费。 很多SAP顾问朋友们对于人工智能/机器学习这个话题非常感兴趣,也在不断思考如何将这种新技术和SAP传统产品相结合。Jerry之前的微信公众号文章C4C和微信集成系...

    gitmilk 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<