samples_flows_chat_chatwithpdf_chatwithpdfazure #989
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This code is autogenerated. | |
# Code is generated by running custom script: python3 readme.py | |
# Any manual changes to this file may cause incorrect behavior. | |
# Any manual changes will be overwritten if the code is regenerated. | |
name: samples_flows_chat_chatwithpdf_chatwithpdfazure | |
on: | |
schedule: | |
- cron: "44 20 * * *" # Every day starting at 4:44 BJT | |
pull_request: | |
branches: [ main ] | |
paths: [ examples/flows/chat/chat-with-pdf/**, examples/*requirements.txt, .github/workflows/samples_flows_chat_chatwithpdf_chatwithpdfazure.yml ] | |
workflow_dispatch: | |
env: | |
IS_IN_CI_PIPELINE: "true" | |
permissions: | |
id-token: write | |
contents: read | |
jobs: | |
samples_flows_chat_chatwithpdf_chatwithpdfazure: | |
runs-on: ubuntu-latest | |
environment: | |
internal | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Generate config.json for canary workspace (scheduled runs only) | |
if: github.event_name == 'schedule' | |
run: echo '${{ secrets.TEST_WORKSPACE_CONFIG_JSON_CANARY }}' > ${{ github.workspace }}/examples/config.json | |
- name: Generate config.json for production workspace | |
if: github.event_name != 'schedule' | |
run: echo '${{ secrets.EXAMPLE_WORKSPACE_CONFIG_JSON_PROD }}' > ${{ github.workspace }}/examples/config.json | |
- name: Setup Python 3.9 environment | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.9" | |
- name: Prepare requirements | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r ${{ github.workspace }}/examples/requirements.txt | |
pip install -r ${{ github.workspace }}/examples/dev_requirements.txt | |
pip freeze | |
pf --version | |
shell: bash -el {0} | |
- name: Prepare sample requirements | |
working-directory: examples/flows/chat/chat-with-pdf | |
run: | | |
pip install -r requirements.txt | |
- name: Create Chat With PDF Custom Connection | |
working-directory: examples/flows/chat/chat-with-pdf | |
run: | | |
AOAI_API_KEY=${{ secrets.AOAI_API_KEY_TEST }} | |
AOAI_API_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} | |
AOAI_API_ENDPOINT=$(echo ${AOAI_API_ENDPOINT//\//\\/}) | |
if [[ -e .env.example ]]; then | |
echo "env replacement" | |
sed -i -e "s/<your_AOAI_key>/$AOAI_API_KEY/g" -e "s/<your_AOAI_endpoint>/$AOAI_API_ENDPOINT/g" .env.example | |
mv .env.example .env | |
pf connection create --file .env --name chat_with_pdf_custom_connection | |
fi | |
- name: Create AOAI Connection | |
working-directory: examples/connections | |
run: | | |
AOAI_API_KEY=${{ secrets.AOAI_API_KEY_TEST }} | |
AOAI_API_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} | |
if [[ -e azure_openai.yml ]]; then | |
pf connection create --file azure_openai.yml --set api_key=$AOAI_API_KEY api_base=$AOAI_API_ENDPOINT | |
fi | |
- name: Random Wait | |
uses: AliSajid/random-wait-action@main | |
with: | |
minimum: 1 | |
maximum: 300 | |
- name: Azure Login | |
uses: azure/login@v2 | |
with: | |
subscription-id: ${{secrets.AZURE_SUBSCRIPTION_ID}} | |
tenant-id: ${{secrets.AZURE_TENANT_ID}} | |
client-id: ${{secrets.AZURE_CLIENT_ID}} | |
- name: Fetch OID token every 4 mins | |
shell: bash | |
run: | | |
while true; do | |
token_request=$ACTIONS_ID_TOKEN_REQUEST_TOKEN | |
token_uri=$ACTIONS_ID_TOKEN_REQUEST_URL | |
token=$(curl -H "Authorization: bearer $token_request" "${token_uri}&audience=api://AzureADTokenExchange" | jq .value -r) | |
az login --service-principal -u ${{secrets.AZURE_CLIENT_ID}} -t ${{secrets.AZURE_TENANT_ID}} --federated-token $token --output none | |
# Sleep for 4 minutes | |
sleep 240 | |
done & | |
- name: Test Notebook | |
working-directory: examples/flows/chat/chat-with-pdf | |
run: | | |
papermill -k python chat-with-pdf-azure.ipynb chat-with-pdf-azure.output.ipynb | |
- name: Upload artifact | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: artifact | |
path: examples/flows/chat/chat-with-pdf |