Skip to main content

The smallest possible LLM API

Project description

llama-small

MicroLlama

The smallest possible LLM API. Build a question and answer interface to your own content in a few minutes. Uses OpenAI embeddings, gpt-3.5 and Faiss, via Langchain.

Usage

  1. Combine your source documents into a single JSON file called source.json. It should look like this:
[
    {
        "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."
    }, 
    ...
]

See example.source.json for an example.

  1. Install MicroLlama into a virtual environment:
pip install microllama
  1. Get an OpenAI API key and add it to the environment, e.g. export OPENAI_API_KEY=sk-etc. Note that indexing and querying require OpenAI credits, which aren't free.

  2. Run your server with microllama. If a vector search index doesn't exist, it'll be created from your source.json, and stored.

  3. Query your documents at /api/ask?your question.

  4. Microllama includes an optional web front-end, which is generated with microllama make-front-end. This command creates a single index.html file which you can edit. It's served at /.

Configuration

Microllama is configured through environment variables, with the following defaults:

  • OPENAI_API_KEY: required
  • FAISS_INDEX_PATH: "faiss_index"
  • SOURCE_JSON: "source.json"
  • MAX_RELATED_DOCUMENTS: "5"
  • EXTRA_CONTEXT: "Answer in no more than three sentences. If the answer is not included in the context, say 'Sorry, this is no answer for this in my sources.'."
  • UVICORN_HOST: "0.0.0.0"
  • UVICORN_PORT: "8080"

Deploying your API

Create a Dockerfile with microllama make-dockerfile. Then:

On Fly.io

Sign up for a Fly.io account and install flyctl. Then:

fly launch # answer no to Postgres, Redis and deploying now 
fly secrets set OPENAI_API_KEY=sk-etc 
fly deploy

On Google Cloud Run

gcloud run deploy --source . --set-env-vars="OPENAI_API_KEY=sk-etc"

For Cloud Run and other serverless platforms you should generate the FAISS index at container build time, to reduce startup time. See the two commented lines in Dockerfile.

You can also generate these commands with microllama deploy.

Based on

TODO

  • Use splitting which generates more meaningful fragments, e.g. text_splitter = SpacyTextSplitter(chunk_size=700, chunk_overlap=200, separator=" ")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

microllama-0.4.4.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

microllama-0.4.4-py2.py3-none-any.whl (14.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file microllama-0.4.4.tar.gz.

File metadata

  • Download URL: microllama-0.4.4.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.2

File hashes

Hashes for microllama-0.4.4.tar.gz
Algorithm Hash digest
SHA256 bf217bd7cb78d7fecc89fe31ff0f301607bfac42ce9142c41d1dd6141faee45b
MD5 2b3c1a6869477e14ff94ac9683e27cff
BLAKE2b-256 805d446315b41cff485499aff6d9e08af274c17a6bd43c776b43b9632197b9d9

See more details on using hashes here.

File details

Details for the file microllama-0.4.4-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for microllama-0.4.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8fc07e3ab2ce2ffb65ba8576c9d1c3b54b95b69b6aba7f16f0242e12dfa8d2b8
MD5 5132494eb344298eea6bf3f0558b7df1
BLAKE2b-256 0babd3409752bbbf0c2127ae6fdf38be9638f6fb4a1dbb9b9110cf0b26ae05c5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page