Skip to main content

Uma biblioteca para facilitar a geração de dados sintéticos orientados por semântica e a integração com bancos SQL.

Project description

Datalchemy

CI Documentation Status codecov

📌 Datalchemy é uma biblioteca intuitiva projetada para facilitar a geração de dados sintéticos com base na estrutura do banco de dados do usuário. Atualmente, a ferramenta é ideal para prototipagem de aplicações e para estudantes que desejam realizar testes com dados consistentes e realistas, mas em menor escala.

Principais Funcionalidades

📊 Facilidade de Conexão com Bancos de Dados

Gerencie conexões com bancos SQL como MySQL, PostgreSQL, SQLite, entre outros, em poucos passos.

🛠️ Exploração e Modelagem de Banco

Use o sqlacodegen para traduzir automaticamente a estrutura do banco em modelos SQLAlchemy.

🤖 Assistente Baseado em LLMs

Solicite dados sintéticos diretamente por prompts, garantindo que as relações e constraints do banco sejam respeitadas.

⚙️ Uso Simples e Intuitivo

Uma interface que facilita o uso, desde a configuração de conexões até a geração de dados.

🔒 Dados Seguros e Consistentes

Os dados gerados seguem boas práticas de segurança e coerência, respeitando constraints definidas no banco de dados.

🚀 Como Datalchemy Pode Te Ajudar?

  • Prototipagem de Aplicações: Popule rapidamente bancos de dados de desenvolvimento com dados iniciais consistentes.
  • Ensino e Aprendizado: Ofereça uma maneira simples de estudantes explorarem conceitos de bancos de dados e programação.
  • Testes Automatizados: Crie cenários simples e confiáveis para validar funcionalidades.

🛠️ Como Começar?

Instalação

pip install datalchemy

Configuração

Defina as configurações de conexão com seus bancos de dados:

from datalchemy import DatabaseConnectionManager

configs = [
    {
        'name': 'main_db',
        'dialect': 'mysql+pymysql',
        'username': 'seu_usuario',
        'password': 'sua_senha',
        'host': 'localhost',
        'port': 3306,
        'database': 'meu_banco',
    }
]

manager = DatabaseConnectionManager(configs)

Geração de Dados

Conecte-se à LLM para gerar dados sintéticos com base em prompts:

from datalchemy import Generators

generator = Generators(manager, OPENAI_API_KEY="sua_chave_aqui")
prompt = "Gere 10 produtos para 3 departamentos diferentes, relacionados ao setor de tecnologia."
response = generator.generate_data("main_db", prompt)
print(response)
# Saída de exemplo
{
  "departamento": {
    "atributos": ["nome"],
    "valores": [
      ["Hardware"],
      ["Software"],
      ["Periféricos"]
    ]
  },
  "produto": {
    "atributos": ["nome", "preco", "departamento_id"],
    "valores": [
      ["Teclado mecânico", 199.90, 1],
      ["Mouse gamer", 149.90, 1],
      ["Monitor 24 polegadas", 899.90, 1],
      ["Notebook i5", 2999.90, 1],
      ["HD externo 1TB", 299.90, 1],
      ["Licença do Windows 10", 499.90, 2],
      ["Antivírus McAfee", 89.90, 2],
      ["Pacote Office 365", 399.90, 2],
      ["Placa de vídeo", 1999.90, 2],
      ["Roteador Wi-Fi", 129.90, 3]
    ]
  }
}

Inserindo os dados no banco

Após a geração dos dados é possível inseri-los automaticamente no banco de dados utilizando o DataHandler

from datalchemy import DataHandler
handler = DataHandler(manager.get_engine())
handler.insert(response)

Geração de Modelos

Gere os modelos SQLAlchemy do banco de dados automaticamente:

models_code = generator.generate_models("main_db", save_to_file=True)
print(models_code)

📚 Exemplos e Casos de Uso

Prototipagem Simples

Gere poucos dados para tabelas relacionadas:

prompt = "Gere 5 registros para cada tabela do banco de dados."
print(generator.generate_data("main_db", prompt))

Exploração de Estrutura

Exporte os modelos SQLAlchemy para entender e documentar a estrutura do banco:

generator.generate_models("main_db", save_to_file=True)

📢 Dicas para Maximizar o Uso

  • Use prompts claros e objetivos para obter dados relevantes e consistentes.
  • Combine os dados gerados com ferramentas de visualização para entender melhor os cenários simulados.
  • Explore a geração de modelos para documentar seu banco e facilitar futuras integrações.

🔮 Funcionalidades Futuras

  • Geração em Larga Escala: Suporte para geração de grandes volumes de dados, otimizando o uso de tokens e recursos.
  • Validação Avançada: Regras configuráveis para validar os dados antes de inseri-los no banco.
  • Suporte Expandido: Integração com bancos de dados NoSQL.
  • Uso de LLM's locais: Possibilitar a utilização de LLM's Open Source e personalizavéis.

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

datalchemy-0.1.0.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.

datalchemy-0.1.0-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: datalchemy-0.1.0.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for datalchemy-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2511c790b42b9e202210ad6c9561e09d867726fa18eb402edd291d0fa8a4f367
MD5 b5688bad0de688c1c490c12abceeac72
BLAKE2b-256 e7799bc67ae18f6b30add418affb50269aaab07a53548f62ba5b88cf85275a18

See more details on using hashes here.

File details

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

File metadata

  • Download URL: datalchemy-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.12.3 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for datalchemy-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7de628a9ab9610d2f9d1162f8090c0e1f17b66414e22dd773c0913b3e94adcfa
MD5 74da548aafba7a08d4db05fc2cefd5e4
BLAKE2b-256 333809188a8c59624a398bf5ad70d4f9dc2d391edd0eac21d3e8fe1ec74a5a22

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