# Migrazione da Google Gemini a Claude Anthropic ## Panoramica Questa guida spiega come migrare Jarvis-Cognitive da Google Gemini AI a Claude Anthropic API. --- ## Step 1: Installare il pacchetto Anthropic ```bash source .venv/bin/activate pip install anthropic langchain-anthropic ``` --- ## Step 2: Ottenere API Key Anthropic 1. Vai su [https://console.anthropic.com](https://console.anthropic.com) 2. Crea un account o accedi 3. Vai su **API Keys** 4. Crea una nuova API key 5. Copia la chiave (inizia con `sk-ant-...`) --- ## Step 3: Configurare l'API Key Modifica il file `data/.env`: ```bash # Aggiungi questa riga ANTHROPIC_API_KEY="sk-ant-api03-xxxxxxxxxxxxx" # Puoi mantenere anche quella Google per compatibilità GOOGLE_API_KEY="AIzaSyAf-jjdq1SuQS4y_7RXn5TRJ1Csdo3fkg8" ``` --- ## Step 4: Modificare il CognitiveService ### File da modificare: `services/cognitiveservice/cognitiveservice.py` #### Cambiamenti agli import (righe 9-10): **PRIMA:** ```python from langchain_google_genai import ChatGoogleGenerativeAI ``` **DOPO:** ```python from langchain_anthropic import ChatAnthropic ``` #### Cambiamenti all'inizializzazione LLM (righe 112-118): **PRIMA:** ```python llm = ChatGoogleGenerativeAI( model=self.config.get('model_name', 'gemini-2.5-flash'), temperature=self.config.get('temperature', 0.7) ) ``` **DOPO:** ```python llm = ChatAnthropic( model=self.config.get('model_name', 'claude-3-5-sonnet-20241022'), temperature=self.config.get('temperature', 0.7), max_tokens=4096 ) ``` #### Cambiamenti agli embeddings (righe 148-150): **OPZIONE 1 - Mantenere Google Embeddings (raccomandato per semplicità):** Nessun cambiamento necessario, continua a usare Google embeddings **OPZIONE 2 - Usare embeddings Anthropic:** ```python # Anthropic non fornisce direttamente embeddings # Usa Voyage AI (partner di Anthropic) o mantieni Google ``` --- ## Step 5: Aggiornare config.yaml Modifica `config/config.yaml`: ```yaml profiles: aurelio: - service_name: "CognitiveService" module: "services.cognitiveservice.cognitiveservice" config: model_name: "claude-3-5-sonnet-20241022" # Cambiato da gemini-2.5-flash temperature: 0.7 vectorstore_path: "agents/aurelio/chroma_db" docstore_path: "agents/aurelio/doc_store" embedding_provider: "google" # Mantieni Google per embeddings embedding_model: "models/embedding-001" # ... resto della configurazione ``` --- ## Modelli Claude Disponibili | Modello | Descrizione | Use Case | |---------|-------------|----------| | `claude-3-5-sonnet-20241022` | Più potente e bilanciato | **Raccomandato per Jarvis** | | `claude-3-5-haiku-20241022` | Veloce ed economico | Risposte rapide | | `claude-3-opus-20240229` | Massima qualità | Task complessi | --- ## Step 6: Testare la Migrazione ```bash # Ferma il server corrente pkill -f "api_server\|streamlit" # Riavvia ./start_api.sh ``` Test manuale: ```bash curl -X POST http://127.0.0.1:8000/ask \ -H "Content-Type: application/json" \ -d '{"query":"Ciao Marco Aurelio, chi sei?", "session_id":"test"}' ``` --- ## Differenze Principali ### Google Gemini vs Claude | Caratteristica | Gemini | Claude | |----------------|---------|---------| | **Contesto** | Fino a 1M token | Fino a 200K token | | **Velocità** | Molto veloce | Veloce | | **Qualità reasoning** | Ottima | Eccellente | | **Costo** | Economico | Medio | | **Tool use** | Supportato | Supportato (migliore) | ### Vantaggi di Claude per Jarvis 1. **Migliore comprensione filosofica** - Claude eccelle in ragionamenti complessi 2. **Tool use superiore** - Gestione migliore degli strumenti RAG 3. **Risposte più sfumate** - Ideale per un filosofo stoico 4. **Meno allucinazioni** - Maggiore affidabilità 5. **Migliore italiano** - Comprensione superiore della lingua --- ## Troubleshooting ### Errore: "Authentication error" - Verifica che l'API key in `.env` sia corretta - Controlla che inizi con `sk-ant-` ### Errore: "Model not found" - Verifica il nome del modello in `config.yaml` - Usa uno dei modelli elencati sopra ### Errore: "Rate limit exceeded" - Claude ha limiti di rate più restrittivi inizialmente - Considera di aggiungere retry logic o attendere --- ## Costi Stimati ### Gemini (attuale) - Input: $0.075 / 1M token - Output: $0.30 / 1M token ### Claude Sonnet 3.5 - Input: $3.00 / 1M token - Output: $15.00 / 1M token **Nota**: Claude è più costoso ma offre qualità superiore. Per uso personale il costo è trascurabile. --- ## Rollback a Gemini Se vuoi tornare a Gemini: 1. Ripristina gli import in `cognitiveservice.py` 2. Ripristina `model_name: "gemini-2.5-flash"` in `config.yaml` 3. Riavvia il server --- ## Conclusione La migrazione a Claude porterà Marco Aurelio a un livello superiore di comprensione e reasoning filosofico, rendendo le conversazioni ancora più autentiche e profonde. Per domande: verifica i log in `agents/aurelio/logs/jarvis.log`