64 lines
1.9 KiB
YAML
64 lines
1.9 KiB
YAML
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: recipe-book-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
|