#!/bin/bash # AGI API-Enhanced Training # Uses API to generate high-quality training data for natural language understanding set -e # Source environment SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/train_init.sh" # API Configuration API_ENDPOINT="https://api.anthropic.com/v1/messages" API_MODEL="claude-3-5-sonnet-20241022" # Paths CHAT_BIN="$AGI_HOME/core/build/bin/agi_chat" API_TRAINING_DATA="$TRAINING_DATA_DIR/api_training_data.jsonl" ENHANCED_CORPUS="$TRAINING_DATA_DIR/enhanced_corpus.txt" mkdir -p "$TRAINING_DATA_DIR" log "───────────────────────────────────────────────" log "🤖 API-ENHANCED TRAINING PIPELINE" log "───────────────────────────────────────────────" log "API Endpoint: $API_ENDPOINT" log "Model: $API_MODEL" log "Credits Available: $((MAX_CREDITS - CREDITS_USED))" log "" # Function to call Claude API call_api() { local prompt="$1" local response_file="$2" # Construct API request local request_json=$(cat </dev/null || echo "API response parse error") if [ "$ANSWER" != "API response parse error" ] && [ -n "$ANSWER" ]; then # Add to training corpus echo "Q: $TOPIC" >> "$ENHANCED_CORPUS" echo "A: $ANSWER" >> "$ENHANCED_CORPUS" echo "" >> "$ENHANCED_CORPUS" # Log to JSONL for future use (escape quotes in answer for valid JSON) ESCAPED_ANSWER=$(echo "$ANSWER" | sed 's/"/\\"/g' | tr '\n' ' ') echo "{\"topic\":\"$TOPIC\",\"answer\":\"$ESCAPED_ANSWER\",\"timestamp\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"}" >> "$API_TRAINING_DATA" log " Generated: ${ANSWER:0:80}..." else log " Failed to parse API response" fi else log " Skipped due to API error" fi rm -f "$RESPONSE_FILE" # Rate limiting sleep 1 done log "" log "───────────────────────────────────────────────" log "✅ API-Enhanced Training Complete" log "───────────────────────────────────────────────" # Statistics if [ -f "$ENHANCED_CORPUS" ]; then CORPUS_LINES=$(wc -l < "$ENHANCED_CORPUS") CORPUS_WORDS=$(wc -w < "$ENHANCED_CORPUS") CORPUS_SIZE=$(du -h "$ENHANCED_CORPUS" | cut -f1) log "" log "Enhanced Training Data Statistics:" log " Lines: $CORPUS_LINES" log " Words: $CORPUS_WORDS" log " Size: $CORPUS_SIZE" log " File: $ENHANCED_CORPUS" fi log "" log "API Usage:" log " Credits Used: $CREDITS_USED" log " Credits Remaining: $((MAX_CREDITS - CREDITS_USED))" log " Total Budget: $MAX_CREDITS" # Test the AGI with new knowledge log "" log "Testing AGI with enhanced knowledge..." log "" TEST_PROMPT="what is MAX consensus?" log "Test query: $TEST_PROMPT" RESPONSE=$(echo -e "$TEST_PROMPT\nexit" | "$CHAT_BIN" 2>/dev/null | grep "^AGI:" | head -1 | sed 's/^AGI: //') log "AGI Response: $RESPONSE" log "" log "───────────────────────────────────────────────" log "🎓 Training pipeline ready for next phase" log "───────────────────────────────────────────────" log "" log "Files created:" log " - Enhanced corpus: $ENHANCED_CORPUS" log " - API training data: $API_TRAINING_DATA" log "" log "To continue training: $0" log "To chat interactively: $CHAT_BIN" log ""