280 lines
8.9 KiB
YAML
280 lines
8.9 KiB
YAML
# Full annotated pipeline example for implemented Narratio config fields.
|
|
# Values are safe placeholders and must be adapted per environment.
|
|
|
|
workspace:
|
|
# Optional: defaults to /var/lib/narratio.
|
|
root: /var/lib/narratio/workspace
|
|
# Optional: remove run-scoped workdir after successful publish commit.
|
|
cleanup_after_publish: false
|
|
|
|
# Credential files, when used, belong in a sibling secrets/ directory or in the
|
|
# directory selected with --secrets-dir; they are not pipeline configuration.
|
|
|
|
storage:
|
|
# Defaults to "local". Use "s3" explicitly for publish + S3 audio workflows.
|
|
backend: s3
|
|
s3:
|
|
# Required when using S3 audio or S3 publish uploads.
|
|
bucket: my-dnd-archive
|
|
# Optional; defaults to "dnd".
|
|
root_prefix: dnd
|
|
# Optional region/endpoint settings.
|
|
region: us-east-1
|
|
endpoint: ""
|
|
force_path_style: false
|
|
# Optional; defaults shown explicitly.
|
|
access_key_id: OBJECT_STORAGE_KEY_ID
|
|
secret_access_key: OBJECT_STORAGE_KEY
|
|
|
|
campaigns:
|
|
# Optional; defaults to /usr/local/share/narratio/campaigns.
|
|
root: /usr/local/share/narratio/campaigns
|
|
# Optional command default when --campaign is omitted.
|
|
default_campaign_id: sample-campaign
|
|
|
|
spool:
|
|
# Optional; defaults to /var/spool/narratio.
|
|
root: /var/spool/narratio
|
|
# Optional cleanup of run-scoped spool audio after successful publish commit.
|
|
delete_audio_after_publish: false
|
|
|
|
publish:
|
|
# Optional booleans; defaults are true.
|
|
enabled: true
|
|
upload_run: true
|
|
# Optional publish output rules; sources use Narratio artifact source IDs.
|
|
outputs:
|
|
- source: narratio.transcript.final_trimmed
|
|
dest: transcripts/final.trimmed.json
|
|
required: true
|
|
- source: narratio.transcript.final_markdown
|
|
dest: transcripts/final.md
|
|
required: true
|
|
- source: narratio.transcript.final_trimmed_markdown
|
|
dest: transcripts/final.trimmed.md
|
|
required: true
|
|
- source: narratio.artifact.session_recap
|
|
dest: artifacts/session_recap.md
|
|
required: true
|
|
- source: narratio.artifact.player_handout
|
|
dest: artifacts/player_handout.md
|
|
required: false
|
|
# Extraction lanes publish only when named explicitly; the bundle and index
|
|
# are never implicit publish sources.
|
|
- source: narratio.extraction.npc_registry
|
|
dest: artifacts/extraction/npc-registry.json
|
|
required: true
|
|
|
|
whisperx:
|
|
# Required.
|
|
transcribe_url: "https://transcription.example.com/transcribe"
|
|
# Optional overrides; defaults shown explicitly.
|
|
language: en
|
|
timeout: 30m
|
|
retries: 3
|
|
retry_delay: 2s
|
|
concurrency: 2
|
|
|
|
seriatim:
|
|
# Optional overrides; defaults shown explicitly.
|
|
binary: seriatim
|
|
timeout: 10m
|
|
output_schema: seriatim-intermediate
|
|
coalesce_gap: 3.0
|
|
report: true
|
|
env:
|
|
# Optional advanced tuning; set only when needed.
|
|
overlap_word_run_gap: 1.0
|
|
overlap_word_run_reorder_window: 1.0
|
|
backchannel_max_duration: 2.0
|
|
filler_max_duration: 1.25
|
|
|
|
audita:
|
|
# Optional overrides. Audita owns its own configuration and profiles.
|
|
binary: audita
|
|
timeout: 3h
|
|
# Names must match credentials on every backend in the Audita v2 config.
|
|
credentials: [AUDITA_LLM_API_KEY]
|
|
# Omit modules for Audita's default sequence; modules: [] disables corrections.
|
|
overlay: ""
|
|
proposal_profile: ""
|
|
validation_profile: ""
|
|
transcript_description: ""
|
|
config_path: /usr/local/etc/audita/config.yml
|
|
output_schema: audita-v1
|
|
|
|
normalize:
|
|
# Optional; defaults shown explicitly.
|
|
output_path: transcripts/final.json
|
|
output_schema: seriatim-intermediate
|
|
report: true
|
|
|
|
trim:
|
|
# Optional; defaults shown explicitly.
|
|
enabled: true
|
|
output_path: transcripts/final.trimmed.json
|
|
bounds:
|
|
prompt_id: dnd.session_bounds
|
|
profile_id: ""
|
|
transcript_input_name: transcript
|
|
output_path: artifacts/session_bounds.json
|
|
timeout: 10m
|
|
render_debug: false
|
|
seriatim:
|
|
report: false
|
|
|
|
notarius:
|
|
# Optional structured extraction after render and before analyze.
|
|
enabled: true
|
|
binary: notarius
|
|
# Optional environment-variable references. Match these names to the
|
|
# selected Notarius/PromptKit providers; never put credential values here.
|
|
credentials: [NOTARIUS_LLM_API_KEY]
|
|
# Optionally select a Notarius ConfigKit overlay when extraction runs. This
|
|
# is independent of Narratio's selected overlay and may use a different name.
|
|
# See docs/config.md and docs/integrations/notarius.md for the contracts.
|
|
# config_profile: downstream-economy
|
|
config_path: /usr/local/etc/notarius/config.yml
|
|
pipeline_id: dnd-session
|
|
timeout: 3h
|
|
working_directory: /usr/local/etc/notarius
|
|
# Reuse compatible accepted Notarius checkpoints during executed extraction.
|
|
# The Notarius config must enable recording and provide persistent cache roots.
|
|
resume: true
|
|
# auto uses or creates a source-addressed chunk plan. Forced Narratio
|
|
# extraction overrides this with refresh and disables checkpoint loading.
|
|
chunk_cache: auto
|
|
# External campaign references use prepared Narratio source IDs. Omit an
|
|
# optional binding when the selected Notarius pipeline does not need it.
|
|
references:
|
|
glossary: narratio.input.glossary
|
|
party: narratio.input.party
|
|
players: narratio.input.players
|
|
spell_catalog: narratio.input.spell_catalog
|
|
# Each key creates source narratio.extraction.<key>. These constraints match
|
|
# the current Notarius D&D lane contracts; update them with Notarius.
|
|
outputs:
|
|
item_registry:
|
|
lane_id: item-registry
|
|
media_type: application/json
|
|
schema_id: notarius.dnd.item_registry
|
|
schema_version: v1
|
|
module_key: dnd/item-registry
|
|
npc_registry:
|
|
lane_id: npc-registry
|
|
media_type: application/json
|
|
schema_id: notarius.dnd.npc_registry
|
|
schema_version: v1
|
|
module_key: dnd/npc-registry
|
|
location_registry:
|
|
lane_id: location-registry
|
|
media_type: application/json
|
|
schema_id: notarius.dnd.location_registry
|
|
schema_version: v1
|
|
module_key: dnd/location-registry
|
|
scene_descriptions:
|
|
lane_id: scene-descriptions
|
|
media_type: application/json
|
|
schema_id: notarius.dnd.scene_descriptions
|
|
schema_version: v1
|
|
module_key: dnd/scene-descriptions
|
|
item_occurrences:
|
|
lane_id: item-occurrences
|
|
media_type: application/json
|
|
schema_id: notarius.dnd.item_occurrences
|
|
schema_version: v1
|
|
module_key: dnd/item-occurrences
|
|
spells:
|
|
lane_id: spells
|
|
media_type: application/json
|
|
schema_id: notarius.dnd.spells
|
|
schema_version: v1
|
|
module_key: dnd/spells
|
|
combat_turns:
|
|
lane_id: combat-turns
|
|
media_type: application/json
|
|
schema_id: notarius.dnd.combat_turns
|
|
schema_version: v1
|
|
module_key: dnd/combat-turns
|
|
npc_occurrences:
|
|
lane_id: npc-occurrences
|
|
media_type: application/json
|
|
schema_id: notarius.dnd.npc_occurrences
|
|
schema_version: v1
|
|
module_key: dnd/npc-occurrences
|
|
location_occurrences:
|
|
lane_id: location-occurrences
|
|
media_type: application/json
|
|
schema_id: notarius.dnd.location_occurrences
|
|
schema_version: v1
|
|
module_key: dnd/location-occurrences
|
|
enemy_events:
|
|
lane_id: enemy-events
|
|
media_type: application/json
|
|
schema_id: notarius.dnd.enemy_events
|
|
schema_version: v1
|
|
module_key: dnd/enemy-events
|
|
|
|
scriptorium:
|
|
binary: scriptorium
|
|
config_path: /usr/local/etc/scriptorium/config.yml
|
|
timeout: 10m
|
|
render_debug: false
|
|
artifacts:
|
|
# Configured artifact keys map to source IDs narratio.artifact.<key>.
|
|
session_recap:
|
|
enabled: true
|
|
prompt_id: dnd.session_recap
|
|
profile_id: local-fast
|
|
output_path: artifacts/session_recap.md
|
|
timeout: 10m
|
|
inputs:
|
|
transcript:
|
|
source: narratio.transcript.final_trimmed
|
|
required: true
|
|
previous_recap:
|
|
source: narratio.previous_session.artifact.session_recap
|
|
required: false
|
|
players:
|
|
source: narratio.input.players
|
|
required: true
|
|
party:
|
|
source: narratio.input.party
|
|
required: true
|
|
glossary:
|
|
source: narratio.input.glossary
|
|
required: false
|
|
vars:
|
|
session_id: true
|
|
session_date: true
|
|
campaign_name: true
|
|
previous_session_id: true
|
|
output_kind: session_recap
|
|
|
|
# Example dependent artifact:
|
|
# - depends_on entries use artifact keys.
|
|
# - narratio.artifact.<key> sources require matching depends_on membership.
|
|
player_handout:
|
|
enabled: true
|
|
depends_on:
|
|
- session_recap
|
|
prompt_id: dnd.player_handout
|
|
profile_id: local-fast
|
|
output_path: artifacts/player_handout.md
|
|
timeout: 10m
|
|
inputs:
|
|
recap:
|
|
source: narratio.artifact.session_recap
|
|
required: true
|
|
transcript:
|
|
source: narratio.transcript.final_trimmed
|
|
required: true
|
|
vars:
|
|
session_id: true
|
|
campaign_name: true
|
|
output_kind: player_handout
|
|
|
|
notification:
|
|
# No delivery provider is currently implemented.
|
|
mode: noop
|