Skip to main content

langroid-examples

Examples of using the Langroid Multi-Agent Programming framework to build LLM applications.

⚠️ Many of the examples in the examples folder in this repo are copied from the corresponding folder in the core langroid repo, although the core repo is generally more updated. We occasionally update this repo with the latest versions from the langroid repo. However, there are some examples in this repo that are not in the core langroid repo.

Set up various keys in the .env file or as environment variables

Many of the examples require API keys for LLMs, vector-stores, redis-cache, etc. Follow the instructions in the main langroid repo to set up these keys in the .env file, or explicitly set the environment variables in your shell using, e.g., export GEMINI_API_KEY=your_key.

Use uv to run the examples

First clone this repo, then go to the root dir (e.g., cd langroid-examples).

Install uv, see here

Then run any of the examples as in the examples below:

uv run examples/basic/chat.py
uv run examples/docqa/chat.py

The chainlit examples can be run using:

uv run chainlit run examples/basic/simplest.py

This auto-installs a virtual env with the right dependencies and runs the example. The first run may take a little bit of time as it installs the dependencies.

Many of the non-chainlit scripts take additional flags such as the following, but see the specific scripts for details:

  • -m to specify an LLM, e.g. -m ollama/mistral.
  • -nc turn off cache retrieval for LLM responses, i.e., get fresh (rather than cached) responses each time you run it.
  • -d turns on debug mode, showing more detail such as prompts etc.

All of the examples are best run on the command-line, preferably in a nice terminal like Iterm2.

Run scripts with No repo cloning, No venv setup

In pyproject.toml we've set up some specific scripts to be runnable from anywhere, without cloning this repo, and without setting up any venv etc, simply by using uvx, e.g.:

uvx --from langroid-examples chat
uvx --from langroid-examples completion
uvx --from langroid-examples chatdoc
uvx --from langroid-examples chatsearch

We'll add more scripts to this list as needed.

For developers/contributors

First-time set up of the project with uv

To set up the project the first time using uv, we did the following (it was only needed one time, but recording it here for future reference):

Initialize the project as an application named examples with Python 3.11:

uv init --app --name examples --python 3.11

This creates a pyproject.toml with the appropriate entries.

Create virtual env and install dependencies

Then create a virtual env, activate it and install the dependencies:

uv venv --python 3.11
. ./.venv/bin/activate 
uv pip install -r pyproject.toml 

Ubuntu

On ubuntu, for the SQL applications, you'll need to make sure a few dependencies are installed including:

  • postgresql
sudo apt-get install libpq-dev
  • mysql dev
sudo apt install libmysqlclient-dev
  • and if you are on an earlier version of ubuntu, then python11
sudo apt install python3.11-dev build-essential

Docker Instructions

We provide a containerized version of this repo via this Docker Image. All you need to do is set up environment variables in the .env file. Please follow these steps to setup the container:

# get the .env file template from `langroid` repo
wget https://github.com/langroid/langroid/blob/main/.env-template .env

# Edit the .env file with your favorite editor (here nano):
# add API keys as explained above
nano .env

# launch the container
docker run -it  -v ./.env:/.env langroid/langroid

# Use this command to run any of the examples
python examples/<Path/To/Example.py> 

Metadata

Release files for langroid-examples 0.1.25

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for langroid-examples 0.1.25
File Size Uploaded
langroid_examples-0.1.25.tar.gz 18.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for langroid-examples 0.1.25
File Interpreter ABI Platform
langroid_examples-0.1.25-py3-none-any.whl Python 3 none any Details

Total release size: 36.2 MB

Release files / langroid_examples-0.1.25.tar.gz

Download URL langroid_examples-0.1.25.tar.gz
Size 18.0 MB
Tags Source
SHA-256 checksum
How to use checksums
a0d35dc83e395f02ea25a451f0cd25510eaca4a6e501dceb8500440fe2522851
BLAKE2b-256 checksum
How to use checksums
84027256bc4aa4413bc64a0d84cd35e47a95da5d7e575958357541c54e018887
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.8

Release files / langroid_examples-0.1.25-py3-none-any.whl

Download URL langroid_examples-0.1.25-py3-none-any.whl
Size 18.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4216e491c0081b695ebb3c5747ef9b596b8f99f4981dcaa12b02d7099113a6e5
BLAKE2b-256 checksum
How to use checksums
56a3ecd6688e1a0e2a3da94d66201bfb871f8f3f36dbdf62f015b4d7785dc5fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.8

Release history Release notifications | RSS feed

This release

0.1.25 This release

2 release files

0.1.24

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page