Skip to content

About

🚀 让 AI 生成的文案读起来像真人写的|本地运行的开源 AI 去痕改写工具,纯本地零后端,支持 8 平台 · 6 语气 · 8 大模型

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

SayItBetter

SayItBetter

让 AI 生成的文案,读起来像真人写的

本地运行的 AI 去痕改写工具:输入文本,智能去除 AI 写作痕迹,并按目标平台与语气重写为自然流畅的社媒文案。

功能特性 · 截图 · 快速开始 · 技术栈 · 项目结构


功能特性

改写核心

  • 三种改写强度 — 轻度润色(仅修复表达与 AI 痕迹)、平台适配(按平台调整语气篇幅)、深度重写(可调整结构与顺序)
  • 8 个目标平台 — Twitter/X、小红书、LinkedIn、朋友圈、微博、知乎、今日头条、微信公众号,各平台自带篇幅与语气规则
  • 6 种语气预设 — 轻松随意、直截了当、故事叙述、专业克制、幽默风趣、极简主义
  • 8 个 AI 提供商 — DeepSeek、OpenAI、Anthropic、通义千问、智谱 GLM、文心一言、Kimi、豆包,另支持自定义 OpenAI 兼容端点

去痕管线(Humanize Pipeline)

  • 36 条 AI 模式检测 — 覆盖结构、词汇、风格三类,按 P0/P1/P2 严重级别分级
  • Best-of-N 候选选择 — 生成多个候选并自动挑选去痕效果最佳者
  • 自检闭环 — 改写后再做保真校验(fidelity),防止偏离原意
  • 两遍审计报告 — 对改写前后做对比审计,量化 AI 痕迹去除情况
  • 词汇替换表 — Tier 1/2/3 商务套话、隐喻、互联网黑话自动替换

体验与工程

  • 管线进度跟踪 — 实时显示各阶段(检测 → 改写 → 审计)进度
  • 断点续跑 — 任务持久化到 IndexedDB,刷新或中断后可恢复
  • 响应缓存 — 相同输入不重复调用 API
  • 多 API 配置 — 可保存多个 API Profile 并快速切换
  • 历史记录 — 本地保存历次改写,可回溯
  • 纯本地 — API Key 与数据仅存浏览器本地,调用直连提供商,不经过中间服务器

截图

1. 改写工作台(首页)

改写工作台

主操作界面。左侧大面积文本框用于粘贴待处理文案;下方控制条提供「目标平台」「语气微调」「改写强度」三组下拉、当前生效的 API 模型显示,以及「让文案更自然」运行按钮。运行后实时显示管线阶段进度(检测 → 改写 → 验证 → 自检),切换改写强度时下方即时给出该档位说明。

2. 改写结果对比

改写结果对比

改写完成后的结果面板。逐行/逐段 Diff 对比原文与改写文本,高亮增删改;展示最终成文,支持一键复制。可由此打开下方的去痕审计报告。

3. 去痕审计报告

去痕审计报告

弹窗式审计报告。量化本次去痕效果:列出检测到的 AI 写作模式(按结构 / 词汇 / 风格分类,P0/P1/P2 分级)及修复情况;给出保真度指标(段落数对比、长度比、遗漏事实);附两遍审计的剩余问题数与置信度。

4. 历史记录

历史记录

历史页。按时间倒序列出历次改写条目,含时间、目标平台、输入与输出内容,可回看每次的改写结果与审计情况。

5. 设置

设置

设置页,分多个分区:

  • API 配置 — 管理多个 API Profile(提供商 / 模型 / Key),支持启用、编辑、删除;选「自定义」时强制填写 BaseUrl
  • 生成偏好 — 设置默认目标平台、语气、改写强度,首页自动同步
  • 外观 — 主题等界面偏好
  • 数据与隐私 — 清除缓存 / 历史等本地数据
  • 关于 — 版本信息

快速开始

环境要求

  • Docker(推荐) — 一键部署,无需本地 Node 环境
  • 或本地开发:Node.js ≥ 18 + npm(pnpm / yarn)

Docker 部署(推荐)

最简单的运行方式,构建镜像后由 nginx 托管静态产物:

# 克隆仓库
git clone https://github.com/yaowen51888-rich/SayItBetter.git
cd SayItBetter

# 构建并后台启动(映射到 http://localhost:3080)
docker compose up -d --build

# 查看日志 / 停止
docker compose logs -f
docker compose down

启动后访问 http://localhost:3080。容器自带健康检查与自动重启。

不用 compose 也可直接构建运行: docker build -t sayitbetter . && docker run -d -p 8080:8080 sayitbetter

本地开发(源码)

# 克隆仓库
git clone https://github.com/yaowen51888-rich/SayItBetter.git
cd SayItBetter

# 安装依赖
npm install

# 开发模式(默认 http://localhost:3000,带热重载)
npm run dev

# 生产构建(产物输出到 dist/)
npm run build

# 本地预览构建产物
npm run preview

基本用法

  1. 配置 API — 进入「设置」页,新增 API Profile,选择提供商并填入 API Key
  2. 输入文本 — 回到首页,粘贴需要处理的文案
  3. 选择参数 — 选目标平台、语气微调、改写强度
  4. 运行 — 点击「让文案更自然」,观察管线进度
  5. 查看结果 — 改写完成后查看对比 Diff、去痕审计报告,并可一键复制
  6. 回溯 — 在「历史」页查看历次改写记录

技术栈

类别 选型
框架 React 18 + TypeScript
构建 Vite 6
样式 Tailwind CSS 3
状态管理 Zustand
AI SDK Vercel AI SDK(ai、@ai-sdk/openai、@ai-sdk/anthropic)
持久化 IndexedDB(任务/历史)
Markdown marked
测试 Vitest + jsdom

项目结构

src/
├── pages/                  # 页面
│   ├── Home.tsx            #   改写工作台
│   ├── Settings.tsx        #   设置(API / 生成偏好 / 外观 / 隐私 / 关于)
│   └── History.tsx         #   历史记录
├── components/             # 通用组件(侧栏、文本输入、结果面板、Diff、审计报告、管线进度…)
│   └── settings/           #   设置子组件
├── services/
│   ├── ai.ts               # AI 调用入口
│   ├── tasks.ts            # IndexedDB 任务持久化与续跑
│   ├── cache/              # 响应缓存
│   └── humanize/           # 去痕管线
│       ├── pipeline.ts              # 管线编排
│       ├── api-client.ts            # 多提供商 API 客户端
│       ├── prompt-builder.ts        # Prompt 构造
│       ├── pattern-detector.ts      # 36 条 AI 模式检测
│       ├── statistics-detector.ts   # 统计特征检测
│       ├── vocabulary-replacer.ts   # 词汇替换
│       ├── post-processor.ts        # 后处理
│       ├── candidate-scorer.ts      # Best-of-N 候选打分
│       ├── fidelity-validator.ts    # 保真校验
│       ├── audit-report.ts          # 审计报告生成
│       └── validator.ts             # 通用校验
├── stores/                 # Zustand 状态
│   └── (app / input / result / progress / settings / history)
├── shared/                 # 常量、类型、设计 token
└── main.tsx                # 应用入口
public/                     # logo、favicon、静态资源
doc/                        # 产品截图

支持的 AI 提供商

提供商 默认模型
DeepSeek deepseek-v4-pro
OpenAI gpt-5.4-mini
Anthropic claude-sonnet-4-6
通义千问 qwen3.6-flash
智谱 GLM glm-5.2
文心一言 ernie-4.0-8k
Kimi kimi-k2.6
豆包 doubao-lite

此外支持任意 OpenAI 兼容的自定义 API 端点。

测试

npm test          # 单次运行
npm run test:watch # 监听模式

隐私声明

  • API Key 与所有数据仅保存在浏览器本地(IndexedDB / localStorage)
  • 不收集、不上传任何用户数据
  • 所有 AI 调用直接从浏览器发往提供商,不经过任何中间服务器

许可证

MIT

About

🚀 让 AI 生成的文案读起来像真人写的|本地运行的开源 AI 去痕改写工具,纯本地零后端,支持 8 平台 · 6 语气 · 8 大模型

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages