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.0.tar.gz (13.2 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.0-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vizeval-0.1.0.tar.gz
  • Upload date:
  • Size: 13.2 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.0.tar.gz
Algorithm Hash digest
SHA256 f267a29a887f1823539dab1683432e91ac8eb1909960036177782b7063f8c1db
MD5 76f494991fc07168e850f0d816dbc2e4
BLAKE2b-256 d8fea82a95e3248bd45fc7181a39b33989e4b30dc7aae7a640b3cead7b1c893d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vizeval-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.2 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9b03950fede7b7ffaff87be56d6c542aa1e047b3ba04623e74369c432aeb690f
MD5 9dc7f4003a2c2d4a3a588df3065ab3e8
BLAKE2b-256 0b6d3b1060f0e2f3d05995c82bab212aaeda3f3a7914f6ca2c30c58ffc07a495

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