Explique suas exceções Python com OpenAI
A prefect-openaicoleção simplifica a integração do OpenAI em seu fluxo de trabalho - combinando o registro do Prefect com os recursos interpretativos do OpenAI.
Aplicativo
Quando seu código falhar, seria bom ter ajuda para solucionar problemas, como da OpenAI!
Se você não estiver familiarizado com os códigos de status HTTP, o OpenAI pode ajudar a fornecer contexto adicional. Isso pode ajudá-lo a entender melhor o problema e encontrar uma solução mais rapidamente!
Por exemplo, com a seguinte exceção como entrada:
HTTPStatusError: Erro do cliente '403 FORBIDDEN' para url 'https://httpbin.org/status/403' Para mais informações, verifique:https://httpstatuses.com/403
OpenAI retornou a seguinte interpretação:
O erro 403 proibido significa que o usuário que está tentando visitar a URL não está autorizado a fazê-lo. Isso pode significar que o usuário não está conectado ou que o conteúdo solicitado não está disponível. Verificar o URL para obter mais informações pode ajudar a resolver o problema.
Isso parece ser muito mais digerível!
Uso
Para obter essa funcionalidade, você pode adicionar as duas linhas a seguir ao seu código existente:
from prefect_openai.completion import interpret_exception@interpret_exception("COMPLETION_MODEL_BLOCK_NAME")
import httpx
from prefect import flow
from prefect_openai.completion import interpret_exception
@flow
@interpret_exception("curie")
def example_func():
resp = httpx.get("https://httpbin.org/status/403")
resp.raise_for_status()
example_func()
Configurar
Antes de poder usar interpret_exceptiono decorator, os blocos OpenAICredentialse CompletionModeldevem ser criados primeiro.
Mas não se preocupe - é simples.
Primeiro, crie sua chave de API OpenAI na página da sua conta OpenAI .
Em seguida, copie, cole e substitua os espaços reservados abaixo.
from prefect_openai import OpenAICredentials, CompletionModel
openai_credentials = OpenAICredentials(api_key="API_KEY_PLACEHOLDER")
completion_model = CompletionModel(
openai_credentials=openai_credentials,
model="text-curie-001",
max_tokens=1000,
temperature=0.5
)
openai_credentials.save("CREDENTIALS_BLOCK_NAME_PLACEHOLDER")
completion_model.save("COMPLETION_MODEL_BLOCK_NAME_PLACEHOLDER")
Como alternativa, você também pode criar os blocos diretamente da interface do usuário do Prefect:
Costumização
Ajustar a saída do modelo é parte arte, parte ciência.
Se estiver interessado em usar um prefixo diferente para o prompt ou incluir parte do traceback para contexto adicional ao modelo, você pode usar os seguintes argumentos de palavra-chave:
prompt_prefix: o prefixo a ser incluído no prompt antes do rastreamento e da mensagem de exceção.traceback_tail: o número de linhas do traceback original a serem incluídas no prompt para OpenAI, começando pela cauda. Se for 0, inclua apenas a mensagem de exceção no prompt. Observe que esta configuração pode ser dispendiosa em termos de tokens, portanto, certifique-se de definir isso e omax_tokensapropriadamenteCompletionModel.
@interpret_exception(
"COMPLETION_MODEL_BLOCK_NAME_PLACEHOLDER",
prompt_prefix="Offer a solution:",
traceback_tail=1,
)
- captura a mensagem de exceção
- adiciona um prefixo, “Explicar:”
- envia-o como um prompt para um modelo de conclusão de texto
- levanta novamente a exceção com a resposta
Recursos
Além de interpretar exceções, prefect-openaioferece suporte à conclusão arbitrária de texto, bem como à geração de imagens - foi assim que a imagem da capa foi gerada!
Se você achou esses casos de uso interessantes, verifique os prefect-openai documentos e marque o repositório de coleções no GitHub !





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)