Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Come posso evitare i timeout di lettura in Python quando utilizzo LLM in Amazon Bedrock?
Ricevo errori di timeout di lettura quando utilizzo modelli linguistici di grandi dimensioni (LLM) in Amazon Bedrock per generare testo.
Risoluzione
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Quando utilizzi modelli linguistici di grandi dimensioni (LLM) in Amazon Bedrock per generare testo, potresti riscontrare errori di timeout di lettura. Gli errori di timeout si verificano quando il client AWS SDK per Python (Boto3) esegue query sull'LLM ma non riceve una risposta entro il periodo di timeout di lettura predefinito di botocore. Per risolvere gli errori di timeout di lettura, aumenta il timeout di lettura o utilizza API di streaming.
Aumenta il timeout di lettura
È consigliabile impostare il valore read_timeout in modo che sia sufficientemente lungo da consentire il completamento delle query. Inizia con un valore elevato, ad esempio 3.600 secondi, quindi regola la durata finché non ricevi più errori di timeout. Per aumentare il valore read_timeout, esegui un codice simile al seguente esempio. Per ulteriori informazioni, consulta il parametro read_timeout in botocore.config.
from boto3 import client from botocore.config import Config config = Config(read_timeout=1000) client = client(service_name='bedrock-runtime', config=config)
Nota: sostituisci 1000 con il tuo valore di timeout.
Se utilizzi librerie di terze parti, prima crea un'istanza di un client SDK per Python (Boto3) con una configurazione botocore. Quindi passa questa configurazione come parametro client a una classe di modello chiamabile.
Per aumentare il valore del timeout di lettura quando passi un client Boto3 a una libreria di terze parti, esegui un codice simile all'esempio seguente:
from boto3 import client from botocore.config import Config from langchain_aws import ChatBedrock config = Config(read_timeout=1000) client = client(service_name='bedrock-runtime', config=config) llm = ChatBedrock(model_id="anthropic.claude-3-5-sonnet-20240620-v1:0", client=client)
Gli esempi precedenti mostrano che il timeout di lettura è impostato su 1.000 secondi. Il periodo di timeout di lettura specifica per quanto tempo botocore attende una risposta dal server prima di restituire un'eccezione di timeout di lettura.
Nota: gli LLM come Anthropic Claude 3.7 Sonnet possono impiegare più di 60 secondi per restituire una risposta. Per Anthropic Claude 3.7 Sonnet, è consigliabile impostare un valore di timeout di almeno 3.600 secondi.
Utilizza ConverseStream per lo streaming delle risposte
Se lavori con risposte lunghe o fornisci risultati parziali agli utenti, utilizza l'operazione API ConverseStream per ricevere i token generati. L'operazione API ConverseStream restituisce i token man mano che vengono generati, il che aiuta a evitare timeout in caso di risposte lunghe.
Per utilizzare l'operazione API ConverseStream, esegui un codice simile all'esempio seguente:
import json from boto3 import client from botocore.config import Config # Configure the client config = Config() client = client(service_name='bedrock-runtime', config=config) # Create request parameters request = { "modelId": "anthropic.claude-3-5-sonnet-20240620-v1:0", "messages": [ { "role": "user", "content": [ { "text": "Could you write very long story?" } ] } ] } # Call the streaming API response = client.converse_stream( modelId=request["modelId"], messages=request["messages"] ) # Process the streaming response for event in response['stream']: if 'contentBlockDelta' in event: print(event['contentBlockDelta']['delta']['text'], end='')
Nota: sostituisci modelID con l'ID del tuo modello e text con il tuo testo.
- Lingua
- Italiano
Video correlati


Contenuto pertinente
AWS UFFICIALEAggiornata 10 mesi fa