Commit Graph
293 Commits
Author SHA1 Message Date
guo zebinandClaude Opus 4.6 2cc7b720eb fix: 修复记忆线程持锁阻塞导致的对话死锁
记录对话/观察记忆的后台线程在 agent_lock 内调用了 LLM 评分与
embedding 网络请求;一旦上游 OpenAI 客户端因 chunked/keep-alive
不发字节而永久挂起(无 timeout 配置),agent_lock 永远不会释放,
后续 question() 在 create_agent() 处获取同一把锁时即被锁死,整个
对话流程会卡死(曾观察到 release 机器 5 小时无响应)。

修复:
- memory_stream.append_prepared_node:新增纯内存写入入口,由调用方
  传入预先算好的 importance 与 embedding。
- remember_conversation_thread / remember_observation_thread:将
  generate_importance_score 与 get_text_embedding 移出 agent_lock,
  失败时回退默认值/空向量,仅在写 seq_nodes 时短暂持锁。
- simulation_engine.gpt_structure:openai.OpenAI() 显式配置
  httpx Timeout(60s, connect=10s) 与 max_retries=1,避免无限挂起。
- nlp_cognitive_stream.ChatOpenAI:补充 timeout=60、max_retries=1。
- save_agent_memory:节流判断与标记文件检查移出锁,先短暂持锁拿
  用户名快照,再逐用户独立持锁保存,避免长时间锁住整个 agents。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 10:13:01 +08:00
guo zebin 4e297b10fb 更新知识库 2026-04-11 01:03:55 +08:00
guo zebinandClaude Opus 4.6 0805de14f1 docs: think 标签课程包升级到 v1.1.0
同步 commit 3638c7b 的修复:S04 重写为「数字人 10002:text 与 audio 的对称剥离」,
讲清楚旧 bug(__send_digital_human_message 早于 think 状态机被调用且只剥 prestart)
与新增 __remove_think_tags 的修复方案;S06 总结的清洗矩阵补上 10002 双通道剥离行。
顺带调整幻灯片版面,避免底部内容被遮挡。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 19:08:02 +08:00
guo zebinandClaude Opus 4.6 3638c7b4b6 fix: 数字人 text 通道剥离 think 标签内容
__send_digital_human_message 在 say() 中先于 think 状态机被调用,导致 <think>...</think>
原样泄露到 10002 端口的 text 通道;audio 通道虽被状态机拦截但 text 不对称。
新增 __remove_think_tags 处理完整/未闭合/孤立闭合三种流式分片场景,使 prestart
与 think 在数字人接口上保持对称剥离。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 17:47:35 +08:00
guo zebin 4e4682c190 补传 2026-04-10 17:34:39 +08:00
guo zebinandClaude Opus 4.6 d767f58e2c chore: 更新 Logo 版本号至 v4.4.2
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 17:32:01 +08:00
guo zebinandClaude Opus 4.6 a8b49a4b15 feat: 接入课程知识库 MCP server
- 新增 mcp_servers/fay_player_knowledge:基于课程包目录的检索 MCP server,search/get_section 输出含图片 markdown
- 新增 fay_player_knowledge 课程包目录(Fay介绍/多用户分发/think标签/prestart标签/OfficeEcho)
- faymcp/data/mcp_servers.json:注册 stdio 方式启动的「课程知识库」server

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 17:20:20 +08:00
guo zebinandClaude Opus 4.6 f657f436ac feat: 聊天图片在GUI显示并推送到数字人接口
- fay_core: 提取消息中的 markdown 图片 URL,通过 Images 字段推送到 10002 数字人text/audio通道,并从语音朗读文本中剥离图片语法
- gui: 调整 markdown-body img 缩略样式;修正 convertImagePaths 正则,避免误匹配 HTTP URL 的路径部分

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 17:15:30 +08:00
guo zebinandClaude Opus 4.6 abed043184 feat: 添加多选消息分享图功能及优化Markdown实时渲染
- 新增多选消息生成分享图功能,支持markdown渲染效果,带Fay开源地址水印
- 使用html2canvas替代SVG foreignObject方案,兼容QWebEngineView
- 优化流式消息的markdown实时渲染,流式结束后从DB重取完整内容
- 添加cache_bust防止QWebEngineView缓存旧JS/CSS文件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 21:43:24 +08:00
guo zebin ca54e3c4f9 修复广播MCP的SSE响应异常 2026-04-03 14:45:46 +08:00
guo zebin 6ec3339abd Fix llm passthrough tool-call proxying 2026-04-03 08:17:11 +08:00
guo zebinandClaude Opus 4.6 28b1862d06 fix: WAV文件唇型数据生成失败,标准化采样率为44100Hz
阿里云TTS改为WAV格式后,生成的音频采样率为16kHz,
ProcessWAV.exe要求44100Hz导致viseme输出为空、嘴巴不动。
新增normalize_wav()方法对WAV文件做采样率标准化。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 14:42:10 +08:00
guo zebin 9c09b5fff4 解决release 上mcp服务不可用问题。 2026-04-01 23:49:30 +08:00
guo zebin 07e5a7455f Update gzh.png 2026-04-01 23:47:10 +08:00
guo zebinandClaude Opus 4.6 0ce07eddd7 更新Logo版本号到v4.4.1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 23:17:43 +08:00
guo zebinandClaude Opus 4.6 b671dfa6e4 TTS合成前去除文本中的换行符
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 23:16:46 +08:00
guo zebinandClaude Opus 4.6 341881affa 为SSE MCP服务响应声明charset=utf-8编码
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 23:08:50 +08:00
guo zebinandClaude Opus 4.6 0c9a30063f 修复流式分句在小数点处错误切断的问题(如0.85%被切成两段)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 10:45:58 +08:00
guo zebinandClaude Opus 4.6 75f094218b 1.ali tts请求格式由mp3改为wav;2.修复Content-Type匹配过严导致语音合成失败的问题
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 14:39:28 +08:00
guo zebinandClaude Opus 4.6 9a2db40d18 1.精简默认MCP服务器配置:移除broswermcp、Todo Server、KinEcho、easydeal-trading;2.yueshen rag启动命令改为通用python
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 10:59:03 +08:00
guo zebin 7869121dfe 1.解决mcp工具在release上不可用的问题。 2026-03-26 16:25:21 +08:00
guo zebin c79ea62f0e 1.更新说明。 2026-03-25 22:19:01 +08:00
guo zebin 1d7563209a 1.数字人接口增加数字人指定动作、表情等输出;
2.更换群二维码。
2026-03-25 22:18:00 +08:00
guo zebinandClaude Opus 4.6 4e85827068 统一GUI实时显示时间与数据库存储时间
问题:GUI实时显示时间由客户端生成,数据库存储时间由服务端独立生成,
页面刷新后时间不一致。

修复:
1. createtime 存储精度从秒级改为毫秒级
2. add_content 返回 (content_id, now_ms) 元组
3. update_content 更新内容时同步更新 createtime,返回毫秒时间戳
4. panelReply 统一使用数据库写入时的时间戳格式化后发送给前端
5. 前端优先使用服务端 timetext,保证实时与刷新后完全一致
6. flask_server 加载历史消息时兼容旧秒级和新毫秒级时间戳
7. 新增 util.ms_to_timetext() 工具函数

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 21:20:36 +08:00
guo zebinandClaude Opus 4.6 eeabe421a2 在对话prompt中补充用户画像,统一"用户补充信息"标题
1. system_prompt 中新增用户画像内容(通过 get_user_portrait 获取),
   规划器和最终回复两个 prompt 均自动包含
2. "补充信息"标题统一改为"用户补充信息"(prompt 和 GUI)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 17:37:05 +08:00
guo zebinandClaude Opus 4.6 12e90a3409 解决Flask请求阻塞问题:改用werkzeug多线程服务器
将 gevent pywsgi.WSGIServer 替换为 werkzeug make_server(threaded=True),
每个请求独立线程处理,避免LLM流式生成等耗时请求阻塞其他请求。
同时屏蔽 werkzeug 的请求日志输出。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 16:20:25 +08:00
guo zebinandClaude Opus 4.6 36ee265c92 移除仿生记忆模块(bionicmemory)及相关引用
删除内容:
- llm/nlp_bionicmemory_stream.py
- bionicmemory/ 整个目录

清理引用:
- core/fay_core.py: 移除 bionic memory 分支,统一使用 cognitive stream
- gui/flask_server.py: 移除仿生记忆清除逻辑和人格克隆限制检查
- genagents/genagents_flask.py: 移除仿生记忆清除逻辑
- main.py: 清空 __check_and_clear_chroma_db 中的仿生记忆检查
- fay_booter.py: 移除 use_bionic_memory 条件判断,直接执行认知记忆逻辑
- utils/api_embedding_service.py: 将 bionicmemory 日志导入替换为标准 logging

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 15:35:37 +08:00
guo zebinandClaude Opus 4.6 5b4c2ee84c 修复对话消息结构不符合模型模板要求导致的报错
问题:历史消息加载后可能出现连续同角色消息或以 AIMessage 开头的情况,
导致 Qwen 等模型的 Jinja 模板报错 "No user query found in messages"。

修复内容:
1. 在 _build_dialogue_messages 中合并连续同角色消息,确保 user/assistant 交替
2. 确保对话消息列表第一条为 HumanMessage
3. 确保消息列表至少包含一条 HumanMessage 作为兜底
4. 扩大 run_direct_llm 异常捕获范围,避免非 requests 异常被静默吞掉

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 14:36:44 +08:00
guo zebin 7b5f02e308 1.优化prompt:区分简单问候、把compact形式改成native history形式;
2.内部mcp 服务检查不再使用网络请求,以优化速度。
2026-03-23 16:32:30 +08:00
guo zebin 57d2b374f3 将system.conf改为优先从环境变量加载 2026-03-16 13:23:53 +08:00
guo zebin 6eaec96532 Merge branch 'main' of https://github.com/xszyou/Fay 2026-03-11 22:18:50 +08:00
guo zebin 2ee729b120 1. 打出fay release 安装装包;
2. 优化tts前的换行符处理;
3. 修正prompt模版引入逻辑。
2026-03-11 22:17:53 +08:00
莣仔 2ea8358667 更新交流群 2026-03-04 20:46:11 +08:00
guo zebin 38db690ae8 v4.3.1
1.增加音频缓存功能,降低tts费率;
2.优化透传接口流式断句逻辑,域名、版本号等不断句;
3.优化数字人接口流式文本输出顺序;
4.llm透传功能接入langsmith,配置环境变量后可通过langsmith平台调优prompt;
5.优化配置中心加载逻辑,人设配置依然保留。
2026-03-04 17:36:42 +08:00
guo zebin 3b4552d50e 核心模块
1.在没有配置langsmith环境变量时不导入相关包。
2026-01-30 12:28:44 +08:00
guo zebin e7342430dc 更新版本号 2026-01-29 16:00:20 +08:00
guo zebin eecbb931a9 交互模块
1. [增加]embedding维度检查自动修正逻辑。
2026-01-29 15:09:37 +08:00
guo zebin 96e467bbd6 知识库模块
1. 优化yueshen知识库初始化逻辑;
2. 更新yueshen知识库默认使用fay透传的embedding模型;
3.补充知识库目录“新知识库”。
2026-01-27 16:12:53 +08:00
guo zebin e692fb9f6d 接口模块
【增加】embedding透传接口。
2026-01-27 15:45:01 +08:00
guo zebin 3bcc11610b 把embedding api移入公式库 2026-01-26 16:01:41 +08:00
guo zebin 6ba7a894fb 配置模块
1、修复配置加载逻辑。
2026-01-26 15:26:36 +08:00
guo zebin 83e98b3295 gui模块
更新版本号。
2026-01-22 17:09:18 +08:00
guo zebin f55c50d22f 技能模块
1.补充远程音频按住键盘0建录音给fay传送的技能代码。
2026-01-22 16:59:05 +08:00
guo zebin b9257524c5 记忆模块
1.暂时屏蔽仿生记忆开关;
2.补充记忆模块的开发文档,以方便ai ide阅读。
2026-01-22 16:55:34 +08:00
guo zebin 2ee6a387fa 记忆模块升级
1、把记忆节点明确区分成对话记忆、观察记忆和反思记忆;
2、修复</think>标签错误输出的问题。
2026-01-22 15:36:05 +08:00
xszyou 1155a693c2 清除多余记忆 2026-01-15 22:49:35 +08:00
guo zebin e42425be80 Update README.md 2026-01-15 22:44:43 +08:00
guo zebin 9488e9a5c3 Update README.md 2026-01-15 22:43:53 +08:00
guo zebin 8a26899b53 自然进化
1. fay启动命令增加参数config_center;
2. 修复多个think标签处理逻辑问题;
3. 修复llm透传模式编码问题;
2026-01-15 15:02:54 +08:00
guo zebin eeb670d7f0 1.fay 对外mcp接口支持多连。 2026-01-13 17:04:30 +08:00