Some checks failed
Tests / Go Tests (push) Has been cancelled
Tests / Python Tests (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / Go Lint (push) Has been cancelled
Tests / Python Lint (push) Has been cancelled
Tests / Security Scan (push) Has been cancelled
Tests / All Checks Passed (push) Has been cancelled
Security Scanning / Secret Scanning (push) Has been cancelled
Security Scanning / Dependency Vulnerability Scan (push) Has been cancelled
Security Scanning / Go Security Scan (push) Has been cancelled
Security Scanning / Python Security Scan (push) Has been cancelled
Security Scanning / Node.js Security Scan (push) Has been cancelled
Security Scanning / Docker Image Security (push) Has been cancelled
Security Scanning / Security Summary (push) Has been cancelled
CI/CD Pipeline / Go Tests (push) Has been cancelled
CI/CD Pipeline / Python Tests (push) Has been cancelled
CI/CD Pipeline / Website Tests (push) Has been cancelled
CI/CD Pipeline / Linting (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Docker Build & Push (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / CI Summary (push) Has been cancelled
ci/woodpecker/manual/build-ci-image Pipeline was successful
ci/woodpecker/manual/main Pipeline failed
All services: admin-v2, studio-v2, website, ai-compliance-sdk, consent-service, klausur-service, voice-service, and infrastructure. Large PDFs and compiled binaries excluded via .gitignore.
142 lines
5.7 KiB
Bash
Executable File
142 lines
5.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Verification script for Sprint 4 implementation
|
|
# Checks that all required components are present
|
|
|
|
echo "========================================"
|
|
echo "Sprint 4 - KI-Integration Verifikation"
|
|
echo "========================================"
|
|
echo ""
|
|
|
|
# Color codes
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
FAILED=0
|
|
PASSED=0
|
|
|
|
check_file() {
|
|
local file="$1"
|
|
local description="$2"
|
|
|
|
if [ -f "$file" ]; then
|
|
echo -e "${GREEN}✓${NC} $description"
|
|
echo " → $file"
|
|
((PASSED++))
|
|
else
|
|
echo -e "${RED}✗${NC} $description"
|
|
echo " → $file (NOT FOUND)"
|
|
((FAILED++))
|
|
fi
|
|
}
|
|
|
|
check_content() {
|
|
local file="$1"
|
|
local pattern="$2"
|
|
local description="$3"
|
|
|
|
if [ -f "$file" ] && grep -q "$pattern" "$file"; then
|
|
echo -e "${GREEN}✓${NC} $description"
|
|
((PASSED++))
|
|
else
|
|
echo -e "${RED}✗${NC} $description"
|
|
echo " → Pattern '$pattern' not found in $file"
|
|
((FAILED++))
|
|
fi
|
|
}
|
|
|
|
echo "1. Core Components"
|
|
echo "-------------------"
|
|
check_file "compliance/services/llm_provider.py" "LLM Provider Abstraction"
|
|
check_file "compliance/services/ai_compliance_assistant.py" "AI Compliance Assistant"
|
|
check_file "compliance/api/routes.py" "API Routes"
|
|
check_file "compliance/api/schemas.py" "API Schemas"
|
|
echo ""
|
|
|
|
echo "2. LLM Provider Classes"
|
|
echo "------------------------"
|
|
check_content "compliance/services/llm_provider.py" "class LLMProvider" "Abstrakte LLMProvider Klasse"
|
|
check_content "compliance/services/llm_provider.py" "class AnthropicProvider" "AnthropicProvider"
|
|
check_content "compliance/services/llm_provider.py" "class SelfHostedProvider" "SelfHostedProvider"
|
|
check_content "compliance/services/llm_provider.py" "class MockProvider" "MockProvider"
|
|
check_content "compliance/services/llm_provider.py" "def get_llm_provider" "get_llm_provider() Factory"
|
|
echo ""
|
|
|
|
echo "3. AI Assistant Methods"
|
|
echo "------------------------"
|
|
check_content "compliance/services/ai_compliance_assistant.py" "async def interpret_requirement" "interpret_requirement()"
|
|
check_content "compliance/services/ai_compliance_assistant.py" "async def suggest_controls" "suggest_controls()"
|
|
check_content "compliance/services/ai_compliance_assistant.py" "async def assess_module_risk" "assess_module_risk()"
|
|
check_content "compliance/services/ai_compliance_assistant.py" "async def analyze_gap" "analyze_gap()"
|
|
check_content "compliance/services/ai_compliance_assistant.py" "async def batch_interpret_requirements" "batch_interpret_requirements()"
|
|
echo ""
|
|
|
|
echo "4. API Endpoints"
|
|
echo "-----------------"
|
|
check_content "compliance/api/routes.py" "async def get_ai_status" "GET /ai/status"
|
|
check_content "compliance/api/routes.py" "async def interpret_requirement" "POST /ai/interpret"
|
|
check_content "compliance/api/routes.py" "async def suggest_controls" "POST /ai/suggest-controls"
|
|
check_content "compliance/api/routes.py" "async def assess_module_risk" "POST /ai/assess-risk"
|
|
check_content "compliance/api/routes.py" "async def analyze_gap" "POST /ai/gap-analysis"
|
|
check_content "compliance/api/routes.py" "async def batch_interpret_requirements" "POST /ai/batch-interpret"
|
|
echo ""
|
|
|
|
echo "5. Pydantic Schemas"
|
|
echo "--------------------"
|
|
check_content "compliance/api/schemas.py" "class AIStatusResponse" "AIStatusResponse"
|
|
check_content "compliance/api/schemas.py" "class AIInterpretationRequest" "AIInterpretationRequest"
|
|
check_content "compliance/api/schemas.py" "class AIInterpretationResponse" "AIInterpretationResponse"
|
|
check_content "compliance/api/schemas.py" "class AIControlSuggestionRequest" "AIControlSuggestionRequest"
|
|
check_content "compliance/api/schemas.py" "class AIControlSuggestionResponse" "AIControlSuggestionResponse"
|
|
check_content "compliance/api/schemas.py" "class AIRiskAssessmentRequest" "AIRiskAssessmentRequest"
|
|
check_content "compliance/api/schemas.py" "class AIRiskAssessmentResponse" "AIRiskAssessmentResponse"
|
|
check_content "compliance/api/schemas.py" "class AIGapAnalysisRequest" "AIGapAnalysisRequest"
|
|
check_content "compliance/api/schemas.py" "class AIGapAnalysisResponse" "AIGapAnalysisResponse"
|
|
echo ""
|
|
|
|
echo "6. Environment Variables"
|
|
echo "-------------------------"
|
|
check_content ".env.example" "COMPLIANCE_LLM_PROVIDER" "COMPLIANCE_LLM_PROVIDER"
|
|
check_content ".env.example" "ANTHROPIC_MODEL" "ANTHROPIC_MODEL"
|
|
check_content ".env.example" "SELF_HOSTED_LLM_URL" "SELF_HOSTED_LLM_URL"
|
|
check_content ".env.example" "COMPLIANCE_LLM_MAX_TOKENS" "COMPLIANCE_LLM_MAX_TOKENS"
|
|
echo ""
|
|
|
|
echo "7. Documentation"
|
|
echo "-----------------"
|
|
check_file "docs/compliance_ai_integration.md" "Vollständige Dokumentation"
|
|
check_file "compliance/README_AI.md" "Quick-Start Guide"
|
|
check_file "compliance/SPRINT_4_SUMMARY.md" "Sprint 4 Zusammenfassung"
|
|
echo ""
|
|
|
|
echo "8. Tests"
|
|
echo "---------"
|
|
check_file "tests/test_compliance_ai.py" "Unit Tests"
|
|
check_file "scripts/test_compliance_ai_endpoints.py" "Integration Test Script"
|
|
echo ""
|
|
|
|
echo "9. German Prompts"
|
|
echo "------------------"
|
|
check_content "compliance/services/ai_compliance_assistant.py" "Du bist ein Compliance-Experte" "Deutscher System Prompt"
|
|
check_content "compliance/services/ai_compliance_assistant.py" "Breakpilot" "Breakpilot-spezifisch"
|
|
check_content "compliance/services/ai_compliance_assistant.py" "EdTech" "EdTech Kontext"
|
|
echo ""
|
|
|
|
# Summary
|
|
echo "========================================"
|
|
echo "Zusammenfassung"
|
|
echo "========================================"
|
|
echo -e "${GREEN}Bestanden: $PASSED${NC}"
|
|
echo -e "${RED}Fehlgeschlagen: $FAILED${NC}"
|
|
echo ""
|
|
|
|
if [ $FAILED -eq 0 ]; then
|
|
echo -e "${GREEN}✓ Sprint 4 ist vollständig implementiert!${NC}"
|
|
exit 0
|
|
else
|
|
echo -e "${RED}✗ Es fehlen noch $FAILED Komponenten${NC}"
|
|
exit 1
|
|
fi
|