fvdb adalah pembungkus sederhana, minimal di sekitar database FAISS Vector. Ini menggunakan indeks L2 dengan vektor yang dinormalisasi.
Ini menggunakan paket faiss-cpu dan sentence-transformers untuk embeddings. Jika Anda memerlukan versi GPU dari FAISS (sangat mungkin tidak), Anda dapat menginstal faiss-gpu secara manual dan menggunakan GPUIndexFlatL2 alih-alih IndexFlatL2 di fvdb/db.hy . Anda masih dapat menggunakan model embedding teks GPU bahkan saat menggunakan faiss-cpu .
Jika ringkasan diaktifkan ( bukan default, lihat bagian konfigurasi di bawah), ringkasan ekstrak akan disimpan di samping ekstrak.
Ini cocok dengan trag.
Input apa pun selain teks biasa (Markdown, ASCIIDOC, RST, Kode Sumber dll.) Luar dari ruang lingkup . Anda harus salah satu dari banyak paket yang tersedia (tidak terstruktur, trafiltura, angkat, dll.) Untuk mengonversi ke plainxext dalam langkah terpisah.
import hy # fvdb is written in Hy, but you can use it from python too
from fvdb import faiss , ingest , similar , sources , write
# data ingestion
v = faiss ()
ingest ( v , "doc.md" )
ingest ( v , "docs-dir" )
write ( v , "/tmp/test.fvdb" ) # defaults to $XDG_DATA_HOME/fvdb (~/.local/share/fvdb/ on Linux)
# search
results = similar ( v , "some query text" )
results = marginal ( v , "some query text" ) # not yet implemented
# information, management
sources ( v )
{ ...
'docs-dir/Once More to the Lake.txt' ,
'docs-dir/Politics and the English Language.txt' ,
'docs-dir/Reflections on Gandhi.txt' ,
'docs-dir/Shooting an elephant.txt' ,
'docs-dir/The death of the moth.txt' ,
... }
info ( v )
{ 'records' : 42 ,
'embeddings' : 42 ,
'embedding_dimension' : 1024 ,
'is_trained' : True ,
'path' : '/tmp/test-vdb' ,
'sources' : 24 ,
'embedding_model' : 'Alibaba-NLP/gte-large-en-v1.5' }
nuke ( v )Ini juga tersedia dari baris perintah.
$ # defaults to $XDG_DATA_HOME/fvdb (~/.local/share/fvdb/ on Linux)
# data ingestion (saves on exit)
$ fvdb ingest doc.md
Adding 2 records
$ fvdb ingest docs-dir
Adding 42 records
$ # search
$ fvdb similar -j " some query text " > results.json # --json / -j gives json output
$ fvdb similar -r 2 " George Orwell's formative experience as a policeman in colonial Burma "
# defaults to tabulated output (not all fields will be shown)
score source added page length
-------- ---------------------------------- -------------------------------- ------ --------
0.579925 docs-dir/A hanging.txt 2024-11-05T11:37:26.232773+00:00 0 2582
0.526988 docs-dir/Shooting an elephant.txt 2024-11-05T11:37:43.891659+00:00 0 3889
$ fvdb marginal " some query text " # not yet implemented
$ # information, management
$ fvdb sources
...
docs-dir/Once More to the Lake.txt
docs-dir/Politics and the English Language.txt
docs-dir/Reflections on Gandhi.txt
docs-dir/Shooting an elephant.txt
docs-dir/The death of the moth.txt
...
$ fvdb info
------------------- -----------------------------
records 44
embeddings 44
embedding_dimension 1024
is_trained True
path /tmp/test
sources 24
embedding_model Alibaba-NLP/gte-large-en-v1.5
------------------- -----------------------------
$ fvdb nuke Mencari $XDG_CONFIG_HOME/fvdb/conf.toml , jika tidak menggunakan default.
Anda tidak dapat mencampur model embeddings dalam satu FVDB.
Inilah contohnya.
# Sets the default path to something other than $XDG_CONFIG_HOME/fvdb/conf.toml
path = " /tmp/test.fvdb "
# Summaries are useful if you use an embedding model with large maximum sequence length,
# for example, gte-large-en-v1.5 has maximum sequence length of 8192.
summary = true
# A conservative default model, maximum sequence length of 512,
# so no point using summaries.
embeddings.model = " all-mpnet-base-v2 "
# # Some models need extra options
# embeddings.model = "Alibaba-NLP/gte-large-en-v1.5"
# embeddings.trust_remote_code = true
# # You can put some smaller models on a cpu, but larger models will be slow
# embeddings.device = "cpu" First Install Pytorch, yang digunakan oleh sentence-transformers . Anda harus memutuskan apakah Anda menginginkan versi CPU atau CUDA (NVIDIA GPU) dari Pytorch. Hanya untuk embeddings teks untuk fvdb , CPU cukup, dengan model default.
Kemudian,
pip install fvdbDan itu saja.