Adopt PromptKit profile inheritance
This commit is contained in:
@@ -4,7 +4,9 @@ Weatherreporter uses Promptkit for all generated-text reports. The four logical
|
||||
|
||||
## Logical Profile Catalog
|
||||
|
||||
Prompt definitions select a stable Weatherreporter profile ID. The embedded definitions currently use Promptkit's `openrouter` backend:
|
||||
Prompt definitions select a stable Weatherreporter profile ID. Each embedded
|
||||
definition contains only its ID and one Promptkit base-profile reference; the
|
||||
effective execution settings resolve from Promptkit's maintained catalog:
|
||||
|
||||
| Profile ID | Model | Reasoning effort | Timeout | Service tier | Default reports |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
@@ -12,20 +14,33 @@ Prompt definitions select a stable Weatherreporter profile ID. The embedded defi
|
||||
| `weather-balanced` | `~google/gemini-flash-latest` | `high` | 240 seconds | `flex` | Daily, Today, Tomorrow |
|
||||
| `weather-deep` | `~anthropic/claude-sonnet-latest` | `high` | 240 seconds | `flex` | None |
|
||||
|
||||
The `~` prefix is part of each OpenRouter rolling-alias model ID. The embedded profiles intentionally omit endpoints, credentials, temperature, `top_p`, and output-token limits.
|
||||
The `~` prefix is part of each OpenRouter rolling-alias model ID. The embedded
|
||||
profiles intentionally omit endpoints, credentials, and execution settings;
|
||||
Promptkit owns inherited resolution and its provider-native defaults.
|
||||
Promptkit's built-in `rakestrawhome-gemma-4-31b` is also available for ordinary
|
||||
and comparison selection and reports the `rakestrawhome` backend without
|
||||
Weatherreporter-specific configuration.
|
||||
|
||||
## Selection And Active Execution
|
||||
|
||||
Before weather collection, Weatherreporter validates the report's exact generated-text report/schema/template catalog binding, prompt version and hash, output contract, and selected profile. Active profiles must resolve a nonblank backend and model identity. A nonblank `promptkit.profile` selects one profile ID for every report in the command; otherwise the prompt's declared default selects it. Promptkit resolves the selected definition in this order:
|
||||
Before weather collection, Weatherreporter validates the report's exact generated-text report/schema/template catalog binding, prompt version and hash, output contract, and selected profile. Active profiles must resolve a nonblank model; an endpoint-only profile may intentionally have no backend identity. A nonblank `promptkit.profile` selects one profile ID for every report in the command; otherwise the prompt's declared default selects it. Promptkit resolves the selected definition in this order:
|
||||
|
||||
1. explicit in-memory profiles used by an embedding consumer or test;
|
||||
2. the configured `profile_file` or `profile_dir`;
|
||||
3. Weatherreporter's embedded fallback profiles; and
|
||||
4. Promptkit's built-in catalog.
|
||||
|
||||
A source falls through only when the selected ID is absent. Each source supplies a complete definition, so profile fields are not merged. A malformed matching operator definition is an error and does not fall back.
|
||||
A source falls through only when the selected ID is absent. Promptkit resolves a
|
||||
derived profile's base with the same source precedence, so a configured base
|
||||
can shadow a built-in base. A missing, cyclic, malformed, or incomplete
|
||||
selected inheritance chain is an error and does not fall back.
|
||||
|
||||
Profiles that require a direct API key are unsupported; a profile that reports `APIKeyEnv` requires a nonblank value in that environment variable. Active results retain the selected logical profile ID and resolved backend and model. Ordinary errors, summaries, logs, and outputs exclude endpoints, credentials, rendered messages, schemas, request bodies, response bodies, and complete parameter maps.
|
||||
Profiles that require a direct API key are unsupported. Optional environment
|
||||
credential sources are Promptkit runtime concerns and are not checked by
|
||||
Weatherreporter during profile inspection. Active results retain the selected
|
||||
logical profile ID and resolved backend and model. Ordinary errors, summaries,
|
||||
logs, and outputs exclude endpoints, credentials, rendered messages, schemas,
|
||||
request bodies, response bodies, and complete parameter maps.
|
||||
|
||||
Promptkit receives the YAML data package as an inline input and returns structured JSON that Weatherreporter validates before rendering its own Markdown template. Before accepting that JSON, Weatherreporter requires exactly one preparation callback and reconciles its prompt/profile/backend/model and rendered/input hashes with the inspected identity and completed result. The callback output contract and completed validation must use the report's expected JSON Schema mode and path. The package contains only reviewed prompt-facing warning summaries, never source transport or provenance details. Safe active provenance remains in memory. Content-rich diagnostics are opt-in through `--llm-debug-dir`; see [operations](../operations.md) for retention and permissions.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user