Une CLI interactive très basique pour indexer et interroger des documents à l'aide de fichiers lama pour les intégrations et la génération de texte. L'index est basé sur un magasin de vecteurs FAISS. Le modèle d'intégration par défaut est mxbai-embed-large-v1 (lien lamafile) et le modèle de génération de texte est mistral-7b-instruct-v0.2 (lien lamafile). (Ceux-ci peuvent être modifiés en éditant setup.sh
.)
Installation:
cp .env.example .env
./setup.sh
Ce script téléchargera les fichiers lama depuis HuggingFace et peut prendre plusieurs minutes en fonction de votre connexion Internet.
REMARQUE : le script d'installation nécessite pyenv
Pour démarrer l'application, exécutez :
./app.sh
Lorsque vous exécutez l'application, cela :
toy_data/
dans un magasin de vecteurs (l'"index"). Contenu du répertoire 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 ? ] >
Si vous appuyez simplement sur Entrée ici, la requête par défaut sera « Qu'est-ce qu'Alice aime ? ». Le résultat de l'application devrait ressembler à :
=== 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."
--------------------------------------------------------------------------------
Voici quelques autres requêtes que vous pouvez essayer :
C'est à peu près tout.
Vous pouvez modifier la plupart des paramètres de l'application via le fichier .env
. Le fichier par défaut devrait ressembler à :
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
Voir settings.py pour toutes les options disponibles.
Par défaut, l'application utilise :
Par défaut, l'application est configurée pour indexer le contenu des répertoires répertoriés dans INDEX_LOCAL_DATA_DIRS
, qui sont local_data
et toy_data
. Actuellement, nous ne prenons en charge que l'indexation des fichiers .txt
.
Tout d'abord, dans votre .env
, remplacez INDEX_SAVE_DIR
par l'endroit où vous souhaitez que votre index soit enregistré. L'application ne modifiera ni n'écrasera un index existant, donc modifiez le répertoire dans le .env
ou supprimez l'index existant dans ./index-toy
.
Il existe 2 manières d'ajouter des données :
.txt
au répertoire local_data/
. Vous pouvez supprimer toy_data/
de la liste INDEX_LOCAL_DATA_DIRS
dans notre fichier .env
. Vous pouvez également simplement ajouter un autre répertoire à la liste INDEX_LOCAL_DATA_DIRS
.INDEX_URLS
dans votre fichier .env
, par exemple INDEX_URLS=url1,url2,...
.