尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Turn any creator's public content into a first-person, citation-grounded AI persona; multi-persona roundtables. (Apache-2.0)
翻譯準備中
正在載入完整 README。 以下為已儲存的摘錄。
把任意创作者的公开内容,变成一个会说话、有出处、以第一人称回答的 AI 人格 —— 再让几个人格同台圆桌对谈。 Turn any creator's public content into a first-person, citation-grounded AI persona — then put several personas on stage for a live roundtable. 一个博主几百期视频、几千条推文,散落在平台里,谁也不可能全看完。SenseClip 把它们全部吃进来、拆成语义原子、建成可检索的记忆库,再从记忆里提炼出这个人的观点、金句和思维框架,最后让一个 AI 以"他本人"的口吻回答你的问题——每一句话都能点回原视频的那一秒。 在此之上还有一个广场:选两位博主、抛一个话题,他们各自查自己的记忆库亮观点、逐轮互相反驳,你可以随时插话追问,聊多少轮都行。 目前内置两个示例人格:政经评论博主鲁社长、TRON 创始人孙宇晨(孙割)。新增一个博主只需要一个 YAML 文件。檢視完整 README ↗
把任意创作者的公开内容,变成一个会说话、有出处、以第一人称回答的 AI 人格 —— 再让几个人格同台圆桌对谈。
Turn any creator's public content into a first-person, citation-grounded AI persona — then put several personas on stage for a live roundtable.
在线体验 · 部署指南 · 人格配置 · 贡献指南 · English
一个博主几百期视频、几千条推文,散落在平台里,谁也不可能全看完。SenseClip 把它们全部吃进来、拆成语义原子、建成可检索的记忆库,再从记忆里提炼出这个人的观点、金句和思维框架,最后让一个 AI 以"他本人"的口吻回答你的问题——每一句话都能点回原视频的那一秒。
在此之上还有一个广场:选两位博主、抛一个话题,他们各自查自己的记忆库亮观点、逐轮互相反驳,你可以随时插话追问,聊多少轮都行。
目前内置两个示例人格:政经评论博主鲁社长、TRON 创始人孙宇晨(孙割)。新增一个博主只需要一个 YAML 文件。
| 无需训练的人格 | 观点库(结构化立场)+ 金句库(风格锚点)+ 蒸馏出的思维框架 + 最近发帖的实时语气样本,四层材料在推理时组装,零微调 |
| 句句有出处 | 回答里的 [N] 可点击跳到原视频片段;推文引用直接链到原推。不是"像他说的",是"他确实说过" |
| 第一人称 | 不是"分析他观点的助手",而是"我就是他":口吻、招牌用词、确定与犹豫的分寸都来自语料 |
| 广场圆桌 | 多人格逐轮交锋,流式逐句显示、历史可回看、可续聊、观众可插话;发言被截断会自动重生成 |
| 弹性模型链 | DeepSeek 主力,Claude 兜底:内容审查拒答、软拒绝("无法处理")、服务过载、中途断流、余额耗尽——五种失败全部自动切换,用户无感 |
| 全自动内容摄入 | YouTube 频道每 20 分钟巡航,新视频自动转录(Whisper)、原子化、实体抽取、向量化;可按频道设大模型主题过滤(只收某类内容);X 推文定时抓取;余额不足自动熔断,失败自动退避 |
| 人格自动驾驶 | 新博主标 autopilot: true:内容入库 → 增量建观点库 → 服务端蒸馏思维框架 → 达标自动上线,全程无人值守 |
| 提名活动 | 用户贴 YouTube / X 链接提名想对话的博主,同一频道自动合并计票,上线进度同步到提名榜 |
| 可选计费 | 积分制 + Stripe 订阅/加油包,BILLING_ENABLED=false 即纯自用,前端自动隐藏计费入口 |
| 国内网络友好 | 长请求改为提交 + 短轮询(跨境长连接被掐也不丢结果);Supabase 走同源反代 |
flowchart LR
subgraph ingest[内容摄入 · engine]
A[YouTube 频道 / X 账号] --> B[yt-dlp 下载音频]
B --> C[Groq Whisper 转录]
C --> D[语义原子化<br/>DeepSeek]
D --> E[实体 / 片段 / 向量<br/>bge-m3]
E --> F[(Supabase<br/>Postgres + pgvector)]
end
subgraph persona[人格构建]
F --> G[观点库 + 金句库<br/>persona_builder]
F --> H[思维框架蒸馏<br/>tools/distill]
end
subgraph runtime[运行时 · api]
G & H --> I[人格 agent<br/>search_viewpoints / search_knowledge_base / web_search]
I --> J[对话 · 第一人称 · 引用可溯源]
I --> K[广场圆桌 · 多人格逐轮交锋]
end
{主题, 立场, 推理逻辑, 确定度, 原话} 组成观点库,抽取签名式表达组成金句库;再从语料蒸馏出一份"思维框架"(世界观 / 决策模式 / 表达风格 / 确定度分级 / 盲区)[N],前端渲染为可点击引用supabase/migrations/00000000000000_baseline.sql(幂等,32 张表 + 向量索引 + RLS 一步到位)Dockerfile 部署两个实例(Railway / Fly / 任意容器平台),环境变量见下表;一个 SERVICE_MODE=api,一个 SERVICE_MODE=engineapps/web,配置 VITE_API_URL、VITE_SUPABASE_ANON_KEY、VITE_SUPABASE_DIRECT_URL/settings 上传 YouTube cookies,调用一次 POST /api/admin/backfill/start 加入频道,剩下的引擎自动完成git clone https://github.com/JoreyYan/senseclip && cd senseclip
cp .env.example .env # 填 Supabase URL / keys + 至少一个模型 key
supabase start # 本地 Postgres + Auth + Storage(需 Docker;会自动应用迁移)
docker compose up --build # api :8000 · engine :8001 · web :5173
不用 Docker:cd apps/api && uvicorn api.server:app --reload,cd apps/web && npm i && npm run dev。
完整说明与排障见 docs/deploy.md。
| 变量 | 必填 | 说明 |
|---|---|---|
SUPABASE_URL / SUPABASE_KEY / SUPABASE_ANON_KEY | ✅ | 数据库;SUPABASE_KEY 为 service_role,只放服务端 |
ADMIN_KEY | ✅ | 管理端点(巡航、人格构建等)的鉴权 |
GROQ_API_KEY | 处理视频时 | Whisper 转录 |
DEEPSEEK_API_KEY / CLAUDE_API_KEY | 至少一个 | 问答与处理;两个都填即获得自动兜底链 |
SILICONFLOW_API_KEY 或 OPENAI_API_KEY | ✅ | 向量化(bge-m3 1024 维 / text-embedding-3) |
TAVILY_API_KEY | 可选 | 联网搜索工具 |
TWITTERAPI_KEY | 可选 | X 推文抓取(twitterapi.io) |
BILLING_ENABLED + STRIPE_* | 可选 | 计费模块;默认关闭 |
PROMPT_LANG | 可选 | 提示词语言 zh(默认)/ en |
BACKFILL_CONCURRENCY / BACKFILL_RESCAN_MINUTES / BACKFILL_MAX_SECONDS | 可选 | 引擎并发 / 巡航间隔 / 跳过超长视频 |
GUEST_DAILY_LIMIT / CONSULT_COST / ROUNDTABLE_COST / ROUNDTABLE_ROUND_COST / SIGNUP_BONUS_CREDITS | 可选 | 游客额度与积分价格 |
全部变量与默认值见 .env.example。
# personas/someone.yaml
key: someone
label: 某某
desc: 一句话身份描述
channels: [SomeYouTubeHandle, x_someusername]
avatar: /avatar-someone.jpg
first_person: true
然后:POST /api/admin/backfill/start(拉频道)→ 内容入库后 POST /api/admin/persona/build {"persona":"someone"}(建观点库)→ python tools/distill/distill_framework.py(蒸馏框架)。前端的模式按钮和圆桌嘉宾自动出现。字段说明见 docs/personas.md。
| 接口 | 用途 |
|---|---|
POST /api/chat | 标准问答(全库检索 + 引用) |
POST /api/consult/submit → GET /api/consult/poll | 人格模式(persona 参数);异步提交 + 轮询,轮询返回实时进度 |
POST /api/roundtable/submit → GET /api/roundtable/{id} | 广场圆桌;POST /api/roundtable/{id}/continue 续聊(可附观众插话) |
GET /api/personas | 当前可用人格(前端动态渲染) |
GET/POST /api/nominations · POST /api/nominations/{id}/vote | 提名榜、提名博主、投票 |
POST /api/admin/backfill/start · /xpoller/start · /persona/build · /persona/register · GET /persona/autopilot | 引擎与人格管理(需 X-Admin-Key) |
POST /api/feedback · /api/report-error | 👍/👎 与一键异常上报(自动附带服务端诊断) |
apps/api/ FastAPI 服务(同一镜像;SERVICE_MODE=api 产品服务 / engine 处理引擎)
api/server.py 路由、人格 agent、圆桌编排、计费
api/backfill_worker.py 频道巡航与视频处理调度
api/persona_builder.py 观点库 / 金句库构建
api/x_poller.py X 推文抓取
utils/api_client.py DeepSeek → Claude 弹性调用链
supabase_pipeline.py + atomizers/ structurers/ vectorizers/ 转录后的处理流水线
prompts/ 提示词模板(zh / en)
apps/web/ Vite + React 前端(对话、广场、积分中心、视频库、群英图)
supabase/ 数据库基线迁移
personas/ 人格 YAML(示例:鲁社长、孙割)
tools/distill/ 思维框架蒸馏
docs/ 部署与配置文档
server.py 按 ingest / persona / runtime / billing 拆包pip install 即可跑本项目生成的人格是基于公开内容的 AI 模拟,不代表本人。部署者须在界面明确标注 AI 模拟身份(内置前端已标注),不得用于冒充、欺骗或诽谤;为真实人物构建人格前请评估授权与当地法律。仓库不包含任何创作者的转录、原子或衍生数据,示例人格需要你自行摄入其公开内容。
欢迎 issue 与 PR,见 CONTRIBUTING.md。
SenseClip ingests a creator's public videos and tweets (auto-crawl → Whisper → semantic "atoms" → entities → bge-m3 embeddings), then—without any fine-tuning—distills a viewpoint library (structured stances with evidence), a quote library (style anchors) and a thinking framework, and serves a first-person persona agent whose every claim links back to the exact source clip. Several personas can debate a topic in a streaming, resumable roundtable where the audience may interject.
Under the hood: a resilient LLM chain (DeepSeek → Claude) transparently handles censorship refusals, soft refusals, overload, broken streams and exhausted balance; long jobs use submit + short polling so cross-border connections never lose a result; billing (credits + Stripe) is optional. Personas are plain YAML files under personas/; prompts are templated per language (PROMPT_LANG=en). Deployment: Supabase (Postgres + pgvector) + two containers from the root Dockerfile (SERVICE_MODE=api|engine) + a Vite frontend — see docs/deploy.md.
Personas are AI simulations built from public content and must be labeled as such; do not use them to impersonate, deceive or defame.
Apache-2.0 © 2026 Jorey Yan and contributors