recherche
MaisonPériphériques technologiquesIAGénération augmentée augmentée de récupération dans SQLite

Cette série en deux parties explore à l'aide de SQLite pour l'apprentissage automatique. L'article précédent a discuté du rôle croissant de SQLite dans les applications Web prêtes à la production. Cet article se concentre sur la mise en œuvre de la génération (RAG) de la récupération à l'aide de SQLite.

Pour les applications Web personnalisées avec une IA générative, visitez losangelesaiacs.com

Le code est disponible ici .

La mise en œuvre traditionnelle des chiffons implique souvent:

  1. Recherche de tutoriels sur le chiffon.
  2. Sélection d'un cadre populaire (Langchain, Llamaindex).
  3. Choisir une base de données de vecteur de cloud (Pinecone, Weavate).
  4. Intégration de ces composants.

Bien que efficace, cette approche peut être trop complexe, en particulier pour les débutants. Cet article montre une méthode plus simple utilisant SQLite avec l'extension sqlite-vec et l'API OpenAI. La partie 1 de cette série fournit un aperçu détaillé des capacités de SQLite. Pour cet article, il suffit de comprendre la simplicité de Sqlite en tant que base de données unique.

Cette approche élimine le besoin de bases de données de vecteur cloud et de frameworks volumineux.

SQLITE-VEC: Extension de la puissance de Sqlite

La force de Sqlite réside dans son extensibilité. Extensions, similaires aux bibliothèques Python, ajouter des fonctionnalités écrites en C. Un exemple est l'extension de recherche en texte intégral (FTS). sqlite-vec ajoute des capacités de recherche vectorielle, permettant une compréhension sémantique au-delà de la correspondance des mots clés. La recherche de "chevaux" peut retourner "équestre" ou "poney".

sqlite-vec utilise des tables virtuelles, l'offre:

  • Sources de données personnalisées: Les données peuvent résider en dehors du fichier de base de données (par exemple, CSV, API).
  • Fonctionnalité flexible: prend en charge l'indexation spécialisée et les types de données complexes.
  • Intégration transparente: s'intègre à la syntaxe de requête SQLite standard.
  • Modules: La logique backend est implémentée dans un module séparé.

Les tables virtuelles sont créées en utilisant:

CREATE VIRTUAL TABLE my_table USING my_extension_module();

my_extension_module() Spécifie le module (ici, vec0 de sqlite-vec).

Procédure de code du code

Le code ( Repo Link ) utilise des fichiers .txt comme exemples de données (principalement liées à la physique). my_docs.db est le fichier de base de données SQLite.

  1. Installation: requirements.txt répertorie les bibliothèques nécessaires (sqlite-vec, openai, python-dotenv). Créez un environnement virtuel et exécutez pip install -r requirements.txt.

  2. Clé API OpenAI: Obtenez une clé API Openai.

  3. Chargement de l'extension: Le code Python charge l'extension sqlite-vec et crée une table virtuelle:

CREATE VIRTUAL TABLE my_table USING my_extension_module();

Le tableau documents stocke les intégres (embedding), les noms de fichiers (file_name) et le contenu (content). désigne les champs auxiliaires.

  1. ENCRIPTION ET INSERRTION: Le code itère dans les fichiers .txt, génère des intégres à l'aide de l'API OpenAI et les insère dans la base de données:
db.enable_load_extension(True)
sqlite_vec.load(db)
db.enable_load_extension(False)

db.execute('''
    CREATE VIRTUAL TABLE documents USING vec0(
        embedding float[1536],
        +file_name TEXT,
        +content TEXT
    )
''')
  1. requête RAG: Une requête KNN récupère des documents similaires basés sur la similitude d'intégration:
# ... (OpenAI embedding function) ...

for file_name in os.listdir("data"):
    # ... (Open file, get content, get embedding) ...
    db.execute(
        'INSERT INTO documents (embedding, file_name, content) VALUES (?, ?, ?)',
        (serialize_float32(embedding), file_name, content)
    )
db.commit()

Les résultats sont ensuite utilisés comme contexte pour une réalisation de chat Openai pour répondre à la requête.

Conclusion

sqlite-vec simplifie considérablement le chiffon. Il élimine le besoin de cadres complexes et de services cloud, ce qui le rend rentable et facile à itérer. Bien que l'échelle puisse éventuellement nécessiter une base de données plus robuste, sqlite-vec offre une solution convaincante pour les petits projets. L'extension prend en charge plusieurs langages de programmation.

Retrieval Augmented Generation in SQLite

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
La Californie tape AI pour accélérer les permis de récupération des incendies de forêtLa Californie tape AI pour accélérer les permis de récupération des incendies de forêtMay 04, 2025 am 11:10 AM

L'IA rationalise la récupération des incendies de forêt Le logiciel AI de la société de technologie australienne Archistar, utilisant l'apprentissage automatique et la vision par ordinateur, automatise l'évaluation des plans de construction de conformité aux réglementations locales. Cette signification de pré-validation

Ce que les États-Unis peuvent apprendre du gouvernement numérique propulsé par l'IA de l'EstonieCe que les États-Unis peuvent apprendre du gouvernement numérique propulsé par l'IA de l'EstonieMay 04, 2025 am 11:09 AM

Le gouvernement numérique de l'Estonie: un modèle pour les États-Unis? Les États-Unis luttent contre les inefficacités bureaucratiques, mais l'Estonie offre une alternative convaincante. Cette petite nation possède un gouvernement de près de 100% numérisé et centré sur les citoyens alimentés par l'IA. Ce n'est pas

Planification du mariage via une IA générativePlanification du mariage via une IA générativeMay 04, 2025 am 11:08 AM

Planifier un mariage est une tâche monumentale, souvent écrasante même les couples les plus organisés. Cet article, qui fait partie d'une série Forbes en cours sur l'impact de l'IA (voir le lien ici), explore comment l'IA génératrice peut révolutionner la planification de mariage. Le mariage PL

Que sont les agents de l'IA de la défense numérique?Que sont les agents de l'IA de la défense numérique?May 04, 2025 am 11:07 AM

Les entreprises exploitent de plus en plus les agents de l'IA pour les ventes, tandis que les gouvernements les utilisent pour diverses tâches établies. Cependant, les défenseurs des consommateurs mettent en évidence la nécessité pour les individus de posséder leurs propres agents d'IA comme une défense contre les

Guide d'un chef d'entreprise sur l'optimisation générative du moteur (GEO)Guide d'un chef d'entreprise sur l'optimisation générative du moteur (GEO)May 03, 2025 am 11:14 AM

Google mène ce changement. Sa fonction "AI AperSews" sert déjà plus d'un milliard d'utilisateurs, fournissant des réponses complètes avant que quiconque clique sur un lien. [^ 2] D'autres joueurs gagnent également du terrain rapidement. Chatgpt, Microsoft Copilot et PE

Cette startup utilise des agents d'IA pour lutterCette startup utilise des agents d'IA pour lutterMay 03, 2025 am 11:13 AM

En 2022, il a fondé la startup de défense de l'ingénierie sociale Doppel pour faire exactement cela. Et alors que les cybercriminels exploitent des modèles d'IA de plus en plus avancés pour turbuler leurs attaques, les systèmes d'IA de Doppel ont aidé les entreprises à les combattre à grande échelle - plus rapidement et

Comment les modèles mondiaux sont radicalement remodeler l'avenir de l'IA génératrice et des LLMComment les modèles mondiaux sont radicalement remodeler l'avenir de l'IA génératrice et des LLMMay 03, 2025 am 11:12 AM

Le tour est joué, via l'interaction avec les modèles mondiaux appropriés, l'IA et les LLM génératives peuvent être considérablement stimulées. Parlons-en. Cette analyse d'une percée innovante de l'IA fait partie de ma couverture de colonne Forbes en cours sur la dernière IA, y compris

Mai Jour 2050: Qu'avons-nous laissé pour célébrer?Mai Jour 2050: Qu'avons-nous laissé pour célébrer?May 03, 2025 am 11:11 AM

La fête du Travail 2050. Les parcs à travers le pays se remplissent de familles bénéficiant de barbecues traditionnelles tandis que les défilés nostalgiques vont dans les rues de la ville. Pourtant, la célébration porte désormais une qualité de musée - une reconstitution historique plutôt que la commémoration de C

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel