Cap generated keywords and simplify LLM correction retries.
This commit is contained in:
@@ -1,27 +1,42 @@
|
||||
# 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.
|
||||
|
||||
## System Dependencies
|
||||
|
||||
- `exiftool` binary: required by `pyexiftool` at runtime, not installable via pip/uv.
|
||||
- Arch: `perl-image-exiftool`
|
||||
- Debian/Ubuntu: `libimage-exiftool-perl`
|
||||
|
||||
## 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`.
|
||||
|
||||
## Code style
|
||||
|
||||
- Avoid overly verbose docstrings or comments. Be precise!
|
||||
|
||||
## Comunication
|
||||
|
||||
- When done with code modifications, give a one-liner for the currently unstaged changes that can be used as a commit message.
|
||||
|
||||
Reference in New Issue
Block a user