-
🤖 AI 聊天对话
- 支持流式响应,实时获取 AI 回复
- 多轮对话上下文管理
- 聊天历史保存和检索
- 支持固定重要对话
-
🎭 Sentinel(哨兵)系统
- 预定义角色和系统提示词
- 自定义 AI 助手人格和行为
- 快速切换不同的对话角色
- 内置专业的 Athena 助手角色
-
🌐 多 AI 提供商支持
- DeepSeek(包括 R1 推理模型和 V3)
- OpenRouter(支持 Claude、GPT、Gemini、Llama 等多种模型)
- 阿里云百炼(通义千问系列)
- 硅基流动
- 火山方舟(豆包系列)
- 支持自定义 API 提供商
-
🧠 高级 AI 能力
- 支持视觉能力的模型(图片理解)
- 支持推理能力的模型(DeepSeek-R1、o3 等)
- 可选择不同上下文窗口的模型
-
📝 网页摘要
- 自动解析网页内容
- 生成智能摘要
- 过滤脚本和样式,提取核心信息
-
🌍 文本翻译
- 利用 AI 进行高质量翻译
- 支持多语言互译
-
🔍 网络搜索
- 集成 Tavily 搜索服务
- 为 AI 提供实时信息检索能力
-
🎲 TRPG 游戏
- 桌面角色扮演游戏支持
- AI 驱动的游戏主持人
- 智能行动建议生成
-
🔌 MCP 服务器集成
- 支持 Model Context Protocol
- 可扩展的工具和能力
- 自定义环境变量配置
-
桌面端
- macOS
- Windows
- Linux
- 窗口管理和系统托盘支持
-
移动端
- iOS
- Android
- 触摸优化的交互体验
- Flutter SDK >= 3.8.0
- Dart SDK >= 3.8.0
# 克隆项目
git clone https://github.com/CalsRanna/athena.git
cd athena
# 安装依赖
flutter pub get
# 生成必要的代码(路由、数据库等)
flutter pub run build_runner build# 查看可用设备
flutter devices
# 在指定设备上运行
flutter run -d <device-id>
# 调试模式
flutter run --debug
# 发布模式
flutter run --release# 代码分析
flutter analyze
# 运行测试
flutter test
# 清理并重新生成代码
flutter pub run build_runner build --delete-conflicting-outputslib/
├── page/ # UI 层
│ ├── desktop/ # 桌面端页面
│ └── mobile/ # 移动端页面
├── view_model/ # 视图模型层(Signals 状态管理)
├── service/ # 服务层(业务逻辑)
├── repository/ # 数据访问层
├── entity/ # 数据库实体
├── database/ # 数据库管理和迁移
├── router/ # 路由配置
├── widget/ # 可复用组件
├── component/ # 业务组件
├── preset/ # 预设数据
└── vendor/ # 第三方库扩展
- UI 框架: Flutter
- 状态管理: Signals(细粒度响应式)
- 依赖注入: GetIt
- 路由管理: AutoRoute
- 数据库: SQLite + Laconic ORM
- HTTP 客户端: OpenAI Dart(支持 OpenAI 兼容 API)
- 其他:
dart_mcp- MCP 协议支持tavily_dart- 搜索服务window_manager- 桌面窗口管理system_tray- 系统托盘
- 在应用中导航到设置 > 提供商
- 点击添加新提供商
- 填写以下信息:
- 提供商名称
- Base URL(API 地址)
- API Key
- 添加支持的模型信息
- 在应用中导航到设置 > Sentinel
- 创建新的 Sentinel 或编辑现有的
- 设置:
- 角色名称
- 描述
- 系统提示词
- 标签
- 在设置 > 服务器中添加 MCP 服务器
- 配置:
- 服务器名称
- 启动命令
- 命令参数
- 环境变量
Athena 使用 SQLite 数据库存储所有数据,数据库位于应用程序支持目录下的 athena.db。
迁移文件位于 lib/database/migration/,按时间顺序自动执行。
添加新迁移:
-
在
lib/database/migration/创建新文件,命名格式:migration_YYYYMMDDNNNN_description.dart -
在
lib/database/database.dart的_migrate()方法中添加迁移调用 -
运行应用以应用迁移
Athena 内置了以下 AI 提供商的配置:
| 提供商 | 支持模型 | 特点 |
|---|---|---|
| DeepSeek | DeepSeek-R1, DeepSeek-V3 | 推理能力强,性价比高 |
| OpenRouter | Claude 4, GPT-5, Gemini 2.5, o3, Llama 4 等 | 聚合多家模型,选择丰富 |
| 阿里云百炼 | 通义千问系列, DeepSeek 系列 | 国内访问稳定 |
| 硅基流动 | DeepSeek 系列 | 国内服务 |
| 火山方舟 | 豆包系列, DeepSeek 系列 | 字节跳动服务 |
欢迎贡献代码、报告问题或提出建议!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
- 遵循 Flutter 官方代码风格
- 运行
flutter analyze确保无警告 - 为新功能添加适当的测试
- 更新相关文档
- 代码生成: 修改路由或实体后,务必运行
flutter pub run build_runner build - 数据库迁移: 按时间顺序创建迁移文件,避免跳过序号
- 平台判断: 使用
Platform.isMacOS || Platform.isLinux || Platform.isWindows判断桌面端 - 状态管理: 在 ViewModel 中使用 Signals,避免手动 setState
- 依赖注入: 新增 ViewModel 需要在
lib/di.dart中注册 - 日志输出: 使用
LoggerUtil而不是print()
本项目采用 MIT 许可证。详见 LICENSE 文件。
感谢所有为这个项目做出贡献的开发者,以及以下开源项目: