Rumah Peranti teknologi AI Pengambilan semula Generasi Tambahan di SQLite

Pengambilan semula Generasi Tambahan di SQLite

Feb 26, 2025 am 02:49 AM

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:

  1. Mencari tutorial pada kain.
  2. Memilih rangka kerja yang popular (Langchain, Llamaindex).
  3. memilih pangkalan data vektor awan (pinecone, weaviate).
  4. 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();
Salin selepas log masuk
Salin selepas log masuk

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.

  1. Pemasangan: requirements.txt menyenaraikan perpustakaan yang diperlukan (sqlite-vec, openai, python-dotenv). Buat persekitaran maya dan jalankan pip install -r requirements.txt.

  2. Openai API Key: Dapatkan Kunci API Terbuka.

  3. Memuatkan pelanjutan: kod python memuatkan lanjutan sqlite-vec dan mencipta jadual maya:

CREATE VIRTUAL TABLE my_table USING my_extension_module();
Salin selepas log masuk
Salin selepas log masuk

The documents Jadual Kedai Embeddings (embedding), Filenames (file_name), dan Kandungan (content). menandakan bidang tambahan.

  1. 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
    )
''')
Salin selepas log masuk
  1. 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()
Salin selepas log masuk
Hasilnya kemudiannya digunakan sebagai konteks untuk penyelesaian sembang terbuka untuk menjawab pertanyaan.

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1664
14
Tutorial PHP
1269
29
Tutorial C#
1248
24
Bermula dengan Meta Llama 3.2 - Analytics Vidhya Bermula dengan Meta Llama 3.2 - Analytics Vidhya Apr 11, 2025 pm 12:04 PM

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

10 Pelanjutan pengekodan AI generatif dalam kod vs yang mesti anda pelajari 10 Pelanjutan pengekodan AI generatif dalam kod vs yang mesti anda pelajari Apr 13, 2025 am 01:14 AM

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 &#8217

AV Bytes: Meta ' s llama 3.2, Google's Gemini 1.5, dan banyak lagi AV Bytes: Meta ' s llama 3.2, Google's Gemini 1.5, dan banyak lagi Apr 11, 2025 pm 12:01 PM

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

GPT-4O vs OpenAI O1: Adakah model Openai baru bernilai gembar-gembur? GPT-4O vs OpenAI O1: Adakah model Openai baru bernilai gembar-gembur? Apr 13, 2025 am 10:18 AM

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

Panduan Komprehensif untuk Model Bahasa Visi (VLMS) Panduan Komprehensif untuk Model Bahasa Visi (VLMS) Apr 12, 2025 am 11:58 AM

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?

3 Kaedah untuk menjalankan Llama 3.2 - Analytics Vidhya 3 Kaedah untuk menjalankan Llama 3.2 - Analytics Vidhya Apr 11, 2025 am 11:56 AM

Meta's Llama 3.2: Powerhouse AI Multimodal Model multimodal terbaru Meta, Llama 3.2, mewakili kemajuan yang ketara dalam AI, yang membanggakan pemahaman bahasa yang dipertingkatkan, ketepatan yang lebih baik, dan keupayaan penjanaan teks yang unggul. Keupayaannya t

Bagaimana untuk menambah lajur dalam SQL? - Analytics Vidhya Bagaimana untuk menambah lajur dalam SQL? - Analytics Vidhya Apr 17, 2025 am 11:43 AM

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

Pixtral -12b: Model Multimodal Pertama Mistral Ai ' Pixtral -12b: Model Multimodal Pertama Mistral Ai ' Apr 13, 2025 am 11:20 AM

Pengenalan Mistral telah mengeluarkan model multimodal yang pertama, iaitu Pixtral-12B-2409. Model ini dibina atas parameter 12 bilion Mistral, NEMO 12B. Apa yang membezakan model ini? Ia kini boleh mengambil kedua -dua gambar dan Tex

See all articles