Skip to content

Commit

Permalink
Add Russian translation of README and Russian flag icon to main READM…
Browse files Browse the repository at this point in the history
…E to indicate the presence of the translated version (README-ru.md).
  • Loading branch information
TungusSs committed Apr 10, 2023
1 parent 167dc86 commit 530894f
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 1 deletion.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@

</h1>

# Readme translations:
<kbd>[<img title="Russian" alt="Russian" src="https://cdn.staticaly.com/gh/hjnilsson/country-flags/master/svg/ru.svg" width="22">](docs/README-ru.md)</kbd>

# Objective
This Python script is an example of an AI-powered task management system. The system uses OpenAI and Pinecone APIs to create, prioritize, and execute tasks. The main idea behind this system is that it creates tasks based on the result of previous tasks and a predefined objective. The script then uses OpenAI's natural language processing (NLP) capabilities to create new tasks based on the objective, and Pinecone to store and retrieve task results for context. This is a pared-down version of the original [Task-Driven Autonomous Agent](https://twitter.com/yoheinakajima/status/1640934493489070080?s=20) (Mar 28, 2023).

Expand Down Expand Up @@ -74,4 +77,4 @@ I am new to GitHub and open source, so please be patient as I learn to manage th
# Backstory
BabyAGI is a pared-down version of the original [Task-Driven Autonomous Agent](https://twitter.com/yoheinakajima/status/1640934493489070080?s=20) (Mar 28, 2023) shared on Twitter. This version is down to 140 lines: 13 comments, 22 blanks, and 105 code. The name of the repo came up in the reaction to the original autonomous agent - the author does not mean to imply that this is AGI.

Made with love by [@yoheinakajima](https://twitter.com/yoheinakajima), who happens to be a VC (would love to see what you're building!)
Made with love by [@yoheinakajima](https://twitter.com/yoheinakajima), who happens to be a VC (would love to see what you're building!)
78 changes: 78 additions & 0 deletions docs/README-ru.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<h1 align="center">
babyagi

</h1>

# Задача
Этот Python-скрипт является примером системы управления задачами на основе искусственного интеллекта. Система использует API OpenAI и Pinecone для создания, определения приоритетов и выполнения задач. Основная идея этой системы заключается в том, что она создает задачи на основе результатов предыдущих задач и заранее определенной цели. Затем скрипт использует возможности обработки естественного языка (NLP) OpenAI для создания новых задач на основе цели, а Pinecone - для хранения и извлечения результатов задач в контексте. Это урезанная версия оригинального [Task-Driven Autonomous Agent](https://twitter.com/yoheinakajima/status/1640934493489070080?s=20) (Mar 28, 2023).

В этом README будет описано следующее:

* [Как работает скрипт](#как-это-работает)

* [Как использовать скрипт](#как-этим-пользоваться)

* [Поддерживаемые Модели](#поддерживаемые-модели)

* [Предупреждение о непрерывном запуске скрипта](#предупреждение-о-запуске-скрипта)
# Как это работает<a name="как-это-работает"></a>
Скрипт работает путем запуска бесконечного цикла, который выполняет следующие действия:

1. Вытаскивает первую задачу из списка задач.
2. Отправляет задачу агенту выполнения, который использует API OpenAI для выполнения задачи на основе контекста.
3. Обогащает результат и сохраняет его в Pinecone.
4. Создает новые задачи и изменяет приоритеты в списке задач на основе цели и результата предыдущей задачи.

Функция execution_agent() является тем местом, где используется API OpenAI. Она принимает два параметра: цель и задачу. Затем она посылает подсказку API OpenAI, который возвращает результат выполнения задачи. Подсказка состоит из описания задачи системы искусственного интеллекта, цели и самой задачи. Результат возвращается в виде строки.

Функция task_creation_agent() - это функция, в которой API OpenAI используется для создания новых задач на основе цели и результата предыдущей задачи. Функция принимает четыре параметра: цель, результат предыдущей задачи, описание задачи и текущий список задач. Затем она отправляет запрос в API OpenAI, который возвращает список новых задач в виде строк. Затем функция возвращает новые задачи в виде списка словарей, где каждый словарь содержит название задачи.

Функция prioritization_agent() - это функция, в которой API OpenAI используется для изменения приоритетов списка задач. Функция принимает один параметр - идентификатор текущей задачи. Она отправляет запрос в API OpenAI, который возвращает список задач с измененными приоритетами в виде нумерованного списка.

Наконец, скрипт использует Pinecone для хранения и извлечения результатов задач в контексте. Скрипт создает индекс Pinecone на основе имени таблицы, указанной в переменной YOUR_TABLE_NAME. Затем Pinecone используется для хранения результатов задачи в индексе, вместе с именем задачи и любыми дополнительными метаданными.

# Как этим пользоваться<a name="как-этим-пользоваться"></a>
Чтобы воспользоваться скриптом, необходимо выполнить следующие шаги:

1. Клонируйте репозиторий с помощью `git clone https://github.com/yoheinakajima/babyagi.git` и `cd` в клонированный репозиторий.
2. Установите необходимые пакеты: `pip install -r requirements.txt`.
3. Скопируйте файл .env.example в .env: `cp .env.example .env`. Здесь вы установите следующие переменные.
4. Задайте ключи API OpenAI и Pinecone в переменных OPENAI_API_KEY, OPENAPI_API_MODEL и PINECONE_API_KEY.
5. Установите окружение Pinecone в переменной PINECONE_ENVIRONMENT.
6. Задайте имя таблицы, в которой будут храниться результаты задачи, в переменной TABLE_NAME.
7. (Необязательно) Задайте цель системы управления задачами в переменной OBJECTIVE.
8. (Необязательно) Задайте первую задачу системы в переменной INITIAL_TASK.
9. Запустите скрипт.

Все необязательные значения, указанные выше, могут быть также заданы в командной строке.

# Поддерживаемые Модели<a name="поддерживаемые-модели"></a>

Этот скрипт работает со всеми моделями OpenAI, а также с Llama через Llama.cpp. Модель по умолчанию - **gpt-3.5-turbo**. Чтобы использовать другую модель, укажите ее через OPENAI_API_MODEL или используйте командную строку.

## Llama

Скачайте последнюю версию [Llama.cpp](https://github.com/ggerganov/llama.cpp) и следуйте инструкциям для ее создания. Вам также понадобятся модельные грузы (model weights) Llama.
- **Ни при каких обстоятельствах не делитесь IPFS, magnet-ссылками или любыми другими ссылками на загрузку моделей в этом репозитории, в том числе в вопросах, обсуждениях или запросах. Они будут немедленно удалены.**

После этого соедините `llama/main` с llama.cpp/main и `models` с папкой, где у вас лежат веса моделей Llama. Затем запустите скрипт с аргументом `OPENAI_API_MODEL=llama` или `-l`.

# Предупреждение<a name="предупреждение-о-запуске-скрипта"></a>
Этот скрипт предназначен для непрерывного выполнения в рамках системы управления задачами. Постоянный запуск этого скрипта может привести к высокому использованию API поэтому, пожалуйста, используйте его ответственно. Кроме того, скрипт требует правильной настройки API OpenAI и Pinecone, поэтому убедитесь, что вы настроили API перед запуском скрипта.

# Вклад в развитие проекта

BabyAGI все еще находится в зачаточном состоянии, поэтому мы определяем его направление и шаги развития. В настоящее время основная цель дизайна BabyAGI - быть *простым*, чтобы его было легко понять и развивать. Чтобы сохранить эту простоту, мы просим вас придерживаться следующих правил при подаче PR:
* Сосредоточьтесь на небольших модульных модификациях, а не на обширном рефакторинге.
* При введении новых функций предоставляйте подробное описание конкретного случая использования, который вы рассматриваете.

Заметка от @yoheinakajima (Apr 5th, 2023):

> Я знаю, что количество PR растет, ценю ваше терпение - поскольку я новичок на GitHub/OpenSource и не планировал свое время на этой неделе. Что касается направления, я размышлял о сохранении простоты и расширении - сейчас я склоняюсь к сохранению простоты ядра Baby AGI и использованию его в качестве платформы для поддержки и продвижения различных подходов к его расширению (например, BabyAGIxLangchain как одно из направлений). Я считаю, что существуют различные подходы, которые стоит изучить, и я вижу ценность в наличии центрального места для сравнения и обсуждения. Больше обновлений будет в ближайшее время.

Я новичок в GitHub и Open Source поэтому, пожалуйста, будьте терпеливы, пока я учусь правильно управлять этим проектом. Днем я работаю в венчурной фирме, так что обычно я буду проверять PR и проблемы по ночам, после того как уложу своих детей - что может происходить не каждый вечер. Открыт для идеи привлечения поддержки, скоро обновлю этот раздел (ожидания, видение проекта и т.д.). Общаюсь со многими людьми и учусь - следите за обновлениями!

# Предистория
BabyAGI - это сокращенная версия оригинального [Task-Driven Autonomous Agent](https://twitter.com/yoheinakajima/status/1640934493489070080?s=20) (Mar 28, 2023), опубликованного в Twitter. Эта версия сократилась до 140 строк: 13 комментариев, 22 пробела и 105 кода. Название репозитория появилось в реакции на оригинальный автономный агент - автор не хочет сказать, что это AGI.

Сделано с любовью [@yoheinakajima](https://twitter.com/yoheinakajima), который, как оказалось, является VC (хотел бы посмотреть, что вы создаете!).

0 comments on commit 530894f

Please sign in to comment.