Timely.AI 是一个基于大模型能力(deepseek
和 GPT)构建的 AI 助手,旨在自动化会议邀约、时间协调、策略分析和通知功能。通过多轮对话、日历时间协调和逻辑分析,Timely.AI 能显著提升会议安排的效率和准确性。
- 用户主动发起对话:帮助用户安排、修改或查询会议内容。
- 时间协调:通过与参与者的多轮对话,协调所有与会者的可用时间,避免时间冲突。
- 策略分析:通过深度学习模型分析对话内容,决定是否需要进一步时间协调,或直接发送会议通知。
- 通知功能:将最终确认的会议时间、参与者信息等通过通知发送给各方。
该项目包含以下核心组件:
- DialogueAgent:处理用户发起的对话,理解并收集用户需求。
- CoordinationAgent:协调会议时间,通过与参会者多轮对话确认可行时间。
- StrategyAgent:分析对话内容,基于深度学习模型判断是否需要时间协调或可以直接发送通知。
- NotificationAgent:根据最终确认的时间,向与会者发送会议通知。
- Python 3.x
- OpenAI GPT-4 API:用于自然语言处理和多轮对话。
- deepseek:用于智能会议时间协调和决策支持。
- Flask:提供 Web 服务处理用户请求。
- Logging:记录系统日志,便于排查问题。
- Tenacity:实现 API 调用的重试机制。
- python-dotenv:管理环境变量(如 OpenAI API Key)。
首先,克隆该项目到本地:
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/
来查看应用。
在 Frontend
目录下,已经开发了一个前端页面用于展示和互动。启动方式如下:
cd Frontend
npm start
这将启动前端页面,你可以在浏览器中查看会议安排和时间协调的界面。
- 深度学习模型支持:新增
deepseek
模型,支持更智能的会议协调和时间推荐,用户可以灵活切换。 - 前端页面预览:开发了前端页面,提升了用户体验,支持会议安排和时间选择。
- Flask 测试页面:后端启动后,访问
http://127.0.0.1:5001/
可以查看chat.html
页面进行测试。
用户可以通过向 /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 # 前端界面模板
├── Frontend/ # 前端代码目录
└── ... # 前端页面资源
- 错误处理与日志:完善异常处理,使用日志记录系统的运行状态,便于开发和运维人员调试。
- 多语言支持:考虑将对话助手扩展为多语言支持,使用适当的本地化和国际化方法。
- 性能优化:如果需要处理大量并发请求,可以考虑使用生产环境的 WSGI 服务器(如 Gunicorn)和负载均衡。
用户可以通过继续对话的方式与 AI 进行时间协调。AI 会根据用户提供的时间建议与其他参与者进行对接,最终确定一个合适的时间。
通过多轮对话与每个参与者协调时间,系统会根据参与者的日历信息自动进行时间冲突检测。
目前系统支持任意数量的参与者,协调时间时会逐一与参与者确认时间,并避免冲突。
为了进一步提升系统的功能和可用性,以下是一些待优化的关键点:
- 完善前端界面,提升用户体验,特别是会议安排、时间选择和确认流程的交互设计。
- 使用 React 或 Vue.js 等前端框架来提升页面的响应性和用户交互。
- 实现与飞书、Google Calendar、企业微信等日历平台的集成。
- 支持日历增删改查,自动同步会议时间并与参与者日历进行冲突检测。
- 提供方便的 API 或界面让用户能够快速选择与会时间,并自动更新日历。
- 将系统对接
chat_on_wechat
开源项目,以便在飞书、微信、企业微信、钉钉等IM中创建助手,直接通过微信与用户进行会议邀约、时间协调等。 - 支持通过微信实现邀请、确认和提醒等功能。
- 增加短信和电话拨打功能,使系统能够自动向参会者发送会议提醒或变更通知。
- 利用 Twilio 或其他 API 进行电话呼叫和短信发送功能集成。
- 记录与参会者的通话内容,并将其同步到会议安排系统中。
欢迎提交问题(Issues)和拉取请求(Pull Requests),我们非常欢迎任何关于改