文件结构

本文档详细介绍 Mindra 开源版本的项目结构和各文件功能。

项目目录结构

Mindra-oa/
├── main.py              # 主程序入口
├── ai_sidebar.py        # AI 侧边栏模块
├── config.yaml          # 配置文件
├── cookie_manager.py    # Cookie 管理器
├── homepage.html        # 自定义主页
├── more_dialog.py       # 更多功能对话框
├── settings_dialog.py   # 设置对话框
├── style_settings.py    # 样式设置
├── user_operations.py  # 用户操作模块
├── mindra.sql           # 数据库初始化脚本
├── README.md            # 英文文档
├── README_ch.MD         # 中文文档
├── Mindra_logo.png      # 项目 Logo
└── requirements.txt     # Python 依赖(如有)

核心文件说明

main.py

主程序入口文件,负责:

  • 创建应用程序实例
  • 初始化主窗口 (BrowserWindow)
  • 设置 WebEngine 配置
  • 协调各个模块的运行

主要类:

  • BrowserWindow: 主浏览器窗口类,继承自 QMainWindow

ai_sidebar.py

AI 侧边栏模块,实现 AI 对话功能:

  • AI 对话界面
  • 消息显示和管理
  • 支持文本、图片、文件输入
  • 模型切换和参数配置

user_operations.py

用户操作模块,负责用户相关的所有功能:

  • DBConnection: 数据库连接管理类
  • LoginDialog: 登录对话框
  • RegisterDialog: 注册对话框
  • UserOperations: 用户操作工具类

功能包括:

  • 用户登录和注册
  • 激活码验证
  • 积分管理
  • 用户信息管理

Cookie 管理器,负责:

  • Cookie 的存储和读取
  • Cookie 的增删改查
  • Cookie 持久化到 JSON 文件

主要类:

  • CookieManager: Cookie 管理器类

settings_dialog.py

设置对话框模块,提供应用配置界面:

  • AI 模型配置
  • 界面样式设置
  • 其他应用偏好设置

style_settings.py

样式设置模块,集中管理应用样式:

  • MainWindowStyles: 主窗口样式
  • ButtonStyles: 按钮样式
  • InputStyles: 输入框样式
  • MenuStyles: 菜单样式

more_dialog.py

更多功能对话框,提供扩展功能入口。

homepage.html

自定义主页 HTML 文件,应用启动时的默认页面。

config.yaml

应用配置文件,包含:

database:
  host: "<database host>"
  database: "<database name>"
  user: "<username>"
  password: "<password>"

ai:
  api_key: "<api key>"
  base_url: "<base url>"

models:
  text_parsing: "<text parsing model>"
  image_parsing: "<image parsing model>"
  daily_conversation: "<daily conversation model>"

mindra.sql

数据库初始化脚本,创建以下表:

  • users: 用户表
  • activation: 激活码表

数据目录结构

程序运行时会自动创建 Mindra_data 目录:

Mindra_data/
└── cookie/
    └── cookies.json     # Cookie 存储文件

模块依赖关系

main.py
  ├── ai_sidebar.py
  ├── cookie_manager.py
  ├── more_dialog.py
  ├── settings_dialog.py
  ├── style_settings.py
  └── user_operations.py
        └── style_settings.py

扩展开发

如果您需要添加新功能,建议:

  1. 在相应模块中添加功能代码
  2. 如需新对话框,参考 settings_dialog.pymore_dialog.py
  3. 样式修改集中在 style_settings.py
  4. 新增依赖请在文档中说明