Добавлены страницы вики для GenAudioBookInfo: Home, Installation, Makefile, OpenRouter, Output Structure, TorrAPI и Sidebar.
Создана структура документации, описывающая функциональность, установку, использование CLI, архитектуру и интеграции с TorrAPI и OpenRouter. Добавлены примеры конфигурации и метаданных, а также описание структуры выходных данных.
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
# Конфигурация (`.env`)
|
||||
|
||||
Все параметры хранятся в файле `.env` в корне проекта.
|
||||
Копируется из `.env.example` при первой настройке. Файл `.env` не коммитится в Git.
|
||||
Параметры командной строки (где применимо) **переопределяют** значения из `.env`.
|
||||
|
||||
---
|
||||
|
||||
## Пути
|
||||
|
||||
```env
|
||||
DIR_IN=D:\Audiobooks
|
||||
DIR_OUT=D:\Audiobooks\result
|
||||
```
|
||||
|
||||
| Переменная | Тип | По умолчанию | Описание |
|
||||
|---|---|---|---|
|
||||
| `DIR_IN` | string | — | Корневой каталог для сканирования. Можно переопределить аргументом CLI. |
|
||||
| `DIR_OUT` | string | `<DIR_IN>/result` | Куда складывать обработанные книги. Можно переопределить флагом `-result`. |
|
||||
|
||||
---
|
||||
|
||||
## TorrAPI сервер
|
||||
|
||||
```env
|
||||
TORRAPI_URL=http://localhost:9200
|
||||
```
|
||||
|
||||
| Переменная | Тип | По умолчанию | Описание |
|
||||
|---|---|---|---|
|
||||
| `TORRAPI_URL` | string | `http://localhost:9200` | URL TorrAPI-совместимого сервера. Переопределяется флагом `-api`. |
|
||||
|
||||
---
|
||||
|
||||
## Параметры конвейера
|
||||
|
||||
```env
|
||||
PROCESSING_WORKERS=2
|
||||
PROCESSING_TIMEOUT=5m
|
||||
PROCESSING_SEARCH_RETRIES=3
|
||||
PROCESSING_SEARCH_RETRY_DELAY=3s
|
||||
PROCESSING_SEARCH_CONCURRENCY=2
|
||||
```
|
||||
|
||||
| Переменная | Тип | По умолчанию | Описание |
|
||||
|---|---|---|---|
|
||||
| `PROCESSING_WORKERS` | int | `2` | Число параллельных горутин-воркеров (Fan-Out). Переопределяется `-workers`. |
|
||||
| `PROCESSING_TIMEOUT` | duration | `5m` | Дедлайн для всей сессии обработки. Переопределяется `-timeout`. |
|
||||
| `PROCESSING_SEARCH_RETRIES` | int | `3` | Сколько попыток найти книгу на трекерах перед перемещением в `ERROR/`. |
|
||||
| `PROCESSING_SEARCH_RETRY_DELAY` | duration | `3s` | Задержка между повторными попытками поиска. |
|
||||
| `PROCESSING_SEARCH_CONCURRENCY` | int | `2` | Ограничение числа одновременных HTTP-запросов к TorrAPI (семафор). |
|
||||
|
||||
### Приоритет параметров
|
||||
|
||||
```
|
||||
CLI-флаг (-workers/-timeout) > .env > встроенные defaults
|
||||
```
|
||||
|
||||
Флаги `-workers` и `-timeout` со значением `0` (умолчание) не перетирают значение из `.env`.
|
||||
|
||||
---
|
||||
|
||||
## OpenRouter LLM (опционально)
|
||||
|
||||
```env
|
||||
OPENROUTER_API_KEY=sk-or-v1-your-key
|
||||
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
|
||||
OPENROUTER_TIMEOUT=120s
|
||||
OPENROUTER_MODEL=openai/gpt-4o-mini
|
||||
OPENROUTER_MAX_RETRIES=3
|
||||
OPENROUTER_RETRY_BACKOFF=1s
|
||||
OPENROUTER_RETRY_BACKOFF_MAX=8s
|
||||
# OPENROUTER_PROMPT= # опционально, переопределяет встроенный промпт
|
||||
```
|
||||
|
||||
| Переменная | Тип | По умолчанию | Описание |
|
||||
|---|---|---|---|
|
||||
| `OPENROUTER_API_KEY` | string | `""` | API ключ. Если пуст — LLM выключен. Можно передать через переменную окружения ОС. |
|
||||
| `OPENROUTER_BASE_URL` | string | `https://openrouter.ai/api/v1` | Базовый URL API. |
|
||||
| `OPENROUTER_TIMEOUT` | duration | `120s` | Таймаут одного запроса к API. |
|
||||
| `OPENROUTER_MODEL` | string | `openai/gpt-3.5-turbo` | Идентификатор модели в формате `provider/model`. |
|
||||
| `OPENROUTER_MAX_RETRIES` | int | `3` | Количество ретраев при ошибках API. |
|
||||
| `OPENROUTER_RETRY_BACKOFF` | duration | `1s` | Начальная задержка между ретраями (экспоненциальный backoff). |
|
||||
| `OPENROUTER_RETRY_BACKOFF_MAX` | duration | `8s` | Максимальная задержка backoff. |
|
||||
| `OPENROUTER_PROMPT` | string | (встроенный) | Системный промпт. Если не задан — используется дефолтный из кода. |
|
||||
|
||||
### Ключ через переменную окружения ОС
|
||||
|
||||
`OPENROUTER_API_KEY` можно не писать в `.env` — достаточно задать в окружении ОС. Переменные ОС имеют приоритет над `.env`:
|
||||
|
||||
```bash
|
||||
export OPENROUTER_API_KEY=sk-or-...
|
||||
./genaudiobookinfo
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Форматы продолжительностей
|
||||
|
||||
Go-синтаксис: `300ms`, `1.5s`, `2m30s`, `1h`.
|
||||
Примеры для `*_TIMEOUT`: `5m`, `10m`, `1h30m`.
|
||||
|
||||
---
|
||||
|
||||
## Полный пример `.env`
|
||||
|
||||
```env
|
||||
# Пути
|
||||
DIR_IN=D:\Audiobooks
|
||||
DIR_OUT=D:\Audiobooks\result
|
||||
|
||||
# TorrAPI
|
||||
TORRAPI_URL=http://localhost:9200
|
||||
|
||||
# Конвейер
|
||||
PROCESSING_WORKERS=4
|
||||
PROCESSING_TIMEOUT=15m
|
||||
PROCESSING_SEARCH_RETRIES=3
|
||||
PROCESSING_SEARCH_RETRY_DELAY=3s
|
||||
PROCESSING_SEARCH_CONCURRENCY=2
|
||||
|
||||
# OpenRouter
|
||||
OPENROUTER_API_KEY=sk-or-v1-xxxxxxxxxxxxxxxxxxxx
|
||||
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
|
||||
OPENROUTER_TIMEOUT=120s
|
||||
OPENROUTER_MODEL=openai/gpt-4o-mini
|
||||
OPENROUTER_MAX_RETRIES=3
|
||||
OPENROUTER_RETRY_BACKOFF=1s
|
||||
OPENROUTER_RETRY_BACKOFF_MAX=8s
|
||||
```
|
||||
Reference in New Issue
Block a user