______________________________________________________________________
标题:Todo第二阶段Todo AI聊天机器人黑客马拉松 表情符号🤖 颜色来源:绿色 颜色:灰色 sdk:docker 固定:false
Todo全栈应用程序与AI聊天机器人的演进
一个具有会话AI功能的现代全栈todo应用程序,使用Next.js、FastAPI和Cohere AI构建。
特性
核心任务管理
- 添加任务:通过UI或聊天创建新的待办事项
- 查看任务:列出所有具有完成状态的任务
- 标记完成:切换任务完成状态
- 更新任务:修改任务标题
- 删除任务:永久删除任务
人工智能聊天机器人(第三阶段)🤖
- 自然语言任务创建:“添加任务:购买杂货”
- 会话查询:“显示我的待处理任务”
- 任务状态管理:“按原样标记‘购买杂货’”
- 多步骤操作:“添加任务并显示我的列表”
- 用户身份查询“我是谁?”
- Glassmorphic聊天界面:高级滑入式聊天面板
- 对话持久性:恢复会话间的对话
- Markdown支持:响应中的RTF格式
技术栈
后端
- 框架:FastAPI(Python 3.13+)
- 数据库:Neon无服务器PostgreSQL
- 对象关系映射:sqlmodel(异步)
- 人工智能:相干API(命令-r-plus模型)
- 工具:MCP SDK用于工具定义
- 认证:更好地使用JWT进行身份验证
前端
- 框架:Next.js 16+(应用路由器)
- 语言:TypeScript 5.x
- 样式:顺风CSS
- UI组件:OpenAI聊天套件
- 标记语言:使用DOMPurify对markdown进行反应
需求
- Python 3.13或更高版本
- Node.js 18或更高版本
- PostgreSQL数据库(推荐使用Neon)
- Cohere API密钥(在Cohere.com注册)
安装
后端设置
cd backend
# Install dependencies
pip install -r requirements.txt
# Configure environment variables
cp .env.example .env
# Edit .env and add:
# - COHERE_API_KEY=your_key_here
# - BETTER_AUTH_SECRET=your_secret
# - DATABASE_URL=your_postgres_url
# Run database migrations
uvicorn app.main:app --reload前端设置
cd frontend
# Install dependencies
npm install
# Configure environment variables
cp .env.example .env.local
# Edit .env.local and add:
# - NEXT_PUBLIC_API_URL=http://localhost:8000
# Start development server
npm run dev用法
网络应用程序
- 导航到
http://localhost:3000 - 使用您的凭据注册/登录
- 使用主UI管理任务
- 点击浮动聊天按钮(右下角)打开AI助手
AI聊天机器人示例
创建任务:
"Add task: Buy groceries"
"Create a todo called 'Call dentist at 3pm'"
"Remind me to finish the report"查询任务:
"Show my tasks"
"What do I need to do today?"
"List completed tasks"管理任务:
"Mark 'Buy groceries' as done"
"Change 'Call dentist' to 'Call dentist at 3pm'"
"Delete 'Old task'"多步操作:
"Add 'Weekly meeting' and show my pending tasks"
"Mark 'Buy groceries' as done and delete 'Old task'"项目结构
phaselll/
├── backend/
│ ├── app/
│ │ ├── models/ # SQLModel database models
│ │ ├── services/ # Business logic (chat, cohere, tasks)
│ │ ├── routers/ # API endpoints (tasks, chat)
│ │ ├── middleware/ # Auth and rate limiting
│ │ ├── mcp_server/ # MCP tools and executor
│ │ └── main.py # FastAPI application
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── app/ # Next.js pages and layouts
│ │ ├── components/ # React components (chat UI)
│ │ ├── services/ # API clients
│ │ ├── hooks/ # Custom React hooks
│ │ └── types/ # TypeScript types
│ └── package.json
└── specs/ # Design documents and specifications
└── 001-ai-chatbot/
├── spec.md # Feature specification
├── plan.md # Implementation plan
├── tasks.md # Task breakdown
└── contracts/ # API contracts发展
运行测试
# Backend tests
cd backend
pytest tests/ -v
# Frontend tests
cd frontend
npm testAPI 文档
后端运行后,请访问:
- Swagger用户界面:
http://localhost:8000/docs - 重新记录:
http://localhost:8000/redoc
建筑亮点
AI聊天机器人架构
- 无状态后端:无服务器端会话状态
- 对话持久性:数据库存储聊天记录
- 迭代工具执行:多步操作链
- 严格的JSON解析:可靠的工具调用提取
- 速率限制:每位用户每分钟60个请求
- 用户隔离:基于JWT的多租户安全
MCP工具(6个工具)
add_task-创建新任务list_tasks-使用筛选器查询任务complete_task-标记任务已完成update_task-更新任务标题delete_task-删除任务get_current_user-获取用户信息
安全
- JWT身份验证:所有API请求都需要有效令牌
- 用户隔离:按user_id筛选的数据库查询
- 输入消毒:XSS和注射预防
- 速率限制:防止滥用和过高的API成本
- API密钥安全:Cohere-key存储在环境变量中
性能目标
- 聊天响应延迟:\<2秒(第95百分位)
- 对话历史加载:\<1秒
- 支持100个并发用户
- AI的50条消息上下文窗口
发展原则
该项目如下:
- 规范驱动开发(SDD):根据规范生成的所有代码
- 测试驱动开发(TDD):实施前编写的测试
- 代码整洁之道:简单、可读、可维护的代码
- 无过度工程:可行的最低限度执行
- 遵守宪法:遵守项目章程
许可证
麻省理工学院许可证-学习项目
项目进展
这是五个阶段演变的第三阶段:
- ✅ 第一阶段:控制台应用程序(已完成)
- ✅ 第二阶段:全栈web应用程序(已完成)
- ✅ 第三阶段:使用MCP工具的AI聊天机器人(当前)
- 🔜 第四阶段:本地Kubernetes部署
- 🔜 第五阶段:使用Kafka和Dapr进行云部署
______________________________________________________________________
版本: 3.0.0 创建: 2025-12-27 更新: 2026-01-26 状态:第三阶段-AI聊天机器人集成完成
