name: Sync Knowledge on: workflow_dispatch: push: branches: - master paths: - .gitea/workflows/sync-knowledge.yml - container/schemas/** - culinary/** - scripts/corpus-export - scripts/validate-content - requirements-dev.txt env: OIKB_VERSION: 0.4.0 jobs: sync: runs-on: formulation-deploy steps: - name: Check out repository uses: actions/checkout@v4 - name: Check configuration env: OPEN_WEBUI_URL: ${{ vars.OPEN_WEBUI_URL }} OPEN_WEBUI_API_KEY: ${{ secrets.KNOWLEDGE_SYNC_OPEN_WEBUI_API_KEY }} GOURMAND_KB_ID: ${{ vars.GOURMAND_KB_ID }} run: | set -euo pipefail : "${OPEN_WEBUI_URL:?Missing Actions variable OPEN_WEBUI_URL}" : "${OPEN_WEBUI_API_KEY:?Missing Actions secret KNOWLEDGE_SYNC_OPEN_WEBUI_API_KEY}" : "${GOURMAND_KB_ID:?Missing Actions variable GOURMAND_KB_ID}" command -v python3 >/dev/null || { echo "python3 is required on the Actions runner" >&2; exit 1; } - name: Export recipe corpus run: | python3 -m pip install --user -r requirements-dev.txt scripts/validate-content scripts/corpus-export - name: Install official Open WebUI sync client run: | set -euo pipefail python3 -m venv .venv-oikb . .venv-oikb/bin/activate pip install "oikb==$OIKB_VERSION" - name: Sync knowledge base env: OPEN_WEBUI_URL: ${{ vars.OPEN_WEBUI_URL }} OPEN_WEBUI_API_KEY: ${{ secrets.KNOWLEDGE_SYNC_OPEN_WEBUI_API_KEY }} GOURMAND_KB_ID: ${{ vars.GOURMAND_KB_ID }} run: | set -euo pipefail . .venv-oikb/bin/activate oikb sync generated/open-webui/recipes \ --kb-id "$GOURMAND_KB_ID" \ --concurrency 2