feat(prompts): prompt 版本化地基 —— 注册表 + 运行期文件覆盖
把散落各服务的硬编码 system prompt 收口为受管注册表,不重编译即可改/回滚/对比: - shared/prompts:内置默认(随代码) + 运行期覆盖(PROMPTS_FILE) + Get/Keys,并发安全,含单测 - 接入 9 处:mcp-go(graph.extract);dispatcher(eval.quality/eval.refine/guard.jailbreak/ coordinator.lead/memory.extract,按引用登记默认、无文本重复) - main 启动调 LoadFile 加载 PROMPTS_FILE 覆盖 - live A/B:覆盖 graph.extract → 图谱抽取 2 条→0 条、向量仍正常(覆盖生效、管道未坏) - v2(DB 控制面热切换 + 灰度)留后续 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,7 @@ import (
|
||||
"github.com/sundynix/sundynix-mcp-go/internal/search"
|
||||
|
||||
"github.com/sundynix/sundynix-shared/otelx"
|
||||
"github.com/sundynix/sundynix-shared/prompts"
|
||||
"github.com/sundynix/sundynix-shared/secrets"
|
||||
)
|
||||
|
||||
@@ -29,6 +30,11 @@ func main() {
|
||||
shutdownTrace, _ := otelx.Init(context.Background(), "sundynix-mcp-go")
|
||||
defer func() { _ = shutdownTrace(context.Background()) }()
|
||||
|
||||
// 受管 prompt:登记内置默认 + 加载 PROMPTS_FILE 覆盖(不重编译即可改图谱抽取词)。
|
||||
prompts.SetDefault(prompts.GraphExtract,
|
||||
"你是知识图谱抽取器。从用户文本中抽取知识三元组,输出 JSON 数组,每项形如 {\"s\":\"主体\",\"p\":\"关系\",\"o\":\"客体\"}。实体用简洁名词,关系用简短动词短语。只输出 JSON,不要任何解释或代码块标记。")
|
||||
prompts.LoadFile()
|
||||
|
||||
natsURL := envOr("NATS_URL", "nats://localhost:4222")
|
||||
// DSN 用 127.0.0.1 而非 localhost:免 pgx 每连接 DNS 解析,避免高并发连接池扩容时 DNS 雪崩
|
||||
// (见 LOAD_TEST_REPORT §4.3)。
|
||||
|
||||
Reference in New Issue
Block a user