Skip to main content

Enriqueça DataFrames com análises de texto usando LLMs. Extraia informações estruturadas de textos com Pydantic.

Project description

DataFrameIt

PyPI version Python 3.10+ License: MIT

Enriqueça DataFrames com LLMs de forma simples e estruturada.

DataFrameIt processa textos em DataFrames usando Modelos de Linguagem (LLMs) e extrai informações estruturadas definidas por modelos Pydantic.

Documentação Completa | Referência para LLMs

Instalação

pip install dataframeit[google]  # Google Gemini (recomendado)
pip install dataframeit[openai]  # OpenAI
pip install dataframeit[anthropic]  # Anthropic Claude

Configure sua API key:

export GOOGLE_API_KEY="sua-chave"  # ou OPENAI_API_KEY, ANTHROPIC_API_KEY

Exemplo Rápido

from pydantic import BaseModel
from typing import Literal
import pandas as pd
from dataframeit import dataframeit

# 1. Defina o que extrair
class Sentimento(BaseModel):
    sentimento: Literal['positivo', 'negativo', 'neutro']
    confianca: Literal['alta', 'media', 'baixa']

# 2. Seus dados
df = pd.DataFrame({
    'texto': [
        'Produto excelente! Superou expectativas.',
        'Péssimo atendimento, nunca mais compro.',
        'Entrega ok, produto mediano.'
    ]
})

# 3. Processe!
resultado = dataframeit(df, Sentimento, "Analise o sentimento do texto.")
print(resultado)

Saída:

texto sentimento confianca
Produto excelente! ... positivo alta
Péssimo atendimento... negativo alta
Entrega ok... neutro media

Funcionalidades

  • Múltiplos providers: Google Gemini, OpenAI, Anthropic, Cohere, Mistral via LangChain
  • Múltiplos tipos de entrada: DataFrame, Series, list, dict
  • Saída estruturada: Validação automática com Pydantic
  • Resiliência: Retry automático com backoff exponencial
  • Performance: Processamento paralelo, rate limiting configurável
  • Busca web: Integração com Tavily para enriquecer dados
  • Tracking: Monitoramento de tokens e métricas de throughput
  • Configuração per-field: Prompts e parâmetros de busca personalizados por campo (v0.5.2+)

Configuração Per-Field (Novo em v0.5.2)

Configure prompts e parâmetros de busca específicos para cada campo usando json_schema_extra:

from pydantic import BaseModel, Field

class MedicamentoInfo(BaseModel):
    # Campo com prompt padrão
    principio_ativo: str = Field(description="Princípio ativo do medicamento")

    # Campo com prompt customizado (substitui o prompt base)
    doenca_rara: str = Field(
        description="Classificação de doença rara",
        json_schema_extra={
            "prompt": "Busque em Orphanet (orpha.net). Analise: {texto}"
        }
    )

    # Campo com prompt adicional (append ao prompt base)
    avaliacao_conitec: str = Field(
        description="Avaliação da CONITEC",
        json_schema_extra={
            "prompt_append": "Busque APENAS no site da CONITEC (gov.br/conitec)."
        }
    )

    # Campo com parâmetros de busca customizados
    estudos_clinicos: str = Field(
        description="Estudos clínicos relevantes",
        json_schema_extra={
            "prompt_append": "Busque estudos clínicos recentes.",
            "search_depth": "advanced",
            "max_results": 10
        }
    )

# Requer search_per_field=True
resultado = dataframeit(
    df,
    MedicamentoInfo,
    "Analise o medicamento: {texto}",
    use_search=True,
    search_per_field=True,
)

Opções disponíveis em json_schema_extra:

Opção Descrição
prompt ou prompt_replace Substitui completamente o prompt base
prompt_append Adiciona texto ao prompt base
search_depth "basic" ou "advanced" (override per-field)
max_results Número de resultados de busca (1-20)

Documentação

Exemplos

Veja a pasta example/ para notebooks Jupyter com casos de uso completos.

Licença

MIT

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

dataframeit-0.5.4.tar.gz (38.8 kB view details)

Uploaded Source

Built Distribution

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

dataframeit-0.5.4-py3-none-any.whl (44.7 kB view details)

Uploaded Python 3

File details

Details for the file dataframeit-0.5.4.tar.gz.

File metadata

  • Download URL: dataframeit-0.5.4.tar.gz
  • Upload date:
  • Size: 38.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dataframeit-0.5.4.tar.gz
Algorithm Hash digest
SHA256 0e87291db010a191b615633cd6c6a479d2008bed4caca03b3cfbb737c1066473
MD5 55993931f3c286b2b1c07a0649a98fb7
BLAKE2b-256 9d24cd5e5045f29901940b12d7348a089a28ac48b4bf766640c8db691902b197

See more details on using hashes here.

File details

Details for the file dataframeit-0.5.4-py3-none-any.whl.

File metadata

  • Download URL: dataframeit-0.5.4-py3-none-any.whl
  • Upload date:
  • Size: 44.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dataframeit-0.5.4-py3-none-any.whl
Algorithm Hash digest
SHA256 4882957b92571d9221a499f21ba7d9205ffd25ac01cfe82af78fa1fc0516ffad
MD5 cc80e5a63362878d432d728bc583e326
BLAKE2b-256 107a78636615a08d5707553e8235fe1ec6f7cfdfe3fc4385ba1c97a543ed5871

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