5.2 KiB
5.2 KiB
AI 助手项目
这是一个基于 Google Gemini API 构建的 AI 助手项目,旨在提供一个交互式的聊天界面,支持多轮对话、记忆管理和可配置的系统指令。
项目结构
.
├── app.py # 主应用程序入口,处理后端逻辑和API路由
├── config.ini # 配置文件,用于存储API密钥、模型设置、文件路径等
├── config.py # 配置加载和管理模块
├── file_manager.py # 文件操作工具,用于读写JSON、管理目录等
├── gemini_client.py # Gemini API 客户端,处理与Google Gemini API的交互
├── memory_manager.py # 记忆管理模块,处理短期和长期记忆的存储与检索
├── README.md # 项目说明文件
├── requirements.txt # Python依赖列表
├── utils.py # 常用工具函数,如日志配置、时间处理等
├── data/
│ ├── chat_logs/ # 存储聊天记录
│ ├── features/ # 存储角色特性(例如:default_role/features.json)
│ └── memories/ # 存储记忆数据(例如:default_memory/memory.json)
└── static/
├── index.html # 前端主页面
├── css/
│ ├── modern-style.css # 现代风格CSS
│ └── style.css # 主要CSS样式
├── js/
│ ├── api.js # 前端API调用逻辑
│ ├── app.js # 前端主应用逻辑
│ ├── ui_manager.js # 前端UI管理逻辑
│ └── lib/ # 前端第三方库
│ ├── marked.min.js # Markdown解析库
│ └── purify.min.js # HTML净化库
功能特性
- 多轮对话: 支持与AI进行连续的多轮对话,保持上下文。
- 记忆管理:
- 短期记忆: 存储最近的对话轮次,用于维持当前对话的连贯性。
- 长期记忆: 通过摘要和嵌入技术,将关键信息存储为长期记忆,以便在后续对话中检索和利用。
- 可配置性:
- 通过
config.ini
文件轻松配置 Gemini API 密钥、默认模型、上下文窗口大小、记忆保留轮次等。 - 支持从环境变量加载
GEMINI_API_KEY
。
- 通过
- 流式响应: 支持 Gemini API 的流式响应,提供更流畅的用户体验。
- 前端界面: 提供一个简洁的Web界面,方便用户与AI助手交互。
- 日志记录: 详细的日志记录,便于调试和问题追踪。
安装与运行
1. 克隆仓库
git clone https://github.com/your-username/your-repo-name.git
cd your-repo-name
(请将 your-username/your-repo-name.git
替换为实际的仓库地址)
2. 创建并激活虚拟环境 (推荐)
python -m venv venv
# Windows
.\venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
3. 安装依赖
pip install -r requirements.txt
4. 配置 API 密钥
在项目根目录下找到 config.ini
文件。
将 [API]
部分的 GEMINI_API_KEY
替换为你的 Google Gemini API 密钥。
[API]
GEMINI_API_KEY = YOUR_GEMINI_API_KEY_HERE
或者,你可以设置环境变量 GEMINI_API_KEY
。环境变量的优先级高于 config.ini
文件中的配置。
5. 运行应用程序
python app.py
应用程序将在本地启动一个Web服务。通常,你可以在浏览器中访问 http://127.0.0.1:5000
来使用AI助手。
配置说明
项目的主要配置通过 config.ini
文件管理。以下是各个配置项的详细说明:
[API] 部分
gemini_api_base_url
: Gemini API 的基础 URL。如果使用代理或自定义端点,请修改此项。gemini_api_key
: 你的 Google Gemini API 密钥。建议通过环境变量GEMINI_API_KEY
设置,优先级更高。default_gemini_model
: 默认使用的 Gemini 模型,例如models/gemini-2.0-flash
。memory_update_model
: 用于记忆更新(摘要和嵌入)的 Gemini 模型。
[Application] 部分
context_window_size
: 短期记忆中保留的对话轮次数量,用于维持当前对话的上下文。memory_retention_turns
: 长期记忆更新的频率,每隔多少轮对话进行一次记忆摘要和存储。max_short_term_events
: 短期记忆中最大事件(消息)数量。features_dir
: 存储角色特性配置文件的目录路径。memories_dir
: 存储长期记忆数据文件的目录路径。chat_logs_dir
: 存储聊天记录文件的目录路径。app_log_file_path
: 应用程序日志文件的路径。
[Session] 部分
current_role_id
: 当前会话使用的角色ID。current_memory_id
: 当前会话使用的记忆ID。current_chat_log_id
: 当前会话的聊天记录ID。
使用说明
在Web界面中输入你的问题或指令,AI助手将根据你的输入和历史对话进行回复。
贡献
欢迎贡献!如果你有任何改进建议或发现bug,请提交Issue或Pull Request。
许可证
本项目采用 MIT 许可证。详见 LICENSE
文件 (如果存在)。