# This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions name: OpenAI on: pull_request_target: branches: ['main'] paths: - 'autogen/**' - 'test/**' - 'notebook/agentchat_auto_feedback_from_code_execution.ipynb' - 'notebook/agentchat_function_call.ipynb' - 'notebook/agentchat_MathChat.ipynb' - 'notebook/oai_completion.ipynb' - 'notebook/oai_chatgpt_gpt4.ipynb' - '.github/workflows/openai.yml' jobs: test: strategy: matrix: os: [ubuntu-latest] python-version: ["3.9", "3.10", "3.11"] runs-on: ${{ matrix.os }} environment: openai steps: # checkout to pr branch - name: Checkout uses: actions/checkout@v3 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies run: | docker --version python -m pip install --upgrade pip wheel pip install -e.[blendsearch] python -c "import autogen" pip install coverage pytest-asyncio datasets - name: Install packages for test when needed if: matrix.python-version == '3.9' run: | pip install docker - name: Install packages for MathChat when needed if: matrix.python-version != '3.11' run: | pip install -e .[mathchat] - name: Install packages for RetrieveChat when needed if: matrix.python-version == '3.9' run: | pip install -e .[retrievechat] - name: Install packages for Teachable when needed run: | pip install -e .[teachable] - name: Install packages for RetrieveChat with QDrant when needed if: matrix.python-version == '3.11' run: | pip install -e .[retrievechat] qdrant_client[fastembed] - name: Coverage if: matrix.python-version == '3.9' env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }} AZURE_OPENAI_API_BASE: ${{ secrets.AZURE_OPENAI_API_BASE }} OAI_CONFIG_LIST: ${{ secrets.OAI_CONFIG_LIST }} run: | coverage run -a -m pytest test coverage xml - name: Coverage and check notebook outputs if: matrix.python-version != '3.9' env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }} AZURE_OPENAI_API_BASE: ${{ secrets.AZURE_OPENAI_API_BASE }} WOLFRAM_ALPHA_APPID: ${{ secrets.WOLFRAM_ALPHA_APPID }} OAI_CONFIG_LIST: ${{ secrets.OAI_CONFIG_LIST }} run: | pip install nbconvert nbformat ipykernel coverage run -a -m pytest test/agentchat/test_qdrant_retrievechat.py coverage run -a -m pytest test/test_with_openai.py coverage run -a -m pytest test/test_notebook.py coverage xml cat "$(pwd)/test/executed_openai_notebook_output.txt" - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 with: file: ./coverage.xml flags: unittests