refactor: simplify CLI command logic by extracting helper functions (#13)
Tests / test_and_lint (push) Successful in 14s

Reviewed-on: #13
Co-authored-by: Mathias <mathias2784@web.de>
This commit was merged in pull request #13.
This commit is contained in:
2026-10-02 12:03:20 +00:00
committed by mathias2784
parent ce2da9d953
commit 419fb46c3d
8 changed files with 226 additions and 2 deletions
+22
View File
@@ -0,0 +1,22 @@
# Agent Instructions: PhotoTools3
## Environment Setup
Requires a `.env` file with the following variables:
- `llm_api_key`: API key for the LLM provider.
- `llm_api_base_url`: Base URL for the LLM API.
- `llm_default_temperature`: Float value for temperature.
## Development Toolchain
- **Dependency Management**: Use `uv`.
- **Python Version**: Requires Python `>=3.14`.
- **Testing**: Run `pytest` to execute the test suite in `test/`.
- **Linting & Formatting**: Use `ruff` and `black`.
## CLI Usage
The primary entry point is the `photools3` command:
- `photools3 keywords <image_path>`: Extracts keywords and captions from a single image.
## Architecture & Logic
- **`src/photools3/photo.py`**: Core image processing logic, including resizing, RGB conversion, and generating base64 JPEG encodings specifically for LLM vision compatibility.
- **`src/photools3/llm_session.py`**: Manages the workflow of sending processed images to the LLM and parsing results.
- **Configuration**: The list of keywords to extract is maintained in `config/keywords.txt`.