Files
xk-ai-agent/tools/p1smoke/main.go
2026-08-14 21:50:48 +08:00

54 lines
1.7 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// P1 冒烟验证工具(临时):验证金方 FULLTEXT 检索 + 别名归一索引
//
// 用法:go run ./tools/p1smoke
// 验证点:
// 1. dao.GoldenFormulaSearch 在 BOOLEAN / NATURAL 两种模式下能命中
// 2. kb.AliasIndex 能从爬取文档加载别名并做查询扩展
package main
import (
"fmt"
"log"
"tcm-agent/internal/config"
"tcm-agent/internal/dao"
"tcm-agent/internal/kb"
)
func main() {
cfg := config.Load()
if cfg.DB.DSN == "" {
log.Fatal("配置缺少 db.dsn(检查 manifest/config/config.yaml)")
}
if err := dao.Init(cfg.DB.DSN); err != nil {
log.Fatalf("初始化 DB 失败: %v", err)
}
// ---- 1. 金方检索(自然语言模式:整段证候)----
fmt.Println("== 金方检索(NATURAL):恶寒发热 头痛 汗出 脉浮缓 ==")
hits, err := dao.GoldenFormulaSearch("恶寒发热 头痛 汗出 脉浮缓", 3, true)
if err != nil {
log.Fatalf("金方 NATURAL 检索失败: %v", err)
}
for _, h := range hits {
fmt.Printf(" [%.2f] %s | 主治: %.40s\n", h.Score, h.Name, h.IndicationTranslation)
}
// ---- 2. 金方检索(BOOLEAN 模式:短关键词)----
fmt.Println("== 金方检索(BOOLEAN):桂枝 ==")
hits2, err := dao.GoldenFormulaSearch("桂枝", 3, false)
if err != nil {
log.Fatalf("金方 BOOLEAN 检索失败: %v", err)
}
for _, h := range hits2 {
fmt.Printf(" [%.2f] %s\n", h.Score, h.Name)
}
// ---- 3. 别名索引加载 + 查询扩展 ----
fmt.Println("== 别名索引 ==")
idx := kb.GetAliasIndex()
q, appended := idx.ExpandQuery("患者常年脾虚,日常以淮山药、于术调理,近日恶寒")
fmt.Printf(" 扩展后查询: %s\n", q)
fmt.Printf(" 追加正名: %v\n", appended)
}