该项目是 AutoGen 的一个小型包装。它集成了 LiteLLM 代理服务器,使您可以轻松访问任何 LLM(专有或开源),而无需离开舒适的终端。
它使用 Rich 和prompt_toolkit 库对输入/输出进行着色,这使得在普通终端中读取大型响应更容易理解:
输入:输出
本节提供有关如何设置开发环境以处理此项目的说明。
在开始之前,请确保您的系统上安装了pyenv
或conda
来管理 Python 版本和环境。
该项目使用 Python 3.11.8
进行测试。建议使用此特定版本以避免任何兼容性问题。
如果您使用pyenv
,则可以使用以下命令安装 Python 3.11.8
并将其设置为项目的本地版本:
pyenv install 3.11.8
pyenv local 3.11.8
pyenv virtualenv myenv
如果您更喜欢conda
,请使用以下命令使用 Python 3.11.8
创建新环境:
conda create --name myenv python=3.11.8
conda activate myenv
将myenv
替换为您为环境选择的名称。
设置正确的 Python 版本后,通过运行以下命令安装项目依赖项:
pip install -e .
如果您还计划设置和使用 litellm 代理仪表板 UI(它提供简洁的成本监控和使用统计信息),请通过以下方式安装额外的依赖项:
pip install -e ' .[proxy] '
复制.env.secrets.example
文件以创建您自己的.env.secrets
文件,并为您计划使用的服务(例如 OpenAI、MistralAI、Anthropic 模型或其他)填写您的特定 API 密钥。
cp .env.secrets.example .env.secrets
使用您喜欢的文本编辑器编辑.env.secrets
文件,并根据需要更新 API 密钥。
首先,您需要设置一个 postgres 数据库来存储来自 litellm 的使用信息。最简单的方法是创建一个由 AWS 托管的免费 Superbase postgres 实例。
一旦数据库准备好使用,请确保您可以连接它
psql postgresql:// < user > : < password > @ < host > : < port > / < dbname >
如果连接成功,只需在.env.secrets
文件中设置DATABASE_URL
环境变量即可开始操作。下次启动 litellm 服务器时,它将自动连接到数据库。
通过这些步骤,您应该准备好处理该项目并运行应用程序。
运行以下命令
python setup.py fix
python setup.py review --file path/to/file
LiteLLM 的优点之一是它提供了一个统一的接口来调用各种 LLM 以及其他很酷的功能。在这种情况下,我们用来扩展 AutoGen 的功能以使用其他 AI 模型(目前不支持开箱即用,但仍处于 WIP 状态)。
python setup.py litellm
Autogen 还提供了简洁的用户界面。
以下命令启动 AGS 应用程序并使 UI 在 http://localhost:8083 上可用。 AGS sqlite DB 以及其他相关工件存储在src/ui
中。
python setup.py ui
默认情况下,OpenAI 模型请求不通过 litellm 路由。这是因为,如果您只使用这个 LLM 提供商,那么添加额外的层是没有意义的,因为您可以在 https://platform.openai.com/usage 中轻松监控成本。但是,如果您使用多个 LLM 提供商,则将所有数据聚合在单个仪表板 -> LiteLLM UI
中是有意义的。
如果 LiteLLM 代理服务器已启动并正在运行,则所有 openai 请求将自动通过代理路由。
步骤:
设置环境和配置后,您可以运行src/applications/
目录中的应用程序。
执行应用程序会根据该应用程序中定义的流程创建新的对话会话。
有 2 个通用对话应用程序:
start_conversation.py
与从预定义的专用代理列表中选择的代理启动一个简单的对话。start_curated_conversation.py
在对话中添加了一个评论家 AI,用于审查主要代理的声明可以在代理定义文件agents/custom_agents.py
中添加新的自定义代理。
您可以调整每个应用程序内的message
,或者执行脚本并在命令行中输入提示(推荐)。提示支持多行,因此Enter
仅插入新行。要提交提示,请按(Meta|Esc)+Enter
。
python chef.py
chef.py
应用程序演示了如何使用代理来促进有关烹饪的对话。它显示了与多个代理的群聊的设置以及与用户查询的聊天的启动。
ollama run codellama
litellm_config.yml
文件以包含新的本地模型引用或对任何其他 API 服务(如 Mistral AI)的引用。其他流行模型:https://huggingface.co/WizardLM