44 lines
1.6 KiB
Bash
44 lines
1.6 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
# wiki-ingest-reminder.sh
|
|||
|
|
# Stop hook:当对话中产生了实质性研究产出时,提醒用户将知识 ingest 进 wiki。
|
|||
|
|
# 判断逻辑:检查 transcript 中是否包含研究/分析类关键词,且对话轮次 >= 5。
|
|||
|
|
|
|||
|
|
set -euo pipefail
|
|||
|
|
|
|||
|
|
INPUT=$(cat)
|
|||
|
|
|
|||
|
|
TRANSCRIPT_PATH=$(echo "$INPUT" | jq -r '.transcript_path // empty')
|
|||
|
|
|
|||
|
|
# 无 transcript 则静默退出
|
|||
|
|
if [ -z "$TRANSCRIPT_PATH" ] || [ ! -f "$TRANSCRIPT_PATH" ]; then
|
|||
|
|
echo '{"continue": true}'
|
|||
|
|
exit 0
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 统计对话轮次(assistant 消息数)
|
|||
|
|
TURN_COUNT=$(grep -c '"role":"assistant"' "$TRANSCRIPT_PATH" 2>/dev/null || echo "0")
|
|||
|
|
|
|||
|
|
# 轮次不足则不提醒(避免简单问答也弹提醒)
|
|||
|
|
if [ "$TURN_COUNT" -lt 5 ]; then
|
|||
|
|
echo '{"continue": true}'
|
|||
|
|
exit 0
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 检查是否包含研究/分析类产出的信号词
|
|||
|
|
RESEARCH_SIGNALS="分析|研究|报告|对比|总结|结论|规律|启示|发现|梳理|整理|数据|指标|回测|归因|板块|行业|估值|财务|研报"
|
|||
|
|
SIGNAL_COUNT=$(grep -cE "$RESEARCH_SIGNALS" "$TRANSCRIPT_PATH" 2>/dev/null || echo "0")
|
|||
|
|
|
|||
|
|
# 检查是否已经触发过 ingest(避免重复提醒)
|
|||
|
|
ALREADY_INGESTED=$(grep -c "auto-wiki.*ingest\|ingest.*wiki\|已 ingest" "$TRANSCRIPT_PATH" 2>/dev/null || echo "0")
|
|||
|
|
|
|||
|
|
if [ "$SIGNAL_COUNT" -ge 10 ] && [ "$ALREADY_INGESTED" -eq 0 ]; then
|
|||
|
|
jq -n '{
|
|||
|
|
"continue": true,
|
|||
|
|
"systemMessage": "[auto-wiki] 本次对话产生了较多研究分析内容,建议在结束前将有价值的知识 ingest 进 wiki 以便跨会话积累。可以说「把这次的研究整理进 wiki」触发。"
|
|||
|
|
}'
|
|||
|
|
else
|
|||
|
|
echo '{"continue": true}'
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
exit 0
|