feat: add conversational RollCalc assistant
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# Changelog
|
||||
|
||||
## Unreleased
|
||||
|
||||
- Added deterministic, token-bounded product-family normalization in the article resolver for `Stex`/`Secutex`, `Bfix`/`Bentofix`, and `Sgrid`/`Secugrid`.
|
||||
- Added a minimal OpenWebUI Pipe that maps each OpenWebUI user/chat to the
|
||||
existing RollCalc conversation API, renders only deterministic messages, and
|
||||
exposes validated reports through a configurable browser-public URL.
|
||||
- Added friendly adapter errors, per-chat asynchronous request serialization,
|
||||
server-side Basic Auth without credential-bearing links, deployment/demo
|
||||
documentation, and mocked OpenWebUI Pipe tests without a RollCalc dependency.
|
||||
- Added a direct, dependency-free Ollama `/api/chat` client, defaulting to the configurable `qwen3.5:35B-A3B` model, with temperature `0`, thinking disabled, timeout handling, and JSON-schema-constrained output.
|
||||
- Added strict `new_calculation`, multi-field `modify_calculation`, and `unsupported` NLU validation; calculated and unknown fields are rejected.
|
||||
- Added process-local conversation state, deterministic German clarification/result templates, and temporary input-only PDF references.
|
||||
- Added authenticated conversation creation/message/report routes and a `python -m rollcalc_chat` terminal demo with optional diagnostics.
|
||||
- Added mocked Ollama, schema, conversational workflow, API, and authoritative conversational PDF tests; normal tests do not require Ollama.
|
||||
- Added `roll_calculation.py` as the authoritative headless service for direct diameter ranges, optional roll weight, article/core resolution, and warnings.
|
||||
- Added JSON-serializable calculation request/state/result models, structured clarification/failure statuses, and controlled mutation/recalculation.
|
||||
- Reject caller-supplied result fields in both requests and calculation state, and require clarification for duplicate exact article identifiers.
|
||||
- Added authenticated calculation and modification API boundaries for future tool use; no LLM integration was added.
|
||||
- Routed the active direct-diameter UI and PDF generation through the deterministic service and rejected caller-supplied engineering result fields.
|
||||
- Added archive-safe PDF filenames with date and `HHMMSS` time.
|
||||
- Added an authenticated **Download PDF** action for valid direct roll-diameter results.
|
||||
- Added compact, one-page A4 reports with article data, material inputs, minimum/average/maximum diameter, optional roll weight, active forklift warnings/notes, generation time, and build metadata.
|
||||
- Embedded repeated diagonal `INTERNAL USE ONLY` marks directly in the PDF page content stream. This is an internal-use marking and deterrent, not DRM or a tamper-proof control.
|
||||
- Added strict report-model validation and filesystem-safe archive filenames.
|
||||
- Added PDF model and endpoint tests without adding a new runtime dependency.
|
||||
- Renamed the PDF result section to **Calculation Results** and added the effective roll length as a fourth primary result card.
|
||||
|
||||
Reference in New Issue
Block a user