---
- name: "π Verify the gateway contract for {{ application_id }}"
ansible.builtin.include_tasks: "{{ lookup('path_absolute', 'roles/svc-ai-litellm/tasks/utils/consumer_contract.yml') }}"
- name: "π MEDIAWIKI | Read back the configured AI provider and connection"
ansible.builtin.command:
argv:
- container
- exec
- --user
- "{{ MEDIAWIKI_USER }}"
- "{{ MEDIAWIKI_LOCAL_CID }}" # nocheck: container-exec-resolver
- php
- "{{ [MEDIAWIKI_HTML_DIR, 'maintenance', 'run.php'] | path_join }}"
- getConfiguration
- --format=json
- --settings=wgAIEditingAssistantActiveProvider wgAIEditingAssistantActiveProviderConnection
register: mediawiki_ai_configuration
changed_when: false
run_once: true
delegate_to: "{{ MEDIAWIKI_HOST_NODE }}"
no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"
- name: "π Refuse a MediaWiki AI provider that does not answer through the gateway"
ansible.builtin.assert:
that:
- (mediawiki_ai_configuration.stdout | from_json).wgAIEditingAssistantActiveProvider == MEDIAWIKI_LITELLM_PROVIDER
- ((mediawiki_ai_configuration.stdout | from_json).wgAIEditingAssistantActiveProviderConnection | from_json).url == LITELLM_OPENAI_BASE_LOCAL_URL
- ((mediawiki_ai_configuration.stdout | from_json).wgAIEditingAssistantActiveProviderConnection | from_json).model == LITELLM_CHAT_MODEL
fail_msg: >-
AIEditingAssistant still resolves provider
'{{ (mediawiki_ai_configuration.stdout | from_json).wgAIEditingAssistantActiveProvider }}'
to '{{ ((mediawiki_ai_configuration.stdout | from_json).wgAIEditingAssistantActiveProviderConnection | from_json).url }}'
with model '{{ ((mediawiki_ai_configuration.stdout | from_json).wgAIEditingAssistantActiveProviderConnection | from_json).model }}'
instead of {{ MEDIAWIKI_LITELLM_PROVIDER }} on {{ LITELLM_OPENAI_BASE_LOCAL_URL }}
with {{ LITELLM_CHAT_MODEL }}, so prompts would leave the deployment.