首页 > 编程知识 正文

人工智能机器人女友,用python给女朋友惊喜

时间:2023-05-03 14:55:18 阅读:171800 作者:2604

2019年,insta的新款《AI少女》(illusion )上市后,引起了大众的关注,但随着更新换代的推进,很多绅士们终于要在现在的《AI少女》上,让我们自己打造出更多黑科技的房子

作为绅士游戏,《AI少女》不仅是简单的基础设施建设、培养,最重要的是与少女的交流,玩家可以选择不同的话题与少女聊天,探索对方的感受,让彼此更深入地了解对方。 看到这里想说的是,和AI少女聊天,这简直是AI类科幻电影的必经之桥。 电影《Her》的故事就是这样。 电影中的主人公整天和AI聊天交往,最终爱上了一个没有身体、没有声音的“她”。

其实在人工智能异常火热的今天,从Siri到小爱,从小冰到wxdsc,语音交互已经悄然融入我们的生活。 全球语音交互市场规模不断扩大,预计2025年全球语音交互市场规模将达到69亿美元,目前已广泛应用于智能家居、车载语音、智能呼叫等行业和场景。

作为认真学习(不是)的新时代青年,我们当然不能只看表面。 还是应该探索更深的问题。 例如,我们在Python上也能做AI机器人吗? 答案当然是肯定的!

所需的工具

1、Python 2或Python 3

2、pip和virtualenv用于处理python APP应用依赖项

3、可以注册可以访问API的免费Slack帐户,也可以注册Slack Developer Hangout team。

4、Slack团队成立的官方Python Slack客户端代码库

5、Slack API测试令牌

营造环境

切换到要在终端上存储该项目的目录,然后创建新的virtualenv。

激活virtualenv :

你的提示现在应该看起来像截图:

可以通过Slack信道发送和接收消息的活动starterbot的virtualenv命令提示符。 使用此pip命令安装slackclient库。

pip命令完成后,将显示类似的输出并返回提示。

在已经处于活动状态的用于virtualenv的pip上安装slackclient的输出,并获取访问令牌,以便我们的聊天机器人可以使用它连接到Slack API。

Slack 实时消息传递(RTM)APISlack允许程序通过Web API访问消息传递通道。

使用Web API页面右上角的登录按钮。 登录后,将进入“AI聊天机器人”用户页面。

自定义AI聊天机器人的用户页面。

添加bot integration并重新加载名为" starterbot "的页面,其中显示新生成的访问令牌。

复制并粘贴新Slack聊天机器人的访问令牌。 单击页面底部的" Save Integration "按钮。 你的聊天机器人现在已经准备好连接Slack API了。 的Slack令牌名为SLACK_BOT_TOKEN :

得到了将这个Slack API作为聊天机器人使用的许可。

制作聊天机器人需要更多的信息。 这是聊天机器人的ID。 然后,编写一个从Slack API中获取ID的短脚本。

获取聊天机器人的ID

编写简单的Python脚本以获取StarterBot的ID并进行预热。 这个ID根据Slack项目而不同。

需要这个ID。 在分析从Slack RTM发送到StarterBot的消息时,用于揭示我们的APP的真实身份。 脚本还将测试是否正确设置了SLACK_BOT_TOKEN环境变量。

创建一个名为printbotid.py的新文件,然后键入以下代码:

我们的代码导入SlackClient,并使用我们设置的环境变量SLACK_BOT_TOKEN实例化它。 当您使用python命令运行此脚本时,它将访问Slack API以列出所有Slack用户,并获取与名为" satrterbot "的ID相匹配的ID。

请只运行一次获取聊天机器人ID的脚本。

执行此操作并提供聊天机器人的ID后,脚本将打印简单的一行输出。

在你的Slack项目中用Python脚本打印Slack聊天机器人的ID,然后复制这个脚本打印的唯一ID。 将该ID作为环境变量BOT_ID输出。

这个脚本只需要运行一次才能获取聊天机器人的ID。 此ID现在可以在运行StarterBot的python APP应用程序中使用。

对StarterBot进行编码

br> 现在我们拥有了写我们的StarterBot代码所需的一切。创建一个新文件命名为starterbot.py,它包括以下代码。

对os和SlackClient的导入我们看起来很熟悉,因为我们已经在theprintbotid.py中用过它们了。

通过我们导入的依赖包,我们可以使用它们获得环境变量值,并实例化Slack客户端。

该代码通过我们以输出的环境变量SLACK_BOT_TOKEN 实例化SlackClient`客户端。

 

Slack 客户端会连接到 Slack RTM API WebSocket,然后当解析来自 firehose 的消息时会不断循环。如果有任何发给 StarterBot 的消息,那么一个被称作 handle_command 的函数会决定做什么。

接下来添加两个函数来解析 Slack 的输出并处理命令。

parse_slack_output 函数从 Slack 接受信息,并且如果它们是发给我们的 StarterBot 时会作出判断。消息以一个给我们的聊天机器人 ID 的直接命令开始,然后交由我们的代码处理。目前只是通过 Slack 管道发布一个消息回去告诉用户去多写一些 Python 代码!

这是整个程序组合在一起的样子 (你也可以 在 GitHub 中查看该文件):

 

现在我们的代码已经有了,我们可以通过 python starterbot.py 来运行我们 StarterBot 的代码了。

当 StarterBot 开始运行而且连接到 API 的输出通道在 Slack 中创建新通道,并且把 StarterBot 邀请进来,或者把 StarterBot 邀请进一个已经存在的通道中。

在Slack界面创建一个新通道,并且邀请 StarterBot。现在在你的通道中给 StarterBot 发命令。

 

图片在你的Slack通道里给你的 StarterBot 发命令:如果你从聊天机器人得到的响应中遇见问题,你可能需要做一个修改。正如上面所写的这个教程,其中一行AT_BOT = “<@” + BOT_ID + “>:”,在“@starter”(你给你自己的聊天机器人起的名字)后需要一个冒号。从 AT_BOT 字符串后面移除:。Slack 似乎需要在@ 一个人名后加一个冒号,但这好像是有些不协调的。

结束
好吧,你现在已经获得一个简易的AI聊天机器人,你可以在代码中很多地方加入你想要创建的任何特性。据说有位不能经常陪女朋友的程序员小哥哥用它去陪女朋友聊天,结果下班一看,感觉自己可能不再被需要了……当然,这就是另一个故事了,毕竟并不是所有学习Python的人都有这个苦恼的~
 

 

 

 

 

 

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。