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.3.tar.gz (37.4 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.3-py3-none-any.whl (42.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dataframeit-0.5.3.tar.gz
  • Upload date:
  • Size: 37.4 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.3.tar.gz
Algorithm Hash digest
SHA256 5b4c815b985f46beb1a18beee91d1f7b3c580abdbf3e04bcf425951e73dbf0e6
MD5 2f4707d98f3b0eab3c9367af7156bfce
BLAKE2b-256 312fb5ff8d7680ca645ebc064c6cc344d3e1ed429529b311eed3a9fde3c8e5e1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dataframeit-0.5.3-py3-none-any.whl
  • Upload date:
  • Size: 42.8 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 349fc3e8edf3a89744ec19c5d6a31afe4d05ad896904e8121e26487e39307d5b
MD5 12eed80d624693c8ba65a1980d6587ee
BLAKE2b-256 400fdfc7d8ca0a41677729256308b0bdd54c924b8600e9c981f99f9cdc6ad108

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