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.6.0.tar.gz (42.0 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.6.0-py3-none-any.whl (47.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dataframeit-0.6.0.tar.gz
  • Upload date:
  • Size: 42.0 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.6.0.tar.gz
Algorithm Hash digest
SHA256 902a1e524849c30d0568345d353eb7a707805b8856ab0c7f8c05909f15057bc3
MD5 3001bdb9be59fa5a556fbe789ef59608
BLAKE2b-256 de81777e748ced32c5b74a96a4e899c2853876d0e5540888b4b592b2176112a9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dataframeit-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 47.9 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.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3d06b5c2e02ceb0ed74053e9c5de97cf5cabfc2dca18da95898835039e9a0951
MD5 7a9e47ce3a0ca24bf76780aed2497e84
BLAKE2b-256 990045ee9306853c70b0e2f4bd42a250731251417a7cdd09522da2075fa87736

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