La API LLM más pequeña posible. Cree una interfaz de preguntas y respuestas para su propio contenido en unos minutos. Utiliza incrustaciones de OpenAI, gpt-3.5 y Faiss, a través de Langchain.
source.json
. Debería verse así: [
{
"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. "
},
...
]
Consulte example.source.json
para ver un ejemplo.
pip install microllama
Obtenga una clave API de OpenAI y agréguela al entorno, por ejemplo, export OPENAI_API_KEY=sk-etc
. Tenga en cuenta que la indexación y las consultas requieren créditos de OpenAI, que no son gratuitos.
Ejecute su servidor con microllama
. Si no existe un índice de búsqueda vectorial, se creará a partir de su source.json
y se almacenará.
Consulta tus documentos en /api/ask?tu pregunta.
Microllama incluye un front-end web opcional, que se genera con microllama make-front-end
. Este comando crea un único archivo index.html
que puede editar. Se sirve en /.
Microllama se configura a través de variables de entorno, con los siguientes valores predeterminados:
OPENAI_API_KEY
: requeridoFAISS_INDEX_PATH
: "faiss_index"SOURCE_JSON
: "fuente.json"MAX_RELATED_DOCUMENTS
: "5"EXTRA_CONTEXT
: "Responda en no más de tres oraciones. Si la respuesta no está incluida en el contexto, diga 'Lo siento, esta no es una respuesta para esto en mis fuentes'".UVICORN_HOST
: "0.0.0.0"UVICORN_PORT
: "8080" Crea un Dockerfile con microllama make-dockerfile
. Entonces:
Regístrese para obtener una cuenta Fly.io e instale flyctl. Entonces:
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 "
Para Cloud Run y otras plataformas sin servidor, debe generar el índice FAISS en el momento de la construcción del contenedor para reducir el tiempo de inicio. Vea las dos líneas comentadas en Dockerfile
.
También puedes generar estos comandos con microllama deploy
.
SpacyTextSplitter(chunk_size=700, chunk_overlap=200, separator=" ")