# rolemeta **Repository Path**: coding_niann/rolemeta ## Basic Information - **Project Name**: rolemeta - **Description**: rolemeta(mvp版本) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-22 - **Last Updated**: 2025-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ai角色表演(MVP版本) ## 议题 开发一个利用 AI 来做角色扮演的网站,用户可以搜索自己感兴趣的角色例如哈利波特、苏格拉底等并可与其进行语音聊天。 请回答: 1. 你计划将这个应用面向什么类型的用户?这些类型的用户他们面临什么样的痛点,你设想的用户故事是什么样呢? 2. 你认为这个 APP 需要哪些功能?这些功能各自的优先级是什么?你计划本次开发哪些功能? 3. 你计划采纳哪家公司的哪个 LLM 模型能力?你对比了哪些,你为什么选择用该 LLM 模型? 4. 你期望 AI 角色除了语音聊天外还应该有哪些技能? **请开发以上 APP,包括实现 3 个以上 AI 角色应该具备的技能。要求不能调用第三方的 Agent 能力,只需允许调用 LLM 模型、语音识别以及 TTS 能力。针对以上 1-4 点,请把你的思考整理成文档,作为作品的说明一并提交。** ### 面向用户以及痛点 #### 1.1 用户类型 - **文学与影视爱好者**:喜欢哈利波特、霍比特人、星球大战等角色,希望沉浸式体验角色互动。 - **教育与学习用户**:学习哲学、历史或语言的学生,希望通过与虚拟人物对话来辅助学习。 - **休闲娱乐用户**:喜欢在线聊天、互动游戏或社交体验,希望获得有趣的角色对话。 - **创作者/编剧**:希望测试剧情、角色互动或获取灵感。 #### 1.2 用户痛点 - 市面上大多数 AI 聊天产品缺乏**沉浸式角色体验**。 - 文字聊天较单调,缺少声音、语气和表情的生动呈现。 - 与历史人物或虚拟角色交互缺乏**个性化和角色一致性**。 - 学习类用户缺少互动式练习和实时反馈。 #### 1.3 用户故事示例 1. **哈利波特迷**:用户搜索“哈利波特”,与 AI 哈利进行语音聊天,询问魔法课程或霍格沃茨趣事。 2. **哲学学生**:用户选择“苏格拉底”,通过语音提问哲学问题,获得启发式回答和对话互动。 3. **创作者**:用户选择“夏洛克·福尔摩斯”,模拟剧情互动,获取角色观点和推理建议。 ### 核心功能优先级 | 优先级 | 功能模块 | 功能描述 | 技术说明 / 备注 | |-----|----------|------------------------------------|------------------------| | 高 | 登录与注册 | 用户可以注册账号并登录,保证个人数据和对话记录保存 | | | 高 | 角色搜索与选择 | 用户按名字或标签搜索角色,显示简介和技能列表 | 前端展示列表,后端存储角色信息 | | 高 | 语音输入与输出 | 支持文本和语音输入(ASR),LLM 生成回答后用 TTS 输出语音 | ASR 模块转文本,TTS 模块合成语音 | | 高 | 角色技能 | 展示角色可执行技能(至少 3 个技能:问答、故事、建议) | 前端展示技能列表或按钮,后端提供技能调用逻辑 | | 高 | 上下文记忆 | 保存对话记录,多轮对话保持角色上下文 | 后端数据库存储上下文,前端显示历史聊天 | | 中 | 用户可创建角色 | 用户创建角色和技能 | | | 中 | api池 | 防止多个用户时LLM api 限流 | | | 中 | VIP功能 | 用户量大的话普通用户排队,VIP用户插队 | 优先队列 | | 低 | TTS 语音合成 | | | ### 各个LLM模型能力对比 - ### 技术方案与模型能力 #### 3.1 LLM 模型选择 - **模型**:GPT120B - **选择原因**: - 语言理解能力强,适合模拟复杂角色 - 对话上下文保持能力好 - 输出风格可控制,方便模拟角色语气和情绪 - API 易用,兼容 WebSocket/REST 调用 #### 3.2 语音技术 - **语音识别 (ASR)**:Web Speech API - **语音合成 (TTS)**:qiniucloud TTS - **数据流**:前端采集音频 → ASR 转文字 → 发送给 LLM → LLM 输出文本 → TTS 合成音频 → 播放给用户 #### 3.3 系统架构 - **前端**: - React + WebSocket - 语音录制、实时发送音频流 - 播放 TTS 音频 - **后端**: - Go WebSocket 服务 - 调用 LLM API,处理语音转文字、文本生成、TTS - 存储会话上下文,保证角色对话连贯 - **存储**: - Redis / 数据库存储角色信息、会话记录和用户偏好 ## 技术选型 我们计划用React+Golang ## 如何运行程序 ### 环境准备 1. 安装 Go 1.24+ 2. 安装 Node.js 18+ 3. 安装 Docker 和 Docker Compose 4. 安装 pnpm (用于前端依赖管理) ### 启动步骤 1. 克隆项目到本地 运行: ``` start.bat / start.sh ``` ### 架构设计文档 #### 模块规格 ##### 前端模块 - **技术栈**: React 18, TypeScript, TailwindCSS, React Router v7 - **主要页面**: - 登录/注册页面 - 角色列表页面 - 聊天页面 - 角色详情页面 - **核心组件**: - 聊天窗口组件 - 消息列表组件 - 语音输入组件 - 角色技能展示组件 - **状态管理**: 使用 Zustand 进行全局状态管理 - **网络请求**: 使用 Axios 进行 API 调用 - **路由管理**: 使用 React Router v7 ##### 后端模块 - **技术栈**: Go 1.24, Gin 框架, GORM, MySQL, Redis - **主要模块**: - 用户认证模块 (登录/注册) - 角色管理模块 (角色增删改查) - 技能管理模块 (角色技能管理) - 会话管理模块 (对话管理) - 消息管理模块 (消息存储与查询) - AI服务模块 (ASR/TTS/LLM调用) - 邮箱验证码接口 - **中间件**: - JWT 认证中间件 - CORS 中间件 - **数据库**: - MySQL 用于持久化存储用户、角色、技能、会话和消息数据 - Redis 用于缓存和会话管理 - **第三方服务集成**: - 七牛云存储 (语音文件存储) - SMTP 服务 (邮件验证码发送) - AI 服务 (ASR/TTS/LLM API调用) ## 角色分工 前端:王德泽 后端:龚东辉 产品:王冰研