Cal.ai:开源AI日历助手

与您的日历进行邮件交流的应用程序

直达下载
返回上一页
描述
Cal.ai 是一款让您可以通过电子邮件与日历进行交流的应用程序。您可以将非正式的邮件转换为预订,列出和重新安排您的预订,以及回答关于您最繁忙时间的基本问题。
介绍

Cal.ai 是一个可以通过电子邮件与您的日历进行交流的应用程序:

  • 将非正式的电子邮件转换为预订,例如转发“明天下午2点见面怎么样?”
  • 列出并重新安排您的预订,例如“清空我的下午”
  • 回答关于您最繁忙时间的基本问题,例如“我的星期二看起来如何?”

核心逻辑包含在agent/route.ts中。在这里,一个LangChain Agent Executor被指派跟随您的指令。根据您最后已知的时区、工作时间和繁忙时间,它尝试对您的预订进行CRUD操作。

AI代理人只能从一组工具中进行选择,而无需查看您的API密钥。

通过receive/route.ts中的电子邮件清理和路由进行电子邮件的处理,使用MailParser。

传入的电子邮件根据电子邮件地址进行路由。地址通过DKIM记录进行验证,使其难以伪造。

入门指南

开发

如果尚未,请运行root设置步骤。

在运行应用程序之前,请参阅env.mjs以获取所有必需的环境变量。在此文件夹中运行cp .env.example .env以开始。您将需要:

  • 一个OpenAI API密钥,具有访问GPT-4的权限
  • 一个SendGrid API密钥
  • 一个默认的发件人电子邮件(例如,me@dev.example.com
  • Cal.ai应用程序的ID和URL
  • 一个唯一值用于PARSE_KEY,使用openssl rand -hex 32

要同时启动API和AI应用程序,只需运行yarn dev:ai

代理体系结构

agent/route.ts中的调度代理调用了一个LLM(在本例中为GPT-4)循环完成多步任务。我们使用了一个OpenAI Functions代理,该代理经过了微调,以输出适合传递给工具的文本。

工具(例如createBooking)只是JavaScript方法,由Zod模式包装,告诉代理输出的格式。

这是完整的架构:

home_open_Cal_ai_1

电子邮件路由器

要公开AI应用程序,您可以使用Tunnelmole,一个开源的隧道工具;或者nGrok,一个流行的封闭式隧道工具。

对于Tunnelmole,在新的终端中运行tmole 3005(或AI应用程序的端口号)。如果端口号不同,请将3005替换为端口号。在输出中,您将看到两个URL,一个http和一个https(我们建议使用https URL以获得更好的隐私和安全性)。要安装Tunnelmole,请使用curl -O https://install.tunnelmole.com/8dPBw/install && sudo bash install

对于nGrok,在新的终端中运行ngrok http 3005(或AI应用程序的端口号)。您可能需要先安装nGrok。

要将传入的电子邮件转发到路径/agent的无服务器函数,我们使用SendGrid的入站解析。

  1. 确保您拥有SendGrid账户
  2. 确保您有经过身份验证的域。转到设置 > 发件人验证 > 验证。对于DNS主机,请选择“I'm not sure”。单击下一步,添加您的域,例如example.com。选择手动设置。您将获得三个CNAME记录,添加到您的DNS设置中,例如在Vercel Domains中。添加这些记录后,单击验证。
  3. 为您的域授权电子邮件使用MX记录:一个名称为[your domain].com,值为mx.sendgrid.net.,另一个名称为bounces.[your domain].com,值为feedback-smtp.us-east-1.amazonses.com。如果提示,将优先级设置为10
  4. 转到设置 > 入站解析 > 添加主机和URL。选择您的经过身份验证的域。
  5. 在目标URL字段中,使用上面的Tunnelmole或ngrok URL,以及路径/api/receive和一个参数parseKey,它位于此应用程序的 .env中,下面是PARSE_KEY。完整的URL应该类似于https://abc.tunnelmole.net/api/receive?parseKey=ABC-123https://abc.ngrok.io/api/receive?parseKey=ABC-123
  6. 激活“POST原始的完整MIME消息”。
  7. 发送电子邮件至[anyUsername]@example.com。您应该在Tunnelmole或ngrok侦听器和服务器上看到一个ping。
  8. 调整receive/route.ts中的逻辑,保存以进行热重载,并发送另一封电子邮件以测试行为。
收录信息
修改时间:2024年5月21日
收录时间:2024年5月21日
标签
Agents Cal.ai Cal.ai软件 Cal.ai下载 Cal.ai安装教程 Cal.ai注册码 Cal.ai使用教程 Cal.ai安装包
AI工具教程
免费领取AI学习资料 进AI副业交流群
礼物
AI工具教程
免费领取AI学习资料 进AI副业交流群