Главная
Kairos - веб-приложение для генерации курсов с помощью ИИ, написанное на flask
Документация: https://sashayerty.github.io/Kairos/
Исходный код: https://github.com/Sashayerty/Kairos
FastAPI версия: https://github.com/Sashayerty/kairos-fastapi
Демонстрация: https://disk.yandex.ru/i/xtsrACTVPR5HrA
Обязательные учетные данные¶
1. Google Custom Search API (optional)¶
Начнем с поиска данных в интернете. Для работы поиска нам понадобится CSE id и Google Search API Key. Инструкция по получению. При создании API ключа стоит учитывать, что вы можете указать список сайтов, которые будут парситься при API, что делает поиск более конкретным, узконаправленным и специфичным. Создать поисковый сервис в Google тут.
2. Mistral AI API¶
Теперь, главная составляющая проекта - ИИ. Получить API ключ можно на официальном сайте Mistral.
3. Secret Key¶
Секретный ключ для wtforms. Необходим для корректной работы wtforms. Нужно его создать собственноручно. Лучше всего для ключа подойдет uuid4
. Сгенерировать можно или через python библиотеку uuid
, или на сайте.
P.S. В документации Flask рекомендуется использовать рандомный набор байтов. Ниже пример:
python -c 'import secrets; print(secrets.token_hex())'
> 192b9bdd22ab9ed4d12e236c78afcb9a393ec15f71bbf5dc987d54727823bcbf
Пример .env
файла¶
.env
файл должен лежать в корне проекта.
MISTRAL_AI_API_KEY=mistral-ai-api-key
GOOGLE_API_KEY=google-api-key
CSE_ID=cse-id
SECRET_KEY=secret-key
Установка¶
Клонируем¶
git clone https://github.com/sashayerty/Kairos
cd ./Kairos
С помощью pip¶
1. Создаем виртуальное окружение python¶
# Windows
python -m venv venv
# Linux/MacOS
python3 -m venv venv
2. Активируем виртуальное окружение¶
# Windows
venv/Scripts/activate
# Linux/MacOS
source venv/bin/activate
3. Устанавливаем зависимости проекта¶
# Windows
pip install -r ./requirements.txt
# Linux/MacOS
pip3 install -r ./requirements.txt
4. Запускаем локальный сервер flask¶
# Windows
python run.py
# Linux/MacOS
python3 run.py
С помощью uv (рекомендуемое)¶
1. Подтягиваем зависимости¶
uv sync # .venv создается автоматически
2. Запускаем проект¶
uv run run.py
В обоих случаях переходим на http://127.0.0.1:5000/¶
Взаимодействие с кодом¶
ModifiedMistral (deprecated)¶
Это кастомный класс Mistral. Был он создан для того, чтобы при взаимодействии с ИИ убрать лишнюю рутинную работу. Код тут.
ModifiedOpenAI¶
Пришел на смену Mistral. Код тут.
Список агентов¶
В схеме | Функция | Назначение агента | Работает |
---|---|---|---|
1 | check | Агент для цензуры темы и пожеланий пользователя. | |
2 | gen_prompt | Агент для создания промпта по теме, пожеланиям и описанию пользователя. | |
3 | searcher | Агент для составления поискового запроса по промпту. | |
4 | check_is_need_test | Агент для проверки нужности тестов в курсе. | |
5 | gen_plan | Агент для составления плана курса по промпту. | |
6 | analyze | Агент для анализа данных из интернета на нужность по плану. | |
7 | test | Агент для создания тестов для курсов. | |
8 | summarizer | Агент для сжатия статей из интернета. | |
9 | gen_course | Агент для генерации итогового результата. | |
* | edit_course | Агент для изменения курса по корректировкам пользователя | |
* | create_course | Агент для итеративной генерации курса. |
*
- вспомогательный агент
google_search¶
Функция для поиска в Google Custom Search. Подробнее тут
Схема логики приложения со стороны агентов¶
База данных проекта¶
License¶
Kairos лицензирован MIT