Этот проект представляет собой небольшую обертку над 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, который предлагает аккуратный мониторинг затрат и статистику использования, установите дополнительные зависимости через:
pip install -e ' .[proxy] '
Скопируйте файл .env.secrets.example
, чтобы создать свой собственный файл .env.secrets
, и введите свои конкретные ключи API для сервисов, которые вы планируете использовать, таких как OpenAI, MistralAI, модели Anthropic и других.
cp .env.secrets.example .env.secrets
Отредактируйте файл .env.secrets
с помощью предпочитаемого вами текстового редактора и при необходимости обновите ключи API.
Сначала вам нужно настроить базу данных postgres для хранения информации об использовании из Litellm. Самый простой способ сделать это — создать бесплатный экземпляр Postgres Superbase, размещенный на AWS.
Когда БД будет готова к использованию, убедитесь, что вы можете подключиться к ней.
psql postgresql:// < user > : < password > @ < host > : < port > / < dbname >
Если соединение установлено успешно, просто установите переменную окружения DATABASE_URL
в файле .env.secrets
, и все готово. При следующем запуске сервера Litellm он автоматически подключится к БД.
Выполнив эти шаги, вы будете готовы к работе над проектом и запуску приложений.
Запустите следующую команду
python setup.py fix
python setup.py review --file path/to/file
Одной из сильных сторон LiteLLM является то, что он предлагает унифицированный интерфейс для вызова различных LLM, а также другие интересные функции. В этом контексте мы используем расширение возможностей AutoGen для использования других моделей ИИ (которые в настоящее время не поддерживаются «из коробки», но являются незавершенными).
python setup.py litellm
Autogen также предлагает аккуратный пользовательский интерфейс.
Следующая команда запускает приложение AGS и делает пользовательский интерфейс доступным по адресу http://localhost:8083. База данных AGS sqlite вместе с другими связанными артефактами хранится в src/ui
.
python setup.py ui
По умолчанию запросы моделей OpenAI не перенаправляются через Litellm. Это связано с тем, что если вы используете только этого поставщика LLM, нет смысла добавлять дополнительный уровень, поскольку вы можете легко отслеживать затраты на https://platform.openai.com/usage. Однако, если вы используете несколько поставщиков LLM, имеет смысл объединить все данные на одной информационной панели -> LiteLLM UI
.
Если прокси-сервер LiteLLM запущен и работает, все запросы openai будут автоматически перенаправляться через прокси.
Шаги:
После настройки среды и конфигурации вы можете запускать приложения в каталоге src/applications/
.
При выполнении приложения создается новый сеанс разговора на основе потока, определенного в этом приложении.
Существует два общих приложения для разговоров:
start_conversation.py
запускает простой разговор с выбранным агентом из списка предопределенных специализированных агентов.start_curated_conversation.py
добавляет в беседу ИИ-критика, который рассматривает утверждения главного агента. Новые пользовательские агенты можно добавить в файл определения 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