Skip to content

NeonSaya/VocalHero

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ 嘴替侠 VocalHero

基于大模型与原生交互的高情商社交辅助工具

嘴替侠是一款面向社交场景的 AI 回复生成器。输入对方原话,选择场景,即可一键生成五种风格的嘴替文案——温柔一刀、阴阳怪气、直球暴击、幽默化解、以退为进。通过物理级卡片滑动交互,左滑扔掉、右滑采纳,让社交对线变得优雅而高效。


📢 AI 参与声明

本项目 100% 由 Prompt Engineering 驱动,是与 AI 工具 (Trae) 结对编程的产物。代码骨架与交互逻辑由 AI 辅助生成,开发者主导了产品架构设计、技术选型(FastAPI + interact.js)与全流程 Debug。拥抱 AI,才能更好地驾驭未来。


🎯 技术亮点

特性 说明
FastAPI 高性能架构 基于 Starlette 的异步 ASGI 框架,支持高并发请求,自带 OpenAPI 文档
Pydantic 数据安全校验 请求/响应全链路类型校验,双模型保障数据完整性
AI 容错重试机制 大模型返回 JSON 解析失败时自动重试最多 2 次,正则兜底提取,最终 Mock 数据回退
interact.js 物理级卡片交互 基于物理引擎的拖拽手势,支持丝滑回弹、方向指示器、飞出动画
零 Node.js 依赖 纯 Python 后端 + 原生 HTML/CSS/JS 前端,CDN 引入 Tailwind / interact.js / SweetAlert2 / html2canvas
本地弹药库 基于 localStorage 的历史收藏系统,支持复制、海报生成、删除管理
社交裂变海报 html2canvas 将文案渲染为赛博朋克风海报图片,一键下载分享

🖥️ 运行环境

项目 要求
Python 3.8+
操作系统 Windows / macOS / Linux
浏览器 Chrome 90+ / Edge 90+ / Safari 14+(推荐移动端 Chrome)
网络 需要访问 CDN 资源(首次加载);接入大模型需能访问对应 API 服务

🚀 快速开始

方式一:一键启动(推荐)

# Windows 用户:双击或命令行运行
run.bat

# Linux / macOS 用户
chmod +x run.sh && ./run.sh

脚本会自动安装依赖并启动服务,打开 http://localhost:8000 即可使用。

方式二:手动部署

Step 1:安装 Python 依赖

pip install -r requirements.txt

依赖清单:

包名 用途
fastapi Web 框架
uvicorn ASGI 服务器
requests HTTP 客户端(调用大模型 API)
pydantic 数据校验

Step 2:启动服务

uvicorn main:app --reload --host 0.0.0.0 --port 8000

Step 3:访问应用

浏览器打开 http://localhost:8000 即可使用。

⚠️ 注意:未配置 API Key 时,系统会返回预设的 Mock 数据,仅能体验交互功能。要获得真正的 AI 智能回复,必须配置 API Key,详见下方教程。


🔑 API Key 配置教程(重要)

为什么需要 API Key?

嘴替侠的核心能力来自大语言模型。没有 API Key,你只能看到固定的示例回复;配置 API Key 后,AI 会根据对方原话和所选场景,实时生成真正可用的高情商回复。

配置步骤

  1. 打开项目根目录下的 config.json 文件
  2. 填入你的 API Key 和对应的服务地址
{
    "api_key": "sk-你的API密钥",
    "api_base": "https://dashscope.aliyuncs.com/compatible-mode/v1",
    "model": "qwen-turbo"
}
  1. 保存文件,重启服务即可生效

如何获取 API Key?

以下是国内主流大模型服务的获取方式,均提供免费额度:

服务商 注册地址 免费额度 api_base model 示例
阿里云通义千问 dashscope.console.aliyun.com ✅ 新用户送 100 万 Token https://dashscope.aliyuncs.com/compatible-mode/v1 qwen-turbo
字节豆包 console.volcengine.com/ark ✅ 新用户送 5 元体验金 https://ark.cn-beijing.volces.com/api/v3 doubao-pro-32k
智谱 GLM open.bigmodel.cn ✅ 新用户送 25 元体验金 https://open.bigmodel.cn/api/paas/v4 glm-4-flash
Moonshot platform.moonshot.cn ✅ 新用户送 15 元体验金 https://api.moonshot.cn/v1 moonshot-v1-8k
DeepSeek platform.deepseek.com ✅ 新用户送 500 万 Token https://api.deepseek.com/v1 deepseek-chat
OpenAI platform.openai.com ❌ 需付费 https://api.openai.com/v1 gpt-3.5-turbo

推荐配置(新手友好)

首选:阿里云通义千问(免费额度最多,注册最简单)

  1. 访问 dashscope.console.aliyun.com,用支付宝扫码登录
  2. 开通 DashScope 服务(免费)
  3. 在「API-KEY 管理」页面创建一个新的 API Key
  4. 将 API Key 填入 config.json
{
    "api_key": "sk-你从阿里云获取的Key",
    "api_base": "https://dashscope.aliyuncs.com/compatible-mode/v1",
    "model": "qwen-turbo"
}
  1. 保存后重启服务,即可体验完整功能

配置方式说明

项目支持两种配置方式,config.json 优先级高于环境变量

配置方式 字段/变量名 说明 默认值
config.json api_key 大模型 API 密钥 "" (空则使用 Mock)
config.json api_base API 基础地址 https://dashscope.aliyuncs.com/compatible-mode/v1
config.json model 模型名称 qwen-turbo
环境变量 AI_API_KEY 大模型 API 密钥 ""
环境变量 AI_API_BASE API 基础地址 同上
环境变量 AI_MODEL 模型名称 同上

� 进阶极客玩法:支持本地大模型

本项目完全兼容支持 OpenAI API 规范的本地推理工具,实现纯离线、隐私安全的"赛博嘴替"。你的嘴替文案,不出本机半步。

配合 LM Studio

适合拥有高性能显卡的工作站,图形化界面一键加载模型:

  1. 下载并安装 LM Studio
  2. 在 LM Studio 中搜索并下载你喜欢的模型(推荐 Qwen2.5-7B-Instruct)
  3. 点击「Start Server」开启本地推理服务(默认端口 1234)
  4. 修改 config.json
{
    "api_key": "lm-studio",
    "api_base": "http://localhost:1234/v1",
    "model": "qwen2.5-7b-instruct"
}

配合 Ollama

适合在掌机或轻量设备上运行小参数模型,开箱即用:

  1. 安装 Ollama
  2. 一行命令拉取并运行模型:
ollama run qwen2.5:0.5b
  1. Ollama 会自动开启本地 API 服务(默认端口 11434)
  2. 修改 config.json
{
    "api_key": "ollama",
    "api_base": "http://localhost:11434/v1",
    "model": "qwen2.5:0.5b"
}

💡 提示:本地模型的回复质量取决于模型参数量。0.5B 模型适合体验交互流程,7B+ 模型才能获得接近云端 API 的回复质量。显存不足时,LM Studio 支持 GGUF 量化格式,4-bit 量化后 7B 模型仅需约 4GB 显存。


�📖 功能指南

💬 生成嘴替文案

  1. 在「对方原话」文本框中输入或粘贴对方说的话
  2. 在「场景选择」下拉框中选择对应场景(共 10 个场景)
  3. 点击「请求嘴替」按钮,等待 AI 生成五种风格的回复

🎭 五种回复风格

风格 策略 适用场景
🩵 温柔一刀 先肯定再反转,暗藏锋芒 职场、长辈、需维持关系
💗 阴阳怪气 反讽夸张,让对方自感荒谬 怼人、反击、让对方无话可说
🔴 直球暴击 不绕弯子,直接亮明底线 维权、拒绝、划清界限
🟡 幽默化解 玩笑自嘲,笑着反击 朋友、社交、缓和气氛
🟢 以退为进 先示弱认同,再提诉求 谈判、协商、需对方配合

🎬 十大社交场景

场景 覆盖痛点
🏢 职场对线 老板 PUA、同事甩锅
💔 手撕海王 渣男/渣女套路
💰 闲鱼砍价 二手交易砍价
🎎 亲戚催婚 过年灵魂拷问
🏠 房东 battle 押金/维修纠纷
💸 朋友借钱 借钱不还/拒绝借钱
🛡️ 客服维权 售后推诿/维权
💑 情侣吵架 感情沟通
🎓 导师沟通 学术圈生存
🍽️ 饭局应酬 社交脱身

🃏 卡片滑动交互

  • 右滑(→ 采纳):拖拽卡片向右超过阈值,文案自动复制到剪贴板,并存入「我的弹药库」
  • 左滑(← 扔掉):拖拽卡片向左超过阈值,卡片飞出丢弃
  • 回弹:拖拽未达阈值时,卡片弹性回弹到中心位置
  • 拖拽过程中会显示方向指示器(✓ / ✗),透明度随拖拽距离动态变化

🗂️ 我的弹药库

  • 点击右上角「🗂️」按钮打开侧边栏
  • 所有右滑采纳的文案自动保存在本地(localStorage)
  • 每条记录显示:风格标签、保存时间、文案内容
  • 支持操作:复制文案 / 生成海报 / 删除记录
  • 角标数字实时显示已收藏数量

🖼️ 生成分享海报

  1. 在弹药库中点击某条记录的「生成海报」按钮
  2. 系统自动将文案渲染为赛博朋克风格的精美海报
  3. 海报包含 VocalHero 品牌标识、风格标签、文案内容
  4. 自动触发浏览器下载 PNG 图片,可直接分享到社交平台

📁 项目结构

VocalHero/
├── main.py              # FastAPI 后端(AI 调用 + Pydantic 校验 + 重试机制)
├── config.json          # API 配置文件(api_key / api_base / model)
├── requirements.txt     # Python 依赖清单
├── run.bat              # Windows 一键启动脚本
├── run.sh               # Linux/macOS 一键启动脚本
├── README.md            # 项目文档
└── static/
    ├── index.html       # 前端页面(赛博朋克 UI + CDN 引入)
    ├── style.css        # 自定义样式(毛玻璃 + 动态渐变 + 卡片动画)
    └── app.js           # 前端逻辑(interact.js 滑动 + 弹药库 + 海报生成)

🛡️ 容错机制

用户请求 → Pydantic 校验 → API Key 检查
                                ├─ 无 Key → 返回 Mock 数据
                                └─ 有 Key → 调用大模型 API
                                              ├─ 成功 → JSON 解析
                                              │         ├─ 解析成功 → 返回结果
                                              │         └─ 解析失败 → 重试(最多2次)
                                              └─ 失败 → 重试(最多2次)
                                                        └─ 全部失败 → Mock 数据回退

🌐 生产环境部署

使用 Gunicorn + Uvicorn Workers(Linux 推荐)

pip install gunicorn
gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000

使用 Docker

FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
docker build -t vocalhero .
docker run -p 8000:8000 -v $(pwd)/config.json:/app/config.json vocalhero

使用 Systemd(Linux 服务)

# /etc/systemd/system/vocalhero.service
[Unit]
Description=VocalHero Web App
After=network.target

[Service]
WorkingDirectory=/opt/VocalHero
ExecStart=/usr/bin/uvicorn main:app --host 0.0.0.0 --port 8000
Restart=always

[Install]
WantedBy=multi-user.target
sudo systemctl enable vocalhero
sudo systemctl start vocalhero

📄 License

MIT License — 自由使用、修改和分发。

About

AI based project

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors