Introdução geral
Observers é um SDK Python de código aberto projetado para fornecer observabilidade abrangente para APIs de IA generativas. A biblioteca permite que os usuários acompanhem e registrem facilmente as interações com modelos de IA e armazenem essas observações em vários back-ends. Seja o OpenAI ou outro provedor de LLM que implemente o formato de mensagem da API do OpenAI, os observadores podem ser monitorados e registrados com eficiência. Ao integrar-se com back-ends de armazenamento, como os conjuntos de dados DuckDB e Hugging Face, os usuários podem consultar e analisar facilmente os dados de interação de IA.
Lista de funções
- Monitoramento de API de IA generativaSuporte para OpenAI e outros provedores de LLM que implementam o formato de mensagem da API OpenAI.
- Vários armazenamentos de dados de back-endSuporte para DuckDB, conjuntos de dados Hugging Face e muitos outros back-ends de armazenamento.
- Observação de informações de documentosSuporte a vários formatos de documentos, como PDF, DOCX, PPTX, XLSX, imagens, HTML, AsciiDoc e Markdown, por meio da integração com o Docling.
- Suporte à telemetria de código abertoSuporte a vários provedores de telemetria por meio da integração do OpenTelemetry.
- interface unificadaFornece uma interface API LLM unificada por meio do AISuite e do Litellm.
Usando a Ajuda
montagem
Primeiro, você pode instalar o SDK do observer usando o pip:
pip install observers
Se quiser usar outro provedor de LLM por meio do AISuite ou do Litellm, você poderá instalá-lo usando o seguinte comando:
pip install observers[aisuite] # ou observers[litellm]
Se você precisar observar as informações do documento, poderá usar a integração com o Docling:
pip install observers [docling]
Para suporte de telemetria de código aberto, é possível instalar o seguinte:
pip install observers[opentelemetry]
fazer uso de
A biblioteca de observadores faz distinção entre observadores e armazenamento. Os observadores empacotam APIs de IA generativas (por exemplo, OpenAI ou llama-index) e rastreiam suas interações. A classe de armazenamento, por outro lado, sincroniza essas observações com um backend de armazenamento diferente (por exemplo, DuckDB ou conjunto de dados Hugging Face).
Código de amostra (computação)
Abaixo está um código de exemplo simples que mostra como enviar solicitações e registrar interações usando a Observer Library:
de observers.observers import wrap_openai
de observers.stores import DuckDBStore
de openai import OpenAI
store = DuckDBStore()
openai_client = OpenAI()
cliente = wrap_openai(openai_client, store=store)
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Tell me a joke."}], )
)
O código envia a solicitação para um endpoint sem servidor e registra a interação em um conjunto de dados do Hub usando o DatasetsStore de armazenamento padrão. O conjunto de dados será enviado para o seu espaço de trabalho pessoal (por exemplo, http://hf.co/{your_username}).
Armazenamento de configuração
Para configurar um backend de armazenamento diferente, você pode consultar o exemplo a seguir:
- Armazenamento do DuckDBArmazenamento padrão: O armazenamento padrão é o DuckDB, que pode ser visualizado e consultado usando a CLI do DuckDB.
- Armazenamento do conjunto de dados Hugging FaceDados: os conjuntos de dados podem ser visualizados e consultados usando o Hugging Face Datasets Viewer.
- Armazenamento ArgillaPermite a sincronização de observações com o Argilla.
- Armazenamento OpenTelemetrySincronização de observações com qualquer provedor habilitado para OpenTelemetry: permite a sincronização de observações com qualquer provedor habilitado para OpenTelemetry.