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 
📌 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2511c790b42b9e202210ad6c9561e09d867726fa18eb402edd291d0fa8a4f367
|
|
| MD5 |
b5688bad0de688c1c490c12abceeac72
|
|
| BLAKE2b-256 |
e7799bc67ae18f6b30add418affb50269aaab07a53548f62ba5b88cf85275a18
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7de628a9ab9610d2f9d1162f8090c0e1f17b66414e22dd773c0913b3e94adcfa
|
|
| MD5 |
74da548aafba7a08d4db05fc2cefd5e4
|
|
| BLAKE2b-256 |
333809188a8c59624a398bf5ad70d4f9dc2d391edd0eac21d3e8fe1ec74a5a22
|