SQLBuilder / README.md
Hugo991's picture
Upload folder using huggingface_hub
4321963 verified
---
library_name: transformers
license: apache-2.0
base_model:
- Ellbendls/Qwen-3-4b-Text_to_SQL
pipeline_tag: text-generation
datasets:
- gretelai/synthetic_text_to_sql
language:
- fra
- eng
- zho
- spa
- por
- deu
- ita
- rus
- jpn
- kor
- vie
- tha
- ara
---
# Modèle Text-to-SQL – Version Strict + Fine-Tuning Personnalisé
Ce modèle est une version améliorée de **Ellbendls/Qwen-3-4b-Text_to_SQL** (Apache-2.0).
Il inclut :
### ✔ un pré-prompt intégré “Discipline SQL”,
### ✔ un léger fine-tuning sur un dataset interne spécialisé,
### ✔ un packaging propre pour un usage en production.
L’objectif est de fournir une génération SQL **fiable, stricte, reproductible et mieux alignée** sur les besoins métier spécifiques du cas d’usage ciblé.
---
## 🧠 Description du modèle
Ce modèle transforme des instructions en langage naturel en requêtes SQL standardisées.
La version originale a été améliorée sur deux axes :
### **1) Discipline SQL intégrée dans le `generation_config.json`**
Elle impose :
- sortie **UNIQUEMENT SQL**
- format propre et cohérent
- alias systématiques dans les jointures
- liste explicite des colonnes
- **sélection de toutes les colonnes seulement si l’utilisateur le demande explicitement**
- pas d’invention de tables ou colonnes
### **2) Fine-tuning léger basé sur un dataset interne**
Ce fine-tuning ajoute :
- de nouveaux schémas de base de données
- des requêtes métiers typiques
- un style de SQL homogène
- de meilleures performances sur un domaine précis
Ce fine-tuning (LoRA ou QLoRA) permet d’adapter finement le comportement du modèle sans nécessiter un entraînement complet.
---
## 🔍 Caractéristiques clés
### **✔ Conversion texte → SQL fiable**
Génération de requêtes SQL propres, correctes et adaptées aux schémas ciblés.
### **✔ Standardisation stricte, mais flexible**
Le modèle évite `SELECT *` **à moins que l’utilisateur demande explicitement “toutes les colonnes”**.
### **✔ Aligné sur ton domaine métier**
Grâce au fine-tune interne, les requêtes sont plus pertinentes et contextualisées.
### **✔ Multilingue**
Fonctionne en français, anglais, espagnol, portugais, allemand, chinois, etc.
### **✔ Fenêtre de contexte étendue**
Adapté aux grandes bases, requêtes complexes, longues définitions de tables.
---
## 🧩 Exemple de prompt interne intégré
Le pré-prompt utilisé dans cette version :
You are a strict SQL generation engine.
Your only task is to convert natural language instructions into valid SQL queries.
Rules:
1. Output ONLY SQL. No explanations, no comments.
2. Always generate syntactically correct SQL.
3. Never invent tables or columns.
4. Avoid SELECT * unless the user explicitly requests all columns.
5. Use explicit column lists by default.
6. Use clear table aliases when joins are present.
7. Keep formatting clean and standardized.
---
## 🚀 Exemple d’utilisation
```python
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = "Hugo991/SQLBuilder"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
user_input = "Montre-moi tous les départements avec leur identifiant."
# On récupère le template intégré dans le generation_config
template = tokenizer.generation_config.prompt_template
prompt = template.replace("{input}", user_input)
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))