Update docs: add repo URL, refresh AGENTS.md and README, remove stale READMEs
This commit is contained in:
33
AGENTS.md
33
AGENTS.md
@@ -1,11 +1,17 @@
|
|||||||
# komAI Agent Guidelines
|
# komAI Agent Guidelines
|
||||||
|
|
||||||
|
## Репозиторий
|
||||||
|
|
||||||
|
https://git.komisar.gin.by/komisar/komAI
|
||||||
|
|
||||||
## Entry Point
|
## Entry Point
|
||||||
|
|
||||||
```
|
```
|
||||||
python -m app.komAI
|
python -m app.komAI
|
||||||
```
|
```
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
- `app/` - application entry point (komAI.py expected)
|
- `app/` - application entry point (komAI.py expected)
|
||||||
- `src/` - source code, `src/__init__.py` exposes centralized API
|
- `src/` - source code, `src/__init__.py` exposes centralized API
|
||||||
- `config/` - YAML configuration; `config/global.yaml` is the main config
|
- `config/` - YAML configuration; `config/global.yaml` is the main config
|
||||||
@@ -14,19 +20,34 @@ python -m app.komAI
|
|||||||
- `tests/` - standalone unit tests (executable from CLI)
|
- `tests/` - standalone unit tests (executable from CLI)
|
||||||
|
|
||||||
## Config System
|
## Config System
|
||||||
- Modules register parameters at initialization
|
|
||||||
- Save config: `from src import save_config; save_config()`
|
Modules register parameters at initialization via `config.register()`.
|
||||||
|
|
||||||
|
Access global config:
|
||||||
|
```python
|
||||||
|
import src.utils.config_manager
|
||||||
|
config = src.utils.config_manager.config
|
||||||
|
```
|
||||||
|
|
||||||
|
Save config: `config.save()`
|
||||||
|
|
||||||
## Logging
|
## Logging
|
||||||
- All console output is duplicated to log files
|
|
||||||
- Log config in `config/global.yaml` (level, file, path)
|
All console output is duplicated to log files. Configure in `config/global.yaml`.
|
||||||
|
|
||||||
## Env Vars (see `.env.example`)
|
## Env Vars (see `.env.example`)
|
||||||
|
|
||||||
- `KOMAI_CONFIG` - path to config file (optional)
|
- `KOMAI_CONFIG` - path to config file (optional)
|
||||||
- `LOGGING_LOG_PATH`, `LOGGING_LOG_FILE`, `LOGGING_LEVEL`
|
- `LOGGING_LOG_PATH`, `LOGGING_LOG_FILE`, `LOGGING_LEVEL`
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- Python >3.10
|
- Python >3.10
|
||||||
|
|
||||||
## No Code Yet
|
## Module Development
|
||||||
This repo is a scaffold. No `.py` source files exist yet. Do not assume any modules, classes, or APIs are implemented.
|
|
||||||
|
When creating new modules:
|
||||||
|
- Register parameters with `config.register(name=..., val=..., cat="module_name", ...)`
|
||||||
|
- Use categories to organize params
|
||||||
|
- All param changes trigger validators if set
|
||||||
|
- Use `getall()` / `getrawall()` for nested param groups
|
||||||
@@ -7,8 +7,12 @@
|
|||||||
- Реализован `ConfigManager` с регистрацией, загрузкой, сохранением параметров
|
- Реализован `ConfigManager` с регистрацией, загрузкой, сохранением параметров
|
||||||
- Глобальный экземпляр `config` доступен при импорте модуля
|
- Глобальный экземпляр `config` доступен при импорте модуля
|
||||||
- Поддержка категорий, описаний, переменных окружения
|
- Поддержка категорий, описаний, переменных окружения
|
||||||
- 8/8 тестов проходят
|
- Вложенные параметры через точки в имени (`getall`, `getrawall`)
|
||||||
|
- Константа `ROOT_KEY = "$root$"` для вложенных структур
|
||||||
|
- 10/10 тестов проходят
|
||||||
- Документация: `doc/src.utils.config_manager.md`, `src/utils/config_manager/AGENTS.md`
|
- Документация: `doc/src.utils.config_manager.md`, `src/utils/config_manager/AGENTS.md`
|
||||||
|
- [x] Создан `requirements.txt`
|
||||||
|
- [x] Опубликован на https://git.komisar.gin.by/komisar/komAI
|
||||||
|
|
||||||
## In Progress
|
## In Progress
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# komAI - локальный AI-ассистент
|
# komAI - локальный AI-ассистент
|
||||||
|
|
||||||
|
Репозиторий: https://git.komisar.gin.by/komisar/komAI
|
||||||
|
|
||||||
## Требования
|
## Требования
|
||||||
|
|
||||||
- Python >3.10
|
- Python >3.10
|
||||||
@@ -7,6 +9,8 @@
|
|||||||
## Установка
|
## Установка
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
git clone https://git.komisar.gin.by/komisar/komAI.git
|
||||||
|
cd komAI
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
# Приложения проекта
|
|
||||||
|
|
||||||
@@ -1,92 +0,0 @@
|
|||||||
# ConfigManager
|
|
||||||
|
|
||||||
Управление конфигурацией с регистрацией параметров и описаний.
|
|
||||||
|
|
||||||
## Описание
|
|
||||||
|
|
||||||
### Класс ConfigParameter
|
|
||||||
|
|
||||||
Базовый класс для описания параметра
|
|
||||||
|
|
||||||
name: Имя параметра
|
|
||||||
val: Значение
|
|
||||||
def: Значение по умолчанию
|
|
||||||
desc: Описание параметра (не обязательно)
|
|
||||||
cat: Категория параметра (не обязательно, по умолчанию 'global')
|
|
||||||
env: Имя переменной окружения (не обязательно)
|
|
||||||
validator: Функция проверки допустимости параметра (если не используется, то значение -- строка. не обязательно)
|
|
||||||
|
|
||||||
Параметры хранятся к конфиге так:
|
|
||||||
|
|
||||||
```config
|
|
||||||
#$description
|
|
||||||
#$category.$name: $value
|
|
||||||
$category.$name: $value
|
|
||||||
```
|
|
||||||
например:
|
|
||||||
```config
|
|
||||||
#Наименование проекта
|
|
||||||
#global.name: "komAI"
|
|
||||||
global.name: "SuperAPP"
|
|
||||||
```
|
|
||||||
|
|
||||||
Пример использования параметра:
|
|
||||||
|
|
||||||
```python
|
|
||||||
param1 = ConfigParameter(cat="global", name="name", val="komAI", desc="Наименование проекта", def="SuppaPuppa")
|
|
||||||
|
|
||||||
#name:name value:Наименование проекта
|
|
||||||
print(f"name:{param1.name} value:{param1.desc}")
|
|
||||||
|
|
||||||
#name.as_int:0
|
|
||||||
print(f"{param1.name}.as_int:{param1.as_int()}")
|
|
||||||
|
|
||||||
##Наименование проекта\n#global.name: "SuppaPuppa"\nglobal.name: "komAI"
|
|
||||||
print(param1)
|
|
||||||
```
|
|
||||||
|
|
||||||
### Класс ConfigManager
|
|
||||||
|
|
||||||
- Базовый класс для работы с параметрами
|
|
||||||
- Параметры хранятся текстовом конфиге (например в `config/global.yaml`)
|
|
||||||
- Файл можно переопределить из командной строки (например `--config ~/myApp/config/app.yaml`)
|
|
||||||
- Файл можно переопределить через переменную окружения `$projectname_CONFIG=~/superApp/config.yaml`
|
|
||||||
- Приоритет определения параметров (от высшего к низшему):
|
|
||||||
коммандная строка --> переменные окружения --> файл ~/.ENV
|
|
||||||
- Для ConfigManager значение файла конфигурации по умолчанию задано в тексте конcтантой. Например:
|
|
||||||
```python
|
|
||||||
config_file_default = "config/global.yaml"
|
|
||||||
config_env_default = "KOMAI_CONFIG_FILE"
|
|
||||||
```
|
|
||||||
- Регистрация и инициализация класса должна быть глобальная
|
|
||||||
|
|
||||||
Пример использования:
|
|
||||||
```python
|
|
||||||
from src.utils.config_manager.config_manager import get_config
|
|
||||||
|
|
||||||
config = get_config()
|
|
||||||
config.register(cat="global", name="app.name", val="komAI", desc="Наименование проекта")
|
|
||||||
#если не задана cat, использовать значение по умолчанию
|
|
||||||
#данный вызов вернёт значение параметра 'global.app.name'
|
|
||||||
value = config.get("app.name")
|
|
||||||
#данный вызов вернёт значение описания параметра 'global.app.name'
|
|
||||||
desc = config.get_description("app.name", cat="global")
|
|
||||||
```
|
|
||||||
|
|
||||||
## Глобальный доступ
|
|
||||||
|
|
||||||
`get_config()` - возвращает singleton ConfigManager
|
|
||||||
|
|
||||||
## Регистрация параметров модулями
|
|
||||||
|
|
||||||
Каждый модуль регистрирует свои параметры при инициализации:
|
|
||||||
```python
|
|
||||||
config.register(name="level", val="INFO", desc="Уровень логирования", cat="logging")
|
|
||||||
```
|
|
||||||
|
|
||||||
## Категории
|
|
||||||
|
|
||||||
Возможные категории параметров
|
|
||||||
- `app` - приложение
|
|
||||||
- `logging` - логирование
|
|
||||||
- `global` - общие
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Тестовые юниты для тестирования различных аспектов проекта, которы можно выполнить автономно из консоли.
|
|
||||||
Reference in New Issue
Block a user