你有没有见过那些
被提及然后回复推
文的 Twitter 机器人，有些是有帮助的，有些只是
想看世界燃烧这里有一个
猫视频的例子，你不
明白上面的推文所以它
应用程序提到解释这个 Bob 和 然后
Bob 在这里解释
说，复仇者联盟是一群
拯救城市免受
危险的超级英雄，所以 Bob 解释了上面的推文，
这是一个由
语言模型支持的应用程序的主要用例
，实际上任何人都可以构建 所以我们
要自己构建一个让我们看看
最终产品 我最近在推特上发布了一条
关于赏金的推文，想知道
企业是否真的可以利用它们
然后我提到了
我们制造的机器人 Silicon Oracle，他
回应说这些可以 是
激励工作的好方法，但
仅靠它们建立业务
就像试图用
土豆电池为火箭提供动力，所以其中也有一点点
无礼，所以
我们将从头开始构建
硅甲骨文 但我的目标
真的是激励你把它
用于你自己的用例，并开始
添加更多的功能，这样你就可以为
人们提供更多的价值现在
这里有一个警告，因为
能力越大，责任越大
，只是 因为你可以制作这个
Twitter 机器人并不意味着你必须这样做 我
强烈建议你先找到一个
你想做的用例，然后再
开始用
一堆垃圾向 Twitter 领域发送垃圾邮件，
就像许多好项目一样 我 想用
图表来展示这段视频，这样我们
都知道我们要去哪里，我们
首先要
在 Jupiter notebook 中做一些提示工作，这样
我们就可以迭代正确的
提示以及我们想要的方式 在那里做
然后我们将跳入 vs 代码，
我将回顾整个应用程序，
但这只是快速浏览，
因为这并不是
构建我们要进行的整个应用程序的真正教程
将我们的代码推送到 GitHub，
然后我们将使用 Railway 来
实际进行托管，而 Railway 是一种
非常简单的方式来托管您的代码并
定期运行您的脚本，
这非常好，然后
我们终于开始了 在 Twitter 端检查我们的输出，
当我们做事时，我们将
使用绿色检查 Mart of
success 进行更新，好吧，让我们深入研究
我们在这里进行的这项提示工作，所以
转到我们首先
要使用的 jupyter notebook 我们的导入，所以我
今天要导入一个聊天模型，
因为我们将在
3.5 和 gpt4 之间来回切换，看看什么
对我们更有效，以及一些提示模板，
它们将帮助我们解决问题，以便我
初始化我的 Llm here chat open AI 我
要将温度设置为 3 三
通常这只是零但是因为
我们在这里做一个创造性的任务我
有点提高它看看我们喜欢
它你应该玩 这适用于
您的用例，看看您喜欢什么我
将从 GPT 3.5 turbo 开始，
这样我们就可以看到它是如何进行的，这
实际上是我们
将要努力的完整提示，但我想
开始迭代和 从小处着手，这样你
就可以看到我的思考过程，
为什么我在这里做出某些决定，所以
我们要做的是
创建一个函数，使
通过 llm 变得容易，所以无论是 3.5 还是 4
然后我们要说出提到的
父推文文本，所以接下来会
发生的事情是我们要在 Twitter 上提到我们的机器人，
但我们不想得到
提到的文本，我们实际上并没有得到
conversation 这是最
上面的第一条推文，
所以我们将传递原始文本，
它只是一个字符串，
现在使用我们的系统模板，请记住
这些是您
在系统消息中放置的说明 与
下面的人工消息相反，给我写一个
对用户对用户
句子的回复，然后使用人工消息
模板，我们将传入文本，
该文本将成为
我们传入的推文文本 在上面所以
我要做的是我只是去
从 Twitter 上抓取这条推文它
看起来不错我要说
推文然后我要说嘿
用
语言给我一个回复 我们在上面选择的模型，
然后是这条推文，所以让我们看看
第一反应是什么，所以我们
在这里得到了回应，这是可以理解的，
你正在寻求深入了解
AI 优先 SAS 公司的防御能力，
所以 AI 有点关心，这
是 很好，但这不是我们需要的推文回复，
它太长了，所以我们
需要修复我们在这里的提示，
我想做的第一件事是我想
调整语气和
人工智能正在扮演的角色我 总是喜欢为 AI 设定一个角色，
这样它就知道它是谁以及
它在这里做什么，所以我实际上
只是要用
你来自硅谷的非常聪明和聪明的疯狂
科学家来取代这整个事情，你的目标
是给出一个简明的 所以为了缩短
预测预测实际上
比这里的常规意见
或评论更有趣所以这是
对用户一段文本的很好的回应好吧让
我们运行这个并
看看它如何根据我的
经验和知识更新得很好 我预测
首先是 AI 的 SAS 公司将
需要专注于开发优先
算法好有趣所以现在它
有更多的自以为是的声音
这仍然太长而且它有点
没有我想要的那么多语气 所以让
我们继续看看
接下来我们还能做些什么 我要讲一下
回应语气 所以让我继续把
它放在这里 用回应语气 我
要说你的预测应该
以积极的方式给出 声音和
自以为是 我发现如果它不那么
它只是一个被动的
声音并且在灰色区域
试图取悦所有各方并成为
瑞士这不一定是我们
想要的你的语气应该是严肃的
暗示 机智和讽刺让我们看看
我们在这里有什么这并不奇怪
大多数 SAS 创始人无法解释
第一个人工智能优先方法的防御性
毕竟它需要一定
水平的智力好吧所以有
更多的对话语气
这还不错，但这仍然
太长了，嗯，让我们看看
这里还有什么我要在这里修复响应
格式，所以我们讨论了语气，
但不一定是格式，所以
在 200 字符以下的响应
在一个简短的句子中不要
用 Emojis 回应所以我知道
Twitter 限制超过 200 个
字符语言模型无论如何都不会
真正遵循它但是 200
足够短它知道
在这里变得非常非常小一个简短的
句子做 不要用你知道的表情符号回应
我想说两句或更少的
短句让我们看看这对我们有何影响让
我们继续运行这
听起来好像他们不是真正的人工智能第一
真正的人工智能第一公司有明显的
竞争优势
来自 他们对 AI 的使用还不错，很有趣，嗯，还不错，
它甚至会谈论更多的软件，听起来
好像他们一开始不是
更多的背景上下文，
所以包括
有关旧技术的具体示例，如果它们是相关的，
然后以防万一它不知道
某个答案而不是说哦，我是
一个人工智能机器人，我不知道 我想
给它一个默认值，所以如果你没有
答案，请说对不起，我的魔法八球
现在不能用，好吧，让我们
运行一下，这听起来就像他们只是在
没有明确策略的情况下在 AI 潮流中跳来跳去好吗 所以它
有点脾气暴躁它不是
坏它有点朝那个方向
嗯我想用gpt4试试看这是
怎么回事因为三五个可能
没有按照我
想要的那样让我现在运行这个 ah AI first SAS
Founders the modern day snake oil
salesman defensibility 他们只会
向你抛出更多的流行语，直到你
太困惑而无法质疑他们这
实际上并不是那么糟糕
嗯它有点戏剧性但是
折叠方向并且它真的 也
遵循音调，所以我将
保留这种音调
和 gpt4 的组合，好吧，让我们
回到数据 Indy，我们的草稿提示
工作做得很好，让我们看一下
完整的应用程序，看看所有的
其他部分可以
很好地组合在一起，所以现在我们已经跳过了 vs 代码，
我已经添加了我们需要的所有其他东西，
以便让这个机器人
栩栩如生，我将快速浏览一下，
因为
本教程的目的不一定是这段
代码，这里的重要部分将
是获取您的 Twitter API 密钥，因此
如果您
转到 twitterdeveloper，您
实际上可以创建自己的项目，
然后您可以获得 API 密钥 你
可以将它们插入到你的环境中或者
我将在铁路应用程序中向你展示的内容
我要做的另一件事是
我实际上要记住
这些运行之间的状态因为
我的方法 我选择在这里而
不是流媒体是因为这个机器人会
每五到十分钟醒来一次，
它会检查所有新
提及的内容，然后它会
检查他的数据库，它提到
它已经回复了，因为我
不想一次做多个，
我选择使用的数据库
是可访问的，因为它真的很
简单，你所需要的只是一个 API
密钥，而不是谷歌的一些
更复杂的身份验证
所以我们有我们的错误表 API
密钥，为了获得这些，您可以
直接转到
您的 airtable 开发人员的个人访问令牌部分，
您可以继续创建这些，
这是我的，
好吧，然后当我们往下走时，我们 将
有一个名为 Twitter
机器人的类，我们这样做的原因
是我们有很多共享服务，
我们希望跨功能使用这些服务，
这
使得这样做变得容易得多，所以我们 有我们的 Twitter
API，我们的错误表 API，我们有一些
统计数据，我们有我们的语言模型，我们将
在这里使用 gpt4，我们有
0.5 的温度，所以我把它提高了
一点，所以这两个大
函数是 这里重要的
是生成响应
函数，所以让我使用我们拥有的这个准确
的提示模板，我
在两者之间做了一些编辑，
所以
嗯太棒了，所以现在我们有了
我们将要使用的完全相同的提示模板
有然后它会
通过它会
为我们生成一个很好的输出但是
另一个非常重要的部分将
是这个响应提到一个它将
采用
父推文文本的文本所以 对话
意味着它应该
响应的文本，然后它会
继续并为此生成响应，
然后我们将创建一条推文，
文本将成为
我们在上面生成的响应文本，然后
我们 're going to do in reply to tweet ID 将
成为提及 ID 所以
提及 ID 实际上是
首先提到这个机器人的推文所以它会读取父
文本但它会回应
提到哪个是重要的部分，
然后我们这里只有一些统计数据，我们
将返回，我应该把它
放在另一个函数中，但我们只是
要登录我们的空气表，
上面提到的对话推文 ID 这
是 所以我们不会加倍推文文本，
这只是对我来说，这不是超级
必要的，
嗯，然后只是一些其他统计数据，所以我
可以对此进行一些简单的分析，
看看它是如何进行的，另一个重要的
功能也是我们要进行的
回应提及，所以这将
要做的是抓住
它看到的维度，但其中一些
将是重复的，我们
已经回应了他们，所以我们将
经历每一个提及，我们 我会
看看我们是否已经对此做出回应，
或者我们是否还没有检查我是否已经
回应，如果我们还没有，那么
我们将继续并回应
我提到的最后一件事
说这里有很多方法来
安排这项工作，你可以选择
你想要如何做的毒药，就像
我正在做的那样，我有点像
机器人将要执行的主工作功能
被创建，然后它将
执行这些回复，我将
使用 Python 的计划库来
执行它，现在这
对生产实例来说不是很好，
但是为了快速和简单，以及让
你的嗯你的重复配置
在你的 脚本非常好，所以
我打算每五分钟安排一次，
它会完成工作，
工作就在这里，而且这段代码
已经准备好推到铁路上了，然后就
在那张纸条上我们要去
通过我们的完整应用程序做一个绿色复选框所以
为了推送到铁路我们实际上
需要推送到 GitHub 存储库因为
铁路现在将从 GitHub 存储库读取
你可以继续并
在描述中克隆这个链接如果你需要
我将向您展示如何在您
编辑它之后自行执行此操作，
想象一下您刚刚像我一样编辑了您的
代码并且我需要检查
它才能获得所以我先走了 做
git status 以确保我可以
确认我认为
我编辑的唯一文件是实际的
文件，我会说 get add 只需
添加所有内容，然后我将
使用 Commit This 一条消息说
提示更新，然后我将
在 main 中获取推送源，因为我正在推
送到我的远程仓库
和我的密码
很棒，我们继续将
代码推送到那里，如果我们检查
GitHub，我们可以看到 提示更新是
最近的推送，它刚刚发生，
如果我们回到这里确认
提示是我们想要的是的
响应音所有其他好东西
那里，我们将在那个注释上
放一个绿色复选框 通过远程代码
托管，让我们转到铁路
，我将向您展示如何
在铁路方面做到这一点，所以在铁路方面，
您将拥有不同的项目
，这些是
您可以托管不同服务的不同领域 或
您拥有的应用程序 我将
继续并在此处创建一个新项目，
我将从 GitHub
存储库进行部署 现在我已经连接了我的
GitHub，但如果您还没有，则需要
连接您的 GitHub 你将要
使用，你会说我们会
去你想要的回购然后
我会说我想先添加变量
我想
先添加变量的原因是因为我有 很多
环境变量，我没有将
我的环境文件推送到 GitHub，这
当然不是你想要的方式，
所以当你在这里有你的
环境变量时，你可以
一个一个地输入它们或者你可以做什么
我更喜欢的一点是你可以
转到原始编辑器，然后你可以说
嘿，只需从你的环境文件中复制和粘贴，
然后将它们粘贴到
这里或你的 Json 中，它就会得到
它，所以我要 这样做，我会
在一秒钟内看到好的，所以我只是
复制并粘贴我的环境
变量在那里你可以看到
它们都出现在这里所以现在
它们可以在我的脚本中访问
这是一件好事 因此，如果我转到
设置，那么我将在
这里查看一些快速设置，以便我们进行
自动部署，它将
从主分支推送，这就是我们
想要的，呃，检查瑞典，这一切都不是这一切都不
是' 不用担心这个服务
名称 Twitter reply bot 听起来
很棒 源代码库看起来很适合 Builder
如果你有一个
requirement.txt 文件，如果我们
在我们的 GitHub 中查看我们这样做很好，
那么它已经自动
为你放置 pip 安装要求，所以
你实际上不需要添加任何
额外的东西，这通常很酷
然后对于启动命令，这是
它在构建完成后需要运行的命令，
在这种情况下，它将
是 python 来调用 Python，
然后它将成为我们文件的名称
，让我们回到这里 python
twitterreplybot.pi 让我们继续并将其
锁定在副本中好吧不不不不
这一切看起来都很好所以如果
我去部署这里我们看到我们
有一个问题让我们快速查看这些日志嗯
没有启动命令可能是 发现没问题，
这很好哦，所以只需要
为我更新，所以它
在需要时可以很好地更新，如果我们
去构建日志，它就会开始
构建，因为我刚刚更新了
启动命令，所以它是什么 在这里做的
实际上是说
现在让我们做一个让我们做一个正确的，
如果有不同的部署，我们现在就去做，这
取决于
你做的是哪个，但是这个正在构建，所以如果
我们去这里的构建日志，我们去
top 我们可以说它启动了
安装，它完成了所有 python 的
工作，然后它完成了
我已经
上传的 pip install requirements.txt 并且在那里很好，
然后启动命令是我
事先放在那里的那个 python
Twitter reply.pi 我们在这里向下滚动，我们
可以看到它正在上传所有
需求，这很不错，
那里有 langtang 套件，让我们
看看底部看起来
构建时间很棒，它只有 36
秒，还不错 如果我们
检查这些构建日志，我们可以看到
它被推送并构建，发布
时间只有八秒，这
太棒了，所以现在我们可以做的是我们可以
转到部署日志，我
实际上只插入了几个
在整个脚本中打印语句，以便
我们知道发生了什么以及
何时让我
在五分钟后与您联系，因为五分钟
计时器刚刚根据我们的
时间表启动，我将向您展示
打印语句在那里的样子
我们将继续进行测试，
如果我们在这里查看日志，
您会发现我们在六
分钟前启动了它，这很好，因为
部署发生了大约
一分钟，然后等待了五分钟 分钟，
因为我们的调度程序，它
开始了工作，执行了工作，开始了一个没有
找到提及的工作，然后它完成了
工作，因为它没有找到没有提及，
没有回答，我们将
在铁路上放一个奶油色的绿色复选框
所以我想在这里做的是我
真的想去，让我们去测试一下，让
我转到我的其他数据
独立帐户，我
用得不多，我不想
打扰任何人所以 我会找到一条有
很多观点的推文，
所以这是 400 000 次浏览 80 条回复
嗯，是的，这看起来也是一条多汁的推文，
所以我打算做
um
silicon Oracle
让我们做 silicon Oracle 和 我将继续并
单击此处的回复所以现在
这个回复实际上已经发生了
它要做的是它会
在另外五分钟内醒来它
会读到哦嘿我还有一个
提及然后它会说 让
我去上面的对话推文
所以它会抓住这个文本
它会把它传递给语言
模型然后它会生成一个
响应然后它会
回复这个所以实际上让我
点击这个 一个所以我们可以等待它
嗯你可能想知道可以
在这里发生快速注射呃 100 我
没有采取足够的安全措施来阻止它
所以如果
有人真的试图这样做我真的会很
开心如果你 希望一切顺利，
所以执行的工作刚刚开始工作，
开始了一份甜蜜的工作，我们还
没有看到完成，因为它
实际上是在祈祷并
进行 API 调用，嗯，
让我把自己放低一点，
让我 移动这个东西，
嗯，完成的工作很棒，找到了一个，它
以零错误回复了一个，这
很酷，让我们来看看
这里的回复重新加载，它就在那里，
记住这是关于 iph
student open AI 5000 美元
可能损失的故事 访问 呃
AI 依赖和未来经济困境的经典故事
pH 学生将以物易物交换
他们的长子以换取 API 访问权
好的，Rodolfo，如果
你需要支持，请让我们谈谈我
想在这里向你展示的最后一件很酷的事情，
这是我们
目前正在进行的部署，在那里取得了成功，
但比方说，我想将
其更改为每六分钟一次 你
知道我只是或者我可能会
做任何我想做的小改变，我想
在这里向你展示的是我将做另一个
git 状态，你可以在这里看到
我已经做了改变是的，好的，所以得到添加
所有得到 commit changing
changing
interval time 然后我会得到
push origin Main
它会询问我的密码，
我会把它推上去所以现在它
一直到 GitHub 并
在铁路方面检查一下 哦，它
刚刚注意到那里的新推送，
所以它是自动部署，
现在非常酷，一旦这个构建
成功，它就会
摆脱这个，它会删除它并把
它记在历史中，所以你只
首先有一个构建，
但是让我们将
我们的绿色复选框添加到 Twitter 所以现在我们已经
部署了它并且现在它响应
推文所以我实际上将把
它留在快速旁注如果你
真的想 自己试试这个机器人，你
可以去 Twitter 并
在任何推文中输入 Silicon Oracle，只要确保
它是对父推文的回复，你
就可以看到它会发生什么，
只要 API 成本
是 仍然可以管理，但是如果您想
在这里清理您的项目，您可以
转到您的项目设置，
您可以从所有环境中删除该服务，
并且您不会
在那里产生任何更多费用，请记住
整个项目的速率限制 放置但
特别是在 Twitter 端并
记住您的开放 AI 成本，这
就是我们制作 Twitter 回复机器人的方式 现在
这是一个非常简单的示例，
因为我们只是获取了一条推文并
通过提示模板传递它以获得
简单的输出 在另一端，现在
有无穷无尽的角色，你可以
通过切换你的提示来做
如果你做了一个矢量存储，或者
你做了一些问题回答，或者
你可能为某人总结了整个推文
线程，因为它
太长了，那该多酷啊 或类似的东西，
实际上会很酷，我
还没有看到那个例子，所以我
真的很想看看你想出了什么其他类型
的推特机器人，
请给我贴上标签，因为我会 很高兴
看到并帮助推广您的工作，这就是
我们今天的全部内容，我们稍后再见