Gé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:
- Recherche de tutoriels sur le chiffon.
- Sélection d'un cadre populaire (Langchain, Llamaindex).
- Choisir une base de données de vecteur de cloud (Pinecone, Weavate).
- 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.
-
Installation:
requirements.txt
répertorie les bibliothèques nécessaires (sqlite-vec
,openai
,python-dotenv
). Créez un environnement virtuel et exécutezpip install -r requirements.txt
. -
Clé API OpenAI: Obtenez une clé API Openai.
-
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.
- 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 ) ''')
- 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.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds











Tout en travaillant sur une IA agentique, les développeurs se retrouvent souvent à naviguer dans les compromis entre la vitesse, la flexibilité et l'efficacité des ressources. J'ai exploré le cadre de l'IA agentique et je suis tombé sur Agno (plus tôt c'était Phi-

La version comprend trois modèles distincts, GPT-4.1, GPT-4.1 Mini et GPT-4.1 Nano, signalant une évolution vers des optimisations spécifiques à la tâche dans le paysage du modèle grand langage. Ces modèles ne remplacent pas immédiatement les interfaces orientées utilisateur comme

Instruction ALTER TABLE de SQL: Ajout de colonnes dynamiquement à votre base de données Dans la gestion des données, l'adaptabilité de SQL est cruciale. Besoin d'ajuster votre structure de base de données à la volée? L'énoncé de la table alter est votre solution. Ce guide détaille l'ajout de Colu

Simuler les lancements de fusée avec Rocketpy: un guide complet Cet article vous guide à travers la simulation des lancements de fusées haute puissance à l'aide de Rocketpy, une puissante bibliothèque Python. Nous couvrirons tout, de la définition de composants de fusée à l'analyse de Simula

Dans un développement significatif pour la communauté de l'IA, Agetica et ensemble AI ont publié un modèle de codage d'IA open source nommé Deepcoder-14b. Offrir des capacités de génération de code à égalité avec des concurrents à source fermée comme OpenAI

Le géant de la puce Nvidia a déclaré lundi qu'il commencerait à fabriquer des superordinateurs d'IA - des machines qui peuvent traiter de grandes quantités de données et exécuter des algorithmes complexes - entièrement aux États-Unis pour la première fois. L'annonce intervient après le président Trump Si

Guy Peri est le principal officier des informations et du numérique de McCormick. Bien que seulement sept mois dans son rôle, Peri fait rapidement progresser une transformation complète des capacités numériques de l'entreprise. Sa concentration sur la carrière sur les données et l'analyse informe

L'industrie cinématographique, aux côtés de tous les secteurs créatifs, du marketing numérique aux médias sociaux, se dresse à un carrefour technologique. Alors que l'intelligence artificielle commence à remodeler tous les aspects de la narration visuelle et à changer le paysage du divertissement
