Maison >développement back-end >Tutoriel Python >ChatWithSQL — Bibliothèque Python texte-SQL sécurisée et validée par schéma, éliminant les risques de requêtes arbitraires des LLM

ChatWithSQL — Bibliothèque Python texte-SQL sécurisée et validée par schéma, éliminant les risques de requêtes arbitraires des LLM

Susan Sarandon
Susan Sarandonoriginal
2024-12-05 20:30:12377parcourir

Bibliothèque : https://pypi.org/project/chatwithsql
GitHub : https://github.com/sathninduk/chatwithsql

À mesure que les logiciels évoluent, la demande d'interactions de bases de données intuitives, sécurisées et efficaces augmente de façon exponentielle. Entrez ChatWithSQL, une bibliothèque Python révolutionnaire qui transforme la façon dont les développeurs interagissent avec les bases de données SQL. En combinant la puissance du traitement du langage naturel (NLP) avec la génération SQL validée par schéma et la récupération de données, ChatWithSQL établit une nouvelle référence en matière de récupération de données sécurisée et efficace.

? Qu'est-ce qui rend ChatWithSQL unique ?

Les outils Text-to-SQL ne sont pas nouveaux, mais la plupart ont un défaut flagrant : la possibilité de générer et d'exécuter des requêtes arbitraires. Cela présente des risques critiques :

  • Accès non autorisé aux données.
  • Vulnérabilités d'injection SQL.
  • Inefficacités des requêtes.

ChatWithSQL redéfinit la sécurité et la fiabilité en mettant en œuvre une approche de validation basée sur un schéma. En garantissant que toutes les requêtes adhèrent à un schéma prédéfini, la bibliothèque élimine les accès non autorisés tout en conservant des performances inégalées.

?️Architecture

ChatWithSQL — Secure, Schema-Validated Text-to-SQL Python Library, Eliminating Arbitrary Query Risks from LLMs

? Une sécurité incomparable

Contrairement aux systèmes Text-to-SQL traditionnels, ChatWithSQL valide chaque requête par rapport à des définitions de schéma strictes avant son exécution, garantissant :

  • Aucune requête SQL arbitraire.
  • Désinfection et validation complètes des paramètres.
  • Un pipeline sécurisé qui atténue les risques d'entrées malveillantes.

Cette approche axée sur la sécurité positionne ChatWithSQL comme la solution incontournable pour les développeurs recherchant à la fois simplicité et fiabilité.

? Principales fonctionnalités

1. Interface intuitive en langage naturel

Écrivez des invites telles que :

«Montrez-moi les détails de l'utilisateur avec l'ID 5.»
« Montrez-moi toutes les commandes le 25 novembre 2024 »
"Quel est le jour de naissance de l'ID utilisateur 34"
« Quelles sont les commandes supérieures à 500 USD ? »

Et laissez ChatWithSQL gérer le reste, en le convertissant en SQL exploitable.

2. Validation robuste du schéma

Définissez exactement quelles requêtes sont autorisées :

query_schema = [
    {
        "description": "Fetch user data by ID",
        "name": "get_user_data",
        "sql": "SELECT * FROM users WHERE id = ?",
        "params": {"id": {"type": "int", "default": None}},
    },
]

Seules les requêtes au sein de ce schéma sont exécutées, éliminant ainsi les risques d'utilisation abusive.

3. Intégration transparente avec les meilleurs LLM

ChatWithSQL prend en charge les principaux modèles d'apprentissage des langues (LLM), notamment :

  • OpenAI : GPT-4, GPT-3.5
  • Gémeaux
  • LamaAPI
  • Ollama

Basculer entre ces LLM est aussi simple qu'un changement de configuration.

4. Paramètres de requête dynamique

ChatWithSQL extrait, valide et mappe dynamiquement les paramètres de requête pour garantir des résultats précis à chaque fois.

5. Indépendant de la base de données

Que vous utilisiez PostgreSQL, MySQL, SQLite ou toute autre base de données SQL, ChatWithSQL le prend en charge via un format URI universel.

6. Observabilité intégrée

Grâce à la journalisation détaillée, ChatWithSQL facilite le débogage :

  • Repérez les invites mal formées.
  • Valider la construction de la requête.
  • Suivez chaque interaction avec votre base de données.

? Installation et configuration rapides

Installer ChatWithSQL

query_schema = [
    {
        "description": "Fetch user data by ID",
        "name": "get_user_data",
        "sql": "SELECT * FROM users WHERE id = ?",
        "params": {"id": {"type": "int", "default": None}},
    },
]

Initialisez votre instance

pip install chatwithsql

Exécuter une requête

from chat_with_sql import ChatWithSQL
chat_with_sql = ChatWithSQL(
    database_url="your_database_url",
    llm="openai",
    model="gpt-3.5-turbo",
    llm_api_key="your_llm_api_key",
    query_schema=[
        {
            "description": "Fetch user by ID",
            "name": "get_user",
            "sql": "SELECT * FROM users WHERE id = ?",
            "params": {"id": {"type": "int", "default": None}},
        },
    ],
)

? Conçu pour les développeurs, conçu pour évoluer

Cas d'utilisation

  • Tableaux de bord d'analyse : permettez aux équipes non techniques d'interroger les bases de données en toute sécurité.
  • Applications d'entreprise : ajoutez des fonctionnalités de requête intelligentes aux applications tout en maintenant des contrôles stricts.
  • Exploration des données : donnez aux analystes les moyens d'accéder en langage naturel aux données structurées.

Exemple de schéma de requête avancé

response = chat_with_sql.load_data("Get user details for ID 10.")
print(response)

? Pourquoi les développeurs aiment ChatWithSQL

  • Sécurité : aucune autre solution Text-to-SQL n'offre une validation aussi rigoureuse.
  • Flexibilité : utilisez-le avec vos LLM et bases de données préférés.
  • Efficacité : évitez les tracas liés à la création manuelle de requêtes SQL.
  • Simplicité : une bibliothèque unique qui transforme le langage naturel en puissance de base de données.

?️ Feuille de route

Actuellement, ChatWithSQL ne prend en charge que les requêtes SELECT, mais il est prévu d'étendre la prise en charge à d'autres opérations SQL, notamment INSERT, UPDATE et DELETE.

De plus, cette bibliothèque est le premier élément d'une initiative plus large visant à développer un cadre complet, gratuit et open source pour les agents de chat IA. Ce cadre répond à un besoin commercial important dans le secteur actuel du génie logiciel en simplifiant les exigences complexes en quelques étapes simples.

? Rejoignez la révolution ChatWithSQL

Prêt à découvrir le prochain niveau d'interaction avec les bases de données ? Commencez à utiliser ChatWithSQL dès aujourd'hui et donnez à vos applications une gestion des requêtes intelligente, sécurisée et efficace.

Référentiel GitHub : ChatWithSQL
E-mail d'assistance : hello@bysatha.com

Contribuer et collaborer

Nous apprécions les contributions ! Soumettez des demandes d'extraction ou signalez des problèmes pour contribuer à façonner l'avenir de ChatWithSQL.

Avec ChatWithSQL, le langage naturel rencontre SQL d'une manière sécurisée, fiable et révolutionnaire. Rejoignez le mouvement et faites passer vos candidatures au niveau supérieur dès aujourd'hui !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn