2025-06-06 16:45:19 +08:00
2025-06-06 16:41:50 +08:00
2025-06-06 16:41:50 +08:00
2025-06-06 16:41:50 +08:00
2025-06-06 16:41:50 +08:00
2025-06-06 16:41:50 +08:00
2025-06-06 16:42:11 +08:00
2025-06-06 16:42:11 +08:00
2025-06-06 16:42:11 +08:00
2025-06-06 16:42:11 +08:00

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 文件 (如果存在)。

Description
带记忆的gemini
Readme 124 KiB
Languages
Python 48.3%
JavaScript 24%
CSS 22.6%
HTML 5.1%