Skip to content

Releases: Sallyn0225/eidolon-sc

Release list

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 23 Oct 03:53
a0d8523

这一版给后端做了面向公网多用户的加固:所有数据库读写收成单一入口、剧情库向量常驻内存、加了通话上限,通话层也可以打字了。

✨ 新功能

  • 通话中打字:通话层底栏加了「打字」,点开后在通话里打字发消息,打出去的话显示在字幕上,她的回复第一段出现或你开口时消失;只在接通时可用,收起输入栏、收起通话层、挂断都会回到原样(#170)。
  • 通话上限:全局同时最多 10 通,免限额的也算,每个用户同时一通;满了会拒绝新的拨号。同一用户在两台设备上打,后拨的那通放行后先前那通挂断,被挂断的设备显示「通话中断了」,这通照常计入限额。上限在后台可改,不用重启(#166)。

🛠️ 改进

  • 数据访问层:库只剩一个入口,事件循环上不碰库,写操作走一条写线程;回合、送礼、用重置卡变成全有或全无,删账号删完就回复用户(#169)。
  • 剧情检索:剧情库向量改成启动时和剧情库变化后读一次常驻内存,不再每次检索都读这位角色的全部段落;剧情同步后,发现变化的那次检索仍用旧数据,重新载入约 0.3 秒(#173)。
  • 后台清理:过期数据从每回合、每次通话顺带删,改成后台每 10 分钟在线程里删(#166)。
  • 索引与连接池:补了两个索引,统计和搭话扫描不再读全表;每条服务通路的连接池从 100 调到 300(#166)。
  • 读库挪出事件循环:文字回合读库、建立通话的放行、删账号、记忆向量、照片转 webp 都挪到线程,默认线程池调到 32(#166)。
  • 日志与健康检查:日志带上时间,访问日志去掉查询字符串,/api/health 会读库,事件循环延迟过高时记告警(#166)。
  • 部署配置:compose 加了日志轮转、stop_grace_period 和 healthcheck,uvicorn 优雅停止 20 秒(#166)。

⚠️ 升级注意

  • 先备份:这一版会自己建一张一行的新表和两个索引,不改已有的列,不用手动迁移;回滚就是换回旧镜像。
  • 部署会断通话:compose 有改动,up -d 会重建四个容器,正在进行的通话会断;之后每次部署,进行中的通话会正常挂断、正常结算,不再被强杀,但还是会断。
  • 整批部署:数据访问层的改动要一起上线,只上一半的话一半模块走写线程、一半用自己的连接(#169)。
  • 限额表单多一个必填字段:部署时开着旧后台页面的管理者,保存限额会得到 422,刷新一下就好(#166)。
  • 通话上限先看日志:10 通是按 2 核估的,高峰时第 11 通会被拒,看过 event loop ran 日志再在后台调(#166)。
  • 内存增加:后端常驻内存多约 60 MB,现在实测约 935 MB,部署前后各看一次 docker stats(#173)。
  • 健康检查不重启:不健康时只在 docker compose ps 里显示 unhealthy,不会重启容器(#166)。

📦 依赖

  • 安全修复:Pillow 升到 13.0.0、certifi 升到 2026.10.19,修掉 Dependabot 的 critical 告警(#9、#10、#19、#36);pipecat-ai 1.13 还要求 Pillow<13,先用 uv 的 override 强制 13.0.0,上游发版后再升级并删掉这条覆盖。
  • 前端开发依赖:vite 从 8.3.2 升到 8.3.4(#163)。

完整变更:v0.1.0...v0.1.1

镜像:ghcr.io/sallyn0225/eidolon-sc-backend:0.1.1、ghcr.io/sallyn0225/eidolon-sc-frontend:0.1.1(.env 里设 EIDOLON_IMAGE_TAG=0.1.1 固定在这个版本)

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 18:25
7960949

这是 Eidolon-SC 的第一个正式版本。Eidolon-SC 是一个和《偶像大师 闪耀色彩》的偶像实时对话的 AI 分身:用户以 283 事务所制作人的身份和偶像打字聊天或打电话,她用日语原声回答并附中文字幕,能回忆原作剧情,也记得用户说过的事;项目开源,可以部署到自己的服务器,任何人用 Google 或 GitHub 登录使用。

💬 文字对话与语音通话

  • 回合规则:文字对话和语音通话共用一套回合规则,聊天和通话记录写在同一份对话记录里。
  • 补充与打断:通话里她还没开口时,用户的话并入当前回合;用户一开口或开始打字就打断她。
  • 通话音效:铃声、接通音、挂断音,以及「电话质感」开关;铃声至少响满一遍。
  • 只看文字:通话层有「只看文字」开关,台词卡按她说话的节奏换段;有声音时跟声音,只看文字时按估算节奏。
  • 她发照片:对话里她会发照片。

🎭 角色、立绘与声音

  • 角色阵容:从真乃、灯織、めぐる、恋鐘开始,后来加入 L'Antica、noctchill、SHHis、Straylight、放課後クライマックスガールズ、ALSTROEMERIA、CoMETIK 的角色和事务员七草はづき;角色配有音色、头像、印象色和默认衣装。
  • Spine 立绘:通话层用 Spine 立绘,有待机、口型、每段情绪和换衣装;28 位角色有通话背景图。
  • 立绘素材同步:立绘素材从 ShinyColorsDB 拉取,出了新卡每周同步一次就会出现在换衣装面板;旧镜像可以拷进来当种子,上游连不上时已拉到的素材照常保留。
  • 语气提示:通话中角色的声音随情绪起伏;她一次只说一两句,像真人一样。
  • 语音模型:兼容 Fish Audio Drama 3,部署者和自带密钥的用户都能选模型;请求带读音,角色名、组合名和 283プロ 能念对。

📖 记忆、剧情与世界设定

  • 共享记忆:文字对话和通话共用一份记忆;过时的记忆会被取代,只记过后仍有意义的事,想起时带上上下文。
  • 剧情库:剧情库与原作同步,支持每周定时同步和剧本缓存;检索用的向量化服务可选,检索会带上她的上一句,通话里有热词,超时有退路。
  • 世界设定:世界设定、歌曲、唱片、演出和曲目单进入资料,世界同步按名单进行,资料截止日会更新。
  • 记忆提炼:自带 LLM 的用户可以另配一个提炼记忆的 LLM。

🎁 好感度、礼物与日常

  • 好感度:和角色的往来计入好感度,每日上限和抽奖次数按北京时间 0 点划天。
  • 礼物与抽奖:可以送礼物、抽奖;重置卡换成叶月的卡片插画。
  • 每日任务:每天有三项小事,各多得一次抽奖。
  • 成就:和她们往来得越久,解锁的阶段越多。
  • 制作人档案:档案能填生日,生日当天角色会送上祝福。
  • 搭话与结束:用户一阵子没来,她在当前对话里先说几句;文字对话里惹她不快,她会结束对话,通话中频繁惹她不快会挂断,挂断前先警告。

🚀 自己部署与后台

  • 登录与部署:任何人可以用 Google 或 GitHub 登录;提供 GHCR 镜像,README 有中英日三语,配置拆成配置指南,截图自动拍摄,OAuth 应用的名称、图标和品牌验证写进部署指南。
  • 自带密钥:用户自带的密钥只存在浏览器里,服务器不保存;填 LLM 时可以按服务商和模型搜索;免限额密钥由三个开关控制。
  • 可选服务:语音识别可选阿里云百炼,部署时二选一,自带密钥的用户自己选;TTS 兼容 Fish Audio Drama 3,部署者和自带密钥的用户都能选模型;判断模型可选 Cloudflare Clef 或阿里云百炼的决策模型。
  • 网络代理:部署者的各项服务可以分别选择走代理还是直连;用户自带的密钥也能走代理。
  • 备份与恢复:数据库每天加密备份到私有存储桶,保留 30 天;保留期可调,看板显示备份状态,一条命令恢复和换服务器。
  • 管理后台:后台有看板、配置和用户;看板分成概览、用量、好感度、花费四个标签,配置页用分类标签、窄屏换成下拉;看板能看进行中通话和单独限额。

🖥️ 界面与使用体验

  • 对话列表:界面换成 LINE 风格,对话列表是 IM 式;支持多语言搜索、按最近往来排序、隐藏和置顶;开了新对话也能翻看以前的对话,第 3 个回合以后起一句对话标题,能删一段历史对话。
  • 宽屏布局:宽屏上对话列表的宽度和输入框的高度可以拖动调节,窄屏不变;尺寸记在这台设备。
  • 通话层与导航:全屏通话层可以收起,通话中能切换麦克风;对话和设置共用导航外壳,通话不随换页挂断,设置分一级、二级。
  • 设置与外观:设置页分成四个标签,自带密钥说明收进「ⓘ」,危险操作隔开;「外观」可以把头像换成 SCSP 那一套。
  • 入口与公告:访客首页是八幕滚动叙事,第 4 幕是 3D 手机,第 5 幕是 3D 记忆柱;首页显示各项服务状态,并加上 GitHub 仓库链接;后台可以写公告并置顶,对话列表的铃铛能看公告,设置里有赞赏入口、后台上传收款码。
  • 数据与统计:可以导出、导入自己的数据,也可以删除数据;有用户自己看的统计和分享图。

全部提交:https://github.com/Sallyn0225/eidolon-sc/commits/v0.1.0

镜像:ghcr.io/sallyn0225/eidolon-sc-backend:0.1.0、ghcr.io/sallyn0225/eidolon-sc-frontend:0.1.0(.env 里设 EIDOLON_IMAGE_TAG=0.1.0 固定在这个版本)