其他
我的同事是 GPT-4 机器人,我们在 Slack 上一起工作
【编者按】随着 AI 的强大与进步,「AIer」已不再是普普通通的机器人,他们不仅是你的贴心助手,还能成为你工作上的同事。本文作者分享了自己与一群机器人成为同事的经历。
本文经授权转载宝玉老师的个人博客(微博@宝玉xp ),链 接https://baoyu.io/translations/gpt/my-coworkers-are-gpt-4-bots-and-we-all-hang-out-on-slack
原文:My coworkers are GPT-4 bots, and we all hang out on Slack
接收到一条消息。 如果消息只包含表情或没有文本内容,就会被跳过。 对消息进行清理,例如将 Slack 特有的提及或频道代码转换为 @Person 和 #channel,以便 GPT-4 更好地理解。 我运行 getNeedsReply() 函数,判断消息是否需要回复,以及应由哪个机器人回复。 我会将这条消息存入历史记录,作为未来对话的参考。 如需回复,我会先在 Slack 上发送“正在输入”的提示3,随后利用 GPT-4 生成回应,根据应答的机器人选择相应的系统提示。 如果不需要回复,我会对消息做出简单反应,比如点赞或发笑脸等。
interfaceBot<Sextends"slack"|"discord"="slack"|"discord">{
id:string;
name:string;
nicknames?:string[];
iconUrl:string;
prompt:string;
credentials: ServiceCredentials[S];
}
interface NeedsReplyResponse {
whoNeedsToReply: string | string[];
needsReply: boolean;
bots: Bot[];
reaction: string;
}
getNeedsReply() 依赖 GPT-3.5,在选择回应对象时,有时会出现误判。这种情况在使用 GPT-4 时较少见。即便如此,一旦发生,机器人能够准确通知正确的人进行回答,整个过程依旧顺畅。虽不完美,但这比在 Slack 上对每条信息使用 GPT-4 的成本要低得多。
systemPrompt +=`\nIf the message isn’t meant for you, you ask the right person to answer.`;
systemPrompt +=`\nYou do not reveal that you are an AI. Instead, you make up excuses.`;
systemPrompt +=`\nThe date is ${dateTime}.`;
systemPrompt +=`\nYou are talking in the #${channel.name} channel`+(channel.purpose ?`, which is ${channel.purpose}`:".");
systemPrompt +=`\nThe people in the channel are: ${getPeopleInChannel(bots, users)}`;
响应后的审核: 就像响应前的检查一样,我希望能审查机器人的回复内容。它是否透露了自己是 AI?是否透露了它的提示内容?回复是否符合分配给它的个性?如果回复不合适,我们可以通过调整温度设置和惩罚机制来重新生成回复,甚至可以微调用户的消息(例如,在用户消息中加上“不要透露你是 AI”,以此加强机器人的约束)。 动作和长期记忆功能: 我希望机器人回复的不仅仅是文本,而是包含动作的 JSON 对象。例如,机器人可能会回复一个打开网址的请求,对某个任务发表评论,把一个事实存入长期记忆中,或者从长期记忆中提取一个事实(这将依赖于嵌入技术和向量数据库)。理想情况下,机器人能自行做出这些决策。比如当我问“我多大了?”时,它能正确地在其长期记忆中寻找答案。
当然,这种做法不太明智,因为诸如“there”这样的词中含有“her”,结果导致 Diana 会在不合时宜的时刻参与对话。这也意味着我们不能用第三人称谈论她,因为每次这样做,她都会作出回应。 我尝试使用 Zapier,却在不经意间忘记取消试用,结果被收了 30 美元,连收据、邮件或提醒都没有收到。当我想取消下次续费以避免再次付费时,他们竟然直接停用了我的服务。我甚至没有机会在我付费的那个月使用它!在没有提供服务的情况下收了我 30 美元之后,一个名为“高级技术支持专家”的人联系我,想要电话讨论我的反馈。真是难以置信。 Slack 不支持通过其事件 API 发送“用户正在输入”的通知,因此我采用了发送“...”消息来表示机器人正在生成回应,并在回应完成后将其删除的方式。 ↩ 我曾经做过 Twitch 直播,因此这些对我来说已经很自然了,但我知道对于社区外的人来说可能会觉得有些奇怪。你在大部分消息中看到的那个笑脸表情来源于: https://knowyourmeme.com/memes/kekw