Monitoraggio dei modelli Amazon Bedrock

Amazon Bedrock offre l'accesso a modelli di base ad alte prestazioni sviluppati dalle principali aziende del settore dell'intelligenza artificiale attraverso un' API unificata. Questa guida spiega come integrare un'applicazione che utilizza i modelli Amazon Bedrock con l' OpenLLMetry, al fine di inviare dati di telemetria a Instana.

Prerequisiti

Assicurati che siano soddisfatti i seguenti prerequisiti:

  • Python 3.8 o una versione successiva è installata.
  • Amazon Web Services ( AWS ) credenziali con accesso a Bedrock.
  • È stato attivato un account backend di Instana con funzionalità di osservabilità dell'IA generativa.
  • Consulta la sezione "Introduzione" per informazioni sulle modalità con agente e senza agente.

Implementazione della strumentazione nella tua applicazione Amazon Bedrock

  1. Installa i pacchetti richiesti.

    pip install boto3 traceloop-sdk
  2. Esporta le tue credenziali di AWS.

    export AWS_ACCESS_KEY_ID="<your-access-key-id>"
    export AWS_SECRET_ACCESS_KEY="<your-secret-access-key>"

    Per creare o gestire le chiavi di acced AWS, consultare la documentazione di Amazon IAM.

  3. Crea la tua applicazione Amazon Bedrock. Crea un file ` Python ` contenente il codice seguente.

    import json
    import boto3
    from traceloop.sdk import Traceloop
    from traceloop.sdk.decorators import workflow
    
    # Initialize OpenLLMetry
    Traceloop.init(app_name="bedrock_chat_service", disable_batch=True)
    
    # Initialize Bedrock client
    bedrock_runtime = boto3.client(
        service_name="bedrock-runtime",
        region_name="us-east-1"
    )
    
    @workflow(name="bedrock_conversation")
    def ask_bedrock(question: str):
        """Send a question to Amazon Bedrock and get a response."""
    
        body = json.dumps({
            "inputText": question,
            "textGenerationConfig": {
                "maxTokenCount": 512,
                "temperature": 0.7,
                "topP": 0.9
            }
        })
    
        response = bedrock_runtime.invoke_model(
            body=body,
            modelId="amazon.titan-text-express-v1",
            accept="application/json",
            contentType="application/json"
        )
    
        response_body = json.loads(response.get('body').read())
        output_text = response_body.get('results')[0].get('outputText')
    
        return output_text.strip()
    
    # Example usage
    if __name__ == "__main__":
        questions = [
            "What is AIOps and how does it help with IT operations?",
            "Explain the benefits of observability in modern applications."
        ]
    
        for question in questions:
            print(f"\nQuestion: {question}")
            answer = ask_bedrock(question)
            print(f"Answer: {answer}\n")
            print("-" * 80)
  4. Esegui la tua applicazione Amazon Bedrock.

    python3 bedrock_app.py

    L'applicazione invierà le domande ad Amazon Bedrock e visualizzerà le risposte. OpenLLMetry acquisisce automaticamente le tracce per ogni chiamata all' API e e le invia a Instana.

  5. Visualizza i dati su Instana.

    Dopo aver eseguito l'applicazione, i dati appariranno nella dashboard di osservabilità Gen AI di Instana, mostrando:

    • Modello utilizzato
    • Utilizzo dei token (token in entrata e in uscita)
    • Latenza di risposta
    • Contenuto della richiesta e della risposta

Utilizzo di diversi modelli

Amazon Bedrock supporta diversi modelli di base. Per utilizzare un modello diverso, modificare il modelId parametro:

# Using Claude 3 Sonnet
response = bedrock_runtime.invoke_model(
    body=body,
    modelId="anthropic.claude-3-sonnet-20240229-v1:0",
    accept="application/json",
    contentType="application/json"
)

# Using Llama 2
response = bedrock_runtime.invoke_model(
    body=body,
    modelId="meta.llama2-13b-chat-v1",
    accept="application/json",
    contentType="application/json"
)
Nota: modelli diversi potrebbero richiedere formati diversi per il corpo della richiesta. Per i requisiti specifici del modello, consultare la documentazione relativa al modello Amazon Bedrock.

Risoluzione dei problemi

Per problemi comuni, come la mancata visualizzazione delle tracce o errori di connessione, consultare la sezione Risoluzione dei problemi.

Errori di autenticazione

Se si verificano errori di autenticazione:

  1. Verifica che le tue credenziali AWS siano impostate correttamente
  2. Verifica che il tuo utente IAM disponga delle autorizzazioni Bedrock necessarie
  3. Assicurati che le tue credenziali non siano scadute
  4. Verifica che la regione AWS supporti Bedrock (ad esempio, us-east-1, us-west-2 )

Errori di accesso al modello

Se si verificano errori di accesso al modello:

  1. Verifica di aver richiesto l'accesso al modello nella console di Bedrock all'indirizzo AWS
  2. Verifica che il modello sia disponibile nella regione selezionata
  3. Assicurati che la tua politica IAM includa bedrock:InvokeModel l'autorizzazione
  4. Consultare la documentazione relativa all'accesso al modello Amazon Bedrock

Errori dovuti a richieste non valide

Se ricevi messaggi di errore relativi a richieste non valide:

  1. Verificare che il formato del corpo della richiesta sia conforme ai requisiti del modello
  2. Verificare che i valori dei parametri rientrino negli intervalli consentiti
  3. Assicurati che l'ID del modello sia corretto e formattato correttamente
  4. Consulta la documentazione di Amazon Bedrock API per i requisiti specifici del modello

Passi successivi