--- 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))