使用 Langroid 多智能体编程框架构建 LLM 应用的示例。
:warning: 本仓库 examples 文件夹中的许多示例是从核心 langroid 仓库的对应文件夹复制而来,但核心仓库通常更新更及时。我们会偶尔从 langroid 仓库更新本仓库至最新版本。不过,本仓库中也包含一些核心 langroid 仓库中没有的示例。
.env 文件或环境变量中设置各种密钥许多示例需要 LLM、向量数据库、Redis 缓存等的 API 密钥。请按照主 langroid 仓库的说明在 .env 文件中设置这些密钥,或者在 shell 中显式设置环境变量,例如 export GEMINI_API_KEY=your_key。
uv 运行示例首先克隆此仓库,然后进入根目录(例如 cd langroid-examples)。
安装 uv,参见此处。
创建 Python 3.11 虚拟环境,激活它,并安装依赖:
uv venv --python 3.11
. ./.venv/bin/activate
uv sync
然后运行任意脚本,如下例所示:
uv run examples/basic/chat.py
uv run examples/docqa/chat.py
chainlit 示例可以使用以下命令运行:
uv run chainlit run examples/basic/simplest.py
这将自动安装具有正确依赖项的虚拟环境并运行示例。首次运行可能需要一些时间来安装依赖。
许多非 chainlit 脚本接受额外的标志,例如以下这些,但请查看具体脚本以了解详情:
-m 用于指定 LLM,例如 -m ollama/mistral。-nc 关闭 LLM 响应的缓存检索,即每次运行时获取新的(而非缓存的)响应。-d 开启调试模式,显示更多详细信息,如提示词等。所有示例最好在命令行中运行,建议使用像 Iterm2 这样的优秀终端。
在 pyproject.toml 中,我们设置了一些特定的脚本,使其可以在任何地方运行,无需克隆此仓库,也无需设置任何虚拟环境等,只需使用 uvx,例如:
uvx --from langroid-examples chat
uvx --from langroid-examples completion
uvx --from langroid-examples chatdoc
uvx --from langroid-examples chatsearch
我们将根据需要向此列表添加更多脚本。
uv 设置项目首次使用 uv 设置项目时,我们执行了以下操作(仅需一次,但记录在此供将来参考):
将项目初始化为名为 examples 的应用程序,使用 Python 3.11:
uv init --app --name examples --python 3.11
这将创建一个包含适当条目的 pyproject.toml 文件。
然后创建虚拟环境,激活它并安装依赖:
uv venv --python 3.11
. ./.venv/bin/activate
uv pip install -r pyproject.toml
在 Ubuntu 上,对于 SQL 应用程序,您需要确保安装了一些依赖项,包括:
sudo apt-get install libpq-dev
sudo apt install libmysqlclient-dev
sudo apt install python3.11-dev build-essential
我们通过此 Docker 镜像 提供了此仓库的容器化版本。您只需在 .env 文件中设置环境变量。请按照以下步骤设置容器:
# 从 `langroid` 仓库获取 .env 文件模板
wget https://github.com/langroid/langroid/blob/main/.env-template .env
# 使用您喜欢的编辑器(此处为 nano)编辑 .env 文件:
# 按照上述说明添加 API 密钥
nano .env
# 启动容器
docker run -it -v ./.env:/.env langroid/langroid
# 使用此命令运行任何示例
python examples/<Path/To/Example.py>