Самый маленький из возможных LLM API. Создайте интерфейс вопросов и ответов для собственного контента за несколько минут. Использует встраивания OpenAI, gpt-3.5 и Faiss через Langchain.
source.json
. Это должно выглядеть так: [
{
"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. "
},
...
]
См. пример example.source.json
.
pip install microllama
Получите ключ API OpenAI и добавьте его в среду, например export OPENAI_API_KEY=sk-etc
. Обратите внимание, что для индексирования и выполнения запросов требуются кредиты OpenAI, которые не бесплатны.
Запустите свой сервер с помощью microllama
. Если индекс векторного поиска не существует, он будет создан из вашего source.json
и сохранен.
Запросите свои документы по адресу /api/ask?your вопрос.
Microllama включает в себя дополнительный веб-интерфейс, который создается с помощью microllama make-front-end
. Эта команда создает один файл index.html
, который вы можете редактировать. Его подают в /.
Microllama настраивается через переменные среды со следующими значениями по умолчанию:
OPENAI_API_KEY
: требуется.FAISS_INDEX_PATH
: "faiss_index"SOURCE_JSON
: "source.json"MAX_RELATED_DOCUMENTS
: "5"EXTRA_CONTEXT
: «Ответьте не более чем в трех предложениях. Если ответ не включен в контекст, скажите: «Извините, в моих источниках нет ответа на этот вопрос».»UVICORN_HOST
: «0.0.0.0»UVICORN_PORT
: "8080" Создайте Dockerfile с помощью microllama make-dockerfile
. Затем:
Зарегистрируйте учетную запись Fly.io и установите Flyctl. Затем:
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 "
Для Cloud Run и других бессерверных платформ индекс FAISS следует создавать во время сборки контейнера, чтобы сократить время запуска. См. две строки с комментариями в Dockerfile
.
Вы также можете сгенерировать эти команды с помощью microllama deploy
.
SpacyTextSplitter(chunk_size=700, chunk_overlap=200, separator=" ")