Files
ansible-collection-dnd/roles/pipeline/defaults/main.yml

338 lines
11 KiB
YAML

---
dnd_pipeline_audita_version: v0.9.1
dnd_pipeline_narratio_version: v2.1.0
dnd_pipeline_notarius_version: v0.7.0
dnd_pipeline_seriatim_version: v1.5.0
dnd_pipeline_scriptorium_version: v0.13.0
dnd_pipeline_manage_build_dependencies: true
dnd_pipeline_go_snap_channel: 1.26/stable
dnd_pipeline_go_binary: /snap/bin/go
dnd_pipeline_runtime_user: narratio
dnd_pipeline_runtime_group: narratio
dnd_pipeline_secrets: {}
dnd_pipeline_config_directory_mode: "0755"
dnd_pipeline_config_file_mode: "0644"
dnd_pipeline_campaigns_repository_url: https://gitea.maximumdirect.net/eric/campaigns.git
dnd_pipeline_campaigns_revision: main
dnd_pipeline_campaigns_root: /usr/local/share/narratio/campaigns
dnd_pipeline_prompt_library_repository_url: https://gitea.maximumdirect.net/eric/narratio-prompts.git
dnd_pipeline_prompt_library_revision: main
dnd_pipeline_prompt_library_root: /usr/local/share/narratio/prompt-library
dnd_pipeline_audita_pipeline_modules:
- glossary
- homophones
- glossary
- spoken_word
- grammar
dnd_pipeline_audita_output_schema: audita-v1
dnd_pipeline_audita_llm_proposal_base_url: https://inference.ai.rakestrawhome.com/v1
dnd_pipeline_audita_llm_proposal_model: google/gemma-4-31b-it
dnd_pipeline_audita_llm_proposal_api_key_env: AUDITA_LLM_API_KEY
dnd_pipeline_audita_llm_proposal_timeout: 900s
dnd_pipeline_audita_llm_proposal_max_retries: 3
dnd_pipeline_audita_llm_validation_base_url: https://inference.ai.rakestrawhome.com/v1
dnd_pipeline_audita_llm_validation_model: google/gemma-4-31b-it
dnd_pipeline_audita_llm_validation_api_key_env: AUDITA_LLM_API_KEY
dnd_pipeline_audita_llm_validation_timeout: 900s
dnd_pipeline_audita_llm_validation_max_retries: 3
dnd_pipeline_audita_concurrency_total_llm: 4
dnd_pipeline_audita_concurrency_proposal_llm: 4
dnd_pipeline_audita_concurrency_validation_llm: 4
dnd_pipeline_audita_chunking_target_sections: 8
dnd_pipeline_audita_chunking_max_section_tokens: 6144
dnd_pipeline_audita_chunking_min_section_tokens: 2048
dnd_pipeline_audita_normalization_max_segment_gap: 3s
dnd_pipeline_audita_normalization_ellipsis_gap: 3s
dnd_pipeline_audita_normalization_max_segment_duration: 240s
dnd_pipeline_audita_normalization_max_segment_tokens: 2048
dnd_pipeline_audita_thresholds_glossary: 0.8
dnd_pipeline_audita_thresholds_homophones: 0.8
dnd_pipeline_audita_thresholds_spoken_word: 0.8
dnd_pipeline_audita_thresholds_grammar: 0.8
dnd_pipeline_audita_context_description: >-
The following transcript was recorded during a Dungeons & Dragons game session.
It may contain some unrelated pre-session or post-session banter, in addition
to actual D&D gameplay.
dnd_pipeline_audita_diagnostics_work_dir: /tmp/audita
dnd_pipeline_audita_diagnostics_retention: auto
dnd_pipeline_notarius_pipelines:
dnd-session:
llm_profile: dnd-extraction
input:
module: seriatim
chunk:
module: dnd/scenes
retries: 2
output:
module: json
options:
include_chunk_map: true
evidence_context:
enabled: true
window_units: 3
lanes:
- item-occurrences
- item-registry
- location-registry
- location-occurrences
- npc-registry
- spells
- combat-turns
- npc-occurrences
- enemy-events
steps:
- id: describe-session
artifacts:
item-registry:
extract:
module: dnd/item-registry
retries: 2
merge:
module: appendorder
normalize:
module: dnd/item-registry
npc-registry:
extract:
module: dnd/npc-registry
retries: 2
merge:
module: appendorder
normalize:
module: dnd/npc-registry
retries: 2
location-registry:
extract:
module: dnd/location-registry
retries: 2
merge:
module: appendorder
normalize:
module: dnd/location-registry
retries: 2
scene-descriptions:
extract:
module: dnd/scene-descriptions
retries: 2
merge:
module: appendorder
normalize:
module: dnd/scene-descriptions
- id: extract-events
references:
location_registry:
artifact:
step: describe-session
lane: location-registry
npc_registry:
artifact:
step: describe-session
lane: npc-registry
scene_descriptions:
artifact:
step: describe-session
lane: scene-descriptions
item_registry:
artifact:
step: describe-session
lane: item-registry
artifacts:
item-occurrences:
extract:
module: dnd/item-occurrences
retries: 2
merge:
module: appendorder
normalize:
module: dnd/item-occurrences
spells:
extract:
module: dnd/spells
retries: 2
merge:
module: appendorder
normalize:
module: dnd/spells
combat-turns:
extract:
module: dnd/combat-turns
retries: 2
merge:
module: appendorder
normalize:
module: dnd/combat-turns
npc-occurrences:
extract:
module: dnd/npc-occurrences
retries: 2
merge:
module: appendorder
normalize:
module: dnd/npc-occurrences
location-occurrences:
extract:
module: dnd/location-occurrences
retries: 2
merge:
module: appendorder
normalize:
module: dnd/location-occurrences
- id: track-enemies
references:
npc_registry:
artifact:
step: describe-session
lane: npc-registry
scene_descriptions:
artifact:
step: describe-session
lane: scene-descriptions
combat_turns:
artifact:
step: extract-events
lane: combat-turns
npc_occurrences:
artifact:
step: extract-events
lane: npc-occurrences
artifacts:
enemy-events:
extract:
module: dnd/enemy-events
retries: 2
merge:
module: appendorder
normalize:
module: dnd/enemy-events
dnd_pipeline_notarius_cache_root: /var/cache/notarius
dnd_pipeline_notarius_cache_chunk_plans_mode: auto
dnd_pipeline_notarius_cache_checkpoints_enabled: true
dnd_pipeline_narratio_seriatim_output_schema: seriatim-intermediate
dnd_pipeline_narratio_normalize_output_path: transcripts/final.json
dnd_pipeline_narratio_normalize_output_schema: seriatim-intermediate
dnd_pipeline_narratio_trim_enabled: true
dnd_pipeline_narratio_trim_output_path: transcripts/final.trimmed.json
dnd_pipeline_narratio_trim_bounds_prompt_id: dnd.session_bounds
dnd_pipeline_narratio_trim_bounds_transcript_input_name: transcript
dnd_pipeline_narratio_trim_bounds_output_path: artifacts/session_bounds.json
dnd_pipeline_narratio_notarius_pipeline_id: dnd-session
dnd_pipeline_narratio_notarius_llm_api_key: OPENROUTER_API_KEY
dnd_pipeline_narratio_notarius_resume: true
dnd_pipeline_narratio_notarius_references:
party: narratio.input.party
players: narratio.input.players
glossary: narratio.input.glossary
dnd_pipeline_narratio_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
dnd_pipeline_narratio_render_enabled: true
dnd_pipeline_narratio_render_format: markdown
dnd_pipeline_narratio_session_recap_artifact:
enabled: true
prompt_id: dnd.session_recap
output_path: artifacts/session_recap.md
inputs:
transcript:
source: narratio.transcript.final_trimmed
required: true
recap:
source: narratio.previous_session.artifact.session_recap
required: false
dnd_pipeline_narratio_hostile_rumors_artifact:
enabled: true
prompt_id: dnd.hostile_rumors
output_path: artifacts/hostile_rumors.md
inputs:
recap:
source: narratio.artifact.session_recap
required: true
dnd_pipeline_narratio_deranged_rumors_artifact:
enabled: true
prompt_id: dnd.deranged_rumors
output_path: artifacts/deranged_rumors.md
inputs:
recap:
source: narratio.artifact.session_recap
required: true
dnd_pipeline_narratio_scene_map_artifact:
enabled: false
prompt_id: dnd.scene_map
output_path: artifacts/scene_map.json
inputs:
transcript:
source: narratio.transcript.final_trimmed
required: true
dnd_pipeline_narratio_character_analysis_family:
enabled: false
for_each: party.characters
prompt_id: dnd.character_meta_analysis
output_path_pattern: artifacts/character_meta_analysis/{character_id}.md
inputs:
transcript:
source: narratio.transcript.final_trimmed
required: true
recap:
source: narratio.previous_session.artifact.session_recap
required: false
member_vars:
character_name: character.name
character_class: character.class_summary
dnd_pipeline_narratio_testing_scriptorium_profile: gemini-flash-latest