Repository navigation
Use Cases
sungaowei edited this page Oct 16, 2026
·
2 revisions
English Version | 简体中文
下述所有使用场景本质上都是同一模式:一个 state(业务数据或图像内容)加上一个以自定义名称为键的问题集合。所选择的问题原语决定了答案的数据形态。
| 业务场景 | 典型评估问题 | 推荐原语 |
|---|---|---|
| 客服工单智能分流 — 在人工介入前将工单分派给对应业务组 | 应该分派到哪个部门?是否涉及退费?紧急程度如何? | Choice, Noul, Score |
| 内容安全风控合规 — 在用户生成内容入库前实时拦截违规内容 | 是否存在垃圾营销或钓鱼?违反哪项社区守则?违规严重度如何? | Noul, Choice, Score |
| 意图识别与情绪洞察 — 将自由非结构化文本快速结构化 | 客户的主要意图是什么?情绪倾向是平静还是愤怒?是否有流失风险? | Choice, Noul |
| 多模态核验与定位 — 对带有截图、附件或单据的多模态工单进行核查 | 单据中是否包含公章?公章在图片中的什么位置?发票金额是否清晰? | Noul, Box, Score |
| 大模型 (LLM) 质检与对齐评测 — 在将回答展现给用户前对其打分 | 回答是否完全基于给定的知识库?格式是否合规?回答质量几分? | Noul, Score |
| AI Agent 流水线守卫与分流 — 智能体流水线中的分支决策路由 | 当前任务是否超出工具处理范围?需要人工审批吗?应唤起哪个技能? | Noul, Choice |
| 数据清洗与知识库打标 — 对海量非结构化存量数据批量归档打标 | 这篇文档属于哪一类目?是否适用于生产环境? | Choice, Noul |
package main
import (
"context"
"log"
typesafe "github.com/guchengod/typesafe-sdk-go"
)
type Ticket struct {
ID int
Subject string
Body string
Customer string
}
func main() {
client, _ := typesafe.NewClient()
defer client.Close()
ctx := context.Background()
// 定义通用的评估问题规则
questions := typesafe.Questions{
"queue": typesafe.NewChoice(
map[string]any{
"billing": "涉及扣款、退费、发票或账单异常",
"technical": "系统崩溃、页面报错或 API 接口异常",
"account": "账号被封、密码重置或权限申请",
"other": nil,
},
typesafe.WithInstructions("该工单应指派到哪个工作队列?"),
),
"needs_human": typesafe.NewNoul(
"",
typesafe.WithInstructions("该工单是否必须由人工客服介入,还是可以通过自动化机器人回复?"),
),
"priority": typesafe.NewScore(
[]any{"日常普通", "中等优先(48小时内)", "最高紧急(严重故障)"},
typesafe.WithInstructions("客户情绪和问题的严重性如何?"),
),
}
tickets := []Ticket{
{ID: 101, Subject: "多扣了 50 美元", Body: "上个月账单重复扣了两次费用,请马上处理!", Customer: "VIP客户"},
}
for _, ticket := range tickets {
state := map[string]any{
"subject": ticket.Subject,
"body": ticket.Body,
"customer": ticket.Customer,
}
response, err := client.SystemOne(ctx, state, questions)
if err != nil {
log.Printf("工单 #%d 评估失败: %v", ticket.ID, err)
continue
}
queueAns := response.Choices()["queue"]
needsHumanAns := response.Nouls()["needs_human"]
priorityAns := response.Scores()["priority"]
log.Printf("工单 #%d -> 队列: %s (置信度: %.2f) | 需人工: %v (p=%.2f) | 优先级分: %.1f",
ticket.ID,
queueAns.Choice, queueAns.Confidence,
needsHumanAns.Noul > 0.6, needsHumanAns.Noul,
priorityAns.Score,
)
// 基于置信度的三段式自动化流转
if queueAns.Confidence >= 0.85 {
log.Printf("自动分流工单 #%d 至队列 [%s]", ticket.ID, queueAns.Choice)
} else {
log.Printf("工单 #%d 置信度较低 (%.2f),流转至人工初筛池", ticket.ID, queueAns.Confidence)
}
}
}每个 Choice 和 Score 答案都包含 Confidence 置信度指标(0.0 ~ 1.0)。在生产级架构中,推荐采用三段式决策门禁:
-
高置信度 (
$\ge 0.85$ ):模型判断非常笃定,可直接触发无人值守的全自动分支逻辑(如自动退款、自动打标封禁); -
中置信度 (
$0.50 \sim 0.85$ ):模型有明确倾向但存在少许歧义,建议将答案作为建议推荐给人工操作员做二次复核; -
低置信度 (
$< 0.50$ ):模型主动声明“内容无法明确裁决”,系统应平滑降级至通用的人工兜底池。
同一个 Client 实例既支持实时 API 服务的单次判定,也支持海量离线数据的并发批量打标。针对高吞吐流水线,建议复用单个 Client 并结合信号量控制在途并发数量——参见 并发控制 (Concurrency)。
- 指南
- Guides