Eine sehr einfache interaktive CLI zum Indizieren und Abfragen von Dokumenten mithilfe von Lamafiles für Einbettungen und Textgenerierung. Der Index basiert auf einem FAISS-Vektorspeicher. Das Standardeinbettungsmodell ist mxbai-embed-large-v1 (Lamafile-Link) und das Textgenerierungsmodell ist mistral-7b-instruct-v0.2 (Lamafile-Link). (Diese können durch Bearbeiten von setup.sh
geändert werden.)
Aufstellen:
cp .env.example .env
./setup.sh
Dieses Skript lädt Lamadateien von HuggingFace herunter und kann je nach Internetverbindung mehrere Minuten dauern.
HINWEIS: Das Setup-Skript erfordert pyenv
Um die App zu starten, führen Sie Folgendes aus:
./app.sh
Wenn Sie die App ausführen, geschieht Folgendes:
toy_data/
in einen Vektorspeicher (den „Index“). Inhalt des Verzeichnisses toy_data/
: 1.txt: Alice likes red squares.
2.txt: Bob likes blue circles.
3.txt: Chris likes blue triangles.
4.txt: David does not like green triangles.
5.txt: Mary does not like circles.
Enter query (ctrl-d to quit): [What does Alice like ? ] >
Wenn Sie hier einfach die Eingabetaste drücken, lautet die Abfrage standardmäßig „Was mag Alice?“. Die App-Ausgabe sollte wie folgt aussehen:
=== Query ===
What does Alice like?
=== Search Results ===
0.7104 - " alice likes red squares ."
0.5229 - " bob likes blue circles ."
0.4088 - " chris likes blue triangles ."
=== Prompt ===
"You are an expert Q&A system. Answer the user's query using the provided context information.
Context information:
alice likes red squares .
bob likes blue circles .
chris likes blue triangles .
Query: What does Alice like?"
(prompt_ntokens: 55)
=== Answer ===
"
Answer: Alice likes red squares."
--------------------------------------------------------------------------------
Hier einige andere Abfragen, die Sie ausprobieren könnten:
Das ist so ziemlich alles.
Sie können die meisten App-Einstellungen über die .env
Datei ändern. Die Standarddatei sollte wie folgt aussehen:
EMBEDDING_MODEL_PORT=8080
GENERATION_MODEL_PORT=8081
INDEX_LOCAL_DATA_DIRS=local_data,toy_data
INDEX_TEXT_CHUNK_LEN=128
INDEX_SAVE_DIR=./index-toy
Alle verfügbaren Optionen finden Sie in „settings.py“.
Standardmäßig verwendet die App:
Standardmäßig ist die App so konfiguriert, dass sie den Inhalt der in INDEX_LOCAL_DATA_DIRS
aufgeführten Verzeichnisse indiziert, nämlich local_data
und toy_data
. Derzeit unterstützen wir nur die Indizierung von .txt
Dateien.
Ändern Sie zunächst in Ihrer .env
Datei INDEX_SAVE_DIR
dahingehend, wo Ihr Index gespeichert werden soll. Die App ändert oder überschreibt keinen vorhandenen Index. Ändern Sie daher entweder das Verzeichnis in der .env
oder löschen Sie den vorhandenen Index unter ./index-toy
.
Es gibt zwei Möglichkeiten, Daten hinzuzufügen:
.txt
Dateien zum Verzeichnis local_data/
hinzu. Sie können toy_data/
aus der Liste INDEX_LOCAL_DATA_DIRS
in unserer .env
Datei entfernen. Sie können der Liste INDEX_LOCAL_DATA_DIRS
auch einfach ein weiteres Verzeichnis hinzufügen.INDEX_URLS
in Ihrer .env
Datei angeben, z. B. INDEX_URLS=url1,url2,...
.