44 lines
1.6 KiB
Bash
Executable File
44 lines
1.6 KiB
Bash
Executable File
#!/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
|