Files

1 line
4.8 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"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"}}}}