Skip to main content

CLI utility and Python library for interacting with Large Language Models from organizations like OpenAI, Anthropic and Gemini plus local models installed on your own machine.

Project description

LLM

PyPI Documentation Changelog Tests License Discord Homebrew

A CLI utility and Python library for interacting with Large Language Models, both via remote APIs and models that can be installed and run on your own machine.

Run prompts from the command-line, store the results in SQLite, generate embeddings and more.

Consult the LLM plugins directory for plugins that provide access to remote and local models.

Full documentation: llm.datasette.io

Background on this project:

Installation

Install this tool using pip:

pip install llm

Or using Homebrew:

brew install llm

Detailed installation instructions.

Getting started

If you have an OpenAI API key you can get started using the OpenAI models right away.

As an alternative to OpenAI, you can install plugins to access models by other providers, including models that can be installed and run on your own device.

Save your OpenAI API key like this:

llm keys set openai

This will prompt you for your key like so:

Enter key: <paste here>

Now that you've saved a key you can run a prompt like this:

llm "Five cute names for a pet penguin"
1. Waddles
2. Pebbles
3. Bubbles
4. Flappy
5. Chilly

Read the usage instructions for more.

Installing a model that runs on your own machine

LLM plugins can add support for alternative models, including models that run on your own machine.

To download and run Mistral 7B Instruct locally, you can install the llm-gpt4all plugin:

llm install llm-gpt4all

Then run this command to see which models it makes available:

llm models
gpt4all: all-MiniLM-L6-v2-f16 - SBert, 43.76MB download, needs 1GB RAM
gpt4all: orca-mini-3b-gguf2-q4_0 - Mini Orca (Small), 1.84GB download, needs 4GB RAM
gpt4all: mistral-7b-instruct-v0 - Mistral Instruct, 3.83GB download, needs 8GB RAM
...

Each model file will be downloaded once the first time you use it. Try Mistral out like this:

llm -m mistral-7b-instruct-v0 'difference between a pelican and a walrus'

You can also start a chat session with the model using the llm chat command:

llm chat -m mistral-7b-instruct-v0
Chatting with mistral-7b-instruct-v0
Type 'exit' or 'quit' to exit
Type '!multi' to enter multiple lines, then '!end' to finish
> 

Using a system prompt

You can use the -s/--system option to set a system prompt, providing instructions for processing other input to the tool.

To describe how the code in a file works, try this:

cat mycode.py | llm -s "Explain this code"

Help

For help, run:

llm --help

You can also use:

python -m llm --help

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

llm-0.25a0.tar.gz (58.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llm-0.25a0-py3-none-any.whl (60.1 kB view details)

Uploaded Python 3

File details

Details for the file llm-0.25a0.tar.gz.

File metadata

  • Download URL: llm-0.25a0.tar.gz
  • Upload date:
  • Size: 58.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for llm-0.25a0.tar.gz
Algorithm Hash digest
SHA256 05b45d87067cb3b8c70bb21c414779d4bc9c73ac1cf9fda0986cd1527e12a140
MD5 bc34502679d445f728f2af6cb7648f5d
BLAKE2b-256 391d97268ba34fc02ed37a68368becb6eea39874e91e0daacd8da36d5f1700cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm-0.25a0.tar.gz:

Publisher: publish.yml on simonw/llm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm-0.25a0-py3-none-any.whl.

File metadata

  • Download URL: llm-0.25a0-py3-none-any.whl
  • Upload date:
  • Size: 60.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for llm-0.25a0-py3-none-any.whl
Algorithm Hash digest
SHA256 04591074869e3aed4723fc9d5a18c663d9f6caf1c20e4e4c5fa97aac3b48e8bd
MD5 b54b18e7214d77dfc8796483243c4e91
BLAKE2b-256 eb5c6f0953f25b17d9aba60f9fcf0c0fc5709ba7c11f450a96c3526ff0c9a9ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm-0.25a0-py3-none-any.whl:

Publisher: publish.yml on simonw/llm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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