ai-output-validation
0
总安装量
1
周安装量
安装命令
npx skills add https://github.com/youngger9765/career_ios_backend --skill ai-output-validation
Agent 安装分布
amp
1
cline
1
opencode
1
cursor
1
continue
1
kimi-cli
1
Skill 文档
AI Output Validation – AI 輸åºé©è
Purpose: ç¢ºä¿ææ AI çæçæ¬ä½é½æå®æ´çé©èæ©å¶
Lesson Learned: 2026-01-08 ä¸åæªæ· Bug
- Quick Feedback:
max_tokens=50太å°ï¼åå³ 1-3 å - Report: ç¡¬æªæ·
[:15]åæ·å¥åä¸é - Deep Analyze: ç¼ºå° display_text/quick_suggestion é©è
æ ¸å¿åå
â é¯èª¤åæ³
# ç¡¬æªæ· - æåæ·å¥å
result["text"] = ai_response[:15]
# max_tokens å¤ªå° - AI ææªæ·
response = await llm.generate(max_tokens=50) # 䏿éè¦æ´å¤ tokens
# æ²æé©è - ä¸ç¥éæ¯å¦å®æ´
return {"message": ai_response}
â æ£ç¢ºåæ³
# 1. å®ç¾©éå¶ï¼åºæ¼ prompt æè³æç¯åï¼
MAX_CHARS = 15
MIN_CHARS = 7
# 2. ç¨ prompt æ§å¶é·åº¦ï¼è® AI èªå·±èçï¼
prompt = "è«ç¨ 15 å以å
§åæ..."
# 3. å 大 max_tokensï¼é¿å
AI è¢«è¿«æªæ·ï¼
response = await llm.generate(max_tokens=500)
# 4. é©è並 fallback
if len(text) < MIN_CHARS:
logger.warning(f"Too short: {text}")
text = FALLBACK_MESSAGE
# 5. Log warningï¼ä¸è¦ç¡¬æªæ·ï¼
if len(text) > MAX_CHARS:
logger.warning(f"Over limit: {len(text)} chars")
æª¢æ¥æ¸ å®
æ¯å AI çææ¬ä½å¿ é æª¢æ¥ï¼
â¡ 1. å®ç¾© min_chars - å¤ªçæ fallback
æ ¹ææ¬ä½ç¨éæ±ºå®æå°åæ¸
ä¾ï¼é¼åµæ 7 åãå»ºè° 5 å
â¡ 2. å®ç¾© max_chars - è¶
éæ log warning
æ ¹æ prompt è¦æ±æ UI éå¶
ä¾ï¼åå¿å 15 åãdisplay 20 å
â¡ 3. max_tokens è¶³å¤ å¤§ - é¿å
AI è¢«è¿«æªæ·
ä¸æå»ºè° 500+ï¼æ¯åç´ 1-3 tokensï¼
æª¢æ¥ finish_reason != MAX_TOKENS
â¡ 4. æ fallback æ©å¶ - 太çæå¤±ææä½¿ç¨
é è¨è¨æ¯å表
random.choice(FALLBACK_MESSAGES)
â¡ 5. Log warning - æ¹ä¾¿ç£æ§
è¨é實éé·åº¦
è¨é被 fallback çæ
æ³
â¡ 6. æ¬å°æ¸¬è©¦ 3+ 次 - ç¢ºèª AI 實é輸åº
ä¸è¦åªç䏿¬¡çµæ
è§å¯è®ç°æ§
é©èç¯æ¬
# æ¨æº AI 輸åºé©è模å¼
def validate_ai_output(
text: str,
min_chars: int,
max_chars: int,
fallback: str,
field_name: str = "output"
) -> str:
"""é©è AI 輸åºï¼å¤ªçç¨ fallbackï¼å¤ªé· log warning"""
if len(text) < min_chars:
logger.warning(
f"{field_name} too short ({len(text)} chars): '{text}', "
f"using fallback"
)
return fallback
if len(text) > max_chars:
logger.warning(
f"{field_name} over {max_chars} chars: "
f"{len(text)} chars - '{text[:30]}...'"
)
# ä¸è¦ç¡¬æªæ·ï¼åª log warning
return text
å°æ¡ AI æ¬ä½åè表
| API | æ¬ä½ | Min | Max | 便º |
|---|---|---|---|---|
| Quick Feedback | message | 7 | 15 | prompt è¦æ± |
| Deep Analyze | display_text | 4 | 20 | prompt è¦æ± |
| Deep Analyze | quick_suggestion | 5 | 20 | 200å¥: 5-17 å |
| Report | encouragement | – | 15 | prompt è¦æ± |
| Report | issue | – | – | ç¡éå¶ |
| Report | analyze | – | – | ç¡éå¶ |
| Report | suggestion | – | – | ç¡éå¶ |
è¨ºæ·æä»¤
# æ¾åºææ AI å¼å«é»
grep -rn "generate_text\|chat_completion\|_call_gemini" app/services/
# æ¾åºææ max_tokens è¨å®
grep -rn "max_tokens" app/services/
# æ¾åºæ½å¨çç¡¬æªæ·
grep -rn "\[:.*\]" app/services/ | grep -v ".pyc"
# æª¢æ¥æ¯å¦æ min/max é©è
grep -rn "min_chars\|max_chars\|MIN_\|MAX_" app/services/
IMPORTANT
- ä¸è¦ç¡¬æªæ· – æåæ·å¥åä¸é
- ç¨ prompt æ§å¶é·åº¦ – è® AI èªå·±èç
- å 大 max_tokens – é¿å finish_reason=MAX_TOKENS
- æ¬å°æ¸¬è©¦ 3+ 次 – è§å¯ AI 輸åºè®ç°
- Log warning – æ¹ä¾¿ç£æ§ç°å¸¸
Version: 1.0 Created: 2026-01-08 Lesson From: Quick Feedback, Report, Deep Analyze truncation bugs