feat(ci): Phase 12.3 Ollama 自動化測試 (#67-68)

新增:
- CI Ollama Model Test job (連線測試 + 冒煙測試)
- test_model_regression.py (4 個回歸案例 + 準確度報告)
- Skills 03 更新模型選擇規則

Phase 12.1-12.2 完成記錄更新

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-03-25 11:26:10 +08:00
parent c437b0c749
commit 0a1787e934
4 changed files with 341 additions and 5 deletions

View File

@@ -215,6 +215,54 @@ jobs:
uv run pytest tests/ --cov=src --cov-report=xml -v || true
continue-on-error: true
# ==================== Ollama Model Test (Phase 12.3 #67) ====================
# 🤖 自動化模型回歸測試 - 確保 OpenClaw 提案品質
ollama-test:
name: Ollama Model Test
runs-on: [self-hosted, harbor, k8s]
needs: api-lint
timeout-minutes: 5
continue-on-error: true # 不阻塞主 Pipeline
steps:
- uses: actions/checkout@v4
- name: Test Ollama Connectivity
run: |
echo "🔗 測試 Ollama 連線..."
if curl -s --connect-timeout 5 http://192.168.0.188:11434/api/tags > /dev/null; then
echo "✅ Ollama 可達"
curl -s http://192.168.0.188:11434/api/tags | jq -r '.models[].name'
else
echo "⚠️ Ollama 無法連線 (192.168.0.188:11434)"
exit 0 # 不失敗,只警告
fi
- name: Model Smoke Test
run: |
echo "🧪 模型冒煙測試..."
RESPONSE=$(curl -s --max-time 60 http://192.168.0.188:11434/api/generate -d '{
"model": "qwen2.5:7b-instruct",
"prompt": "你是 AIOps 助手。回答1+1=?",
"stream": false
}' | jq -r '.response // "ERROR"')
if [ "$RESPONSE" != "ERROR" ] && [ -n "$RESPONSE" ]; then
echo "✅ 模型回應正常"
echo "回應: $RESPONSE"
else
echo "⚠️ 模型回應異常"
fi
- name: Action Parsing Test
working-directory: apps/api
env:
PYTHONPATH: ${{ github.workspace }}/apps/api
run: |
echo "🔍 Action Parsing 回歸測試..."
# 只執行 action parsing 測試
uv sync
uv run pytest tests/test_action_parsing.py -v --tb=short || echo "⚠️ 部分測試失敗"
# ==================== OpenAPI Validation ====================
openapi-validate:
name: OpenAPI Validate