mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-11-01 06:47:29 +00:00
feat(status): ONNX 状态补 dep_parser 字段;人格改成「说人话」的说话方式
## 1. ONNX 状态补依存句法分析器(onnx.dep_parser)
此前 onnx.enabled 只反映**多模态向量空间**,解析器状态完全不可见 —— 于是
只能靠翻启动日志猜,而日志又曾把「内嵌模型已启用」错报成「规则引擎」
(见上一个提交)。现在健康快照直接给:
"dep_parser": { "enabled": true,
"model_path": "/home/newqqagent/nlp/dep_parser.onnx",
"embedded": true }
- sdk.ONNXStatus 增加 DepParser / DepParserStatus(enabled/model_path/embedded)
- agent 侧由 nlp 包级默认解析器反查实际状态(判据是「真能 Parse 且报得出路径」,
不是「配置里写了 onnx_model_path」)
- healthcheck_kernel 的描述同步说明该字段
## 2. 人格:从「交报告」改成「聊天」
用户反馈实例说话一股人机味。实测原文:
第一件·文件读写:
- 写:files_write 往 /tmp/... 写入 hello-files,回执 11 字节
- 读:files_read 读回来,内容就是 hello-files,对上了
问题不在语气词,而在**结构**:清单体 + 小标题 + 加粗 + 把工具名/字节数/耗时
当成绩单报出来。旧人格只禁了「客服腔四件套」,没禁这些。
DefaultPersonaPrompt 的说话方式一节重写,明确:
- 短句为主;先给结果/情绪,再补解释
- 不用清单体(“-”/“1.”/“•”)、不用小标题/加粗/表格
- 不报工单式细节(不罗列工具名、参数、字节数、耗时)——说人话
- 不用客服腔,拿不准/失败直说
- 只有用户明确要清单/步骤/数据时才结构化
## 3. 本机实例人格同步优化(personal.md,优先级高于配置项)
按同一套规则重写 /home/newqqagent/personal/personal.md,并保留「照大肥鱼那股
活人味来」与形象特征。重启后实测(问「在吗?状态咋样」):
在呢在呢 (`・ω・´)
刚拉了个运行时快照看了眼,状态挺好——内核 1.4.0dev 跑着,29 个插件全部 loaded……
刚忙完就赶紧来找我聊天,老大你这节奏也太充实了呗~
无清单、无小标题、无工具名报账。
验证:go test(sdk / agent core / healthcheck / config)全绿;
本机实例重启后 onnx.dep_parser 三字段正确返回。
This commit is contained in:
@ -2,7 +2,9 @@ package core
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
agentIO "github.com/JianFeeeee/HomeAgent/internal/agent/io"
|
||||
@ -11,6 +13,7 @@ import (
|
||||
"github.com/JianFeeeee/HomeAgent/internal/memory/social"
|
||||
"github.com/JianFeeeee/HomeAgent/internal/memory/text"
|
||||
"github.com/JianFeeeee/HomeAgent/internal/meta"
|
||||
"github.com/JianFeeeee/HomeAgent/internal/nlp"
|
||||
"github.com/JianFeeeee/HomeAgent/internal/plugin"
|
||||
sdk "github.com/JianFeeeee/HomeAgent/internal/sdk"
|
||||
"github.com/JianFeeeee/HomeAgent/internal/tracker"
|
||||
@ -315,7 +318,7 @@ func (a *Agent) usageStatus() sdk.UsageStatus {
|
||||
// 判据是 Loaded()(provider 真正打开且元数据合法),**不是**「配置里写了 provider」——
|
||||
// 后者在模型缺失 / 运行时缺失时也为真,拿它当判据就是假绿。
|
||||
func (a *Agent) onnxStatus() sdk.ONNXStatus {
|
||||
st := sdk.ONNXStatus{Provider: a.embeddingProvider}
|
||||
st := sdk.ONNXStatus{Provider: a.embeddingProvider, DepParser: depParserStatus()}
|
||||
if a.multimodalSpace != nil && a.multimodalSpace.Loaded() {
|
||||
st.Enabled = true
|
||||
st.Dim = a.multimodalSpace.Dim()
|
||||
@ -337,6 +340,27 @@ func (a *Agent) onnxStatus() sdk.ONNXStatus {
|
||||
return st
|
||||
}
|
||||
|
||||
// depParserStatus 汇总依存句法分析器的**实际**状态。
|
||||
//
|
||||
// 判据是「包级默认位上有解析器且能报出模型路径」,不是「配了 onnx_model_path」:
|
||||
// 配置留空时用的是二进制内嵌模型(解到 <data>/nlp 后加载),只看配置会漏报。
|
||||
func depParserStatus() sdk.DepParserStatus {
|
||||
p := nlp.GetDefaultParser()
|
||||
if p == nil {
|
||||
return sdk.DepParserStatus{}
|
||||
}
|
||||
st := sdk.DepParserStatus{Enabled: true}
|
||||
if mp, ok := p.(interface{ ModelPath() string }); ok {
|
||||
st.ModelPath = mp.ModelPath()
|
||||
if strings.Contains(filepath.ToSlash(st.ModelPath), "/nlp/dep_parser.onnx") {
|
||||
// 内嵌模型的解出位置固定为 <dataDir>/nlp/dep_parser.onnx;
|
||||
// 无法从路径反推来源时保留 false(未知不冒充内嵌)。
|
||||
st.Embedded = true
|
||||
}
|
||||
}
|
||||
return st
|
||||
}
|
||||
|
||||
var _ StatusProvider = (*Agent)(nil)
|
||||
var _ sdk.StatusAPI = (*Agent)(nil)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user