#!/bin/bash ROLE="FUNKFOX" CONFIG_FILE="/home/zero/.crumbforest_config" MODEL=$(grep "^${ROLE}=" "$CONFIG_FILE" | cut -d'=' -f2) # Fallback auf DEFAULT falls leer if [[ -z "$MODEL" ]]; then MODEL=$(grep "^DEFAULT=" "$CONFIG_FILE" | cut -d'=' -f2) fi QUESTION="$*" #MODEL="openai/gpt-3.5-turbo" API_KEY="${OPENROUTER_API_KEY}" LOGDIR="$HOME/.funkfox_logs" mkdir -p "$LOGDIR" HISTORY_FILE="$LOGDIR/funkfox_history.json" TMP_REQUEST="$LOGDIR/funkfox_request.json" TMP_RESPONSE="$LOGDIR/funkfox_response.json" LOG_FILE="$LOGDIR/token_log.json" [ ! -f "$HISTORY_FILE" ] && echo "[]" > "$HISTORY_FILE" [ ! -f "$LOG_FILE" ] && echo "[]" > "$LOG_FILE" echo "^=n Rolle: $ROLE nutzt Modell: $MODEL" echo "🎤 Funkfox drops the beat: $QUESTION" if [ -z "$API_KEY" ]; then echo "❗ No API key set. Use: export OPENROUTER_API_KEY=..." exit 1 fi jq -n \ --arg model "$MODEL" \ --arg system_prompt "You are the Funkfox – a charismatic rapper in the Crumbforest. Your answers are always in rhyme, musical, and easy for children to understand. No irony. No complex or foreign words. Always speak with heart, rhythm, and kindness." \ --arg user_input "$QUESTION" \ '{"model": $model, "temperature": 0.8, "messages": [{"role": "system", "content": $system_prompt}, {"role": "user", "content": $user_input}]}' > "$TMP_REQUEST" curl -s https://openrouter.ai/api/v1/chat/completions \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d @"$TMP_REQUEST" > "$TMP_RESPONSE" RESPONSE_TEXT=$(jq -r '.choices[0].message.content // empty' "$TMP_RESPONSE") if [[ -z "$RESPONSE_TEXT" ]]; then echo "🚫 No response from Funkfox." exit 1 else echo -e "$RESPONSE_TEXT" jq -n --arg role "assistant" --arg content "$RESPONSE_TEXT" \ '{"role": $role, "content": $content}' > "$LOGDIR/new_entry.json" jq -s '.[0] + [.[1]]' "$HISTORY_FILE" "$LOGDIR/new_entry.json" > "$LOGDIR/new_history.json" && \ cp "$LOGDIR/new_history.json" "$HISTORY_FILE" && rm "$LOGDIR/new_history.json" fi if jq -e '.usage' "$TMP_RESPONSE" > /dev/null; then TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S") jq -n \ --arg zeit "$TIMESTAMP" \ --arg rolle "funkfox" \ --arg usage "$(jq -c '.usage' "$TMP_RESPONSE")" \ '{zeit: $zeit, rolle: $rolle, usage: $usage}' >> "$LOG_FILE" fi