La plus petite API LLM possible. Créez une interface de questions et réponses pour votre propre contenu en quelques minutes. Utilise les intégrations OpenAI, gpt-3.5 et Faiss, via Langchain.
source.json
. Cela devrait ressembler à ceci : [
{
"source" : " Reference to the source of your content. Typically a title. " ,
"url" : " URL for your source. This key is optional. " ,
"content" : " Your content as a single string. If there's a title or summary, put these first, separated by new lines. "
},
...
]
Voir example.source.json
pour un exemple.
pip install microllama
Obtenez une clé API OpenAI et ajoutez-la à l'environnement, par exemple export OPENAI_API_KEY=sk-etc
. Notez que l'indexation et les requêtes nécessitent des crédits OpenAI, qui ne sont pas gratuits.
Exécutez votre serveur avec microllama
. Si un index de recherche vectorielle n'existe pas, il sera créé à partir de votre source.json
et stocké.
Recherchez vos documents dans /api/ask?votre question.
Microllama inclut une interface Web facultative, générée avec microllama make-front-end
. Cette commande crée un seul fichier index.html
que vous pouvez modifier. Il est servi à /.
Microllama est configuré via des variables d'environnement, avec les valeurs par défaut suivantes :
OPENAI_API_KEY
: obligatoireFAISS_INDEX_PATH
: "faiss_index"SOURCE_JSON
: "source.json"MAX_RELATED_DOCUMENTS
: "5"EXTRA_CONTEXT
: "Répondez en trois phrases maximum. Si la réponse n'est pas incluse dans le contexte, dites 'Désolé, il n'y a pas de réponse à cela dans mes sources.'."UVICORN_HOST
: "0.0.0.0"UVICORN_PORT
: "8080" Créez un Dockerfile avec microllama make-dockerfile
. Alors:
Créez un compte Fly.io et installez flyctl. Alors:
fly launch # answer no to Postgres, Redis and deploying now
fly secrets set OPENAI_API_KEY=sk-etc
fly deploy
gcloud run deploy --source . --set-env-vars= " OPENAI_API_KEY=sk-etc "
Pour Cloud Run et d'autres plates-formes sans serveur, vous devez générer l'index FAISS au moment de la création du conteneur, afin de réduire le temps de démarrage. Voir les deux lignes commentées dans Dockerfile
.
Vous pouvez également générer ces commandes avec microllama deploy
.
SpacyTextSplitter(chunk_size=700, chunk_overlap=200, separator=" ")