该项目是一个基于 OpenAI GPT-4 的 AI Agent助手,用于自动化会议邀约、时间协调、策略分析和通知功能。通过多轮对话、日历时间协调和逻辑分析,旨在提升会议安排的效率和准确性。
- 用户主动发起对话:帮助用户安排、修改或查询会议内容。
- 时间协调:通过与参与者的多轮对话,协调出所有与会者的可用时间,并避免冲突。
- 策略分析:分析对话内容并决定是否需要进一步的时间协调,或者直接发送会议通知。
- 通知功能:将最终确认的会议时间、参与者信息等通过通知发送给各方。
该项目包含以下核心组件:
- DialogueAgent:处理用户发起的对话,收集并理解用户需求。
- CoordinationAgent:协调会议时间,通过与参会者多轮对话确认合适的时间。
- StrategyAgent:分析对话总结,决定是否需要进行时间协调或直接发送通知。
- NotificationAgent:根据最终确认的时间,向与会者发送通知。
- Python 3.x
- OpenAI GPT-4 API:用于多轮对话和自然语言处理。
- Flask:提供 Web 服务,用于处理用户请求。
- Logging:记录系统日志,方便排查问题。
- Tenacity:用于实现 API 调用的重试机制。
- python-dotenv:管理环境变量(如 OpenAI API Key)。
Timely.AI 可以广泛应用于各行各业,提供自动化的会议安排、时间协调和通知功能。以下是按行业分类的适用场景及功能扩展。
- 适用于公司内部的会议安排,团队讨论,项目进展汇报。
- 功能:支持跨部门会议,自动时间协调,发送会议提醒和资料。
- 适用于人力资源部门安排面试,候选人和面试官的时间协调。
- 功能:根据候选人和面试官的可用时间,自动安排面试时间并发送通知,支持在线面试链接的嵌入。
- 企业内部培训课程的安排。
- 功能:根据员工的可用时间安排课程,并自动生成培训邀请及学习资料的发送。
- 各部门汇报、财务报告、季度评审等会议的时间协调和安排。
- 功能:支持周期性会议的设定和重复提醒。
- 教师与学生的时间协调,课程安排、辅导预约。
- 功能:自动协调教师和学生的时间,生成课程时间表,支持在线学习平台集成。
- 适用于学术机构组织的会议、研讨会,讲座安排。
- 功能:自动安排学术交流会议,安排演讲人和参与者的时间。
- 学校或培训机构安排考试或面试。
- 功能:协调考官和考生的时间,自动发送考试通知和规则。
- 适用于医疗机构预约系统,患者和医生的时间协调。
- 功能:自动安排医生与患者的会诊时间,支持在线问诊和视频会议。
- 手术室和医生时间的协调。
- 功能:自动调度手术时间,保证资源不冲突并发出提醒。
- 社区或医院的疫苗接种时间协调。
- 功能:患者选择接种时间,系统协调并发送确认通知。
- 客户与律师的时间协调,法律咨询预约。
- 功能:根据客户和律师的空闲时间安排咨询会议,支持在线会议链接。
- 法庭与律师、当事人之间的听证会时间协调。
- 功能:自动安排法庭听证会和案件讨论会议,发送法庭日期和地点通知。
- 客户服务中心与客户的时间协调。
- 功能:支持客户与服务代表的时间预约,自动安排电话或视频会议。
- 销售团队与潜在客户的会议安排。
- 功能:根据客户的时间安排销售会议,支持在线产品演示和讨论。
- 客户与技术支持团队的售后服务时间安排。
- 功能:自动安排维修、维护等售后服务。
- 政府机构内部会议、决策会议的时间协调。
- 功能:支持多部门的会议安排,自动协调政府部门和相关利益方的时间。
- 公共政策、社区会议的安排。
- 功能:支持公民与政府官员的时间协调,并自动提醒各方参会。
- 适用于办理许可证、审批事项时需要的面谈或审查会议。
- 功能:自动安排审批面谈,并发送通知。
- 家庭成员之间的聚会安排,如节假日聚会、生日庆祝等。
- 功能:自动协调家庭成员的时间,发送聚会提醒。
- 适用于个人的医疗预约,如体检、看病预约。
- 功能:自动协调个人和医生的时间安排。
- 个人或家庭旅行的行程安排。
- 功能:自动协调家庭成员或朋友的旅行计划,并提醒相关事项。
- 自由职业者与客户之间的会议安排和项目讨论。
- 功能:根据自由职业者和客户的可用时间安排项目讨论会议。
- 远程团队的工作安排,跨时区会议协调。
- 功能:自动根据不同时区协调会议时间,支持在线协作工具集成。
- 旅行社与客户的时间协调。
- 功能:支持旅行社与客户的行程讨论和安排会议。
- 婚礼、派对等活动的时间协调。
- 功能:自动安排婚礼筹备会议、活动场地和参与人员的协调。
- 客户与导游的时间协调。
- 功能:自动安排旅游行程和导游的接送时间,发送确认通知。
Timely.AI 的适用场景非常广泛,几乎涵盖了各行各业对时间协调和会议安排的需求。通过自动化的时间协调和通知功能,能够显著提升各行业组织和个人的工作效率。通过对场景的细分,Timely.AI 能够根据不同的需求提供定制化的会议安排和时间管理服务。
首先,克隆该项目到本地:
git clone https://jihulab.com/ai6444601/Timely.AI.git
cd Timely.AI
为了确保项目依赖的隔离,建议使用虚拟环境:
python3 -m venv venv
source venv/bin/activate # 对于 Windows 使用 `venv\Scripts\activate`
安装依赖:
pip3 install -r requirements.txt
为了使用 OpenAI GPT-4 API,你需要提供 OpenAI API 密钥。你可以通过以下两种方式之一配置 API 密钥:
-
方法 1:使用环境变量
-
创建一个
.env
文件,在其中添加 API 密钥:OPENAI_API_KEY=your_openai_api_key_here
-
使用
python-dotenv
加载环境变量。
-
-
方法 2:直接修改代码
- 打开
agents.py
,将openai.api_key
设置为你的 API 密钥(不推荐在生产环境中使用这种方法)。
- 打开
如果日志目录 logs/
不存在,系统会自动创建。你可以在日志文件中查看详细的请求和响应信息。
配置完毕后,可以通过以下命令启动 Flask 服务:
python3 app.py
默认情况下,Flask 会在本地的 5001 端口启动应用。你可以在浏览器中访问 http://127.0.0.1:5001/
来查看应用。
用户可以通过向 /chat
端点发送请求,启动或继续一个对话。以下是一个发送 POST 请求的示例:
POST /chat
Content-Type: application/json
{
"message": "我想安排一个会议,讨论项目进展。",
"type": "user_initiated"
}
当用户提供的所有信息都已经收集完毕时,/end_dialogue
端点用于获取对话总结:
POST /end_dialogue
Content-Type: application/json
{
"type": "user_initiated"
}
如果需要协调与会者的时间,系统会根据策略分析决定是否需要时间协调。协调流程通过 /chat
端点继续进行。
POST /chat
Content-Type: application/json
{
"message": "我今天下午2点到3点有空,能否安排在这个时间?",
"type": "coordination"
}
你可以通过 /end_dialogue
获取完整的对话总结,或者时间协调的总结:
POST /end_dialogue
Content-Type: application/json
{
"type": "coordination"
}
.
├── app.py # Flask Web 服务
├── agents.py # 代理类定义:处理对话、时间协调、策略分析等
├── requirements.txt # 项目依赖
├── .env # 环境变量文件 (存储 API Key)
├── logs/ # 存放日志文件
└── templates/
└── chat.html # 前端界面模板
- 错误处理与日志:完善异常处理,使用日志记录系统的运行状态,便于开发和运维人员调试。
- 多语言支持:考虑将对话助手扩展为多语言支持,使用适当的本地化和国际化方法。
- 性能优化:如果需要处理大量并发请求,可以考虑使用生产环境的 WSGI 服务器(如 Gunicorn)和负载均衡。
用户可以通过继续对话的方式与 AI 进行时间协调。AI 会根据用户提供的时间建议与其他参与者进行对接,最终确定一个合适的时间。
通过多轮对话与每个参与者协调时间,系统会根据参与者的日历信息自动进行时间冲突检测。
目前系统支持任意数量的参与者,协调时间时会逐一与参与者确认时间,并避免冲突。
- 完善前端界面,提升用户体验,特别是会议安排、时间选择和确认流程的交互设计。
- 使用 React 或 Vue.js 等前端框架来提升页面的响应性和用户交互。
- 实现与飞书、Google Calendar、企业微信等日历平台的集成。
- 支持日历增删改查,自动同步会议时间并与参与者日历进行冲突检测。
- 提供方便的 API 或界面让用户能够快速选择与会时间,并自动更新日历。
- 将系统对接
chat_on_wechat
开源项目,以便在飞书、微信、企业微信、钉钉等IM中创建助手,直接通过微信与用户进行会议邀约、时间协调等。 - 支持通过微信实现邀请、确认和提醒等功能。
- 增加短信和电话拨打功能,使系统能够自动向参会者发送会议提醒或变更通知。
- 利用 Twilio 或其他 API 进行电话呼叫和短信发送功能集成。
- 记录与参会者的通话内容,并将其同步到会议安排系统中。
欢迎提交问题(Issues)和拉取请求(Pull Requests),我们非常欢迎任何关于改进系统的建议和贡献。
本项目使用 MIT 许可证。详细信息请查看 LICENSE 文件。