1 line
4.8 KiB
JSON
1 line
4.8 KiB
JSON
{"repo": "agoodny/whatai", "files": {"README.md": {"355e282ceefc943d3ffa5cec34917c3add82f19f": {"t": 1785747273.9360359, "n": 2767, "h": "ab7ce21136eb8642", "c": "# WhatAI\n\nWhatAI 是一个支持多 AI 人格互动的聊天模拟系统。用户可以创建具有不同性格和表达方式的 AI 人格,让它们参与群聊、进行一对一私聊,或一起游玩五子棋、成语接龙和飞花令。\n\n## 系统架构\n\n```mermaid\nflowchart LR\n User[\"浏览器\"] --> Frontend[\"Vue 3 + Vite 前端\"]\n Frontend -- \"/api、/media\" --> Backend[\"Django REST Framework\"]\n Backend --> Auth[\"JWT 用户认证\"]\n Backend --> Services[\"聊天、人格与游戏服务\"]\n Backend --> DB[(\"SQLite\")]\n Backend --> Media[\"本地媒体文件\"]\n Services --> LLM[\"DeepSeek API\"]\n Worker[\"后台聊天 Worker\"] --> Services\n Worker --> DB\n```\n\n- **前端**:使用 Vue 3、Vue Router、Pinia、Axios 和 Vite 构建页面与交互。\n- **后端**:使用 Django 5 和 Django REST Framework 提供用户、人格、群聊、私聊及游戏接口。\n- **数据存储**:开发环境使用 SQLite 保存用户、房间、人格和消息等数据,上传的头像保存在 `backend/media`。\n- **接口代理**:Vite 开发服务器将 `/api` 和 `/media` 请求代理到 `http://127.0.0.1:8000`。\n- **身份认证**:用户登录后通过 JWT 访问需要认证的接口。\n- **AI 对话**:群聊和私聊服务根据人格、场景及历史消息构造提示词,并调用 DeepSeek API 生成回复。\n- **后台任务**:使用普通的 `runserver` 启动 Django 开发服务器时,群聊 Worker 会在自动重载进程中一并启动,负责安排 AI 发言并生成群聊消息,无需另开 Worker 终端。\n\n## 功能\n\n- **用户系统**\n - 注册、登录和登录状态校验。\n - 修改昵称和头像。\n - 选择 `deepseek-v4-flash` 或 `deepseek-v4-pro` 作为聊天模型。\n- **AI 人格库**\n - 使用内置人格。\n - 创建、编辑和删除自定义人格。\n - 配置人格名称、头像、简介、说话风格和人格提示词。\n- **群聊模拟**\n - 创建包含 2–4 个 AI 人格的群聊。\n - 设置群聊名称和对话场景。\n - 用户可选择以自己身份加入群聊,且不占用 AI 人格名额。\n - 查看消息、发送消息、引用回复,以及暂停或恢复 AI 自动发言。\n- **一对一私聊**\n - 选择已有 AI 人格开始私聊。\n - 在创建私聊时快速新建人格。\n - 查看和删除私聊会话。\n- **AI 游戏**\n - 五子棋。\n - 成语接龙。\n - 飞花令。\n\n## 如何使用\n\n以下命令以 Windows PowerShell 为例。\n\n### 1. 环境要求\n\n- Python 3.11\n- Node.js `20.19+`(或 `22.12+`)\n- npm\n- DeepSeek API Key\n\n### 2. 配置后端环境变量\n\n进入后端目录,并根据示例文件创建本地配置:\n\n```powershell\ncd backend\nCopy-Item .env.example .env\n```\n\n编辑 `backend/.env`:\n\n```dotenv\nDEEPSEEK_API_KEY=你的_API_Key\nDEEPSEEK_BASE_URL=https://api.deepseek.com\n```\n\n`DEEPSEEK_BASE_URL` 是可选配置,不填写时会使用 `https://api.deepseek.com`。为兼容旧配置,项目也会读取 `DASHSCOPE_API_KEY`,但建议使用 `DEEPSEEK_API_KEY`。\n\n### 3. 准备并启动后端\n\n首次运行时创建虚拟环境并安装依赖:\n\n```powershell\ncd backend\npython -m venv .venv\n.\\.venv\\Scripts\\python.exe -m pip install -r requirements.txt djangorestframework-simplejwt Pillow\n```\n\n初始化数据库:\n\n```powershell\n.\\.venv\\Scripts\\python.exe manage.py migrate\n```\n\n启动 Django 开发服务器:\n\n```powershell\n.\\.venv\\Scripts\\python.exe manage.py runserver\n```\n\n后端默认运行在:\n\n```text\nhttp://127.0.0.1:8000\n```\n\n正常使用上述 `runserver` 命令时,群聊 Worker 会随开发服务器自动启动。请保持该终端窗口运行。\n\n### 4. 准备并启动前端\n\n另开一个 PowerShell 窗口,在项目根目录执行:\n\n```powershell\ncd frontend\nnpm.cmd install\nnpm.cmd run dev\n```\n\n前端默认运行在:\n\n```text\nhttp://localhost:5173\n```\n\n在浏览器中打开该地址,注册并登录后即可使用。\n\n> PowerShell 可能因执行策略阻止 `npm.ps1`,因此本文统一使用 `npm.cmd`。\n\n## 开发检查\n\n检查后端配置:\n\n```powershell\ncd backend\n.\\.venv\\Scripts\\python.exe manage.py check\n```\n\n构建前端:\n\n```powershell\ncd frontend\nnpm.cmd run build\n```\n\n## 注意事项\n\n- 本项目当前配置面向本地开发与演示,不建议直接用于生产环境。\n- Django 开发服务器的自动重载机制负责启动群聊 Worker;使用 `--noreload` 时不会自动启动该 Worker。\n- 前后端服务需要同时保持运行,前端页面才能正常调用接口和加载媒体文件。\n"}}}} |