AI Assistant for software development tasks, guided by o3.
Project description
Platform AI Assistant
Персональный AI-ассистент разработчика, работающий в командной строке и использующий LLM (OpenAI, Google Gemini) для помощи с кодом.
Installation
# Recommended: Install via PyPI (includes UI enhancements)
pip install iwasborninbali[ui]
# Or for development from source:
pip install -e .[ui]
После установки просто запустите:
iwasborninbali
из любой директории. Для взаимодействия с ассистентом требуются API-ключи (см. ниже).
Конфигурация (.env) / Configuration
Для работы ассистента требуются API-ключи и, опционально, можно указать предпочитаемые модели. Конфигурация загружается из следующих источников по порядку приоритета (первый найденный валидный источник используется, значения с более высоким приоритетом переопределяют значения с низким):
- Переменные окружения системы: Значения, установленные напрямую в системе (например,
OPENAI_API_KEY=...). Имеют наивысший приоритет. - Переменная окружения
PLATFORM_AI_CONFIG: Путь к файлу.env. - Файл
.envв текущей рабочей директории (CWD): Директория, из которой вы запускаетеiwasborninbali. - Файл
.envв директории пользователя:~/.config/iwasborninbali/.env.
Рекомендуемый способ — создать файл .env либо в корне вашего проекта (CWD), либо в ~/.config/iwasborninbali/ для глобальной конфигурации.
- Скопируйте пример:
# Для CWD cp .env.example .env # ИЛИ для глобальной конфигурации mkdir -p ~/.config/iwasborninbali cp .env.example ~/.config/iwasborninbali/.env
- Отредактируйте выбранный
.env:# --- Обязательные API Ключи --- OPENAI_API_KEY="sk-..." GEMINI_API_KEY="AIza..." PERPLEXITY_API_KEY="pplx-..." # --- Модели (опционально, по умолчанию используются рекомендованные) --- # MODEL_MAIN="gpt-4-turbo-preview" # MODEL_ASK="gemini-1.5-pro-latest" # Модель для инструмента Ask (Google) # MODEL_REWRITE="gemini-1.5-flash-latest" # Модель для инструментов редактирования (Google) # MODEL_PPLX="llama-3-sonar-large-32k-online" # Модель для Perplexity # --- Другие настройки --- # LOG_LEVEL="DEBUG" # Уровень логирования (INFO, DEBUG, WARNING, ERROR)
Модели (Model Configuration)
Ассистент использует разные модели для различных задач. Вы можете переопределить модели по умолчанию, задав соответствующие переменные в .env файле или через переменные окружения.
MODEL_MAIN- Назначение: Зарезервировано для будущего использования или управления верхнего уровня.
- По умолчанию:
o3
MODEL_ASK- Назначение: Используется инструментом
askдля общих запросов, анализа кода и ревью. Требует высоких способностей к рассуждению. - По умолчанию:
gemini-2.5-pro-preview-03-25
- Назначение: Используется инструментом
MODEL_REWRITE- Назначение: Используется инструментами создания (
create_file) и модификации (apply_diff) файлов. Должна быть эффективной и хорошо следовать инструкциям. - По умолчанию:
gemini-2.5-flash-preview-04-17
- Назначение: Используется инструментами создания (
MODEL_PPLX- Назначение: Используется инструментом
perplexityдля веб-поиска и извлечения внешней информации. - По умолчанию:
sonar-reasoning-pro
- Назначение: Используется инструментом
Пример переопределения в .env:
MODEL_ASK="gemini-1.5-pro-latest"
MODEL_REWRITE="text-bison-001" # Пример другой модели
Дополнительные настройки
# Настройки суммаризации истории
export SUMMARY_THRESHOLD=20 # Порог сообщений для запуска суммаризации
export SUMMARY_BATCH=10 # Количество старых сообщений для суммирования
export KEEP_RECENT=10 # Количество последних сообщений для сохранения
Конфигурация API Ключей (API Key Configuration)
Ассистенту требуются API ключи для взаимодействия с моделями OpenAI, Google и Perplexity.
- Обязательные:
OPENAI_API_KEYGEMINI_API_KEYPERPLEXITY_API_KEY
Ключи должны быть заданы одним из способов, описанных выше. Ассистент ищет эти ключи в соответствии с указанным порядком приоритета (1 > 2 > 3 > 4).
Важно: Если любой из трех обязательных ключей (OPENAI_API_KEY, GEMINI_API_KEY, PERPLEXITY_API_KEY) не найден ни в одном из источников конфигурации при запуске, ассистент выведет сообщение об ошибке с указанием недостающих ключей и завершит работу (sys.exit(1)).
Что создаётся в рабочей директории
При запуске iwasborninbali в текущей директории создаются:
data/thread_history/— история чата с ассистентом (JSON)logs/— технические логи работы инструментов
Каждый проект хранит свою историю и логи отдельно.
Установка / Обновление
Через PyPI (Рекомендуется)
# Установка / Обновление
pip install --upgrade iwasborninbali[ui]
# Удаление
pip uninstall iwasborninbali
Из исходников (Для разработки)
# Установка с UI и Dev зависимостями (для тестов)
pip install -e .[ui,dev]
# Обновление
cd /путь/к/репозиторию
git pull
pip install -e .[ui,dev]
# Удаление
pip uninstall iwasborninbali
Пример рабочего цикла
# Перейдите в директорию проекта
cd ~/projects/my_new_project
# Запустите ассистента
iwasborninbali
# Примеры запросов:
# - "Создай простой HTTP-сервер на Flask"
# - "Добавь эндпоинт для загрузки файлов"
# - "Оптимизируй функцию X в файле Y"
# - "Позови perplexity и спроси о лучших практиках для FastAPI"
При достижении 20+ сообщений в истории старые сообщения будут автоматически суммированы для экономии контекста.
Расширенные возможности CLI
Многострочный ввод
Для ввода длинных запросов или запросов, состоящих из нескольких строк (например, при вставке кода), используйте режим многострочного ввода.
- Если установлена опциональная зависимость
prompt_toolkit(см. ниже), ввод будет осуществляться через продвинутый редактор. Для завершения ввода нажмитеCtrl+Dили введите/endна новой строке и нажмите Enter. - В противном случае (или при использовании флага
--plain) используется простой режим: начните вводить текст как обычно, для перехода на новую строку нажмите Enter. Чтобы завершить ввод, нажмите Enter на пустой строке или введите/endи нажмите Enter.
Пример (простой режим):
>>> print("Hello,")
... print("World!")
... /end
Отключение форматирования (Rich) и продвинутого ввода
По умолчанию ассистент использует библиотеку rich
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iwasborninbali-0.1.5.tar.gz.
File metadata
- Download URL: iwasborninbali-0.1.5.tar.gz
- Upload date:
- Size: 48.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16b463f5d5893a9cad11618cb5c047c4bb7b4e42e972303c0c2afe1797ef056d
|
|
| MD5 |
08c2e2906445edd56bec7f035d99bdf7
|
|
| BLAKE2b-256 |
98ad9847315d1162634e833886155abcc5e37d396d5644c8b02d23b5e223bca2
|
File details
Details for the file iwasborninbali-0.1.5-py3-none-any.whl.
File metadata
- Download URL: iwasborninbali-0.1.5-py3-none-any.whl
- Upload date:
- Size: 51.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
910c6e0434e4ef56c44e649512bf8e9fd2a62aea5416f5d5d4c65ef1a004f0ad
|
|
| MD5 |
7d4e1cee6af3312bb40df6c425528870
|
|
| BLAKE2b-256 |
b115b722f7d847cff4c7fbbff7ba06876f3ba5c675a4a12e305e9ef4c79580a4
|