///|
/// GhostValley 完整工作流演示
///
/// 运行方式:moon run examples/demo --target native
fn main {
let gv = @ghostvalley.new_engine(max_memory_num=10)
let llm = @ghostvalley.MockLLM::new()
println("=== 幽灵谷工程演示 ===\n")
// 步骤1:温石验证(态度文本打分)
println("【步骤1】温石验证")
let ok = gv.wen_shi_verify(
"愿意接受挑战,接受压力训练,想要自我迭代,直面失败场景",
)
println("意愿分数: \{gv.willing_score()}")
println("验证通过: \{ok}\n")
// 步骤2:LLM 自动训练(困境→LLM→顿悟→记忆)
println("【步骤2】LLM 自动训练(3轮)")
for i in 0..<3 {
match gv.run_round_with_llm(llm) {
Some((dilemma, response)) =>
println(
"第\{i + 1}轮:\n 困境: \{dilemma}\n AI响应: \{response}",
)
None => println("幽灵谷未开启")
}
}
println("")
// 步骤3:多轮批量训练
println("【步骤3】批量训练(2轮)")
let results = gv.ghost_valley_run_rounds(2)
println("批量训练完成,共 \{results.length()} 轮\n")
// 步骤4:添加模拟挫折记忆(安全气垫标记)
println("【步骤4】模拟挫折记忆(安全气垫)")
for _ in 0..<3 {
gv.add_memory("模拟失败经验", is_simulation=true)
}
println("已添加 3 条模拟记忆\n")
// 步骤5:语义打分演示
println("【步骤5】语义打分")
let score1 = @ghostvalley.text_value_score(
"顿悟失败原因,反思改进",
)
let score2 = @ghostvalley.text_value_score("普通日常随便应付")
println("高价值文本分数: \{score1}")
println("低价值文本分数: \{score2}\n")
// 步骤6:训练报告
println("【步骤6】训练报告")
let report = gv.training_report()
println(report.format())
// 步骤7:记忆持久化
println("【步骤7】记忆持久化")
let json_str = gv.save_memory_string()
println("序列化 JSON 长度: \{json_str.length()} 字符")
let gv2 = @ghostvalley.new_engine()
gv2.load_memory_string(json_str)
println("反序列化后记忆数量: \{gv2.memory_count()}\n")
// 步骤8:查看全部记忆
println("【步骤8】全部记忆")
println(gv.show_all_memory())
// 步骤9:关闭幽灵谷
println("【步骤9】关闭幽灵谷")
gv.close_ghost_valley()
println("训练场已开启: \{gv.is_enabled()}\n")
println("=== 演示结束 ===")
}