莣仔
d49f4769d4
修复websocket与uvicorn版本不兼容问题
2026-09-21 16:56:28 +08:00
guo zebin and Claude Opus 4.7
8b6c2b4cb6
release: bump 版本号到 v4.8.1
...
- 两个 Logo 更新版本号文字到 v4.8.1
- fay.iss / fay-legacy.iss MyAppVersion 4.4.4 -> 4.8.1
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-07 11:57:36 +08:00
guo zebin and Claude Opus 4.7
74b49ae41c
refactor: 大小模型逻辑重构 + 单模型模式 + 多处优化
...
核心改动(大小模型重构):
- 删死代码约 750 行:LangGraph 工作流、本地知识库、ltp_mode、nlp_cemotion、__check_and_clear_chroma_db、QAService Persona/command 分支
- 命名修复:planner -> judge(闲聊判断器)
- 删除 80 字兜底核实和 kb_search 硬编码优先
- 新增单模型模式:未配置 big_model_engine 时同步执行工具循环
- 重写 docs/Prompt设计文档.md
其他改动:
- 配置中心 URL 更换为 124.220.24.49:5500
- recorder.py 录音非 16kHz 时重采样到 16kHz
- fay_booter.py 远程音频连接健壮性修复(recv 空字节/异常退出/socket 关闭/心跳批量清理)
- mcp_service.py 修复(_serialize_mcp_result 递归序列化、add_mcp_server 用 new_id、werkzeug 多线程替代 gevent)
- remote_audio_key0.py 按键通话自动开关唤醒词
- 打包默认配置加 big_model_*/embedding_* 字段,system.conf.bak 统一 asr_mode
- 新增 packaging/ 打包脚本、fay.spec、samples/、requirements-legacy.txt
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-08-06 19:23:44 +08:00
莣仔
2462bd269e
Update README.md
2026-06-18 17:14:05 +08:00
莣仔
c65cc7ffa8
文字接口稳定性优化
2026-06-18 17:07:29 +08:00
莣仔
55ea14e828
9001远程语音连接优化
2026-05-29 17:18:36 +08:00
guo zebin
45498c5fac
补传
2026-04-27 10:31:50 +08:00
guo zebin
713124ac39
feat: 记忆流加 tags + 新增 core/memory_service + MCP 暴露记忆工具
...
- ConceptNode/MemoryStream 增加 tags 字段,retrieve 支持 AND/OR tag 过滤
- reflect() 从源节点继承业务 tag,自动打 kind:insight / source:fay_reflection
- 新增 core/memory_service.py 作为记忆操作唯一权威入口,规范 kind 枚举与命名空间
- faymcp/mcp_server.py 暴露 7 个 memory_* 工具,进程内直调服务层
- 画像分析 prompt 新增"与 Fay 的关系"维度,字数上限 800→1000
2026-04-24 16:37:00 +08:00
guo zebin
4d288d95f8
更新system.conf配置示例
2026-04-20 14:06:12 +08:00
guo zebin
aac50f3c85
修复日程管理mcp服务
2026-04-17 17:10:46 +08:00
guo zebin
0810692602
Merge branch 'main' of https://github.com/xszyou/Fay
2026-04-17 16:47:55 +08:00
guo zebin
0dbc4cfb35
fix: GUI 输入框回车发送会多带一个换行
...
改用 keydown.enter.exact.prevent:在换行写入前拦截并发送,
Shift+Enter 仍可手动换行。
2026-04-17 16:44:15 +08:00
guo zebin
bf910fd3f0
feat: MCP 服务器支持开机自启
...
- 新增 autostart 字段与后端增删改接口
- 启动时后台自动连接所有 autostart=true 的服务器
- 卡片列表展示「开机启动」徽标,添加/编辑弹窗支持勾选
2026-04-17 16:39:31 +08:00
guo zebin
3a44d03bbe
fix: 核实路径解耦 kb_search 硬编码 + 防重复工具调用 + 小模型角色澄清
...
- 核实路径不再硬编码 kb_search,改由大模型基于 unverified_response 自行规划
核实工具;执行器新增核实模式 prompt 块,强制先调工具再 finish
- 工具查重改为全历史扫描(原先只看最后一次),拦截 A→B→A→B 交替绕过;
已完成工具输出截断从 300 字放宽到 1500 字,避免残缺信息诱发重调
- 大模型输出解析统一走 _extract_decision(支持 JSON/混合文本/XML tool_call)
- 小模型 planner prompt 新增角色说明:告知其后台有核实大模型,过渡语由系统
插入,不要自己编 "我来查一下""等等核实一下" 等过程描述
2026-04-17 15:39:37 +08:00
guo zebin and Claude Opus 4.6
5758f63263
fix: 降低核实触发的用户消息长度阈值(>5 → >3)
...
短语气词如"哈哈""好的"(≤3字)不触发大模型核实,避免无意义开销;
稍长的提问(>3字)仍正常触发核实流程。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 07:22:35 +08:00
guo zebin and Claude Opus 4.6
79305266a8
feat: LLM透传接口支持 model=llm 自动使用配置模型
...
调用 /v1/chat/completions 时 model=llm 自动替换为 system.conf 中的 gpt_model_engine,
/v1/models 列表同步增加 llm 虚拟模型
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-15 21:16:30 +08:00
莣仔
cd013b3e50
Update recorder.py
...
修复funasr识别句子完成没执行问题。
2026-04-15 17:05:54 +08:00
guo zebin and Claude Opus 4.6
416266a22f
fix: 修复流式 code fence 解析 + 核实误触发 + 核实回复泄露分析过程
...
1. 流式阶段剥离 markdown code fence(```json...```),兼容包裹 JSON 的模型
2. _strip_json_code_fence 正则修复(\s → \s)
3. 核实触发增加用户消息长度前置判断,短语气词(哈哈、嗯等)不触发核实
4. 核实 prompt 明确要求只输出最终回复,禁止输出分析过程
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-15 12:02:06 +08:00
guo zebin and Claude Opus 4.6
552176b5d3
fix: 修复反思 KeyError 和用户画像表不存在错误
...
1. reflect() 中 retrieve 返回空字典时安全处理,避免记忆为空时 KeyError
2. get_all_users() 查询前确保 T_Member 表存在,防御数据库被清空的情况
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-15 11:36:37 +08:00
guo zebin and Claude Opus 4.6
79bb2494e1
feat: 知识库搜索增强 + 大小模型上下文对齐 + 工具调用体验优化
...
1. 知识库搜索增强:查询端不拆复合词 + 最低分阈值10.0 + 课程级标题匹配分 + embedding混合评分(通过Fay透传,异步建索引不阻塞MCP)
2. 大小模型上下文对齐:规划器和执行器都注入完整上下文(人设、记忆、对话历史10轮),keyword提取防指代性搜索词
3. 工具调用体验优化:流式早期tool检测 + on_tool_detected回调立即推送过渡语,避免用户空等
4. 大模型执行链路日志:LLM工厂、后台线程启动、决策调用、返回结果全链路可观测
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 22:56:08 +08:00
guo zebin and Claude Opus 4.6
c5eaf88c76
feat: MCP Resources 支持 + OpenAI 接口透传 context_length + Logo 更新至 v4.4.3
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 17:26:50 +08:00
guo zebin and Claude Opus 4.6
30e35a8f1d
fix: 核实 prompt 默认立场改为确认优先,避免强行否定正确回答
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 17:25:34 +08:00
guo zebin and Claude Opus 4.6
bf6de49f7c
feat: 大小模型协作架构 + MCP Resources + embedding 自愈
...
1. 增加大小模型支持,交互用小模型、执行用大模型
2. Fay 的 MCP 体系支持 Resources 协议,课程知识的目录结构自动注入 LLM prompt
3. OpenAI 兼容接口透传 context_length
4. 增强运行过程的 embedding 的自愈机制
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 17:07:21 +08:00
guo zebin and Claude Opus 4.6
62f272d915
feat: 增强 OpenAI 兼容接口能力
...
1. 新增 /v1/models 接口,返回 fay 自身模型及上游 LLM 模型列表
2. 非 fay/fay-streaming 的 model 请求直接透传上游 LLM,不再限制 model=llm
3. 支持通过请求体 user 字段或 Authorization Bearer 值识别用户身份
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-13 16:06:52 +08:00
guo zebin
4968b41bf9
Update README.md
2026-04-12 10:14:37 +08:00
guo zebin and Claude 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 zebin and Claude 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 zebin and Claude 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 zebin and Claude 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 zebin and Claude 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 zebin and Claude 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 zebin and Claude 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 zebin and Claude 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 zebin and Claude 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 zebin and Claude Opus 4.6
b671dfa6e4
TTS合成前去除文本中的换行符
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-01 23:16:46 +08:00
guo zebin and Claude 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 zebin and Claude 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 zebin and Claude 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 zebin and Claude 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 zebin and Claude 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 zebin and Claude 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