Skip to main content

SDK para integração com Vizeval - Avaliação especializada de LLMs na área da saúde

Project description

Vizeval SDK

SDK Python para integração transparente com a API Vizeval - Avaliação especializada de LLMs na área da saúde.

🎯 Visão Geral

A Vizeval SDK permite integrar facilmente a avaliação especializada de respostas de LLMs em aplicações Python, com foco particular em conteúdo médico e de saúde. A SDK oferece:

  • Integração transparente com OpenAI
  • Retry automático baseado em threshold configurável
  • Avaliação especializada por evaluators médicos
  • Implementação simples com mudanças mínimas no código existente

📦 Instalação

pip install vizeval

🚀 Uso Rápido

Integração Transparente com OpenAI

from vizeval import OpenAI
import os

# Substitua OpenAI padrão por Vizeval OpenAI
client = OpenAI(
    api_key=os.getenv("OPENAI_API_KEY"),
    vizeval_config={
        "api_key": os.getenv("VIZEVAL_API_KEY"),
        "evaluator": "medical",
        "threshold": 0.8,
        "max_retries": 3
    }
)

# Chamada normal - será automaticamente avaliada e retriada se necessário
result = client.chat.completions.create(
    model="gpt-4",
    messages=[
        {"role": "system", "content": "Você é um assistente médico especializado."},
        {"role": "user", "content": "Quais são os sintomas da gripe?"}
    ]
)

# Resultado contém informações de avaliação
print(f"Score: {result.final_evaluation.score}")
print(f"Tentativas: {result.total_attempts}")
print(f"Resposta: {result.final_response.choices[0].message.content}")

Uso Direto da API

from vizeval import VizevalClient

client = VizevalClient(api_key=os.getenv("VIZEVAL_API_KEY"))

evaluation = client.evaluate(
    system_prompt="Você é um assistente médico especializado.",
    user_prompt="Quais são os sintomas da gripe?",
    response="Os sintomas incluem febre, dor de cabeça, fadiga...",
    evaluator="medical"
)

print(f"Score: {evaluation.score}")
print(f"Feedback: {evaluation.feedback}")

🔧 Configuração

VizevalConfig

from vizeval import VizevalConfig, Evaluator

config = VizevalConfig(
    api_key="sua_vizeval_api_key",
    evaluator=Evaluator.MEDICAL,  # ou "medical"
    threshold=0.8,                # Score mínimo aceitável
    max_retries=3,                # Máximo de tentativas
    base_url="https://api.vizeval.com",
    metadata={"user_id": "123"}   # Metadados opcionais
)

🔄 Sistema de Retry

A SDK implementa retry automático inteligente:

  1. Avaliação inicial: Resposta é avaliada automaticamente
  2. Verificação de threshold: Se score < threshold, nova tentativa

Exemplo de Retry Customizado

from vizeval import OpenAI

client = OpenAI(
    api_key=os.getenv("OPENAI_API_KEY"),
    vizeval_config={
        "api_key": os.getenv("VIZEVAL_API_KEY"),
        "evaluator": "medical",
        "threshold": 0.9,     # Threshold alto
        "max_retries": 5,     # Mais tentativas
    }
)

result = client.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": "Pergunta médica complexa"}],
    temperature=0.3  # Começar com baixa temperature
)

# Analisar tentativas
for attempt in result.attempts:
    print(f"Tentativa {attempt.attempt_number}: Score {attempt.score}")

🔍 Funcionalidades Avançadas

Configuração Dinâmica

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

# Configurar dinamicamente
client.set_vizeval_config({
    "api_key": os.getenv("VIZEVAL_API_KEY"),
    "evaluator": "medical",
    "threshold": 0.8,
    "max_retries": 3
})

# Desabilitar temporariamente
client.disable_vizeval()

Análise de Resultados

result = client.chat.completions.create(...)

# Informações detalhadas
print(f"Total de tentativas: {result.total_attempts}")
print(f"Passou do threshold: {result.passed_threshold}")
print(f"Melhor score: {result.best_score}")
print(f"Score final: {result.final_evaluation.score}")
print(f"Feedback: {result.final_evaluation.feedback}")

# Histórico de tentativas
for i, attempt in enumerate(result.attempts):
    print(f"Tentativa {i+1}: {attempt.score}")

Tratamento de Erros

from vizeval.exceptions import VizevalThresholdError, VizevalAPIError

try:
    result = client.chat.completions.create(...)
except VizevalThresholdError as e:
    print(f"Threshold não atingido após {e.attempts} tentativas")
    print(f"Melhor score: {e.best_score}")
except VizevalAPIError as e:
    print(f"Erro na API: {e}")

📊 Exemplos Práticos

Exemplo 1: Avaliação Médica Básica

from vizeval import OpenAI, Evaluator

client = OpenAI(
    api_key=os.getenv("OPENAI_API_KEY"),
    vizeval_config={
        "api_key": os.getenv("VIZEVAL_API_KEY"),
        "evaluator": Evaluator.MEDICAL,
        "threshold": 0.8,
        "max_retries": 3
    }
)

result = client.chat.completions.create(
    model="gpt-4",
    messages=[
        {"role": "system", "content": "Você é um médico especialista."},
        {"role": "user", "content": "Quais são os sintomas de diabetes?"}
    ]
)

🔧 Desenvolvimento

Instalação para Desenvolvimento

git clone https://github.com/vizeval/python-sdk
cd python-sdk
pip install -e ".[dev]"

Executar Testes

pytest tests/

Formatação de Código

black src/
isort src/
flake8 src/

🌟 Recursos Principais

  • Integração Transparente: Substitui OpenAI sem mudanças no código
  • Retry Inteligente: Ajusta parâmetros automaticamente
  • Avaliação Especializada: Evaluators médicos especializados
  • Configuração Flexível: Threshold e retries configuráveis
  • Análise Detalhada: Histórico completo de tentativas
  • Tratamento de Erros: Exceções específicas e informativas
  • Logging Completo: Visibilidade total do processo
  • Fallback Inteligente: Sempre retorna a melhor resposta

🔗 Links Úteis


Desenvolvido com ❤️ para o Hackathon da Adapta

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vizeval-0.1.1.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vizeval-0.1.1-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file vizeval-0.1.1.tar.gz.

File metadata

  • Download URL: vizeval-0.1.1.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.4

File hashes

Hashes for vizeval-0.1.1.tar.gz
Algorithm Hash digest
SHA256 265b0eecb5397d85daded94b100ed23f7a51bbd1777569ef6ca2d9b47d71149a
MD5 332bbf334f8b60fbbd0060236d35e616
BLAKE2b-256 8a5bc944221ddad620196f40ddf9cdd961fba07a3825da1d4ef93fc5ab19e7dc

See more details on using hashes here.

File details

Details for the file vizeval-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: vizeval-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.4

File hashes

Hashes for vizeval-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4c40903729b3febe5dbee4a83ccc574fa50b861b79acb253eed0be8a9931572d
MD5 ea91a14e2b42c5e3002a354b790c160c
BLAKE2b-256 9d1947a3fb2abd5c36731f10e032382f965bb084d8133e8077df3b0a9c956a92

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page