Python使用itchat库+图灵机器人+pyinstaller打包成exe可执行文件

背景:之前写过一个简单的Python程序,被朋友看到了,他说可不可给他弄来玩玩,于是今天突然想拿出来玩玩,找下资料,具体看效果。

第一步:环境准备

环境

python3.7

pyinstaller3.6

windows 7

下载地址

python:我本地是3.7的

pyinstaller:http://www.pyinstaller.org

pyinstaller可以用pip进行在线安装:pip install pyinstaller

 

第二步:代码编辑

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import itchat
import requests

f = open('info.config', 'r')
my_dict = eval(f.read()) 

isGroupChat = True
isFriendChat = True
print('************欢迎使用小贤机器人助手************\n')
isFriend = input("请问主人,是否需要小贤代替您,同朋友唠嗑吗?(Y/N):")

# 输入开始
if(isFriend == 'n'or isFriend == 'N'or isFriend == '否'or isFriend == '不'or isFriend == '不需要'): 
    isFriendChat = False   
    print('好的,主人\n')
else:
    isFriendChat = True   
    print('遵命,小贤会好好招待主人的朋友的。\n')    
    
isGroup = input("请问主人,是否需要小贤代替您,同您的群唠嗑吗?(Y/N):\n")
if(isGroup == 'n'or isGroup == 'N'or isGroup == '否'or isGroup == '不'or isGroup == '不需要'): 
    isGroupChat = False   
    print('好的,主人.\n')
else:
    isGroupChat = True   
    isat = input("        请问主人,群唠嗑,只处理@您的回复吗?(Y/N):\n")
    if(isat == 'n'or isat == 'N'or isat == '否'or isat == '不'or isat == '不需要'): 
        isatme = False
        print('好的,主人\n')
    else:
        isatme = True
        iskey = input("        请问主人,请输入您关心的关键词:\n")
        print('遵命,小贤会好好表现的。\n') 
# 输入结束

       
def get_response(msg):
    apiUrl = my_dict['apiUrl']
    infokey = my_dict['infokey']
    data = {
        'key': infokey,  # Tuling Key 
        'info': msg,  # 这是我们发出去的消息
        'userid': 'wechat-robot',  # 这里你想改什么都可以
    }
    # 我们通过如下命令发送一个post请求
    r = requests.post(apiUrl, data=data).json()
    return r.get('text')


if isFriendChat:
        
    # 用于接收来自朋友间的对话消息  #如果不用这个,朋友发的消息便不会自动回复
    @itchat.msg_register(itchat.content.TEXT)
    def print_content(msg):
        reqmsg = msg['Text']
        print("他:" + reqmsg + "\n")
        msg = get_response(reqmsg)
        print("小贤:" + msg + "\n")
        return msg 
    
if isGroupChat:

    @itchat.msg_register([itchat.content.TEXT], isGroupChat=True)
    # 用于接收群里面的对话消息
    def print_content1(msg):
        actualnickname = msg.ActualNickName
        if isatme:
            # 判断是否是@本人
            if (msg.isAt):
                print("主人," + msg.actualNickName + "@你了,他说:" + msg["Text"] + "\n")
                reqmsg = msg['Text']
                reqmsg = reqmsg.replace(actualnickname, '');
                if (reqmsg.strip() == ''):
                    msg = "@" + msg.actualNickName + " " + '在呢'
                     
                else:
                    msg = "@" + msg.actualNickName + " " + get_response(reqmsg)
                    
                print("小贤:" + msg + "\n")
                return msg
            else:
                if iskey.strip(): 
                    if msg["Text"].find(iskey) == 0:
                        print("主人," + msg.actualNickName + "@你了,他说:" + msg["Text"] + "\n")
                        reqmsg = msg['Text']
                        reqmsg = reqmsg.replace(actualnickname, '');
                        if (reqmsg.strip() == ''):
                            msg = "@" + msg.actualNickName + " " + '在呢'
                                 
                        else:
                            msg = "@" + msg.actualNickName + " " + get_response(reqmsg)
                            print("小贤:" + msg + "\n")
                            return msg  
        else:
            if (msg.isAt):
                print("主人," + msg.actualNickName + "@你了,他说:" + msg["Text"] + "\n")
                reqmsg = msg['Text']
                reqmsg = reqmsg.replace(actualnickname, '');
                if (reqmsg.strip() == ''):
                    msg = "@" + msg.actualNickName + " " + '在呢'
                     
                else:
                    msg = "@" + msg.actualNickName + " " + get_response(reqmsg)
                    
                print("小贤:" + msg + "\n")
                return msg
            else:
                # 添加关键词
                print("主人," + msg.actualNickName + "他说:" + msg["Text"] + "\n")
                msg = get_response(msg['Text'])
                print("小贤:" + msg + "\n")
                return msg
      
itchat.auto_login(True)
itchat.run()

 以上代码解析:

控制是否监控朋友聊天和群聊天进行回复,群聊天区分为,是否@本或者登陆者感兴趣的关键词。

第三步:打包exe,准备一个小图片,ico格式的。

在cmd进行深入:pyinstaller -F -i favicon.ico test.py

打包成功之后的图片如下显示

 

 

 

生成的exe文件如图中所示,需要注意的是,需要把info.config和favicon.ico拷贝进来。避免运行时候找不到。 

 配置文件如图中所示:

 

点击运行之后:

完毕! 个人觉得以上重点还是数据来源,也就是图灵接口。

Unity是一款强大的跨平台游戏引擎,它可以用于开发各种类型的游戏和交互式应用程序。Baidu语音识别是百度提供的一种技术,它能够通过分析用户的语音输入,将其转化为文字。这种功能可以在Unity中使用,使得开发者可以为他们的游戏和应用程序添加语音识别的功能。这样,用户可以通过语音与游戏或应用程序进行交互,使得体验更加丰富和便捷。 另外,Unity还可以与图灵聊天机器人的API进行集。图灵聊天机器人是一种人工智能软件,它可以模拟人类的对话,回答用户提出的问题或者进行对话交流。通过在Unity中集图灵聊天机器人,开发者可以为他们的游戏或应用程序实现自动对话的功能。这样,用户可以与虚拟角色进行对话,获取相关的信息或者进行娱乐。 最后,Baidu语音合是一种将文字转化为语音的技术。它可以将开发者提供的文字转化为生动自然的语音。在Unity中集Baidu语音合,可以让开发者为游戏或应用程序的角色添加语音,使得角色可以进行语音对话或者朗读相关的文字。这样,用户可以通过听到角色的语音来获得更加真实和沉浸式的体验。 综上所述,Unity可以与Baidu语音识别、图灵聊天机器人以及Baidu语音合进行集,提供语音识别、自动对话和语音合的功能。通过这些功能的应用,开发者可以为他们的游戏和应用程序创建更加交互和丰富的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值