Pengambilan semula Generasi Tambahan di SQLite
Siri dua bahagian ini meneroka menggunakan SQLite untuk pembelajaran mesin. Artikel sebelumnya membincangkan peranan SQLite yang semakin meningkat dalam aplikasi web yang siap pengeluaran. Artikel ini memberi tumpuan kepada pelaksanaan Generasi Pengambilan Pengambilan (RAG) menggunakan SQLite.
Untuk aplikasi web tersuai dengan AI generatif, lawati losangelesaiapps.com
Kod tersedia di sini .
pelaksanaan kain tradisional sering melibatkan:
- Mencari tutorial pada kain.
- Memilih rangka kerja yang popular (Langchain, Llamaindex).
- memilih pangkalan data vektor awan (pinecone, weaviate).
- Mengintegrasikan komponen -komponen ini.
Walaupun berkesan, pendekatan ini boleh menjadi terlalu kompleks, terutamanya untuk pemula. Artikel ini menunjukkan kaedah yang lebih mudah menggunakan SQLite dengan lanjutan sqlite-vec
dan API OpenAI. Bahagian 1 siri ini memberikan gambaran terperinci tentang keupayaan SQLite. Untuk artikel ini, ia cukup untuk memahami kesederhanaan SQLite sebagai pangkalan data satu fail.
Pendekatan ini menghapuskan keperluan untuk pangkalan data vektor awan dan rangka kerja yang besar.
sqlite-vec: memperluaskan kuasa sqlite
Kekuatan SQLite terletak pada kelanjutannya. Sambungan, sama dengan perpustakaan Python, tambah fungsi yang ditulis dalam C. Contoh utama ialah sambungan carian teks penuh (FTS). sqlite-vec
Menambah keupayaan carian vektor, membolehkan pemahaman semantik di luar padanan kata kunci. Mencari "kuda" mungkin kembali "ekuestrian" atau "kuda."
sqlite-vec
menggunakan jadual maya, menawarkan:
- Sumber data tersuai: Data boleh tinggal di luar fail pangkalan data (mis., CSV, API).
- Fungsi fleksibel: menyokong pengindeksan khusus dan jenis data kompleks.
- Integrasi Lancar: Bersepadu dengan sintaks pertanyaan SQLite standard. Modul
- : logik backend dilaksanakan dalam modul yang berasingan.
jadual maya dibuat menggunakan:
CREATE VIRTUAL TABLE my_table USING my_extension_module();
my_extension_module()
Menentukan modul (di sini, vec0
dari sqlite-vec
).
Walkthrough kod
Kod ( pautan repo ) menggunakan .txt
fail sebagai data sampel (kebanyakannya berkaitan fizik). my_docs.db
adalah fail pangkalan data SQLite.
-
Pemasangan:
requirements.txt
menyenaraikan perpustakaan yang diperlukan (sqlite-vec
,openai
,python-dotenv
). Buat persekitaran maya dan jalankanpip install -r requirements.txt
. -
Openai API Key: Dapatkan Kunci API Terbuka.
-
Memuatkan pelanjutan: kod python memuatkan lanjutan
sqlite-vec
dan mencipta jadual maya:
CREATE VIRTUAL TABLE my_table USING my_extension_module();
The documents
Jadual Kedai Embeddings (embedding
), Filenames (file_name
), dan Kandungan (content
).
menandakan bidang tambahan.
- Embedding and Inscion:
Kod ini melewati fail , menghasilkan embeddings menggunakan API OpenAI, dan memasukkannya ke dalam pangkalan data:.txt
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 ) ''')
- pertanyaan rag: pertanyaan KNN mengambil dokumen serupa berdasarkan persamaan penyembuhan:
# ... (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()
Kesimpulan
Memudahkan kain dengan ketara. Ia menghapuskan keperluan untuk kerangka kerja kompleks dan perkhidmatan awan, menjadikannya kos efektif dan mudah untuk diulangi. Walaupun skala mungkin akhirnya memerlukan pangkalan data yang lebih mantap, sqlite-vec
menawarkan penyelesaian yang menarik untuk projek yang lebih kecil. Pelanjutan ini menyokong pelbagai bahasa pengaturcaraan. sqlite-vec
Atas ialah kandungan terperinci Pengambilan semula Generasi Tambahan di SQLite. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Meta's Llama 3.2: Lompat ke hadapan dalam Multimodal dan Mobile AI META baru -baru ini melancarkan Llama 3.2, kemajuan yang ketara dalam AI yang memaparkan keupayaan penglihatan yang kuat dan model teks ringan yang dioptimumkan untuk peranti mudah alih. Membina kejayaan o

Hei ada, pengekodan ninja! Apa tugas yang berkaitan dengan pengekodan yang anda telah merancang untuk hari itu? Sebelum anda menyelam lebih jauh ke dalam blog ini, saya ingin anda memikirkan semua kesengsaraan yang berkaitan dengan pengekodan anda-lebih jauh menyenaraikan mereka. Selesai? - Let ’

Landskap AI minggu ini: Badai kemajuan, pertimbangan etika, dan perdebatan pengawalseliaan. Pemain utama seperti Openai, Google, Meta, dan Microsoft telah melepaskan kemas kini, dari model baru yang terobosan ke peralihan penting di LE

Memo CEO Shopify Tobi Lütke baru -baru ini dengan berani mengisytiharkan penguasaan AI sebagai harapan asas bagi setiap pekerja, menandakan peralihan budaya yang signifikan dalam syarikat. Ini bukan trend seketika; Ini adalah paradigma operasi baru yang disatukan ke p

Pengenalan OpenAI telah mengeluarkan model barunya berdasarkan seni bina "strawberi" yang sangat dijangka. Model inovatif ini, yang dikenali sebagai O1, meningkatkan keupayaan penalaran, yang membolehkannya berfikir melalui masalah MOR

Pengenalan Bayangkan berjalan melalui galeri seni, dikelilingi oleh lukisan dan patung yang terang. Sekarang, bagaimana jika anda boleh bertanya setiap soalan dan mendapatkan jawapan yang bermakna? Anda mungkin bertanya, "Kisah apa yang anda ceritakan?

Pernyataan Jadual Alter SQL: Menambah lajur secara dinamik ke pangkalan data anda Dalam pengurusan data, kebolehsuaian SQL adalah penting. Perlu menyesuaikan struktur pangkalan data anda dengan cepat? Pernyataan Jadual ALTER adalah penyelesaian anda. Butiran panduan ini menambah colu

Bagi anda yang mungkin baru dalam lajur saya, saya secara meluas meneroka kemajuan terkini di AI di seluruh papan, termasuk topik seperti yang terkandung AI, penaakulan AI, terobosan berteknologi tinggi di AI, kejuruteraan segera, latihan AI, Fielding of AI, AI Re Re,
