Pencarian GenAI Lokal adalah mesin pencari generatif lokal Anda berdasarkan model Llama3 yang dapat berjalan secara lokal di laptop atau komputer 32GB (dikembangkan dengan MacBookPro M2 dengan RAM 32BG).
Tujuan utama dari proyek ini adalah memungkinkan pengguna mengajukan pertanyaan tentang konten file lokal mereka, yang dijawab secara ringkas dengan merujuk pada dokumen relevan yang kemudian dapat dibuka.
Mesinnya menggunakan penyematan MS MARCO untuk pencarian semantik, dengan dokumen teratas diteruskan ke model Llama 3.
Secara default, ini akan bekerja dengan NVIDIA API, dan menggunakan parameter 70B model Llama 3. Namun, jika Anda menggunakan semua kredit API NVIDIA atau tidak ingin menggunakan API untuk mencari dokumen lokal, ini juga dapat dijalankan secara lokal, menggunakan model parameter 8B.
Untuk menjalankan Pencarian AI Generatif Lokal (mengingat Anda memiliki mesin string yang cukup untuk menjalankan Llama3), Anda perlu mengunduh repositori:
git clone https://github.com/nikolamilosevic86/local-gen-search.git
Anda harus menginstal semua persyaratan:
pip install -r requirements.txt
Anda perlu membuat file bernama environment_var.py
, dan meletakkan kunci API HuggingFace Anda di sana. Filenya akan terlihat seperti ini:
import os
hf_token = "hf_you_api_key"
nvidia_key = "nvapi-your_nvidia_nim_api_key"
Kunci API untuk HuggingFace dapat diambil di https://huggingface.co/settings/tokens
. Untuk menjalankan komponen generatif, Anda perlu meminta akses ke model Llama3 di https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct
Kunci API untuk Titik Akhir API Nvidia NIM dapat diambil di https://build.nvidia.com/explore/discover
Langkah selanjutnya adalah mengindeks folder dan subfoldernya yang berisi dokumen yang ingin Anda cari. Anda dapat melakukannya menggunakan file index.py
. Berlari
python index.py path/to/folder
Sebagai contoh, Anda dapat menjalankannya dengan TestFolder yang disediakan:
python index.py TestFolder
Ini akan membuat indeks klien qdrant secara lokal dan mengindeks semua file di folder ini dan subfoldernya dengan ekstensi .pdf
, .txt
, .docx
, .pptx
Langkah selanjutnya adalah menjalankan layanan pencarian generatif. Untuk ini, Anda dapat menjalankan:
python uvicorn_start.py
Ini akan memulai server lokal, yang dapat Anda kueri menggunakan tukang pos, atau mengirim permintaan POST. Pemuatan model (termasuk pengunduhan dari Huggingface, mungkin memerlukan waktu beberapa menit, terutama untuk pertama kalinya). Ada dua antarmuka:
http://127.0.0.1:8000/search
http://127.0.0.1:8000/ask_localai
Kedua antarmuka membutuhkan isi dalam format:
{"query":"What are knowledge graphs?"}
dan header untuk Accept dan Content-Type disetel ke application/json
.
Berikut adalah contoh kode:
import requests
import json
url = "http://127.0.0.1:8000/ask_localai"
payload = json . dumps ({
"query" : "What are knowledge graphs?"
})
headers = {
'Accept' : 'application/json' ,
'Content-Type' : 'application/json'
}
response = requests . request ( "POST" , url , headers = headers , data = payload )
print ( response . text )
Terakhir, antarmuka pengguna streamlit dapat dimulai dengan cara berikut:
streamlit run user_interface.py
Sekarang Anda dapat menggunakan antarmuka pengguna dan mengajukan pertanyaan yang akan dijawab berdasarkan file di sistem file Anda.
Jika Anda ingin melihat lebih detail tentang pengembangan alat ini, Anda dapat membaca Cara Membuat Mesin Pencari Generatif untuk File Lokal Anda Menggunakan Llama 3 | Menuju Ilmu Data
Anda juga dapat memeriksa surat-surat berikut:
@article{kovsprdic2024verif,
title={Verif.ai: Towards an Open-Source Scientific Generative Question-Answering System with Referenced and Verifiable Answers},
author={Ko{v{s}}prdi{'c}, Milo{v{s}} and Ljaji{'c}, Adela and Ba{v{s}}aragin, Bojana and Medvecki, Darija and Milo{v{s}}evi{'c}, Nikola},
journal={arXiv preprint arXiv:2402.18589},
year={2024}
}