SELECT ticket_id,
AI_CLASSIFY(
raw_text,
ARRAY('系统缺陷:API超时', '账号权限:SSO登录',
'计费问题:升级扣费', '功能建议', '通用咨询'),
JSON '{"output.behavior": "raw_string"}'
) AS category
FROM raw_tickets;
第四步:数值情感打分
AI_SENTIMENT
AI_SENTIMENT
返回
positive
positive
/
negative
negative
/
neutral
neutral
/
mixed
mixed
标签。但如果需要更精细的连续数值(比如 -1.0 到 +1.0),可以用
AI_COMPLETE
AI_COMPLETE
自定义 prompt:
SELECT ticket_id,
AI_COMPLETE(
CONCAT('请对以下工单的情感进行打分,返回 -1.0 到 +1.0 之间的数值(-1=非常不满,0=中性,+1=非常满意),只返回数字。工单内容:', raw_text),
JSON '{"output.behavior": "raw_string"}'
) AS sentiment_score
FROM raw_tickets;
output.behavior=raw_string
output.behavior=raw_string
确保返回纯文本数值而非 JSON 包裹,方便下游
TRY_TO_DOUBLE
TRY_TO_DOUBLE
转换。
第五步:生成运营建议
运营建议是支持主管直接参考的内容,一个模糊的建议会侵蚀信任。
AI_COMPLETE
AI_COMPLETE
在此扮演高级分析角色——它阅读已分类和打分的工单,给出可操作的建议:
WITH weekly_stats AS (
SELECT category,
COUNT(*) AS volume,
ROUND(AVG(TRY_CAST(sentiment_score AS DOUBLE)), 2) AS avg_sentiment
FROM enriched_tickets
WHERE created_at >= DATEADD('day', -7, CURRENT_TIMESTAMP())
GROUP BY category
)
SELECT category, volume, avg_sentiment,
AI_COMPLETE(
CONCAT('你是一名客服运营主管。以下是过去一周的工单统计数据:\n',
'类别:', category, '\n',
'数量:', volume, '\n',
'平均情感分:', avg_sentiment, '\n',
'请给出 2-3 条具体、可执行的改进建议。返回格式:每条建议用换行分隔。'),
JSON '{"output.behavior": "raw_string"}'
) AS recommendations
FROM weekly_stats;
-- 生成模拟工单 → 分类 → 情感打分
WITH fake_tickets(ticket_id, topic) AS (
SELECT 1, 'API超时问题'
UNION ALL SELECT 2, '账号登录失败'
UNION ALL SELECT 3, '计费扣费不对'
UNION ALL SELECT 4, '功能建议'
UNION ALL SELECT 5, '产品咨询'
),
generated AS (
SELECT ticket_id,
AI_COMPLETE(
CONCAT('生成一段客服工单文本,关于SaaS产品的', topic, '的问题'),
JSON '{"output.behavior": "raw_string", "task.concurrency": "4"}'
) AS ticket_text
FROM fake_tickets
)
SELECT ticket_id,
LEFT(ticket_text, 80) AS ticket_abstract,
AI_CLASSIFY(
ticket_text,
ARRAY('系统缺陷:API超时', '账号权限:SSO登录',
'计费问题:升级扣费', '功能建议', '通用咨询'),
JSON '{"output.behavior": "raw_string"}'
) AS category,
TRY_CAST(AI_COMPLETE(
CONCAT('请对以下工单情感打分,范围 -1.0 到 +1.0,只返回数字:', ticket_text),
JSON '{"output.behavior": "raw_string"}'
) AS DOUBLE) AS sentiment
FROM generated
ORDER BY ticket_id;