name: test-notebook

on:
  workflow_call:
    inputs:
      notebook-location:
        description: "Location of Jupyter notebook to run"
        required: true
        type: string
    secrets:
      #LLM_MODEL:
      #  required: true
      #LLM_ENDPOINT:
      #  required: true
      LLM_API_KEY:
        required: true
      OPENAI_API_KEY:
        required: true
      #LLM_API_VERSION:
      #  required: true
      EMBEDDING_MODEL:
        required: true
      EMBEDDING_ENDPOINT:
        required: true
      EMBEDDING_API_KEY:
        required: true
      EMBEDDING_API_VERSION:
        required: true

env:
  RUNTIME__LOG_LEVEL: ERROR

jobs:

  run_notebook_test:
    name: test
    runs-on: ubuntu-22.04
    defaults:
      run:
        shell: bash
    steps:
      - name: Check out
        uses: actions/checkout@master

      - name: Cognee Setup
        uses: ./.github/actions/cognee_setup
        with:
          python-version: ${{ inputs.python-version }}
          extra-dependencies: "notebook"

      - name: Execute Jupyter Notebook
        env:
          ENV: 'dev'
          #LLM_MODEL: ${{ secrets.LLM_MODEL }}
          #LLM_ENDPOINT: ${{ secrets.LLM_ENDPOINT }}
          LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }}
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} # Use OpenAI Until a multimedia model is deployed and DeepEval support for other models is added
          #LLM_API_VERSION: ${{ secrets.LLM_API_VERSION }}
          EMBEDDING_MODEL: ${{ secrets.EMBEDDING_MODEL }}
          EMBEDDING_ENDPOINT: ${{ secrets.EMBEDDING_ENDPOINT }}
          EMBEDDING_API_KEY: ${{ secrets.EMBEDDING_API_KEY }}
          EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }}
        run: |
          uv run jupyter nbconvert \
          --to notebook \
          --execute ${{ inputs.notebook-location }} \
          --output executed_notebook.ipynb \
          --ExecutePreprocessor.timeout=1200
