From 6d912140087d30e549020a6ed7d26b4f61eab148 Mon Sep 17 00:00:00 2001 From: Clement Wang <47586720+wangchao1230@users.noreply.github.com> Date: Wed, 17 Apr 2024 18:36:27 +0800 Subject: [PATCH] Flex flow, Prompty & Tracing examples (#1741) # Description Add Exmples for Flex flow, Prompty & Tracing # All Promptflow Contribution checklist: - [x] **The pull request does not introduce [breaking changes].** - [x] **CHANGELOG is updated for new features, bug fixes or other significant changes.** - [x] **I have read the [contribution guidelines](../CONTRIBUTING.md).** - [ ] **Create an issue and link to the pull request to get dedicated review from promptflow team. Learn more: [suggested workflow](../CONTRIBUTING.md#suggested-workflow).** ## General Guidelines and Best Practices - [ ] Title of the pull request is clear and informative. - [ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, [see this page](https://github.com/Azure/azure-powershell/blob/master/documentation/development-docs/cleaning-up-commits.md). ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. --------- Signed-off-by: Brynn Yin Co-authored-by: Clement Wang Co-authored-by: Han Wang Co-authored-by: Brynn Yin Co-authored-by: Zhengfei Wang Co-authored-by: lisagreenview Co-authored-by: Zhen Ruan Co-authored-by: Honglin Du <0mza987@gmail.com> --- .cspell.json | 5 + .github/workflows/samples_connections.yml | 9 + .../samples_connections_connection.yml | 16 + .../workflows/samples_flex_flows_basic.yml | 110 ++++++ .../samples_flex_flows_chat_basic.yml | 110 ++++++ .../samples_flex_flows_eval_checklist.yml | 110 ++++++ .../samples_flex_flows_eval_code_quality.yml | 110 ++++++ ...les_flexflows_basic_flexflowquickstart.yml | 64 ++++ ...lexflows_basic_flexflowquickstartazure.yml | 54 +++ .../samples_flows_chat_chat_basic.yml | 9 + .../samples_flows_chat_chat_math_variant.yml | 9 + .../samples_flows_chat_chat_with_pdf.yml | 9 + ...samples_flows_chat_chat_with_wikipedia.yml | 9 + ...ws_chat_use_functions_with_chat_models.yml | 9 + .../samples_flows_evaluation_eval_basic.yml | 9 + ...amples_flows_evaluation_eval_chat_math.yml | 9 + ...valuation_eval_classification_accuracy.yml | 9 + ...lows_evaluation_eval_entity_match_rate.yml | 9 + ...les_flows_evaluation_eval_groundedness.yml | 9 + ...evaluation_eval_perceived_intelligence.yml | 9 + ...ples_flows_evaluation_eval_qna_non_rag.yml | 9 + ..._flows_evaluation_eval_qna_rag_metrics.yml | 9 + ...es_flows_evaluation_eval_summarization.yml | 9 + ...amples_flows_standard_autonomous_agent.yml | 9 + .../samples_flows_standard_basic.yml | 9 + ..._flows_standard_basic_with_builtin_llm.yml | 9 + ...s_flows_standard_basic_with_connection.yml | 9 + ..._standard_conditional_flow_for_if_else.yml | 9 + ...s_standard_conditional_flow_for_switch.yml | 9 + ...ws_standard_customer_intent_extraction.yml | 9 + ...standard_flow_with_additional_includes.yml | 9 + ...ples_flows_standard_flow_with_symlinks.yml | 9 + .../samples_flows_standard_gen_docstring.yml | 9 + .../samples_flows_standard_maths_to_code.yml | 9 + ...lows_standard_named_entity_recognition.yml | 9 + ...ples_flows_standard_web_classification.yml | 9 + .../samples_getstarted_quickstart.yml | 16 + .github/workflows/samples_prompty_basic.yml | 110 ++++++ ...amples_prompty_basic_promptyquickstart.yml | 64 ++++ .../workflows/samples_prompty_chat_basic.yml | 110 ++++++ ...ples_prompty_chatbasic_chatwithprompty.yml | 64 ++++ .../samples_prompty_eval_apology.yml | 110 ++++++ .../workflows/samples_prompty_eval_basic.yml | 110 ++++++ .../samples_runmanagement_runmanagement.yml | 16 + ...e_cases_cascading_inputs_tool_showcase.yml | 9 + ...ols_use_cases_custom_llm_tool_showcase.yml | 9 + ..._type_connection_package_tool_showcase.yml | 9 + ...g_type_connection_script_tool_showcase.yml | 9 + ...cases_dynamic_list_input_tool_showcase.yml | 9 + ...autogengroupchat_traceautogengroupchat.yml | 69 ++++ ...customotlpcollector_otlptracecollector.yml | 64 ++++ ...mples_tracing_langchain_tracelangchain.yml | 64 ++++ ...utorials_e2e_development_chat_with_pdf.yml | 9 + ...utorials_flow_deploy_azure_app_service.yml | 9 + ...s_flow_deploy_create_service_with_flow.yml | 9 + ...ploy_distribute_flow_as_executable_app.yml | 9 + .../samples_tutorials_flow_deploy_docker.yml | 9 + ...mples_tutorials_flow_deploy_kubernetes.yml | 9 + ...luation_promptflow_quality_improvement.yml | 9 + .../workflows/samples_tutorials_tracing.yml | 110 ++++++ docs/concepts/concept-flows.md | 34 +- docs/how-to-guides/index.md | 6 + docs/how-to-guides/tracing/index.md | 118 +++++++ docs/media/trace/LLM-trace-detail.png | Bin 0 -> 68615 bytes docs/media/trace/LLM-trace-list.png | Bin 0 -> 30188 bytes docs/media/trace/at-trace-detail.png | Bin 0 -> 81219 bytes docs/media/trace/autogen-trace-detail.png | Bin 0 -> 131131 bytes docs/media/trace/batch_run_record.png | Bin 0 -> 240504 bytes docs/media/trace/flow-trace-detail.png | Bin 0 -> 216595 bytes docs/media/trace/flow-trace-records.png | Bin 0 -> 86227 bytes docs/media/trace/langchain-trace-detail.png | Bin 0 -> 108815 bytes examples/README.md | 28 ++ examples/flex-flows/.env.example | 2 + examples/flex-flows/README.md | 18 + examples/flex-flows/basic/README.md | 110 ++++++ examples/flex-flows/basic/data.jsonl | 3 + .../basic/flex-flow-quickstart-azure.ipynb | 263 ++++++++++++++ .../basic/flex-flow-quickstart.ipynb | 334 ++++++++++++++++++ examples/flex-flows/basic/flow.flex.yaml | 10 + examples/flex-flows/basic/hello.jinja2 | 3 + examples/flex-flows/basic/llm.py | 80 +++++ examples/flex-flows/basic/paths.py | 6 + examples/flex-flows/basic/programmer.py | 41 +++ .../flex-flows/basic/requirements-azure.txt | 1 + examples/flex-flows/basic/requirements.txt | 2 + examples/flex-flows/basic/run.yml | 5 + examples/flex-flows/chat-basic/README.md | 117 ++++++ examples/flex-flows/chat-basic/chat.jinja2 | 12 + examples/flex-flows/chat-basic/data.jsonl | 2 + examples/flex-flows/chat-basic/flow.flex.yaml | 5 + examples/flex-flows/chat-basic/flow.py | 59 ++++ .../flex-flows/chat-basic/requirements.txt | 2 + examples/flex-flows/chat-basic/run.yml | 7 + examples/flex-flows/chat-basic/sample.json | 1 + examples/flex-flows/eval-checklist/README.md | 89 +++++ .../flex-flows/eval-checklist/check_list.py | 91 +++++ examples/flex-flows/eval-checklist/data.jsonl | 1 + .../flex-flows/eval-checklist/flow.flex.yaml | 6 + examples/flex-flows/eval-checklist/prompt.md | 21 ++ .../eval-checklist/requirements.txt | 2 + examples/flex-flows/eval-checklist/run.yml | 6 + .../flex-flows/eval-checklist/sample.json | 4 + .../flex-flows/eval-code-quality/README.md | 35 ++ .../eval-code-quality/code_quality.py | 72 ++++ .../eval-code-quality/flow.flex.yaml | 6 + .../flex-flows/eval-code-quality/prompt.md | 20 ++ .../eval-code-quality/requirements.txt | 2 + examples/flows/standard/basic/hello.py | 4 +- .../customer-intent-extraction/README.md | 2 +- .../data/sample.json | 13 + .../customer-intent-extraction/intent.py | 22 +- .../requirements.txt | 2 +- examples/prompty/.env.example | 2 + examples/prompty/README.md | 19 + examples/prompty/basic/README.md | 96 +++++ examples/prompty/basic/basic.prompty | 34 ++ examples/prompty/basic/data.jsonl | 3 + .../prompty/basic/prompty-quickstart.ipynb | 299 ++++++++++++++++ examples/prompty/basic/run.yml | 10 + examples/prompty/basic/sample.json | 5 + examples/prompty/chat-basic/README.md | 99 ++++++ .../chat-basic/chat-with-prompty.ipynb | 315 +++++++++++++++++ examples/prompty/chat-basic/chat.prompty | 53 +++ examples/prompty/chat-basic/data.jsonl | 3 + examples/prompty/chat-basic/sample.json | 23 ++ examples/prompty/eval-apology/README.md | 45 +++ examples/prompty/eval-apology/apology.prompty | 43 +++ examples/prompty/eval-apology/sample.json | 14 + .../eval-apology/sample_no_apology.json | 5 + examples/prompty/eval-basic/README.md | 28 ++ examples/prompty/eval-basic/eval.prompty | 44 +++ examples/prompty/eval-basic/sample.json | 5 + examples/requirements.txt | 2 +- examples/tutorials/tracing/.env.example | 3 + examples/tutorials/tracing/README.md | 112 ++++++ .../tracing/autogen-groupchat/.gitignore | 2 + .../OAI_CONFIG_LIST.json.example | 16 + .../tracing/autogen-groupchat/README.md | 6 + .../autogen-groupchat/requirements.txt | 3 + .../trace-autogen-groupchat.ipynb | 218 ++++++++++++ .../tracing/custom-otlp-collector/llm.py | 51 +++ .../otlp-trace-collector.ipynb | 191 ++++++++++ .../custom-otlp-collector/requirements.txt | 3 + .../tracing/langchain/requirements.txt | 4 + .../tracing/langchain/trace-langchain.ipynb | 167 +++++++++ examples/tutorials/tracing/math_to_code.py | 93 +++++ scripts/docs/conf.py | 2 + .../readme_templates/README.md.jinja2 | 18 + .../workflow_steps/step_create_env.yml.jinja2 | 5 + .../step_extract_steps_and_run.yml.jinja2 | 4 + .../autogen_workflow.yml.jinja2 | 53 +++ .../basic_workflow.yml.jinja2 | 16 + scripts/readme/readme.py | 52 +++ scripts/readme/workflow_generator.py | 2 + 154 files changed, 5660 insertions(+), 21 deletions(-) create mode 100644 .github/workflows/samples_flex_flows_basic.yml create mode 100644 .github/workflows/samples_flex_flows_chat_basic.yml create mode 100644 .github/workflows/samples_flex_flows_eval_checklist.yml create mode 100644 .github/workflows/samples_flex_flows_eval_code_quality.yml create mode 100644 .github/workflows/samples_flexflows_basic_flexflowquickstart.yml create mode 100644 .github/workflows/samples_flexflows_basic_flexflowquickstartazure.yml create mode 100644 .github/workflows/samples_prompty_basic.yml create mode 100644 .github/workflows/samples_prompty_basic_promptyquickstart.yml create mode 100644 .github/workflows/samples_prompty_chat_basic.yml create mode 100644 .github/workflows/samples_prompty_chatbasic_chatwithprompty.yml create mode 100644 .github/workflows/samples_prompty_eval_apology.yml create mode 100644 .github/workflows/samples_prompty_eval_basic.yml create mode 100644 .github/workflows/samples_tracing_autogengroupchat_traceautogengroupchat.yml create mode 100644 .github/workflows/samples_tracing_customotlpcollector_otlptracecollector.yml create mode 100644 .github/workflows/samples_tracing_langchain_tracelangchain.yml create mode 100644 .github/workflows/samples_tutorials_tracing.yml create mode 100644 docs/how-to-guides/tracing/index.md create mode 100644 docs/media/trace/LLM-trace-detail.png create mode 100644 docs/media/trace/LLM-trace-list.png create mode 100644 docs/media/trace/at-trace-detail.png create mode 100644 docs/media/trace/autogen-trace-detail.png create mode 100644 docs/media/trace/batch_run_record.png create mode 100644 docs/media/trace/flow-trace-detail.png create mode 100644 docs/media/trace/flow-trace-records.png create mode 100644 docs/media/trace/langchain-trace-detail.png create mode 100644 examples/flex-flows/.env.example create mode 100644 examples/flex-flows/README.md create mode 100644 examples/flex-flows/basic/README.md create mode 100644 examples/flex-flows/basic/data.jsonl create mode 100644 examples/flex-flows/basic/flex-flow-quickstart-azure.ipynb create mode 100644 examples/flex-flows/basic/flex-flow-quickstart.ipynb create mode 100644 examples/flex-flows/basic/flow.flex.yaml create mode 100644 examples/flex-flows/basic/hello.jinja2 create mode 100644 examples/flex-flows/basic/llm.py create mode 100644 examples/flex-flows/basic/paths.py create mode 100644 examples/flex-flows/basic/programmer.py create mode 100644 examples/flex-flows/basic/requirements-azure.txt create mode 100644 examples/flex-flows/basic/requirements.txt create mode 100644 examples/flex-flows/basic/run.yml create mode 100644 examples/flex-flows/chat-basic/README.md create mode 100644 examples/flex-flows/chat-basic/chat.jinja2 create mode 100644 examples/flex-flows/chat-basic/data.jsonl create mode 100644 examples/flex-flows/chat-basic/flow.flex.yaml create mode 100644 examples/flex-flows/chat-basic/flow.py create mode 100644 examples/flex-flows/chat-basic/requirements.txt create mode 100644 examples/flex-flows/chat-basic/run.yml create mode 100644 examples/flex-flows/chat-basic/sample.json create mode 100644 examples/flex-flows/eval-checklist/README.md create mode 100644 examples/flex-flows/eval-checklist/check_list.py create mode 100644 examples/flex-flows/eval-checklist/data.jsonl create mode 100644 examples/flex-flows/eval-checklist/flow.flex.yaml create mode 100644 examples/flex-flows/eval-checklist/prompt.md create mode 100644 examples/flex-flows/eval-checklist/requirements.txt create mode 100644 examples/flex-flows/eval-checklist/run.yml create mode 100644 examples/flex-flows/eval-checklist/sample.json create mode 100644 examples/flex-flows/eval-code-quality/README.md create mode 100644 examples/flex-flows/eval-code-quality/code_quality.py create mode 100644 examples/flex-flows/eval-code-quality/flow.flex.yaml create mode 100644 examples/flex-flows/eval-code-quality/prompt.md create mode 100644 examples/flex-flows/eval-code-quality/requirements.txt create mode 100644 examples/flows/standard/customer-intent-extraction/data/sample.json create mode 100644 examples/prompty/.env.example create mode 100644 examples/prompty/README.md create mode 100644 examples/prompty/basic/README.md create mode 100644 examples/prompty/basic/basic.prompty create mode 100644 examples/prompty/basic/data.jsonl create mode 100644 examples/prompty/basic/prompty-quickstart.ipynb create mode 100644 examples/prompty/basic/run.yml create mode 100644 examples/prompty/basic/sample.json create mode 100644 examples/prompty/chat-basic/README.md create mode 100644 examples/prompty/chat-basic/chat-with-prompty.ipynb create mode 100644 examples/prompty/chat-basic/chat.prompty create mode 100644 examples/prompty/chat-basic/data.jsonl create mode 100644 examples/prompty/chat-basic/sample.json create mode 100644 examples/prompty/eval-apology/README.md create mode 100644 examples/prompty/eval-apology/apology.prompty create mode 100644 examples/prompty/eval-apology/sample.json create mode 100644 examples/prompty/eval-apology/sample_no_apology.json create mode 100644 examples/prompty/eval-basic/README.md create mode 100644 examples/prompty/eval-basic/eval.prompty create mode 100644 examples/prompty/eval-basic/sample.json create mode 100644 examples/tutorials/tracing/.env.example create mode 100644 examples/tutorials/tracing/README.md create mode 100644 examples/tutorials/tracing/autogen-groupchat/.gitignore create mode 100644 examples/tutorials/tracing/autogen-groupchat/OAI_CONFIG_LIST.json.example create mode 100644 examples/tutorials/tracing/autogen-groupchat/README.md create mode 100644 examples/tutorials/tracing/autogen-groupchat/requirements.txt create mode 100644 examples/tutorials/tracing/autogen-groupchat/trace-autogen-groupchat.ipynb create mode 100644 examples/tutorials/tracing/custom-otlp-collector/llm.py create mode 100644 examples/tutorials/tracing/custom-otlp-collector/otlp-trace-collector.ipynb create mode 100644 examples/tutorials/tracing/custom-otlp-collector/requirements.txt create mode 100644 examples/tutorials/tracing/langchain/requirements.txt create mode 100644 examples/tutorials/tracing/langchain/trace-langchain.ipynb create mode 100644 examples/tutorials/tracing/math_to_code.py create mode 100644 scripts/readme/ghactions_driver/workflow_templates/autogen_workflow.yml.jinja2 diff --git a/.cspell.json b/.cspell.json index eb928335f59..b176301cc7d 100644 --- a/.cspell.json +++ b/.cspell.json @@ -24,6 +24,9 @@ "**/*.xml", "**/*.txt", ".gitignore", + "examples/README.md", + "examples/flex-flows/README.md", + "examples/prompty/README.md", "scripts/docs/_build/**", "src/promptflow-azure/promptflow/azure/_restclient/flow/**", "src/promptflow-azure/promptflow/azure/_restclient/swagger.json", @@ -188,6 +191,8 @@ "otel", "OTLP", "spawnv", + "arxiv", + "autogen", "spawnve", "addrs", "pywin", diff --git a/.github/workflows/samples_connections.yml b/.github/workflows/samples_connections.yml index 3f39600de11..9ff9e437f1e 100644 --- a/.github/workflows/samples_connections.yml +++ b/.github/workflows/samples_connections.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/connections run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_connections_connection.yml b/.github/workflows/samples_connections_connection.yml index 92333dd5f81..b76af61d909 100644 --- a/.github/workflows/samples_connections_connection.yml +++ b/.github/workflows/samples_connections_connection.yml @@ -34,6 +34,22 @@ jobs: python -m pip install --upgrade pip pip install -r ${{ github.workspace }}/examples/requirements.txt pip install -r ${{ github.workspace }}/examples/dev_requirements.txt + - name: setup .env file + working-directory: examples/connections + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create Aoai Connection run: pf connection create -f ${{ github.workspace }}/examples/connections/azure_openai.yml --set api_key="${{ secrets.AOAI_API_KEY_TEST }}" api_base="${{ secrets.AOAI_API_ENDPOINT_TEST }}" - name: Test Notebook diff --git a/.github/workflows/samples_flex_flows_basic.yml b/.github/workflows/samples_flex_flows_basic.yml new file mode 100644 index 00000000000..f7d47c03461 --- /dev/null +++ b/.github/workflows/samples_flex_flows_basic.yml @@ -0,0 +1,110 @@ +# 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_flex_flows_basic +on: + schedule: + - cron: "30 20 * * *" # Every day starting at 4:30 BJT + pull_request: + branches: [ main ] + paths: [ examples/flex-flows/basic/**, examples/*requirements.txt, .github/workflows/samples_flex_flows_basic.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_flex_flows_basic: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Python 3.9 environment + uses: actions/setup-python@v4 + with: + python-version: "3.9" + - name: Prepare requirements + working-directory: examples + run: | + if [[ -e requirements.txt ]]; then + python -m pip install --upgrade pip + pip install -r requirements.txt + fi + - name: Prepare dev requirements + working-directory: examples + run: | + python -m pip install --upgrade pip + pip install -r dev_requirements.txt + - name: Refine .env file + working-directory: examples/flex-flows/basic + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + - name: Create run.yml + working-directory: examples/flex-flows/basic + run: | + gpt_base=${{ secrets.AOAI_API_ENDPOINT_TEST }} + gpt_base=$(echo ${gpt_base//\//\\/}) + if [[ -e run.yml ]]; then + sed -i -e "s/\${azure_open_ai_connection.api_key}/${{ secrets.AOAI_API_KEY_TEST }}/g" -e "s/\${azure_open_ai_connection.api_base}/$gpt_base/g" run.yml + fi + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - name: Extract Steps examples/flex-flows/basic/README.md + working-directory: ${{ github.workspace }} + run: | + python scripts/readme/extract_steps_from_readme.py -f examples/flex-flows/basic/README.md -o examples/flex-flows/basic + - name: Cat script + working-directory: examples/flex-flows/basic + run: | + cat bash_script.sh + - name: Run scripts against canary workspace (scheduled runs only) + if: github.event_name == 'schedule' + working-directory: examples/flex-flows/basic + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} + bash bash_script.sh + - name: Run scripts against production workspace + if: github.event_name != 'schedule' + working-directory: examples/flex-flows/basic + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} + bash bash_script.sh + - name: Pip List for Debug + if : ${{ always() }} + working-directory: examples/flex-flows/basic + run: | + pip list + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/flex-flows/basic/bash_script.sh \ No newline at end of file diff --git a/.github/workflows/samples_flex_flows_chat_basic.yml b/.github/workflows/samples_flex_flows_chat_basic.yml new file mode 100644 index 00000000000..fd7ff158a73 --- /dev/null +++ b/.github/workflows/samples_flex_flows_chat_basic.yml @@ -0,0 +1,110 @@ +# 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_flex_flows_chat_basic +on: + schedule: + - cron: "9 20 * * *" # Every day starting at 4:9 BJT + pull_request: + branches: [ main ] + paths: [ examples/flex-flows/chat-basic/**, examples/*requirements.txt, .github/workflows/samples_flex_flows_chat_basic.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_flex_flows_chat_basic: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Python 3.9 environment + uses: actions/setup-python@v4 + with: + python-version: "3.9" + - name: Prepare requirements + working-directory: examples + run: | + if [[ -e requirements.txt ]]; then + python -m pip install --upgrade pip + pip install -r requirements.txt + fi + - name: Prepare dev requirements + working-directory: examples + run: | + python -m pip install --upgrade pip + pip install -r dev_requirements.txt + - name: Refine .env file + working-directory: examples/flex-flows/chat-basic + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + - name: Create run.yml + working-directory: examples/flex-flows/chat-basic + run: | + gpt_base=${{ secrets.AOAI_API_ENDPOINT_TEST }} + gpt_base=$(echo ${gpt_base//\//\\/}) + if [[ -e run.yml ]]; then + sed -i -e "s/\${azure_open_ai_connection.api_key}/${{ secrets.AOAI_API_KEY_TEST }}/g" -e "s/\${azure_open_ai_connection.api_base}/$gpt_base/g" run.yml + fi + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - name: Extract Steps examples/flex-flows/chat-basic/README.md + working-directory: ${{ github.workspace }} + run: | + python scripts/readme/extract_steps_from_readme.py -f examples/flex-flows/chat-basic/README.md -o examples/flex-flows/chat-basic + - name: Cat script + working-directory: examples/flex-flows/chat-basic + run: | + cat bash_script.sh + - name: Run scripts against canary workspace (scheduled runs only) + if: github.event_name == 'schedule' + working-directory: examples/flex-flows/chat-basic + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} + bash bash_script.sh + - name: Run scripts against production workspace + if: github.event_name != 'schedule' + working-directory: examples/flex-flows/chat-basic + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} + bash bash_script.sh + - name: Pip List for Debug + if : ${{ always() }} + working-directory: examples/flex-flows/chat-basic + run: | + pip list + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/flex-flows/chat-basic/bash_script.sh \ No newline at end of file diff --git a/.github/workflows/samples_flex_flows_eval_checklist.yml b/.github/workflows/samples_flex_flows_eval_checklist.yml new file mode 100644 index 00000000000..1f765ba6510 --- /dev/null +++ b/.github/workflows/samples_flex_flows_eval_checklist.yml @@ -0,0 +1,110 @@ +# 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_flex_flows_eval_checklist +on: + schedule: + - cron: "56 22 * * *" # Every day starting at 6:56 BJT + pull_request: + branches: [ main ] + paths: [ examples/flex-flows/eval-checklist/**, examples/*requirements.txt, .github/workflows/samples_flex_flows_eval_checklist.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_flex_flows_eval_checklist: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Python 3.9 environment + uses: actions/setup-python@v4 + with: + python-version: "3.9" + - name: Prepare requirements + working-directory: examples + run: | + if [[ -e requirements.txt ]]; then + python -m pip install --upgrade pip + pip install -r requirements.txt + fi + - name: Prepare dev requirements + working-directory: examples + run: | + python -m pip install --upgrade pip + pip install -r dev_requirements.txt + - name: Refine .env file + working-directory: examples/flex-flows/eval-checklist + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + - name: Create run.yml + working-directory: examples/flex-flows/eval-checklist + run: | + gpt_base=${{ secrets.AOAI_API_ENDPOINT_TEST }} + gpt_base=$(echo ${gpt_base//\//\\/}) + if [[ -e run.yml ]]; then + sed -i -e "s/\${azure_open_ai_connection.api_key}/${{ secrets.AOAI_API_KEY_TEST }}/g" -e "s/\${azure_open_ai_connection.api_base}/$gpt_base/g" run.yml + fi + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - name: Extract Steps examples/flex-flows/eval-checklist/README.md + working-directory: ${{ github.workspace }} + run: | + python scripts/readme/extract_steps_from_readme.py -f examples/flex-flows/eval-checklist/README.md -o examples/flex-flows/eval-checklist + - name: Cat script + working-directory: examples/flex-flows/eval-checklist + run: | + cat bash_script.sh + - name: Run scripts against canary workspace (scheduled runs only) + if: github.event_name == 'schedule' + working-directory: examples/flex-flows/eval-checklist + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} + bash bash_script.sh + - name: Run scripts against production workspace + if: github.event_name != 'schedule' + working-directory: examples/flex-flows/eval-checklist + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} + bash bash_script.sh + - name: Pip List for Debug + if : ${{ always() }} + working-directory: examples/flex-flows/eval-checklist + run: | + pip list + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/flex-flows/eval-checklist/bash_script.sh \ No newline at end of file diff --git a/.github/workflows/samples_flex_flows_eval_code_quality.yml b/.github/workflows/samples_flex_flows_eval_code_quality.yml new file mode 100644 index 00000000000..ce03b9bbaaf --- /dev/null +++ b/.github/workflows/samples_flex_flows_eval_code_quality.yml @@ -0,0 +1,110 @@ +# 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_flex_flows_eval_code_quality +on: + schedule: + - cron: "6 22 * * *" # Every day starting at 6:6 BJT + pull_request: + branches: [ main ] + paths: [ examples/flex-flows/eval-code-quality/**, examples/*requirements.txt, .github/workflows/samples_flex_flows_eval_code_quality.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_flex_flows_eval_code_quality: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Python 3.9 environment + uses: actions/setup-python@v4 + with: + python-version: "3.9" + - name: Prepare requirements + working-directory: examples + run: | + if [[ -e requirements.txt ]]; then + python -m pip install --upgrade pip + pip install -r requirements.txt + fi + - name: Prepare dev requirements + working-directory: examples + run: | + python -m pip install --upgrade pip + pip install -r dev_requirements.txt + - name: Refine .env file + working-directory: examples/flex-flows/eval-code-quality + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + - name: Create run.yml + working-directory: examples/flex-flows/eval-code-quality + run: | + gpt_base=${{ secrets.AOAI_API_ENDPOINT_TEST }} + gpt_base=$(echo ${gpt_base//\//\\/}) + if [[ -e run.yml ]]; then + sed -i -e "s/\${azure_open_ai_connection.api_key}/${{ secrets.AOAI_API_KEY_TEST }}/g" -e "s/\${azure_open_ai_connection.api_base}/$gpt_base/g" run.yml + fi + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - name: Extract Steps examples/flex-flows/eval-code-quality/README.md + working-directory: ${{ github.workspace }} + run: | + python scripts/readme/extract_steps_from_readme.py -f examples/flex-flows/eval-code-quality/README.md -o examples/flex-flows/eval-code-quality + - name: Cat script + working-directory: examples/flex-flows/eval-code-quality + run: | + cat bash_script.sh + - name: Run scripts against canary workspace (scheduled runs only) + if: github.event_name == 'schedule' + working-directory: examples/flex-flows/eval-code-quality + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} + bash bash_script.sh + - name: Run scripts against production workspace + if: github.event_name != 'schedule' + working-directory: examples/flex-flows/eval-code-quality + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} + bash bash_script.sh + - name: Pip List for Debug + if : ${{ always() }} + working-directory: examples/flex-flows/eval-code-quality + run: | + pip list + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/flex-flows/eval-code-quality/bash_script.sh \ No newline at end of file diff --git a/.github/workflows/samples_flexflows_basic_flexflowquickstart.yml b/.github/workflows/samples_flexflows_basic_flexflowquickstart.yml new file mode 100644 index 00000000000..f3b9ade3963 --- /dev/null +++ b/.github/workflows/samples_flexflows_basic_flexflowquickstart.yml @@ -0,0 +1,64 @@ +# 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_flexflows_basic_flexflowquickstart +on: + schedule: + - cron: "55 20 * * *" # Every day starting at 4:55 BJT + pull_request: + branches: [ main ] + paths: [ examples/flex-flows/basic/**, examples/*requirements.txt, .github/workflows/samples_flexflows_basic_flexflowquickstart.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_flexflows_basic_flexflowquickstart: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - 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 + - name: setup .env file + working-directory: examples/flex-flows/basic + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + - name: Create Aoai Connection + run: pf connection create -f ${{ github.workspace }}/examples/connections/azure_openai.yml --set api_key="${{ secrets.AOAI_API_KEY_TEST }}" api_base="${{ secrets.AOAI_API_ENDPOINT_TEST }}" + - name: Test Notebook + working-directory: examples/flex-flows/basic + run: | + papermill -k python flex-flow-quickstart.ipynb flex-flow-quickstart.output.ipynb + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/flex-flows/basic diff --git a/.github/workflows/samples_flexflows_basic_flexflowquickstartazure.yml b/.github/workflows/samples_flexflows_basic_flexflowquickstartazure.yml new file mode 100644 index 00000000000..80809522575 --- /dev/null +++ b/.github/workflows/samples_flexflows_basic_flexflowquickstartazure.yml @@ -0,0 +1,54 @@ +# 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_flexflows_basic_flexflowquickstartazure +on: + schedule: + - cron: "10 22 * * *" # Every day starting at 6:10 BJT + pull_request: + branches: [ main ] + paths: [ examples/flex-flows/basic/**, examples/*requirements.txt, .github/workflows/samples_flexflows_basic_flexflowquickstartazure.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_flexflows_basic_flexflowquickstartazure: + runs-on: ubuntu-latest + 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: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - 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 + - name: Create Aoai Connection + run: pf connection create -f ${{ github.workspace }}/examples/connections/azure_openai.yml --set api_key="${{ secrets.AOAI_API_KEY_TEST }}" api_base="${{ secrets.AOAI_API_ENDPOINT_TEST }}" + - name: Test Notebook + working-directory: examples/flex-flows/basic + run: | + papermill -k python flex-flow-quickstart-azure.ipynb flex-flow-quickstart-azure.output.ipynb + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/flex-flows/basic diff --git a/.github/workflows/samples_flows_chat_chat_basic.yml b/.github/workflows/samples_flows_chat_chat_basic.yml index 132b9a33bbe..7bc42561771 100644 --- a/.github/workflows/samples_flows_chat_chat_basic.yml +++ b/.github/workflows/samples_flows_chat_chat_basic.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/chat/chat-basic run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_chat_chat_math_variant.yml b/.github/workflows/samples_flows_chat_chat_math_variant.yml index f9fb7f8c69c..831c4b11c2e 100644 --- a/.github/workflows/samples_flows_chat_chat_math_variant.yml +++ b/.github/workflows/samples_flows_chat_chat_math_variant.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/chat/chat-math-variant run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_chat_chat_with_pdf.yml b/.github/workflows/samples_flows_chat_chat_with_pdf.yml index 78544acbfdb..33403cd6741 100644 --- a/.github/workflows/samples_flows_chat_chat_with_pdf.yml +++ b/.github/workflows/samples_flows_chat_chat_with_pdf.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create AOAI Connection from ENV file working-directory: examples/flows/chat/chat-with-pdf run: | @@ -84,6 +89,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -94,6 +101,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_chat_chat_with_wikipedia.yml b/.github/workflows/samples_flows_chat_chat_with_wikipedia.yml index d4e82bec6e3..fd02f184c7b 100644 --- a/.github/workflows/samples_flows_chat_chat_with_wikipedia.yml +++ b/.github/workflows/samples_flows_chat_chat_with_wikipedia.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/chat/chat-with-wikipedia run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_chat_use_functions_with_chat_models.yml b/.github/workflows/samples_flows_chat_use_functions_with_chat_models.yml index e04f820b2fd..b5e4a232996 100644 --- a/.github/workflows/samples_flows_chat_use_functions_with_chat_models.yml +++ b/.github/workflows/samples_flows_chat_use_functions_with_chat_models.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/chat/use_functions_with_chat_models run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_evaluation_eval_basic.yml b/.github/workflows/samples_flows_evaluation_eval_basic.yml index c92f24e02ba..2b3648750d5 100644 --- a/.github/workflows/samples_flows_evaluation_eval_basic.yml +++ b/.github/workflows/samples_flows_evaluation_eval_basic.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/evaluation/eval-basic run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_evaluation_eval_chat_math.yml b/.github/workflows/samples_flows_evaluation_eval_chat_math.yml index b7881f872d9..b87208f9137 100644 --- a/.github/workflows/samples_flows_evaluation_eval_chat_math.yml +++ b/.github/workflows/samples_flows_evaluation_eval_chat_math.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/evaluation/eval-chat-math run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_evaluation_eval_classification_accuracy.yml b/.github/workflows/samples_flows_evaluation_eval_classification_accuracy.yml index 109e77b5aee..61c2565810d 100644 --- a/.github/workflows/samples_flows_evaluation_eval_classification_accuracy.yml +++ b/.github/workflows/samples_flows_evaluation_eval_classification_accuracy.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/evaluation/eval-classification-accuracy run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_evaluation_eval_entity_match_rate.yml b/.github/workflows/samples_flows_evaluation_eval_entity_match_rate.yml index 590bf74bbc0..f9e691ad694 100644 --- a/.github/workflows/samples_flows_evaluation_eval_entity_match_rate.yml +++ b/.github/workflows/samples_flows_evaluation_eval_entity_match_rate.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/evaluation/eval-entity-match-rate run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_evaluation_eval_groundedness.yml b/.github/workflows/samples_flows_evaluation_eval_groundedness.yml index 25268ffbc9f..071718b41ed 100644 --- a/.github/workflows/samples_flows_evaluation_eval_groundedness.yml +++ b/.github/workflows/samples_flows_evaluation_eval_groundedness.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/evaluation/eval-groundedness run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_evaluation_eval_perceived_intelligence.yml b/.github/workflows/samples_flows_evaluation_eval_perceived_intelligence.yml index 7cec59b0041..321d8a2616e 100644 --- a/.github/workflows/samples_flows_evaluation_eval_perceived_intelligence.yml +++ b/.github/workflows/samples_flows_evaluation_eval_perceived_intelligence.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/evaluation/eval-perceived-intelligence run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_evaluation_eval_qna_non_rag.yml b/.github/workflows/samples_flows_evaluation_eval_qna_non_rag.yml index 7f1da8c1228..f05f861c943 100644 --- a/.github/workflows/samples_flows_evaluation_eval_qna_non_rag.yml +++ b/.github/workflows/samples_flows_evaluation_eval_qna_non_rag.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/evaluation/eval-qna-non-rag run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_evaluation_eval_qna_rag_metrics.yml b/.github/workflows/samples_flows_evaluation_eval_qna_rag_metrics.yml index af18aadb29d..27200689cd8 100644 --- a/.github/workflows/samples_flows_evaluation_eval_qna_rag_metrics.yml +++ b/.github/workflows/samples_flows_evaluation_eval_qna_rag_metrics.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/evaluation/eval-qna-rag-metrics run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_evaluation_eval_summarization.yml b/.github/workflows/samples_flows_evaluation_eval_summarization.yml index b444be8b77d..e99299f3d37 100644 --- a/.github/workflows/samples_flows_evaluation_eval_summarization.yml +++ b/.github/workflows/samples_flows_evaluation_eval_summarization.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/evaluation/eval-summarization run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_standard_autonomous_agent.yml b/.github/workflows/samples_flows_standard_autonomous_agent.yml index ec8e9210841..f701be9d708 100644 --- a/.github/workflows/samples_flows_standard_autonomous_agent.yml +++ b/.github/workflows/samples_flows_standard_autonomous_agent.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/standard/autonomous-agent run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_standard_basic.yml b/.github/workflows/samples_flows_standard_basic.yml index 5385627f8fc..e5d996919d3 100644 --- a/.github/workflows/samples_flows_standard_basic.yml +++ b/.github/workflows/samples_flows_standard_basic.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/standard/basic run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_standard_basic_with_builtin_llm.yml b/.github/workflows/samples_flows_standard_basic_with_builtin_llm.yml index 39d4bd19673..80ba5c7d834 100644 --- a/.github/workflows/samples_flows_standard_basic_with_builtin_llm.yml +++ b/.github/workflows/samples_flows_standard_basic_with_builtin_llm.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/standard/basic-with-builtin-llm run: | @@ -77,6 +82,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -87,6 +94,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_standard_basic_with_connection.yml b/.github/workflows/samples_flows_standard_basic_with_connection.yml index 6462b2de555..fda39607f8e 100644 --- a/.github/workflows/samples_flows_standard_basic_with_connection.yml +++ b/.github/workflows/samples_flows_standard_basic_with_connection.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/standard/basic-with-connection run: | @@ -77,6 +82,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -87,6 +94,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_standard_conditional_flow_for_if_else.yml b/.github/workflows/samples_flows_standard_conditional_flow_for_if_else.yml index 57d8cf6de4f..8529bb41f22 100644 --- a/.github/workflows/samples_flows_standard_conditional_flow_for_if_else.yml +++ b/.github/workflows/samples_flows_standard_conditional_flow_for_if_else.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/standard/conditional-flow-for-if-else run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_standard_conditional_flow_for_switch.yml b/.github/workflows/samples_flows_standard_conditional_flow_for_switch.yml index 448ad1d3905..c8dcefe7b45 100644 --- a/.github/workflows/samples_flows_standard_conditional_flow_for_switch.yml +++ b/.github/workflows/samples_flows_standard_conditional_flow_for_switch.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/standard/conditional-flow-for-switch run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_standard_customer_intent_extraction.yml b/.github/workflows/samples_flows_standard_customer_intent_extraction.yml index d0131b48383..f5a06a441a3 100644 --- a/.github/workflows/samples_flows_standard_customer_intent_extraction.yml +++ b/.github/workflows/samples_flows_standard_customer_intent_extraction.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/standard/customer-intent-extraction run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_standard_flow_with_additional_includes.yml b/.github/workflows/samples_flows_standard_flow_with_additional_includes.yml index 774f075025a..5a49124af91 100644 --- a/.github/workflows/samples_flows_standard_flow_with_additional_includes.yml +++ b/.github/workflows/samples_flows_standard_flow_with_additional_includes.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/standard/flow-with-additional-includes run: | @@ -77,6 +82,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -87,6 +94,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_standard_flow_with_symlinks.yml b/.github/workflows/samples_flows_standard_flow_with_symlinks.yml index 4d0d129148e..04892bd7c0b 100644 --- a/.github/workflows/samples_flows_standard_flow_with_symlinks.yml +++ b/.github/workflows/samples_flows_standard_flow_with_symlinks.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/standard/flow-with-symlinks run: | @@ -77,6 +82,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -87,6 +94,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_standard_gen_docstring.yml b/.github/workflows/samples_flows_standard_gen_docstring.yml index d6dc3640599..1e16c47c11a 100644 --- a/.github/workflows/samples_flows_standard_gen_docstring.yml +++ b/.github/workflows/samples_flows_standard_gen_docstring.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/standard/gen-docstring run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_standard_maths_to_code.yml b/.github/workflows/samples_flows_standard_maths_to_code.yml index e87c8d1eb30..28c2d995c08 100644 --- a/.github/workflows/samples_flows_standard_maths_to_code.yml +++ b/.github/workflows/samples_flows_standard_maths_to_code.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/standard/maths-to-code run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_standard_named_entity_recognition.yml b/.github/workflows/samples_flows_standard_named_entity_recognition.yml index 1f469a0e73d..367c0a077b9 100644 --- a/.github/workflows/samples_flows_standard_named_entity_recognition.yml +++ b/.github/workflows/samples_flows_standard_named_entity_recognition.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/standard/named-entity-recognition run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_flows_standard_web_classification.yml b/.github/workflows/samples_flows_standard_web_classification.yml index 903d77fc909..316be1a7314 100644 --- a/.github/workflows/samples_flows_standard_web_classification.yml +++ b/.github/workflows/samples_flows_standard_web_classification.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/flows/standard/web-classification run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_getstarted_quickstart.yml b/.github/workflows/samples_getstarted_quickstart.yml index 0aeaeb39754..5e24857464a 100644 --- a/.github/workflows/samples_getstarted_quickstart.yml +++ b/.github/workflows/samples_getstarted_quickstart.yml @@ -34,6 +34,22 @@ jobs: python -m pip install --upgrade pip pip install -r ${{ github.workspace }}/examples/requirements.txt pip install -r ${{ github.workspace }}/examples/dev_requirements.txt + - name: setup .env file + working-directory: examples/tutorials/get-started + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create Aoai Connection run: pf connection create -f ${{ github.workspace }}/examples/connections/azure_openai.yml --set api_key="${{ secrets.AOAI_API_KEY_TEST }}" api_base="${{ secrets.AOAI_API_ENDPOINT_TEST }}" - name: Test Notebook diff --git a/.github/workflows/samples_prompty_basic.yml b/.github/workflows/samples_prompty_basic.yml new file mode 100644 index 00000000000..f53332b4763 --- /dev/null +++ b/.github/workflows/samples_prompty_basic.yml @@ -0,0 +1,110 @@ +# 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_prompty_basic +on: + schedule: + - cron: "46 19 * * *" # Every day starting at 3:46 BJT + pull_request: + branches: [ main ] + paths: [ examples/prompty/basic/**, examples/*requirements.txt, .github/workflows/samples_prompty_basic.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_prompty_basic: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Python 3.9 environment + uses: actions/setup-python@v4 + with: + python-version: "3.9" + - name: Prepare requirements + working-directory: examples + run: | + if [[ -e requirements.txt ]]; then + python -m pip install --upgrade pip + pip install -r requirements.txt + fi + - name: Prepare dev requirements + working-directory: examples + run: | + python -m pip install --upgrade pip + pip install -r dev_requirements.txt + - name: Refine .env file + working-directory: examples/prompty/basic + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + - name: Create run.yml + working-directory: examples/prompty/basic + run: | + gpt_base=${{ secrets.AOAI_API_ENDPOINT_TEST }} + gpt_base=$(echo ${gpt_base//\//\\/}) + if [[ -e run.yml ]]; then + sed -i -e "s/\${azure_open_ai_connection.api_key}/${{ secrets.AOAI_API_KEY_TEST }}/g" -e "s/\${azure_open_ai_connection.api_base}/$gpt_base/g" run.yml + fi + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - name: Extract Steps examples/prompty/basic/README.md + working-directory: ${{ github.workspace }} + run: | + python scripts/readme/extract_steps_from_readme.py -f examples/prompty/basic/README.md -o examples/prompty/basic + - name: Cat script + working-directory: examples/prompty/basic + run: | + cat bash_script.sh + - name: Run scripts against canary workspace (scheduled runs only) + if: github.event_name == 'schedule' + working-directory: examples/prompty/basic + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} + bash bash_script.sh + - name: Run scripts against production workspace + if: github.event_name != 'schedule' + working-directory: examples/prompty/basic + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} + bash bash_script.sh + - name: Pip List for Debug + if : ${{ always() }} + working-directory: examples/prompty/basic + run: | + pip list + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/prompty/basic/bash_script.sh \ No newline at end of file diff --git a/.github/workflows/samples_prompty_basic_promptyquickstart.yml b/.github/workflows/samples_prompty_basic_promptyquickstart.yml new file mode 100644 index 00000000000..d8b0cfc6930 --- /dev/null +++ b/.github/workflows/samples_prompty_basic_promptyquickstart.yml @@ -0,0 +1,64 @@ +# 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_prompty_basic_promptyquickstart +on: + schedule: + - cron: "19 21 * * *" # Every day starting at 5:19 BJT + pull_request: + branches: [ main ] + paths: [ examples/prompty/basic/**, examples/*requirements.txt, .github/workflows/samples_prompty_basic_promptyquickstart.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_prompty_basic_promptyquickstart: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - 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 + - name: setup .env file + working-directory: examples/prompty/basic + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + - name: Create Aoai Connection + run: pf connection create -f ${{ github.workspace }}/examples/connections/azure_openai.yml --set api_key="${{ secrets.AOAI_API_KEY_TEST }}" api_base="${{ secrets.AOAI_API_ENDPOINT_TEST }}" + - name: Test Notebook + working-directory: examples/prompty/basic + run: | + papermill -k python prompty-quickstart.ipynb prompty-quickstart.output.ipynb + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/prompty/basic diff --git a/.github/workflows/samples_prompty_chat_basic.yml b/.github/workflows/samples_prompty_chat_basic.yml new file mode 100644 index 00000000000..3edea145a1b --- /dev/null +++ b/.github/workflows/samples_prompty_chat_basic.yml @@ -0,0 +1,110 @@ +# 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_prompty_chat_basic +on: + schedule: + - cron: "47 20 * * *" # Every day starting at 4:47 BJT + pull_request: + branches: [ main ] + paths: [ examples/prompty/chat-basic/**, examples/*requirements.txt, .github/workflows/samples_prompty_chat_basic.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_prompty_chat_basic: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Python 3.9 environment + uses: actions/setup-python@v4 + with: + python-version: "3.9" + - name: Prepare requirements + working-directory: examples + run: | + if [[ -e requirements.txt ]]; then + python -m pip install --upgrade pip + pip install -r requirements.txt + fi + - name: Prepare dev requirements + working-directory: examples + run: | + python -m pip install --upgrade pip + pip install -r dev_requirements.txt + - name: Refine .env file + working-directory: examples/prompty/chat-basic + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + - name: Create run.yml + working-directory: examples/prompty/chat-basic + run: | + gpt_base=${{ secrets.AOAI_API_ENDPOINT_TEST }} + gpt_base=$(echo ${gpt_base//\//\\/}) + if [[ -e run.yml ]]; then + sed -i -e "s/\${azure_open_ai_connection.api_key}/${{ secrets.AOAI_API_KEY_TEST }}/g" -e "s/\${azure_open_ai_connection.api_base}/$gpt_base/g" run.yml + fi + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - name: Extract Steps examples/prompty/chat-basic/README.md + working-directory: ${{ github.workspace }} + run: | + python scripts/readme/extract_steps_from_readme.py -f examples/prompty/chat-basic/README.md -o examples/prompty/chat-basic + - name: Cat script + working-directory: examples/prompty/chat-basic + run: | + cat bash_script.sh + - name: Run scripts against canary workspace (scheduled runs only) + if: github.event_name == 'schedule' + working-directory: examples/prompty/chat-basic + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} + bash bash_script.sh + - name: Run scripts against production workspace + if: github.event_name != 'schedule' + working-directory: examples/prompty/chat-basic + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} + bash bash_script.sh + - name: Pip List for Debug + if : ${{ always() }} + working-directory: examples/prompty/chat-basic + run: | + pip list + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/prompty/chat-basic/bash_script.sh \ No newline at end of file diff --git a/.github/workflows/samples_prompty_chatbasic_chatwithprompty.yml b/.github/workflows/samples_prompty_chatbasic_chatwithprompty.yml new file mode 100644 index 00000000000..fffc75e2082 --- /dev/null +++ b/.github/workflows/samples_prompty_chatbasic_chatwithprompty.yml @@ -0,0 +1,64 @@ +# 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_prompty_chatbasic_chatwithprompty +on: + schedule: + - cron: "51 19 * * *" # Every day starting at 3:51 BJT + pull_request: + branches: [ main ] + paths: [ examples/prompty/chat-basic/**, examples/*requirements.txt, .github/workflows/samples_prompty_chatbasic_chatwithprompty.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_prompty_chatbasic_chatwithprompty: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - 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 + - name: setup .env file + working-directory: examples/prompty/chat-basic + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + - name: Create Aoai Connection + run: pf connection create -f ${{ github.workspace }}/examples/connections/azure_openai.yml --set api_key="${{ secrets.AOAI_API_KEY_TEST }}" api_base="${{ secrets.AOAI_API_ENDPOINT_TEST }}" + - name: Test Notebook + working-directory: examples/prompty/chat-basic + run: | + papermill -k python chat-with-prompty.ipynb chat-with-prompty.output.ipynb + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/prompty/chat-basic diff --git a/.github/workflows/samples_prompty_eval_apology.yml b/.github/workflows/samples_prompty_eval_apology.yml new file mode 100644 index 00000000000..4c69e09f365 --- /dev/null +++ b/.github/workflows/samples_prompty_eval_apology.yml @@ -0,0 +1,110 @@ +# 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_prompty_eval_apology +on: + schedule: + - cron: "10 22 * * *" # Every day starting at 6:10 BJT + pull_request: + branches: [ main ] + paths: [ examples/prompty/eval-apology/**, examples/*requirements.txt, .github/workflows/samples_prompty_eval_apology.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_prompty_eval_apology: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Python 3.9 environment + uses: actions/setup-python@v4 + with: + python-version: "3.9" + - name: Prepare requirements + working-directory: examples + run: | + if [[ -e requirements.txt ]]; then + python -m pip install --upgrade pip + pip install -r requirements.txt + fi + - name: Prepare dev requirements + working-directory: examples + run: | + python -m pip install --upgrade pip + pip install -r dev_requirements.txt + - name: Refine .env file + working-directory: examples/prompty/eval-apology + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + - name: Create run.yml + working-directory: examples/prompty/eval-apology + run: | + gpt_base=${{ secrets.AOAI_API_ENDPOINT_TEST }} + gpt_base=$(echo ${gpt_base//\//\\/}) + if [[ -e run.yml ]]; then + sed -i -e "s/\${azure_open_ai_connection.api_key}/${{ secrets.AOAI_API_KEY_TEST }}/g" -e "s/\${azure_open_ai_connection.api_base}/$gpt_base/g" run.yml + fi + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - name: Extract Steps examples/prompty/eval-apology/README.md + working-directory: ${{ github.workspace }} + run: | + python scripts/readme/extract_steps_from_readme.py -f examples/prompty/eval-apology/README.md -o examples/prompty/eval-apology + - name: Cat script + working-directory: examples/prompty/eval-apology + run: | + cat bash_script.sh + - name: Run scripts against canary workspace (scheduled runs only) + if: github.event_name == 'schedule' + working-directory: examples/prompty/eval-apology + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} + bash bash_script.sh + - name: Run scripts against production workspace + if: github.event_name != 'schedule' + working-directory: examples/prompty/eval-apology + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} + bash bash_script.sh + - name: Pip List for Debug + if : ${{ always() }} + working-directory: examples/prompty/eval-apology + run: | + pip list + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/prompty/eval-apology/bash_script.sh \ No newline at end of file diff --git a/.github/workflows/samples_prompty_eval_basic.yml b/.github/workflows/samples_prompty_eval_basic.yml new file mode 100644 index 00000000000..e690e054a7c --- /dev/null +++ b/.github/workflows/samples_prompty_eval_basic.yml @@ -0,0 +1,110 @@ +# 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_prompty_eval_basic +on: + schedule: + - cron: "25 21 * * *" # Every day starting at 5:25 BJT + pull_request: + branches: [ main ] + paths: [ examples/prompty/eval-basic/**, examples/*requirements.txt, .github/workflows/samples_prompty_eval_basic.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_prompty_eval_basic: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Python 3.9 environment + uses: actions/setup-python@v4 + with: + python-version: "3.9" + - name: Prepare requirements + working-directory: examples + run: | + if [[ -e requirements.txt ]]; then + python -m pip install --upgrade pip + pip install -r requirements.txt + fi + - name: Prepare dev requirements + working-directory: examples + run: | + python -m pip install --upgrade pip + pip install -r dev_requirements.txt + - name: Refine .env file + working-directory: examples/prompty/eval-basic + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + - name: Create run.yml + working-directory: examples/prompty/eval-basic + run: | + gpt_base=${{ secrets.AOAI_API_ENDPOINT_TEST }} + gpt_base=$(echo ${gpt_base//\//\\/}) + if [[ -e run.yml ]]; then + sed -i -e "s/\${azure_open_ai_connection.api_key}/${{ secrets.AOAI_API_KEY_TEST }}/g" -e "s/\${azure_open_ai_connection.api_base}/$gpt_base/g" run.yml + fi + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - name: Extract Steps examples/prompty/eval-basic/README.md + working-directory: ${{ github.workspace }} + run: | + python scripts/readme/extract_steps_from_readme.py -f examples/prompty/eval-basic/README.md -o examples/prompty/eval-basic + - name: Cat script + working-directory: examples/prompty/eval-basic + run: | + cat bash_script.sh + - name: Run scripts against canary workspace (scheduled runs only) + if: github.event_name == 'schedule' + working-directory: examples/prompty/eval-basic + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} + bash bash_script.sh + - name: Run scripts against production workspace + if: github.event_name != 'schedule' + working-directory: examples/prompty/eval-basic + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} + bash bash_script.sh + - name: Pip List for Debug + if : ${{ always() }} + working-directory: examples/prompty/eval-basic + run: | + pip list + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/prompty/eval-basic/bash_script.sh \ No newline at end of file diff --git a/.github/workflows/samples_runmanagement_runmanagement.yml b/.github/workflows/samples_runmanagement_runmanagement.yml index afa13f6f3aa..6411a96a04a 100644 --- a/.github/workflows/samples_runmanagement_runmanagement.yml +++ b/.github/workflows/samples_runmanagement_runmanagement.yml @@ -34,6 +34,22 @@ jobs: python -m pip install --upgrade pip pip install -r ${{ github.workspace }}/examples/requirements.txt pip install -r ${{ github.workspace }}/examples/dev_requirements.txt + - name: setup .env file + working-directory: examples/tutorials/run-management + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create Aoai Connection run: pf connection create -f ${{ github.workspace }}/examples/connections/azure_openai.yml --set api_key="${{ secrets.AOAI_API_KEY_TEST }}" api_base="${{ secrets.AOAI_API_ENDPOINT_TEST }}" - name: Test Notebook diff --git a/.github/workflows/samples_tools_use_cases_cascading_inputs_tool_showcase.yml b/.github/workflows/samples_tools_use_cases_cascading_inputs_tool_showcase.yml index 7f53b84b926..19ec7e657fe 100644 --- a/.github/workflows/samples_tools_use_cases_cascading_inputs_tool_showcase.yml +++ b/.github/workflows/samples_tools_use_cases_cascading_inputs_tool_showcase.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/tools/use-cases/cascading-inputs-tool-showcase run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_tools_use_cases_custom_llm_tool_showcase.yml b/.github/workflows/samples_tools_use_cases_custom_llm_tool_showcase.yml index 01ba24cbe9f..a180436d95b 100644 --- a/.github/workflows/samples_tools_use_cases_custom_llm_tool_showcase.yml +++ b/.github/workflows/samples_tools_use_cases_custom_llm_tool_showcase.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/tools/use-cases/custom_llm_tool_showcase run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_tools_use_cases_custom_strong_type_connection_package_tool_showcase.yml b/.github/workflows/samples_tools_use_cases_custom_strong_type_connection_package_tool_showcase.yml index 9705846f644..fa2381b5d86 100644 --- a/.github/workflows/samples_tools_use_cases_custom_strong_type_connection_package_tool_showcase.yml +++ b/.github/workflows/samples_tools_use_cases_custom_strong_type_connection_package_tool_showcase.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/tools/use-cases/custom-strong-type-connection-package-tool-showcase run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_tools_use_cases_custom_strong_type_connection_script_tool_showcase.yml b/.github/workflows/samples_tools_use_cases_custom_strong_type_connection_script_tool_showcase.yml index 307db728697..86a851067e5 100644 --- a/.github/workflows/samples_tools_use_cases_custom_strong_type_connection_script_tool_showcase.yml +++ b/.github/workflows/samples_tools_use_cases_custom_strong_type_connection_script_tool_showcase.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/tools/use-cases/custom-strong-type-connection-script-tool-showcase run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_tools_use_cases_dynamic_list_input_tool_showcase.yml b/.github/workflows/samples_tools_use_cases_dynamic_list_input_tool_showcase.yml index ecd70f2dc9f..e1634874782 100644 --- a/.github/workflows/samples_tools_use_cases_dynamic_list_input_tool_showcase.yml +++ b/.github/workflows/samples_tools_use_cases_dynamic_list_input_tool_showcase.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/tools/use-cases/dynamic-list-input-tool-showcase run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_tracing_autogengroupchat_traceautogengroupchat.yml b/.github/workflows/samples_tracing_autogengroupchat_traceautogengroupchat.yml new file mode 100644 index 00000000000..881698533d2 --- /dev/null +++ b/.github/workflows/samples_tracing_autogengroupchat_traceautogengroupchat.yml @@ -0,0 +1,69 @@ +# 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_tracing_autogengroupchat_traceautogengroupchat +on: + schedule: + - cron: "11 20 * * *" # Every day starting at 4:11 BJT + pull_request: + branches: [ main ] + paths: [ examples/tutorials/tracing/autogen-groupchat/**, .github/workflows/samples_tracing_autogengroupchat_traceautogengroupchat.yml, examples/requirements.txt, examples/connections/azure_openai.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_tracing_autogengroupchat_traceautogengroupchat: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - 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 + - name: setup .env file + working-directory: examples/tutorials/tracing/autogen-groupchat + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + if [[ -e OAI_CONFIG_LIST.json.example ]]; then + echo "OAI_CONFIG_LIST replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" OAI_CONFIG_LIST.json.example + mv OAI_CONFIG_LIST.json.example OAI_CONFIG_LIST.json + fi + - name: Create Aoai Connection + run: pf connection create -f ${{ github.workspace }}/examples/connections/azure_openai.yml --set api_key="${{ secrets.AOAI_API_KEY_TEST }}" api_base="${{ secrets.AOAI_API_ENDPOINT_TEST }}" + - name: Test Notebook + working-directory: examples/tutorials/tracing/autogen-groupchat + run: | + papermill -k python trace-autogen-groupchat.ipynb trace-autogen-groupchat.output.ipynb + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/tutorials/tracing/autogen-groupchat diff --git a/.github/workflows/samples_tracing_customotlpcollector_otlptracecollector.yml b/.github/workflows/samples_tracing_customotlpcollector_otlptracecollector.yml new file mode 100644 index 00000000000..faa074d98ea --- /dev/null +++ b/.github/workflows/samples_tracing_customotlpcollector_otlptracecollector.yml @@ -0,0 +1,64 @@ +# 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_tracing_customotlpcollector_otlptracecollector +on: + schedule: + - cron: "22 21 * * *" # Every day starting at 5:22 BJT + pull_request: + branches: [ main ] + paths: [ examples/tutorials/tracing/custom-otlp-collector/**, .github/workflows/samples_tracing_customotlpcollector_otlptracecollector.yml, examples/requirements.txt, examples/connections/azure_openai.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_tracing_customotlpcollector_otlptracecollector: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - 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 + - name: setup .env file + working-directory: examples/tutorials/tracing/custom-otlp-collector + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + - name: Create Aoai Connection + run: pf connection create -f ${{ github.workspace }}/examples/connections/azure_openai.yml --set api_key="${{ secrets.AOAI_API_KEY_TEST }}" api_base="${{ secrets.AOAI_API_ENDPOINT_TEST }}" + - name: Test Notebook + working-directory: examples/tutorials/tracing/custom-otlp-collector + run: | + papermill -k python otlp-trace-collector.ipynb otlp-trace-collector.output.ipynb + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/tutorials/tracing/custom-otlp-collector diff --git a/.github/workflows/samples_tracing_langchain_tracelangchain.yml b/.github/workflows/samples_tracing_langchain_tracelangchain.yml new file mode 100644 index 00000000000..e3c910edd89 --- /dev/null +++ b/.github/workflows/samples_tracing_langchain_tracelangchain.yml @@ -0,0 +1,64 @@ +# 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_tracing_langchain_tracelangchain +on: + schedule: + - cron: "21 19 * * *" # Every day starting at 3:21 BJT + pull_request: + branches: [ main ] + paths: [ examples/tutorials/tracing/langchain/**, .github/workflows/samples_tracing_langchain_tracelangchain.yml, examples/requirements.txt, examples/connections/azure_openai.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_tracing_langchain_tracelangchain: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - 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 + - name: setup .env file + working-directory: examples/tutorials/tracing/langchain + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + - name: Create Aoai Connection + run: pf connection create -f ${{ github.workspace }}/examples/connections/azure_openai.yml --set api_key="${{ secrets.AOAI_API_KEY_TEST }}" api_base="${{ secrets.AOAI_API_ENDPOINT_TEST }}" + - name: Test Notebook + working-directory: examples/tutorials/tracing/langchain + run: | + papermill -k python trace-langchain.ipynb trace-langchain.output.ipynb + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/tutorials/tracing/langchain diff --git a/.github/workflows/samples_tutorials_e2e_development_chat_with_pdf.yml b/.github/workflows/samples_tutorials_e2e_development_chat_with_pdf.yml index d078e8bab60..c2b8df00363 100644 --- a/.github/workflows/samples_tutorials_e2e_development_chat_with_pdf.yml +++ b/.github/workflows/samples_tutorials_e2e_development_chat_with_pdf.yml @@ -54,6 +54,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create AOAI Connection from ENV file working-directory: examples/tutorials/e2e-development run: | @@ -90,6 +95,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -100,6 +107,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_tutorials_flow_deploy_azure_app_service.yml b/.github/workflows/samples_tutorials_flow_deploy_azure_app_service.yml index a353e7682a0..aa98df76f43 100644 --- a/.github/workflows/samples_tutorials_flow_deploy_azure_app_service.yml +++ b/.github/workflows/samples_tutorials_flow_deploy_azure_app_service.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/tutorials/flow-deploy/azure-app-service run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_tutorials_flow_deploy_create_service_with_flow.yml b/.github/workflows/samples_tutorials_flow_deploy_create_service_with_flow.yml index 4976b5884f0..dfcf3338a0d 100644 --- a/.github/workflows/samples_tutorials_flow_deploy_create_service_with_flow.yml +++ b/.github/workflows/samples_tutorials_flow_deploy_create_service_with_flow.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/tutorials/flow-deploy/create-service-with-flow run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_tutorials_flow_deploy_distribute_flow_as_executable_app.yml b/.github/workflows/samples_tutorials_flow_deploy_distribute_flow_as_executable_app.yml index c72fd439c44..f78641fa64a 100644 --- a/.github/workflows/samples_tutorials_flow_deploy_distribute_flow_as_executable_app.yml +++ b/.github/workflows/samples_tutorials_flow_deploy_distribute_flow_as_executable_app.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/tutorials/flow-deploy/distribute-flow-as-executable-app run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_tutorials_flow_deploy_docker.yml b/.github/workflows/samples_tutorials_flow_deploy_docker.yml index fa503ff22fc..cdb7a7d6aff 100644 --- a/.github/workflows/samples_tutorials_flow_deploy_docker.yml +++ b/.github/workflows/samples_tutorials_flow_deploy_docker.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/tutorials/flow-deploy/docker run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_tutorials_flow_deploy_kubernetes.yml b/.github/workflows/samples_tutorials_flow_deploy_kubernetes.yml index 48c506b7b18..c92ac56861a 100644 --- a/.github/workflows/samples_tutorials_flow_deploy_kubernetes.yml +++ b/.github/workflows/samples_tutorials_flow_deploy_kubernetes.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/tutorials/flow-deploy/kubernetes run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_tutorials_flow_fine_tuning_evaluation_promptflow_quality_improvement.yml b/.github/workflows/samples_tutorials_flow_fine_tuning_evaluation_promptflow_quality_improvement.yml index 125ef7799d2..a57c4a2bb3a 100644 --- a/.github/workflows/samples_tutorials_flow_fine_tuning_evaluation_promptflow_quality_improvement.yml +++ b/.github/workflows/samples_tutorials_flow_fine_tuning_evaluation_promptflow_quality_improvement.yml @@ -48,6 +48,11 @@ jobs: sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create run.yml working-directory: examples/tutorials/flow-fine-tuning-evaluation run: | @@ -74,6 +79,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -84,6 +91,8 @@ jobs: run: | export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/.github/workflows/samples_tutorials_tracing.yml b/.github/workflows/samples_tutorials_tracing.yml new file mode 100644 index 00000000000..279495b93c4 --- /dev/null +++ b/.github/workflows/samples_tutorials_tracing.yml @@ -0,0 +1,110 @@ +# 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_tutorials_tracing +on: + schedule: + - cron: "18 22 * * *" # Every day starting at 6:18 BJT + pull_request: + branches: [ main ] + paths: [ examples/tutorials/tracing/**, examples/tutorials/tracing//**, .github/workflows/samples_tutorials_tracing.yml, examples/requirements.txt, examples/connections/azure_openai.yml ] + workflow_dispatch: + +env: + IS_IN_CI_PIPELINE: "true" + +jobs: + samples_tutorials_tracing: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup Python 3.9 environment + uses: actions/setup-python@v4 + with: + python-version: "3.9" + - name: Prepare requirements + working-directory: examples + run: | + if [[ -e requirements.txt ]]; then + python -m pip install --upgrade pip + pip install -r requirements.txt + fi + - name: Prepare dev requirements + working-directory: examples + run: | + python -m pip install --upgrade pip + pip install -r dev_requirements.txt + - name: Refine .env file + working-directory: examples/tutorials/tracing + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + - name: Create run.yml + working-directory: examples/tutorials/tracing + run: | + gpt_base=${{ secrets.AOAI_API_ENDPOINT_TEST }} + gpt_base=$(echo ${gpt_base//\//\\/}) + if [[ -e run.yml ]]; then + sed -i -e "s/\${azure_open_ai_connection.api_key}/${{ secrets.AOAI_API_KEY_TEST }}/g" -e "s/\${azure_open_ai_connection.api_base}/$gpt_base/g" run.yml + fi + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + - name: Extract Steps examples/tutorials/tracing/README.md + working-directory: ${{ github.workspace }} + run: | + python scripts/readme/extract_steps_from_readme.py -f examples/tutorials/tracing/README.md -o examples/tutorials/tracing + - name: Cat script + working-directory: examples/tutorials/tracing + run: | + cat bash_script.sh + - name: Run scripts against canary workspace (scheduled runs only) + if: github.event_name == 'schedule' + working-directory: examples/tutorials/tracing + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_CANARY }} + bash bash_script.sh + - name: Run scripts against production workspace + if: github.event_name != 'schedule' + working-directory: examples/tutorials/tracing + run: | + export aoai_api_key=${{secrets.AOAI_API_KEY_TEST }} + export aoai_api_endpoint=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ secrets.AOAI_API_ENDPOINT_TEST }} + export test_workspace_sub_id=${{ secrets.TEST_WORKSPACE_SUB_ID }} + export test_workspace_rg=${{ secrets.TEST_WORKSPACE_RG }} + export test_workspace_name=${{ secrets.TEST_WORKSPACE_NAME_PROD }} + bash bash_script.sh + - name: Pip List for Debug + if : ${{ always() }} + working-directory: examples/tutorials/tracing + run: | + pip list + - name: Upload artifact + if: ${{ always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: examples/tutorials/tracing/bash_script.sh \ No newline at end of file diff --git a/docs/concepts/concept-flows.md b/docs/concepts/concept-flows.md index 1c0c85d1112..15e37906295 100644 --- a/docs/concepts/concept-flows.md +++ b/docs/concepts/concept-flows.md @@ -1,27 +1,43 @@ -While how LLMs work may be elusive to many developers, how LLM apps work is not - they essentially involve a series of calls to external services such as LLMs/databases/search engines, or intermediate data processing, all glued together. Thus LLM apps are merely Directed Acyclic Graphs (DAGs) of function calls. These DAGs are flows in prompt flow. +While how LLMs work may be elusive to many developers, how LLM apps work is not - they essentially involve a series of calls to external services such as LLMs/databases/search engines, or intermediate data processing, all glued together. # Flows +## Flex flow + +You can create LLM apps using a Python function or class as the entry point, which encapsulating your app logic. You can directly test or run these with pure code experience. Or you can define a `flow.flex.yaml` that points to these entries, which enables testing, running, or viewing traces via the [Promptflow VS Code Extension](https://marketplace.visualstudio.com/items?itemName=prompt-flow.prompt-flow). + +Our [examples](https://github.com/microsoft/promptflow/tree/main/examples/flex-flows) should also give you an idea how to write `flex flows`. + +## DAG flow + +Thus LLM apps can be defined as Directed Acyclic Graphs (DAGs) of function calls. These DAGs are flows in prompt flow. + A flow in prompt flow is a DAG of functions (we call them [tools](./concept-tools.md)). These functions/tools connected via input/output dependencies and executed based on the topology by prompt flow executor. -A flow is represented as a YAML file and can be visualized with our [Prompt flow for VS Code extension](https://marketplace.visualstudio.com/items?itemName=prompt-flow.prompt-flow). Here is an example: +A flow is represented as a YAML file and can be visualized with our [Prompt flow for VS Code extension](https://marketplace.visualstudio.com/items?itemName=prompt-flow.prompt-flow). Here is an example `flow.dag.yaml`: ![flow_dag](../media/how-to-guides/quick-start/flow_dag.png) +Please refer to our [examples](https://github.com/microsoft/promptflow/tree/main/examples/flows) to learn how to write a `DAG flow`. + ## Flow types -Prompt flow has three flow types: +Prompt flow examples organize flows by three categories: -- **Standard flow** and **Chat flow**: these two are for you to develop your LLM application. The primary difference between the two lies in the additional support provided by the "Chat Flow" for chat applications. For instance, you can define chat_history, chat_input, and chat_output for your flow. The prompt flow, in turn, will offer a chat-like experience (including conversation history) during the development of the flow. Moreover, it also provides a sample chat application for deployment purposes. +- **Standard flow** or **Chat flow**: these two are for you to develop your LLM application. The primary difference between the two lies in the additional support provided by the "Chat Flow" for chat applications. For instance, you can define `chat_history`, `chat_input`, and `chat_output` for your flow. The prompt flow, in turn, will offer a chat-like experience (including conversation history) during the development of the flow. Moreover, it also provides a sample chat application for deployment purposes. - **Evaluation flow** is for you to test/evaluate the quality of your LLM application (standard/chat flow). It usually run on the outputs of standard/chat flow, and compute some metrics that can be used to determine whether the standard/chat flow performs well. E.g. is the answer accurate? is the answer fact-based? -## When to use standard flow vs. chat flow? -As a general guideline, if you are building a chatbot that needs to maintain conversation history, try chat flow. In most other cases, standard flow should serve your needs. +Flex flow [examples](https://github.com/microsoft/promptflow/tree/main/examples/flex-flows): +- [basic](https://github.com/microsoft/promptflow/tree/main/examples/flex-flows/basic) +- [chat-basic](https://github.com/microsoft/promptflow/tree/main/examples/flex-flows/chat-basic) +- [eval-basic](https://github.com/microsoft/promptflow/tree/main/examples/flex-flows/eval-basic) + +DAG flow [examples](https://github.com/microsoft/promptflow/tree/main/examples/flows): +- [basic](https://github.com/microsoft/promptflow/tree/main/examples/flows/standard/basic) +- [chat-basic](https://github.com/microsoft/promptflow/tree/main/examples/flows/chat/chat-basic) +- [eval-basic](https://github.com/microsoft/promptflow/tree/main/examples/flows/evaluation/eval-basic) -Our examples should also give you an idea when to use what: -- [examples/flows/standard](https://github.com/microsoft/promptflow/tree/main/examples/flows/standard) -- [examples/flows/chat](https://github.com/microsoft/promptflow/tree/main/examples/flows/chat) ## Next steps diff --git a/docs/how-to-guides/index.md b/docs/how-to-guides/index.md index c4481cf628d..821b9a0a860 100644 --- a/docs/how-to-guides/index.md +++ b/docs/how-to-guides/index.md @@ -2,6 +2,12 @@ Simple and short articles grouped by topics, each introduces a core feature of prompt flow and how you can use it to address your specific use cases. +```{toctree} +:caption: Tracing +:maxdepth: 1 +tracing/index +``` + ```{toctree} :caption: Flow :maxdepth: 1 diff --git a/docs/how-to-guides/tracing/index.md b/docs/how-to-guides/tracing/index.md new file mode 100644 index 00000000000..f1056ffed38 --- /dev/null +++ b/docs/how-to-guides/tracing/index.md @@ -0,0 +1,118 @@ +# Tracing + +:::{admonition} Experimental feature +This is an experimental feature, and may change at any time. Learn [more](../faq.md#stable-vs-experimental). +::: + +Prompt flow provides the trace feature to capture and visualize the internal execution details for all flows. + +For `DAG flow`, user can track and visualize node level inputs/outputs of flow execution, it provides critical insights for developer to understand the internal details of execution. + +For `Flex flow` developers, who might use different frameworks (langchain, semantic kernel, OpenAI, kinds of agents) to create LLM based applications, prompt flow allow user to instrument their code in a [OpenTelemetry](https://opentelemetry.io/) compatible way, and visualize using UI provided by promptflow devkit. + +## Instrumenting user's code + +### **`start_trace()` to enable trace for LLM calls** +Let's start with the simplest example, add single line code to enable trace for LLM calls in your application. +```python +from openai import OpenAI +from promptflow.tracing import start_trace + +# start_trace() will print a url for trace detail visualization +start_trace() + +client = OpenAI() + +completion = client.chat.completions.create( + model="gpt-4", + messages=[ + {"role": "system", "content": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."}, + {"role": "user", "content": "Compose a poem that explains the concept of recursion in programming."} + ] +) + +print(completion.choices[0].message) +``` + +Running above python script will produce below example output: +``` +Prompt flow service has started... +You can view the traces from local: http://localhost:/v1.0/ui/traces/?#collection=basic +``` + +Click the trace url, user will see a trace list that corresponding to each LLM calls: +![LLM-trace-list](../../media/trace/LLM-trace-list.png) + + +Click on one line record, the LLM detail will be displayed with chat window experience, together with other LLM call params: +![LLM-trace-detail](../../media/trace/LLM-trace-detail.png) + +Promptflow tracing works for more frameworks like `autogen` and `langchain`: + +1. Example: **[Add trace for Autogen](https://github.com/microsoft/promptflow/tree/main/examples/tutorials/tracing/autogen-groupchat/)** + +![autogen-trace-detail](../../media/trace/autogen-trace-detail.png) + +2. Example: **[Add trace for Langchain](https://github.com/microsoft/promptflow/tree/main/examples/tutorials/tracing/langchain)** + +![langchain-trace-detail](../../media/trace/langchain-trace-detail.png) + +### **`@trace` to trace on any function** +A more common scenario is the application has complicated code structure, and developer would like to add trace on critical path that they would like to debug and monitor. + +See the **[math_to_code](https://github.com/microsoft/promptflow/tree/main/examples/tutorials/tracing/math_to_code.py)** example. Execute below command will get an URL to display the trace records and trace details of each test. + +```python +from promptflow.tracing import trace +# trace your function +@trace +def code_gen(client: AzureOpenAI, question: str) -> str: + sys_prompt = ( + "I want you to act as a Math expert specializing in Algebra, Geometry, and Calculus. " + "Given the question, develop python code to model the user's question. " + "Make sure only reply the executable code, no other words." + ) + completion = client.chat.completions.create( + model=os.getenv("CHAT_DEPLOYMENT_NAME", "gpt-35-turbo"), + messages=[ + { + "role": "system", + "content": sys_prompt, + }, + {"role": "user", "content": question}, + ], + ) + raw_code = completion.choices[0].message.content + result = code_refine(raw_code) + return result +``` + +```shell +python math_to_code.py +``` + +## Trace visualization in flow test and batch run + +### Flow test +If your application is created with DAG flow, all flow test and batch run will be automatically enable trace function. Take the **[chat_with_pdf](https://github.com/microsoft/promptflow/tree/main/examples/flows/chat/chat-with-pdf/)** as example. + +Run `pf flow test --flow .`, each flow test will generate single line in the trace UI: +![flow-trace-record](../../media/trace/flow-trace-records.png) + +Click a record, the trace details will be visualized as tree view. + +![flow-trace-detail](../../media/trace/flow-trace-detail.png) + +### Evaluate against batch data +Keep using **[chat_with_pdf](https://github.com/microsoft/promptflow/tree/main/examples/flows/chat/chat-with-pdf)** as example, to trigger a batch run, you can use below commands: + +```shell +pf run create -f batch_run.yaml +``` +Or +```shell +pf run create --flow . --data "./data/bert-paper-qna.jsonl" --column-mapping chat_history='${data.chat_history}' pdf_url='${data.pdf_url}' question='${data.question}' +``` +Then you will get a run related trace URL, e.g. http://localhost:/v1.0/ui/traces?run=chat_with_pdf_20240226_181222_219335 + +![batch_run_record](../../media/trace/batch_run_record.png) \ No newline at end of file diff --git a/docs/media/trace/LLM-trace-detail.png b/docs/media/trace/LLM-trace-detail.png new file mode 100644 index 0000000000000000000000000000000000000000..758bc7331f6554b1fda01f79db65c2c198866ded GIT binary patch literal 68615 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

VT2#$z>rZ{ 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 literal 0 HcmV?d00001 diff --git a/docs/media/trace/LLM-trace-list.png b/docs/media/trace/LLM-trace-list.png new file mode 100644 index 0000000000000000000000000000000000000000..4049106d849a87b8421dd57b770059436dd768b4 GIT binary patch literal 30188 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 aj3XvCuqy-w*$X0m{8U=$Nx@@7|Nj9^VLg!m literal 0 HcmV?d00001 diff --git a/docs/media/trace/at-trace-detail.png b/docs/media/trace/at-trace-detail.png new file mode 100644 index 0000000000000000000000000000000000000000..d2155ac181eb5d6da6c4f15c0041ba4321b68eb9 GIT binary patch literal 81219 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%0DpXCp3i6`^%Y;VVS0?222arfA;Ls;0qNq$ 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

bTmrZ=Ogal!JA-NMJ4lO5#z_l{~^Y&2<)3JKww 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�tV&$dp*wIO{n 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 literal 0 HcmV?d00001 diff --git a/docs/media/trace/autogen-trace-detail.png b/docs/media/trace/autogen-trace-detail.png new file mode 100644 index 0000000000000000000000000000000000000000..49a7783a25a7d4a656a40393dc258149a0bdb48d GIT binary patch literal 131131 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

n_#2PF9p!o}|pbh~aRo4J-k6wl@93?U7x{1-{d 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 literal 0 HcmV?d00001 diff --git a/docs/media/trace/batch_run_record.png b/docs/media/trace/batch_run_record.png new file mode 100644 index 0000000000000000000000000000000000000000..df18d4e6a5833656be8677fb197a3828f7eccaf3 GIT binary patch literal 240504 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%0D#v;oOX`Xe)-8aI`1jF< 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�WqfeZ`#lrsA%l0=f@!H?xh#ToC11}Al* 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 I(hpz!AFqG%V*mgE literal 0 HcmV?d00001 diff --git a/docs/media/trace/flow-trace-records.png b/docs/media/trace/flow-trace-records.png new file mode 100644 index 0000000000000000000000000000000000000000..7b2e4480972bc187ed0b45cc87be522ed5f0b0e3 GIT binary patch literal 86227 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 +AZURE_OPENAI_ENDPOINT= diff --git a/examples/flex-flows/README.md b/examples/flex-flows/README.md new file mode 100644 index 00000000000..797211015ad --- /dev/null +++ b/examples/flex-flows/README.md @@ -0,0 +1,18 @@ +# Flex Flow + +You can learn more on flex flow with examples in this folder. + +## SDK examples + +| path | status | description | +------|--------|------------- +| [flex-flow-quickstart.ipynb](./basic/flex-flow-quickstart.ipynb) | [![samples_flexflows_basic_flexflowquickstart](https://github.com/microsoft/promptflow/actions/workflows/samples_flexflows_basic_flexflowquickstart.yml/badge.svg?branch=main)](https://github.com/microsoft/promptflow/actions/workflows/samples_flexflows_basic_flexflowquickstart.yml) | A quickstart tutorial to run a flex flow and evaluate it. | +| [flex-flow-quickstart-azure.ipynb](./basic/flex-flow-quickstart-azure.ipynb) | [![samples_flexflows_basic_flexflowquickstartazure](https://github.com/microsoft/promptflow/actions/workflows/samples_flexflows_basic_flexflowquickstartazure.yml/badge.svg?branch=main)](https://github.com/microsoft/promptflow/actions/workflows/samples_flexflows_basic_flexflowquickstartazure.yml) | A quickstart tutorial to run a flex flow and evaluate it in azure. | + +## CLI examples +| path | status | description | +------|--------|------------- +| [basic](./basic/README.md) | [![samples_flex_flows_basic](https://github.com/microsoft/promptflow/actions/workflows/samples_flex_flows_basic.yml/badge.svg?branch=main)](https://github.com/microsoft/promptflow/actions/workflows/samples_flex_flows_basic.yml) | A basic standard flow define using function entry that calls Azure OpenAI with connection info stored in environment variables | +| [chat-basic](./chat-basic/README.md) | [![samples_flex_flows_chat_basic](https://github.com/microsoft/promptflow/actions/workflows/samples_flex_flows_chat_basic.yml/badge.svg?branch=main)](https://github.com/microsoft/promptflow/actions/workflows/samples_flex_flows_chat_basic.yml) | A basic chat flow defined using class entry | +| [eval-checklist](./eval-checklist/README.md) | [![samples_flex_flows_eval_checklist](https://github.com/microsoft/promptflow/actions/workflows/samples_flex_flows_eval_checklist.yml/badge.svg?branch=main)](https://github.com/microsoft/promptflow/actions/workflows/samples_flex_flows_eval_checklist.yml) | A example flow defined using class entry which demos how to evaluate the answer pass user specified check list | +| [eval-code-quality](./eval-code-quality/README.md) | [![samples_flex_flows_eval_code_quality](https://github.com/microsoft/promptflow/actions/workflows/samples_flex_flows_eval_code_quality.yml/badge.svg?branch=main)](https://github.com/microsoft/promptflow/actions/workflows/samples_flex_flows_eval_code_quality.yml) | A example flow defined using function entry which shows how to evaluate the quality of code snippet | diff --git a/examples/flex-flows/basic/README.md b/examples/flex-flows/basic/README.md new file mode 100644 index 00000000000..7d8bca0847c --- /dev/null +++ b/examples/flex-flows/basic/README.md @@ -0,0 +1,110 @@ +# Basic standard flow +A basic standard flow define using function entry that calls Azure OpenAI with connection info stored in environment variables. + +## Prerequisites + +Install promptflow sdk and other dependencies: +```bash +pip install -r requirements.txt +``` + +## Run flow + +- Prepare your Azure Open AI resource follow this [instruction](https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/create-resource?pivots=web-portal) and get your `api_key` if you don't have one. + +- Setup environment variables + +Ensure you have put your azure open ai endpoint key in [.env](../.env) file. You can create one refer to this [example file](../.env.example). + +```bash +cat ../.env +``` + +- Run/Debug as normal Python file +```bash +python programmer.py +``` + +- Test flow with connection + +Storing connection info in .env with plaintext is not safe. We recommend to use `pf connection` to guard secrets like `api_key` from leak. + +- Show or create `open_ai_connection` +```bash +# create connection from `azure_openai.yml` file +# Override keys with --set to avoid yaml file changes +pf connection create --file ../../connections/azure_openai.yml --set api_key= api_base= + +# check if connection exists +pf connection show -n open_ai_connection +``` + +```bash +# test with default input value in flow.flex.yaml +pf flow test --flow . + +# test with flow inputs +pf flow test --flow . --inputs text="Java Hello World!" + +``` + +- Create run with multiple lines data +```bash +# using environment from .env file (loaded in user code: hello.py) +pf run create --flow . --data ./data.jsonl --column-mapping text='${data.text}' --stream +``` + +You can also skip providing `column-mapping` if provided data has same column name as the flow. +Reference [here](https://aka.ms/pf/column-mapping) for default behavior when `column-mapping` not provided in CLI. + +- List and show run meta +```bash +# list created run +pf run list + +# get a sample run name + +name=$(pf run list -r 10 | jq '.[] | select(.name | contains("basic_")) | .name'| head -n 1 | tr -d '"') +# show specific run detail +pf run show --name $name + +# show output +pf run show-details --name $name + +# visualize run in browser +pf run visualize --name $name +``` + +## Run flow in cloud with connection +- Assume we already have a connection named `open_ai_connection` in workspace. +```bash +# set default workspace +az account set -s +az configure --defaults group= workspace= +``` + +- Create run +```bash +# run with environment variable reference connection in azureml workspace +pfazure run create --flow . --data ./data.jsonl --column-mapping text='${data.text}' --stream +# run using yaml file +pfazure run create --file run.yml --stream +``` + +- List and show run meta +```bash +# list created run +pfazure run list -r 3 + +# get a sample run name +name=$(pfazure run list -r 100 | jq '.[] | select(.name | contains("basic_")) | .name'| head -n 1 | tr -d '"') + +# show specific run detail +pfazure run show --name $name + +# show output +pfazure run show-details --name $name + +# visualize run in browser +pfazure run visualize --name $name +``` diff --git a/examples/flex-flows/basic/data.jsonl b/examples/flex-flows/basic/data.jsonl new file mode 100644 index 00000000000..d71f1ca42a2 --- /dev/null +++ b/examples/flex-flows/basic/data.jsonl @@ -0,0 +1,3 @@ +{"text": "Python Hello World!"} +{"text": "C Hello World!"} +{"text": "C# Hello World!"} diff --git a/examples/flex-flows/basic/flex-flow-quickstart-azure.ipynb b/examples/flex-flows/basic/flex-flow-quickstart-azure.ipynb new file mode 100644 index 00000000000..644cdec9f7a --- /dev/null +++ b/examples/flex-flows/basic/flex-flow-quickstart-azure.ipynb @@ -0,0 +1,263 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Getting started with flex flow in Azure\n", + "\n", + "**Learning Objectives** - Upon completing this tutorial, you should be able to:\n", + "\n", + "- Write LLM application using notebook and visualize the trace of your application.\n", + "- Convert the application into a flow and batch run against multi lines of data.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 0. Install dependent packages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture --no-stderr\n", + "%pip install -r ./requirements-azure.txt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Connection to workspace" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Configure credential\n", + "\n", + "We are using `DefaultAzureCredential` to get access to workspace. \n", + "`DefaultAzureCredential` should be capable of handling most Azure SDK authentication scenarios. \n", + "\n", + "Reference for more available credentials if it does not work for you: [configure credential example](../../configuration.ipynb), [azure-identity reference doc](https://docs.microsoft.com/en-us/python/api/azure-identity/azure.identity?view=azure-python)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential\n", + "\n", + "try:\n", + " credential = DefaultAzureCredential()\n", + " # Check if given credential can get token successfully.\n", + " credential.get_token(\"https://management.azure.com/.default\")\n", + "except Exception as ex:\n", + " # Fall back to InteractiveBrowserCredential in case DefaultAzureCredential not work\n", + " credential = InteractiveBrowserCredential()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Get a handle to the workspace\n", + "\n", + "We use config file to connect to a workspace. The Azure ML workspace should be configured with computer cluster. [Check this notebook for configure a workspace](../../configuration.ipynb)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from promptflow.azure import PFClient\n", + "\n", + "# Get a handle to workspace\n", + "pf = PFClient.from_config(credential=credential)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create necessary connections\n", + "Connection helps securely store and manage secret keys or other sensitive credentials required for interacting with LLM and other external tools for example Azure Content Safety.\n", + "\n", + "In this notebook, we will use flow `basic` flex flow which uses connection `open_ai_connection` inside, we need to set up the connection if we haven't added it before.\n", + "\n", + "Prepare your Azure OpenAI resource follow this [instruction](https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/create-resource?pivots=web-portal) and get your `api_key` if you don't have one.\n", + "\n", + "Please go to [workspace portal](https://ml.azure.com/), click `Prompt flow` -> `Connections` -> `Create`, then follow the instruction to create your own connections. \n", + "Learn more on [connections](https://learn.microsoft.com/en-us/azure/machine-learning/prompt-flow/concept-connections?view=azureml-api-2)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Batch run the function as flow with multi-line data\n", + "\n", + "Create a [flow.flex.yaml](flow.flex.yaml) file to define a flow which entry pointing to the python function we defined.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# show the flow.flex.yaml content\n", + "with open(\"flow.flex.yaml\") as fin:\n", + " print(fin.read())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Batch run with a data file (with multiple lines of test data)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "flow = \".\" # path to the flow directory\n", + "data = \"./data.jsonl\" # path to the data file\n", + "\n", + "# create run with the flow and data\n", + "base_run = pf.run(\n", + " flow=flow,\n", + " data=data,\n", + " column_mapping={\n", + " \"text\": \"${data.text}\",\n", + " },\n", + " stream=True,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "details = pf.get_details(base_run)\n", + "details.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Evaluate your flow\n", + "Then you can use an evaluation method to evaluate your flow. The evaluation methods are also flows which usually using LLM assert the produced output matches certain expectation. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run evaluation on the previous batch run\n", + "The **base_run** is the batch run we completed in step 2 above, for web-classification flow with \"data.jsonl\" as input." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "eval_flow = \"../eval-code-quality/flow.flex.yaml\"\n", + "\n", + "eval_run = pf.run(\n", + " flow=eval_flow,\n", + " data=\"./data.jsonl\", # path to the data file\n", + " run=base_run, # specify base_run as the run you want to evaluate\n", + " column_mapping={\n", + " \"code\": \"${run.outputs.output}\",\n", + " },\n", + " stream=True,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "details = pf.get_details(eval_run)\n", + "details.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "metrics = pf.get_metrics(eval_run)\n", + "print(json.dumps(metrics, indent=4))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pf.visualize([base_run, eval_run])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Next Steps\n", + "\n", + "By now you've successfully run your first prompt flow and even did evaluation on it. That's great!\n", + "\n", + "You can check out more examples:\n", + "- [Basic Chat](../chat-basic/README.md): demonstrates how to create a chatbot that can remember previous interactions and use the conversation history to generate next message." + ] + } + ], + "metadata": { + "description": "A quickstart tutorial to run a flex flow and evaluate it in azure.", + "kernelspec": { + "display_name": "prompt_flow", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.5" + }, + "resources": "examples/requirements-azure.txt, examples/flex-flows/basic, examples/flex-flows/eval-code-quality" + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/flex-flows/basic/flex-flow-quickstart.ipynb b/examples/flex-flows/basic/flex-flow-quickstart.ipynb new file mode 100644 index 00000000000..232622c48cc --- /dev/null +++ b/examples/flex-flows/basic/flex-flow-quickstart.ipynb @@ -0,0 +1,334 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Getting started with flex flow\n", + "\n", + "**Learning Objectives** - Upon completing this tutorial, you should be able to:\n", + "\n", + "- Write LLM application using notebook and visualize the trace of your application.\n", + "- Convert the application into a flow and batch run against multi lines of data.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 0. Install dependent packages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture --no-stderr\n", + "%pip install -r ./requirements.txt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Trace your application with promptflow\n", + "\n", + "Assume we already have a python function that calls OpenAI API. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"llm.py\") as fin:\n", + " print(fin.read())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note: before running below cell, please configure required environment variable `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` by create an `.env` file. Please refer to [.env.example](.env.example) as an template." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# control the AOAI deployment (model) used in this example\n", + "deployment_name = \"gpt-35-turbo\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from llm import my_llm_tool\n", + "\n", + "# pls configure `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` environment variables first\n", + "result = my_llm_tool(\n", + " prompt=\"Write a simple Hello, world! program that displays the greeting message when executed. Output code only.\",\n", + " deployment_name=deployment_name,\n", + ")\n", + "result" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Visualize trace by using start_trace\n", + "\n", + "Note we add `@trace` in the `my_llm_tool` function, re-run below cell will collect a trace in trace UI." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from promptflow.tracing import start_trace\n", + "\n", + "# start a trace session, and print a url for user to check trace\n", + "start_trace()\n", + "# rerun the function, which will be recorded in the trace\n", + "result = my_llm_tool(\n", + " prompt=\"Write a simple Hello, world! program that displays the greeting message when executed. Output code only.\",\n", + " deployment_name=deployment_name,\n", + ")\n", + "result" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's add another layer of function call. In [programmer.py](programmer.py) there is a function called `write_simple_program`, which calls a new function called `load_prompt` and previous `my_llm_tool` function." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# show the programmer.py content\n", + "with open(\"programmer.py\") as fin:\n", + " print(fin.read())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# call the flow entry function\n", + "from programmer import write_simple_program\n", + "\n", + "result = write_simple_program(\"Java Hello, world!\")\n", + "result" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Eval the result " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "\n", + "import paths # add the code_quality module to the path\n", + "from code_quality import eval_code\n", + "\n", + "eval_result = eval_code(result)\n", + "eval_result" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Batch run the function as flow with multi-line data\n", + "\n", + "Create a [flow.flex.yaml](flow.flex.yaml) file to define a flow which entry pointing to the python function we defined.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# show the flow.flex.yaml content\n", + "with open(\"flow.flex.yaml\") as fin:\n", + " print(fin.read())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Batch run with a data file (with multiple lines of test data)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from promptflow.client import PFClient\n", + "\n", + "pf = PFClient()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "data = \"./data.jsonl\" # path to the data file\n", + "# create run with the flow function and data\n", + "base_run = pf.run(\n", + " flow=write_simple_program,\n", + " data=data,\n", + " column_mapping={\n", + " \"text\": \"${data.text}\",\n", + " },\n", + " stream=True,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "details = pf.get_details(base_run)\n", + "details.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Evaluate your flow\n", + "Then you can use an evaluation method to evaluate your flow. The evaluation methods are also flows which usually using LLM assert the produced output matches certain expectation. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run evaluation on the previous batch run\n", + "The **base_run** is the batch run we completed in step 2 above, for web-classification flow with \"data.jsonl\" as input." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# we can also run flow pointing to yaml file\n", + "eval_flow = \"../eval-code-quality/flow.flex.yaml\"\n", + "\n", + "eval_run = pf.run(\n", + " flow=eval_flow,\n", + " data=\"./data.jsonl\", # path to the data file\n", + " run=base_run, # specify base_run as the run you want to evaluate\n", + " column_mapping={\n", + " \"code\": \"${run.outputs.output}\",\n", + " },\n", + " stream=True,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "details = pf.get_details(eval_run)\n", + "details.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "metrics = pf.get_metrics(eval_run)\n", + "print(json.dumps(metrics, indent=4))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pf.visualize([base_run, eval_run])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Next Steps\n", + "\n", + "By now you've successfully run your first prompt flow and even did evaluation on it. That's great!\n", + "\n", + "You can check out more examples:\n", + "- [Basic Chat](../chat-basic/README.md): demonstrates how to create a chatbot that can remember previous interactions and use the conversation history to generate next message." + ] + } + ], + "metadata": { + "description": "A quickstart tutorial to run a flex flow and evaluate it.", + "kernelspec": { + "display_name": "prompt_flow", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + }, + "resources": "examples/requirements.txt, examples/flex-flows/basic" + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/flex-flows/basic/flow.flex.yaml b/examples/flex-flows/basic/flow.flex.yaml new file mode 100644 index 00000000000..fa95b3a516f --- /dev/null +++ b/examples/flex-flows/basic/flow.flex.yaml @@ -0,0 +1,10 @@ +$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Flow.schema.json +entry: programmer:write_simple_program +environment: + # image: mcr.microsoft.com/azureml/promptflow/promptflow-python + python_requirements_txt: requirements.txt +environment_variables: + # environment variables from connection + AZURE_OPENAI_API_KEY: ${open_ai_connection.api_key} + AZURE_OPENAI_ENDPOINT: ${open_ai_connection.api_base} + AZURE_OPENAI_API_TYPE: azure diff --git a/examples/flex-flows/basic/hello.jinja2 b/examples/flex-flows/basic/hello.jinja2 new file mode 100644 index 00000000000..738367f7cf7 --- /dev/null +++ b/examples/flex-flows/basic/hello.jinja2 @@ -0,0 +1,3 @@ +system: +Write a simple {{text}} program. +Output code only. \ No newline at end of file diff --git a/examples/flex-flows/basic/llm.py b/examples/flex-flows/basic/llm.py new file mode 100644 index 00000000000..af1ac68667c --- /dev/null +++ b/examples/flex-flows/basic/llm.py @@ -0,0 +1,80 @@ +import os + +from dotenv import load_dotenv +from openai.version import VERSION as OPENAI_VERSION + +from promptflow.tracing import trace + + +def get_client(): + if OPENAI_VERSION.startswith("0."): + raise Exception( + "Please upgrade your OpenAI package to version >= 1.0.0 or using the command: pip install --upgrade openai." + ) + api_key = os.environ.get("OPENAI_API_KEY", None) + if api_key: + from openai import OpenAI + + return OpenAI() + else: + from openai import AzureOpenAI + + return AzureOpenAI( + api_version=os.environ.get("OPENAI_API_VERSION", "2023-07-01-preview") + ) + + +@trace +def my_llm_tool( + prompt: str, + # for AOAI, deployment name is customized by user, not model name. + deployment_name: str, + max_tokens: int = 120, + temperature: float = 1.0, + top_p: float = 1.0, + n: int = 1, + logprobs: int = None, + stop: list = None, + presence_penalty: float = 0, + frequency_penalty: float = 0, + logit_bias: dict = {}, + user: str = "", + **kwargs, +) -> str: + if "OPENAI_API_KEY" not in os.environ and "AZURE_OPENAI_API_KEY" not in os.environ: + # load environment variables from .env file + load_dotenv() + + if "OPENAI_API_KEY" not in os.environ and "AZURE_OPENAI_API_KEY" not in os.environ: + raise Exception( + "Please specify environment variables: OPENAI_API_KEY or AZURE_OPENAI_API_KEY" + ) + messages = [{"content": prompt, "role": "system"}] + response = get_client().chat.completions.create( + # prompt=prompt, + messages=messages, + model=deployment_name, + max_tokens=int(max_tokens), + temperature=float(temperature), + top_p=float(top_p), + n=int(n), + logprobs=int(logprobs) if logprobs else None, + # fix bug "[] is not valid under any of the given schemas-'stop'" + stop=stop if stop else None, + presence_penalty=float(presence_penalty), + frequency_penalty=float(frequency_penalty), + # Logit bias must be a dict if we passed it to openai api. + logit_bias=logit_bias if logit_bias else {}, + user=user, + ) + + # get first element because prompt is single. + return response.choices[0].message.content + + +if __name__ == "__main__": + result = my_llm_tool( + prompt="Write a simple Hello, world! program that displays the greeting message.", + deployment_name="text-davinci-003", + ) + print(result) diff --git a/examples/flex-flows/basic/paths.py b/examples/flex-flows/basic/paths.py new file mode 100644 index 00000000000..c2ea6db9ffb --- /dev/null +++ b/examples/flex-flows/basic/paths.py @@ -0,0 +1,6 @@ +import sys +import pathlib + +# Add the path to the evaluation code quality module +code_path = str(pathlib.Path(__file__).parent / "../eval-code-quality") +sys.path.insert(0, code_path) diff --git a/examples/flex-flows/basic/programmer.py b/examples/flex-flows/basic/programmer.py new file mode 100644 index 00000000000..db8467d773c --- /dev/null +++ b/examples/flex-flows/basic/programmer.py @@ -0,0 +1,41 @@ +from pathlib import Path +from typing import TypedDict + +from jinja2 import Template +from llm import my_llm_tool + +from promptflow.tracing import trace + +BASE_DIR = Path(__file__).absolute().parent + + +class Result(TypedDict): + output: str + + +@trace +def load_prompt(jinja2_template: str, text: str) -> str: + """Load prompt function.""" + with open(BASE_DIR / jinja2_template, "r", encoding="utf-8") as f: + prompt = Template( + f.read(), trim_blocks=True, keep_trailing_newline=True + ).render(text=text) + return prompt + + +@trace +def write_simple_program( + text: str = "Hello World!", deployment_name="gpt-35-turbo" +) -> Result: + """Ask LLM to write a simple program.""" + prompt = load_prompt("hello.jinja2", text) + output = my_llm_tool(prompt=prompt, deployment_name=deployment_name, max_tokens=120) + return Result(output=output) + + +if __name__ == "__main__": + from promptflow.tracing import start_trace + + start_trace() + result = write_simple_program("Hello, world!", "gpt-35-turbo") + print(result) diff --git a/examples/flex-flows/basic/requirements-azure.txt b/examples/flex-flows/basic/requirements-azure.txt new file mode 100644 index 00000000000..f72e46bfbb6 --- /dev/null +++ b/examples/flex-flows/basic/requirements-azure.txt @@ -0,0 +1 @@ +promptflow-azure diff --git a/examples/flex-flows/basic/requirements.txt b/examples/flex-flows/basic/requirements.txt new file mode 100644 index 00000000000..006ac2f55a8 --- /dev/null +++ b/examples/flex-flows/basic/requirements.txt @@ -0,0 +1,2 @@ +promptflow-core +python-dotenv diff --git a/examples/flex-flows/basic/run.yml b/examples/flex-flows/basic/run.yml new file mode 100644 index 00000000000..1838ebd4eb0 --- /dev/null +++ b/examples/flex-flows/basic/run.yml @@ -0,0 +1,5 @@ +$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Run.schema.json +flow: . +data: data.jsonl +column_mapping: + text: ${data.text} diff --git a/examples/flex-flows/chat-basic/README.md b/examples/flex-flows/chat-basic/README.md new file mode 100644 index 00000000000..932f6de5cb2 --- /dev/null +++ b/examples/flex-flows/chat-basic/README.md @@ -0,0 +1,117 @@ +# Basic chat +A basic chat flow defined using class entry. It demonstrates how to create a chatbot that can remember previous interactions and use the conversation history to generate next message. + +## Prerequisites + +Install promptflow sdk and other dependencies in this folder: +```bash +pip install -r requirements.txt +``` + +## What you will learn + +In this flow, you will learn +- how to compose a chat flow. +- prompt template format of LLM tool chat api. Message delimiter is a separate line containing role name and colon: "system:", "user:", "assistant:". +See OpenAI Chat for more about message role. + ```jinja + system: + You are a chatbot having a conversation with a human. + + user: + {{question}} + ``` +- how to consume chat history in prompt. + ```jinja + {% for item in chat_history %} + user: + {{item.inputs.question}} + assistant: + {{item.outputs.answer}} + {% endfor %} + ``` + +## Run flow + +- Prepare your Azure Open AI resource follow this [instruction](https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/create-resource?pivots=web-portal) and get your `api_key` if you don't have one. + +- Setup connection + +Go to "Prompt flow" "Connections" tab. Click on "Create" button, select one of LLM tool supported connection types and fill in the configurations. + +Or use CLI to create connection: + +```bash +# Override keys with --set to avoid yaml file changes +pf connection create --file ../../connections/azure_openai.yml --set api_key= api_base= --name open_ai_connection +``` + +Note in [flow.flex.yaml](flow.flex.yaml) we are using connection named `open_ai_connection`. +```bash +# show registered connection +pf connection show --name open_ai_connection +``` + +- Run as normal Python file + +```bash +python flow.py +``` + +- Test flow +You'll need to write flow entry `flow.flex.yaml` to test with prompt flow. + +```bash +# run chat flow with default question in flow.flex.yaml +pf flow test --flow . --init connection=open_ai_connection + +# run chat flow with new question +pf flow test --flow . --init connection=open_ai_connection --inputs question="What's Azure Machine Learning?" + +pf flow test --flow . --init connection=open_ai_connection --inputs question="What is ChatGPT? Please explain with consise statement." +``` + +- Create run with multiple lines data + +```bash +pf run create --flow . --init connection=open_ai_connection --data ./data.jsonl --column-mapping question='${data.question}' --stream +``` + +You can also skip providing `column-mapping` if provided data has same column name as the flow. +Reference [here](https://aka.ms/pf/column-mapping) for default behavior when `column-mapping` not provided in CLI. + +- List and show run meta +```bash +# list created run +pf run list + +# get a sample run name + +name=$(pf run list -r 10 | jq '.[] | select(.name | contains("chat_basic_")) | .name'| head -n 1 | tr -d '"') +# show specific run detail +pf run show --name $name + +# show output +pf run show-details --name $name + +# visualize run in browser +pf run visualize --name $name +``` + +## Run flow in cloud + +- Assume we already have a connection named `open_ai_connection` in workspace. + +```bash +# set default workspace +az account set -s +az configure --defaults group= workspace= +``` + +- Create run + +```bash +# run with environment variable reference connection in azureml workspace +pfazure run create --flow . --init connection=open_ai_connection --data ./data.jsonl --column-mapping question='${data.question}' --stream +# run using yaml file +pfazure run create --file run.yml --stream diff --git a/examples/flex-flows/chat-basic/chat.jinja2 b/examples/flex-flows/chat-basic/chat.jinja2 new file mode 100644 index 00000000000..c5e811e1969 --- /dev/null +++ b/examples/flex-flows/chat-basic/chat.jinja2 @@ -0,0 +1,12 @@ +system: +You are a helpful assistant. + +{% for item in chat_history %} +user: +{{item.inputs.question}} +assistant: +{{item.outputs.answer}} +{% endfor %} + +user: +{{question}} \ No newline at end of file diff --git a/examples/flex-flows/chat-basic/data.jsonl b/examples/flex-flows/chat-basic/data.jsonl new file mode 100644 index 00000000000..34b2fb42025 --- /dev/null +++ b/examples/flex-flows/chat-basic/data.jsonl @@ -0,0 +1,2 @@ +{"question": "What is Prompt flow?", "statements": {"correctness": "should explain what's 'Prompt flow'"}} +{"question": "What is ChatGPT? Please explain with consise statement", "statements": { "correctness": "should explain what's ChatGPT", "consise": "It is a consise statement."}} \ No newline at end of file diff --git a/examples/flex-flows/chat-basic/flow.flex.yaml b/examples/flex-flows/chat-basic/flow.flex.yaml new file mode 100644 index 00000000000..ea0410185ec --- /dev/null +++ b/examples/flex-flows/chat-basic/flow.flex.yaml @@ -0,0 +1,5 @@ +$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Flow.schema.json +entry: flow:ChatFlow +environment: + # image: mcr.microsoft.com/azureml/promptflow/promptflow-python + python_requirements_txt: requirements.txt diff --git a/examples/flex-flows/chat-basic/flow.py b/examples/flex-flows/chat-basic/flow.py new file mode 100644 index 00000000000..dafafe80841 --- /dev/null +++ b/examples/flex-flows/chat-basic/flow.py @@ -0,0 +1,59 @@ +from dataclasses import dataclass +from pathlib import Path + +from jinja2 import Template + +from promptflow.tracing import trace +from promptflow.connections import AzureOpenAIConnection +from promptflow.tools.aoai import chat + +BASE_DIR = Path(__file__).absolute().parent + + +@trace +def load_prompt(jinja2_template: str, question: str, chat_history: list) -> str: + """Load prompt function.""" + with open(BASE_DIR / jinja2_template, "r", encoding="utf-8") as f: + tmpl = Template(f.read(), trim_blocks=True, keep_trailing_newline=True) + prompt = tmpl.render(question=question, chat_history=chat_history) + return prompt + + +@dataclass +class Result: + answer: str + + +class ChatFlow: + def __init__(self, connection: AzureOpenAIConnection): + self.connection = connection + + def __call__( + self, question: str = "What is ChatGPT?", chat_history: list = None + ) -> Result: + """Flow entry function.""" + + chat_history = chat_history or [] + + prompt = load_prompt("chat.jinja2", question, chat_history) + + output = chat( + connection=self.connection, + prompt=prompt, + deployment_name="gpt-35-turbo", + max_tokens=256, + temperature=0.7, + ) + return Result(answer=output) + + +if __name__ == "__main__": + from promptflow.tracing import start_trace + from promptflow.client import PFClient + + start_trace() + pf = PFClient() + connection = pf.connections.get("open_ai_connection", with_secrets=True) + flow = ChatFlow(connection=connection) + result = flow("What's Azure Machine Learning?", []) + print(result) diff --git a/examples/flex-flows/chat-basic/requirements.txt b/examples/flex-flows/chat-basic/requirements.txt new file mode 100644 index 00000000000..55a002e12f8 --- /dev/null +++ b/examples/flex-flows/chat-basic/requirements.txt @@ -0,0 +1,2 @@ +promptflow-core +promptflow-tools \ No newline at end of file diff --git a/examples/flex-flows/chat-basic/run.yml b/examples/flex-flows/chat-basic/run.yml new file mode 100644 index 00000000000..4e419997bed --- /dev/null +++ b/examples/flex-flows/chat-basic/run.yml @@ -0,0 +1,7 @@ +$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Run.schema.json +flow: . +data: data.jsonl +init: + connection: open_ai_connection +column_mapping: + question: ${data.question} diff --git a/examples/flex-flows/chat-basic/sample.json b/examples/flex-flows/chat-basic/sample.json new file mode 100644 index 00000000000..b1af8226725 --- /dev/null +++ b/examples/flex-flows/chat-basic/sample.json @@ -0,0 +1 @@ +{"question": "What is Prompt flow?"} \ No newline at end of file diff --git a/examples/flex-flows/eval-checklist/README.md b/examples/flex-flows/eval-checklist/README.md new file mode 100644 index 00000000000..e06ae496bd9 --- /dev/null +++ b/examples/flex-flows/eval-checklist/README.md @@ -0,0 +1,89 @@ +# Eval Check List +A example flow defined using class entry which demos how to evaluate the answer pass user specified check list. + +## Prerequisites + +Install promptflow sdk and other dependencies: +```bash +pip install -r requirements.txt +``` + +## Run flow + +- Prepare your Azure Open AI resource follow this [instruction](https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/create-resource?pivots=web-portal) and get your `api_key` if you don't have one. + +- Setup connection + +Go to "Prompt flow" "Connections" tab. Click on "Create" button, select one of LLM tool supported connection types and fill in the configurations. + +Or use CLI to create connection: + +```bash +# Override keys with --set to avoid yaml file changes +pf connection create --file ../../connections/azure_openai.yml --set api_key= api_base= --name open_ai_connection +``` + +Note in [flow.flex.yaml](flow.flex.yaml) we are using connection named `open_ai_connection`. + +```bash +# show registered connection +pf connection show --name open_ai_connection +``` + +- Run as normal Python file + +```bash +python check_list.py +``` + +- Test flow +You'll need to write flow entry `flow.flex.yaml` to test with prompt flow. + +```bash +pf flow test --flow . --init connection=open_ai_connection --inputs sample.json +``` + +- Create run with multiple lines data + +```bash +pf run create --flow . --init connection=open_ai_connection --data ./data.jsonl --stream +``` + +Reference [here](https://aka.ms/pf/column-mapping) for default behavior when `column-mapping` not provided in CLI. + +- List and show run meta + +```bash +# list created run +pf run list + +# get a sample run name + +name=$(pf run list -r 10 | jq '.[] | select(.name | contains("eval_checklist_")) | .name'| head -n 1 | tr -d '"') +# show specific run detail +pf run show --name $name + +# show output +pf run show-details --name $name + +# visualize run in browser +pf run visualize --name $name +``` + +## Run flow in cloud + +- Assume we already have a connection named `open_ai_connection` in workspace. + +```bash +# set default workspace +az account set -s +az configure --defaults group= workspace= +``` + +- Create run + +```bash +# run with environment variable reference connection in azureml workspace +pfazure run create --flow . --init connection=open_ai_connection --data ./data.jsonl --stream +# run using yaml file +pfazure run create --file run.yml --stream diff --git a/examples/flex-flows/eval-checklist/check_list.py b/examples/flex-flows/eval-checklist/check_list.py new file mode 100644 index 00000000000..b2cbcee702f --- /dev/null +++ b/examples/flex-flows/eval-checklist/check_list.py @@ -0,0 +1,91 @@ +import json +from pathlib import Path + +from jinja2 import Template + +from promptflow.tracing import trace +from promptflow.connections import AzureOpenAIConnection +from promptflow.tools.aoai import chat + +BASE_DIR = Path(__file__).absolute().parent + + +@trace +def load_prompt( + jinja2_template: str, answer: str, statement: str, examples: list +) -> str: + """Load prompt function.""" + with open(BASE_DIR / jinja2_template, "r", encoding="utf-8") as f: + tmpl = Template(f.read(), trim_blocks=True, keep_trailing_newline=True) + prompt = tmpl.render(answer=answer, statement=statement, examples=examples) + return prompt + + +@trace +def check(answer: str, statement: str, connection: AzureOpenAIConnection): + """Check the answer applies for the check statement.""" + examples = [ + { + "answer": "ChatGPT is a conversational AI model developed by OpenAI.", + "statement": "It contains a brief explanation of ChatGPT.", + "score": 5, + "explanation": "The statement is correct. The answer contains a brief explanation of ChatGPT.", + } + ] + + prompt = load_prompt("prompt.md", answer, statement, examples) + + output = chat( + connection=connection, + prompt=prompt, + deployment_name="gpt-35-turbo", + max_tokens=256, + temperature=0.7, + ) + output = json.loads(output) + return output + + +class EvalFlow: + def __init__(self, connection: AzureOpenAIConnection): + self.connection = connection + + def __call__(self, answer: str, statements: dict): + """Check the answer applies for a collection of check statement.""" + if isinstance(statements, str): + statements = json.loads(statements) + + results = {} + for key, statement in statements.items(): + r = check(answer=answer, statement=statement, connection=self.connection) + results[key] = r + return results + + +if __name__ == "__main__": + from promptflow.tracing import start_trace + from promptflow.client import PFClient + + start_trace() + + answer = """ChatGPT is a conversational AI model developed by OpenAI. + It is based on the GPT-3 architecture and is designed to generate human-like responses to text inputs. + ChatGPT is capable of understanding and responding to a wide range of topics and can be used for tasks such as + answering questions, generating creative content, and providing assistance with various tasks. + The model has been trained on a diverse range of internet text and is constantly being updated to improve its + performance and capabilities. ChatGPT is available through the OpenAI API and can be accessed by developers and + researchers to build applications and tools that leverage its capabilities.""" + statements = { + "correctness": "It contains a detailed explanation of ChatGPT.", + "consise": "It is a consise statement.", + } + + pf = PFClient() + connection = pf.connections.get("open_ai_connection", with_secrets=True) + flow = EvalFlow(connection=connection) + + result = flow( + answer=answer, + statements=statements, + ) + print(result) diff --git a/examples/flex-flows/eval-checklist/data.jsonl b/examples/flex-flows/eval-checklist/data.jsonl new file mode 100644 index 00000000000..9dbbec4fa07 --- /dev/null +++ b/examples/flex-flows/eval-checklist/data.jsonl @@ -0,0 +1 @@ +{"answer": "ChatGPT is a conversational AI model developed by OpenAI. It is based on the GPT-3 architecture and is designed to generate human-like responses to text inputs. ChatGPT is capable of understanding and responding to a wide range of topics and can be used for tasks such as answering questions, generating creative content, and providing assistance with various tasks. The model has been trained on a diverse range of internet text and is constantly being updated to improve its performance and capabilities. ChatGPT is available through the OpenAI API and can be accessed by developers and researchers to build applications and tools that leverage its capabilities.", "statements": { "correctness": "It contains a detailed explanation of ChatGPT." }} \ No newline at end of file diff --git a/examples/flex-flows/eval-checklist/flow.flex.yaml b/examples/flex-flows/eval-checklist/flow.flex.yaml new file mode 100644 index 00000000000..0a7e143fb74 --- /dev/null +++ b/examples/flex-flows/eval-checklist/flow.flex.yaml @@ -0,0 +1,6 @@ +$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Flow.schema.json +# flow is defined as python function +entry: check_list:EvalFlow +environment: + # image: mcr.microsoft.com/azureml/promptflow/promptflow-python + python_requirements_txt: requirements.txt diff --git a/examples/flex-flows/eval-checklist/prompt.md b/examples/flex-flows/eval-checklist/prompt.md new file mode 100644 index 00000000000..af7cfd84aed --- /dev/null +++ b/examples/flex-flows/eval-checklist/prompt.md @@ -0,0 +1,21 @@ + +# system: +You are an AI assistant. +You task is to evaluate a score based on how the statement applies for the answer. + + +# user: +This score value should always be an integer between 1 and 5. So the score produced should be 1 or 2 or 3 or 4 or 5. + +Here are a few examples: +{% for ex in examples %} +answer: {{ex.answer}} +statement: {{ex.statement}} +OUTPUT: +{"score": "{{ex.score}}", "explanation":"{{ex.explanation}}"} +{% endfor %} + +For a given answer, valuate the answer based on how the statement applies for the answer: +answer: {{answer}} +statement: {{statement}} +OUTPUT: \ No newline at end of file diff --git a/examples/flex-flows/eval-checklist/requirements.txt b/examples/flex-flows/eval-checklist/requirements.txt new file mode 100644 index 00000000000..55a002e12f8 --- /dev/null +++ b/examples/flex-flows/eval-checklist/requirements.txt @@ -0,0 +1,2 @@ +promptflow-core +promptflow-tools \ No newline at end of file diff --git a/examples/flex-flows/eval-checklist/run.yml b/examples/flex-flows/eval-checklist/run.yml new file mode 100644 index 00000000000..f208b58bfc2 --- /dev/null +++ b/examples/flex-flows/eval-checklist/run.yml @@ -0,0 +1,6 @@ +$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Run.schema.json +flow: . +data: data.jsonl +init: + connection: open_ai_connection + diff --git a/examples/flex-flows/eval-checklist/sample.json b/examples/flex-flows/eval-checklist/sample.json new file mode 100644 index 00000000000..5a62b706a4e --- /dev/null +++ b/examples/flex-flows/eval-checklist/sample.json @@ -0,0 +1,4 @@ +{ + "answer": "ChatGPT is a conversational AI model developed by OpenAI. It is based on the GPT-3 architecture and is designed to generate human-like responses to text inputs. ChatGPT is capable of understanding and responding to a wide range of topics and can be used for tasks such as answering questions, generating creative content, and providing assistance with various tasks. The model has been trained on a diverse range of internet text and is constantly being updated to improve its performance and capabilities. ChatGPT is available through the OpenAI API and can be accessed by developers and researchers to build applications and tools that leverage its capabilities.", + "statements": { "correctness": "It contains a detailed explanation of ChatGPT." } +} \ No newline at end of file diff --git a/examples/flex-flows/eval-code-quality/README.md b/examples/flex-flows/eval-code-quality/README.md new file mode 100644 index 00000000000..312d7da87e6 --- /dev/null +++ b/examples/flex-flows/eval-code-quality/README.md @@ -0,0 +1,35 @@ +# Eval Code Quality +A example flow defined using function entry which shows how to evaluate the quality of code snippet. + +## Prerequisites + +Install promptflow sdk and other dependencies: +```bash +pip install -r requirements.txt +``` + +## Run flow + +- Prepare your Azure Open AI resource follow this [instruction](https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/create-resource?pivots=web-portal) and get your `api_key` if you don't have one. + +- Setup environment variables + +Ensure you have put your azure open ai endpoint key in [.env](../.env) file. You can create one refer to this [example file](../.env.example). + +```bash +cat ../.env +``` + +- Run as normal Python file +```bash +python code_quality.py +``` + +- Test flow +```bash +# correct +pf flow test --flow . --inputs code='print(\"Hello, world!\")' + +# incorrect +pf flow test --flow . --inputs code='print("Hello, world!")' +``` \ No newline at end of file diff --git a/examples/flex-flows/eval-code-quality/code_quality.py b/examples/flex-flows/eval-code-quality/code_quality.py new file mode 100644 index 00000000000..fa997c40c10 --- /dev/null +++ b/examples/flex-flows/eval-code-quality/code_quality.py @@ -0,0 +1,72 @@ +import json +import os +from dataclasses import dataclass +from pathlib import Path + +from dotenv import load_dotenv +from jinja2 import Template + +from promptflow.tracing import trace +from promptflow.connections import AzureOpenAIConnection +from promptflow.tools.aoai import AzureOpenAI + +BASE_DIR = Path(__file__).absolute().parent + + +@trace +def load_prompt(jinja2_template: str, code: str, examples: list) -> str: + """Load prompt function.""" + with open(BASE_DIR / jinja2_template, "r", encoding="utf-8") as f: + tmpl = Template(f.read(), trim_blocks=True, keep_trailing_newline=True) + prompt = tmpl.render(code=code, examples=examples) + return prompt + + +@dataclass +class Result: + correctness: float + readability: float + explanation: str + + +@trace +def eval_code(code: str) -> Result: + """Evaluate the code based on correctness, readability.""" + examples = [ + { + "code": 'print("Hello, world!")', + "correctness": 5, + "readability": 5, + "explanation": "The code is correct as it is a simple question and answer format. " + "The readability is also good as the code is short and easy to understand.", + } + ] + + prompt = load_prompt("prompt.md", code, examples) + + if "AZURE_OPENAI_API_KEY" not in os.environ: + # load environment variables from .env file + load_dotenv() + + if "AZURE_OPENAI_API_KEY" not in os.environ: + raise Exception("Please specify environment variables: AZURE_OPENAI_API_KEY") + + connection = AzureOpenAIConnection.from_env() + + output = AzureOpenAI(connection).chat( + prompt=prompt, + deployment_name="gpt-35-turbo", + max_tokens=256, + temperature=0.7, + ) + output = Result(**json.loads(output)) + return output + + +if __name__ == "__main__": + from promptflow.tracing import start_trace + + start_trace() + + result = eval_code('print("Hello, world!")') + print(result) diff --git a/examples/flex-flows/eval-code-quality/flow.flex.yaml b/examples/flex-flows/eval-code-quality/flow.flex.yaml new file mode 100644 index 00000000000..399c837ce79 --- /dev/null +++ b/examples/flex-flows/eval-code-quality/flow.flex.yaml @@ -0,0 +1,6 @@ +$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Flow.schema.json +# flow is defined as python function +entry: code_quality:eval_code +environment: + # image: mcr.microsoft.com/azureml/promptflow/promptflow-python + python_requirements_txt: requirements.txt diff --git a/examples/flex-flows/eval-code-quality/prompt.md b/examples/flex-flows/eval-code-quality/prompt.md new file mode 100644 index 00000000000..a1bd195b488 --- /dev/null +++ b/examples/flex-flows/eval-code-quality/prompt.md @@ -0,0 +1,20 @@ + +# system: +You are an AI assistant. +You task is to evaluate the code based on correctness, readability. + + +# user: +This correctness value should always be an integer between 1 and 5. So the correctness produced should be 1 or 2 or 3 or 4 or 5. +This readability value should always be an integer between 1 and 5. So the readability produced should be 1 or 2 or 3 or 4 or 5. + +Here are a few examples: +{% for ex in examples %} +Code: {{ex.code}} +OUTPUT: +{"correctness": "{{ex.correctness}}", "readability": "{{ex.readability}}", "explanation":"{{ex.explanation}}"} +{% endfor %} + +For a given code, valuate the code based on correctness, readability: +Code: {{code}} +OUTPUT: \ No newline at end of file diff --git a/examples/flex-flows/eval-code-quality/requirements.txt b/examples/flex-flows/eval-code-quality/requirements.txt new file mode 100644 index 00000000000..55a002e12f8 --- /dev/null +++ b/examples/flex-flows/eval-code-quality/requirements.txt @@ -0,0 +1,2 @@ +promptflow-core +promptflow-tools \ No newline at end of file diff --git a/examples/flows/standard/basic/hello.py b/examples/flows/standard/basic/hello.py index 74d95785d0a..dbb5e7f5eb9 100644 --- a/examples/flows/standard/basic/hello.py +++ b/examples/flows/standard/basic/hello.py @@ -27,7 +27,7 @@ def get_client(): else: from openai import AzureOpenAI as Client conn.update( - azure_endpoint=os.environ["AZURE_OPENAI_API_BASE"], + azure_endpoint=os.environ.get("AZURE_OPENAI_API_BASE", "azure"), api_version=os.environ.get("OPENAI_API_VERSION", "2023-07-01-preview"), ) return Client(**conn) @@ -53,7 +53,7 @@ def my_python_tool( user: str = "", **kwargs, ) -> str: - if "AZURE_OPENAI_API_KEY" not in os.environ: + if "AZURE_OPENAI_API_KEY" not in os.environ or "AZURE_OPENAI_API_BASE" not in os.environ: # load environment variables from .env file load_dotenv() diff --git a/examples/flows/standard/customer-intent-extraction/README.md b/examples/flows/standard/customer-intent-extraction/README.md index 933a9030d0f..99c5589972d 100644 --- a/examples/flows/standard/customer-intent-extraction/README.md +++ b/examples/flows/standard/customer-intent-extraction/README.md @@ -37,7 +37,7 @@ pf connection create -f .env --name custom_connection 3. test flow with single line input ```bash -pf flow test --flow . --input ./data/denormalized-flat.jsonl +pf flow test --flow . --inputs ./data/sample.json ``` 4. run with multiple lines input diff --git a/examples/flows/standard/customer-intent-extraction/data/sample.json b/examples/flows/standard/customer-intent-extraction/data/sample.json new file mode 100644 index 00000000000..e96d6fffdf1 --- /dev/null +++ b/examples/flows/standard/customer-intent-extraction/data/sample.json @@ -0,0 +1,13 @@ +{ + "customer_info": "## Customer_Info\n\nFirst Name: Sarah \nLast Name: Lee \nAge: 38 \nEmail Address: sarahlee@example.com \nPhone Number: 555-867-5309 \nShipping Address: 321 Maple St, Bigtown USA, 90123 \nMembership: Platinum \n\n## Recent_Purchases\n\norder_number: 2 \ndate: 2023-02-10 \nitem:\n- description: TrailMaster X4 Tent, quantity 1, price $250 \n\u00a0 item_number: 1 \n\norder_number: 26 \ndate: 2023-02-05 \nitem:\n- description: CozyNights Sleeping Bag, quantity 1, price $100 \n\u00a0 item_number: 7 \n\norder_number: 35 \ndate: 2023-02-20 \nitem:\n- description: TrailBlaze Hiking Pants, quantity 1, price $75 \n\u00a0 item_number: 10 \n\norder_number: 42 \ndate: 2023-04-06 \nitem:\n- description: TrekMaster Camping Chair, quantity 2, price $100 \n\u00a0 item_number: 12 \n\norder_number: 51 \ndate: 2023-04-21 \nitem:\n- description: SkyView 2-Person Tent, quantity 1, price $200 \n\u00a0 item_number: 15 \n\norder_number: 56 \ndate: 2023-03-26 \nitem:\n- description: RainGuard Hiking Jacket, quantity 1, price $110 \n\u00a0 item_number: 17 \n\norder_number: 65 \ndate: 2023-04-11 \nitem:\n- description: CompactCook Camping Stove, quantity 1, price $60 \n\u00a0 item_number: 20 \n\n", + "history": [ + { + "role": "customer", + "content": "I recently bought the TrailMaster X4 Tent, and it leaked during a light rain. This is unacceptable! I expected a reliable and waterproof tent, but it failed to deliver. I'm extremely disappointed in the quality." + } + ], + "item_number": 1, + "order_number": 2, + "description": "TrailMaster X4 Tent, quantity 1, price $250", + "intent": "product return" +} diff --git a/examples/flows/standard/customer-intent-extraction/intent.py b/examples/flows/standard/customer-intent-extraction/intent.py index 51c95aeeafe..53141949dbc 100644 --- a/examples/flows/standard/customer-intent-extraction/intent.py +++ b/examples/flows/standard/customer-intent-extraction/intent.py @@ -7,7 +7,10 @@ def extract_intent(chat_prompt: str): - if "AZURE_OPENAI_API_KEY" not in os.environ: + if ( + "AZURE_OPENAI_API_KEY" not in os.environ + or "AZURE_OPENAI_API_BASE" not in os.environ + ): # load environment variables from .env file try: from dotenv import load_dotenv @@ -18,8 +21,11 @@ def extract_intent(chat_prompt: str): load_dotenv() + # AZURE_OPENAI_ENDPOINT conflict with AZURE_OPENAI_API_BASE when use with langchain + if "AZURE_OPENAI_ENDPOINT" in os.environ: + os.environ.pop("AZURE_OPENAI_ENDPOINT") chat = AzureChatOpenAI( - deployment_name=os.environ["CHAT_DEPLOYMENT_NAME"], + deployment_name=os.environ.get("CHAT_DEPLOYMENT_NAME", "gpt-35-turbo"), openai_api_key=os.environ["AZURE_OPENAI_API_KEY"], openai_api_base=os.environ["AZURE_OPENAI_API_BASE"], openai_api_type="azure", @@ -38,11 +44,11 @@ def generate_prompt(customer_info: str, history: list, user_prompt_template: str prompt_template = PromptTemplate.from_template(user_prompt_template) chat_prompt_template = ChatPromptTemplate.from_messages( - [ - HumanMessagePromptTemplate(prompt=prompt_template) - ] + [HumanMessagePromptTemplate(prompt=prompt_template)] ) - return chat_prompt_template.format_prompt(customer_info=customer_info, chat_history=chat_history_text).to_string() + return chat_prompt_template.format_prompt( + customer_info=customer_info, chat_history=chat_history_text + ).to_string() if __name__ == "__main__": @@ -60,7 +66,9 @@ def generate_prompt(customer_info: str, history: list, user_prompt_template: str # each test for item in data: - chat_prompt = generate_prompt(item["customer_info"], item["history"], user_prompt_template) + chat_prompt = generate_prompt( + item["customer_info"], item["history"], user_prompt_template + ) reply = extract_intent(chat_prompt) print("=====================================") # print("Customer info: ", item["customer_info"]) diff --git a/examples/flows/standard/customer-intent-extraction/requirements.txt b/examples/flows/standard/customer-intent-extraction/requirements.txt index 87e94a1fc7a..d4a422e5a47 100644 --- a/examples/flows/standard/customer-intent-extraction/requirements.txt +++ b/examples/flows/standard/customer-intent-extraction/requirements.txt @@ -1,5 +1,5 @@ promptflow promptflow-tools python-dotenv -langchain +langchain<0.2.0 jinja2 \ No newline at end of file diff --git a/examples/prompty/.env.example b/examples/prompty/.env.example new file mode 100644 index 00000000000..4083fa3c5ad --- /dev/null +++ b/examples/prompty/.env.example @@ -0,0 +1,2 @@ +AZURE_OPENAI_API_KEY= +AZURE_OPENAI_ENDPOINT= diff --git a/examples/prompty/README.md b/examples/prompty/README.md new file mode 100644 index 00000000000..35fd3cc4580 --- /dev/null +++ b/examples/prompty/README.md @@ -0,0 +1,19 @@ +# Prompty + +You can learn more on Prompty with examples in this folder. + +## SDK examples + +| path | status | description | +------|--------|------------- +| [prompty-quickstart.ipynb](./basic/prompty-quickstart.ipynb) | [![samples_prompty_basic_promptyquickstart](https://github.com/microsoft/promptflow/actions/workflows/samples_prompty_basic_promptyquickstart.yml/badge.svg?branch=main)](https://github.com/microsoft/promptflow/actions/workflows/samples_prompty_basic_promptyquickstart.yml) | A quickstart tutorial to run a prompty and evaluate it. | +| [chat-with-prompty.ipynb](./chat-basic/chat-with-prompty.ipynb) | [![samples_prompty_chatbasic_chatwithprompty](https://github.com/microsoft/promptflow/actions/workflows/samples_prompty_chatbasic_chatwithprompty.yml/badge.svg?branch=main)](https://github.com/microsoft/promptflow/actions/workflows/samples_prompty_chatbasic_chatwithprompty.yml) | A quickstart tutorial to run a chat prompty and evaluate it. | + +## CLI examples +| path | status | description | +------|--------|------------- +| [basic](./basic/README.md) | [![samples_prompty_basic](https://github.com/microsoft/promptflow/actions/workflows/samples_prompty_basic.yml/badge.svg?branch=main)](https://github.com/microsoft/promptflow/actions/workflows/samples_prompty_basic.yml) | A basic prompt that uses the chat API to answer questions, with connection configured using environment variables | +| [chat-basic](./chat-basic/README.md) | [![samples_prompty_chat_basic](https://github.com/microsoft/promptflow/actions/workflows/samples_prompty_chat_basic.yml/badge.svg?branch=main)](https://github.com/microsoft/promptflow/actions/workflows/samples_prompty_chat_basic.yml) | A prompt that uses the chat API to answer questions with chat history, leveraging promptflow connection | +| [eval-apology](./eval-apology/README.md) | [![samples_prompty_eval_apology](https://github.com/microsoft/promptflow/actions/workflows/samples_prompty_eval_apology.yml/badge.svg?branch=main)](https://github.com/microsoft/promptflow/actions/workflows/samples_prompty_eval_apology.yml) | A prompt that determines whether a chat conversation contains an apology from the assistant | +| [eval-basic](./eval-basic/README.md) | [![samples_prompty_eval_basic](https://github.com/microsoft/promptflow/actions/workflows/samples_prompty_eval_basic.yml/badge.svg?branch=main)](https://github.com/microsoft/promptflow/actions/workflows/samples_prompty_eval_basic.yml) | A prompt that determines whether a answer is correct | + diff --git a/examples/prompty/basic/README.md b/examples/prompty/basic/README.md new file mode 100644 index 00000000000..c1316c4f53e --- /dev/null +++ b/examples/prompty/basic/README.md @@ -0,0 +1,96 @@ +# Basic prompty +A basic prompt that uses the chat API to answer questions, with connection configured using environment variables. + +## Prerequisites + +Install `promptflow-devkit`: +```bash +pip install promptflow-devkit +``` + +## Run prompty + +- Prepare your Azure Open AI resource follow this [instruction](https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/create-resource?pivots=web-portal) and get your `api_key` if you don't have one. +- Note: you need the new [gpt-35-turbo (0125) version](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#gpt-35-models) to use the json_object response_format feature. +- Setup environment variables + +Ensure you have put your azure open ai endpoint key in [.env](../.env) file. You can create one refer to this [example file](../.env.example). + +```bash +cat ../.env +# export .env as environment variable +export $(grep -v '^#' ../.env | xargs) +``` + +- Test prompty +```bash +# test with default sample data (TODO) +# pf flow test --flow basic.prompty + +# test with flow inputs +pf flow test --flow basic.prompty --inputs first_name="John" last_name="Doe" question="What is the meaning of life?" + +# test with another sample data +pf flow test --flow basic.prompty --inputs sample.json +``` + +- Create run with multiple lines data +```bash +# using environment from .env file +pf run create --flow basic.prompty --data ./data.jsonl --column-mapping question='${data.question}' --stream +``` + +You can also skip providing `column-mapping` if provided data has same column name as the flow. +Reference [here](https://aka.ms/pf/column-mapping) for default behavior when `column-mapping` not provided in CLI. + +- List and show run meta +```bash +# list created run +pf run list + +# get a sample run name + +name=$(pf run list -r 10 | jq '.[] | select(.name | contains("basic_")) | .name'| head -n 1 | tr -d '"') +# show specific run detail +pf run show --name $name + +# show output +pf run show-details --name $name + +# visualize run in browser (TODO) +# pf run visualize --name $name +``` + +## Run prompty with connection + +Storing connection info in .env with plaintext is not safe. We recommend to use `pf connection` to guard secrets like `api_key` from leak. + +- Show or create `open_ai_connection` +```bash +# create connection from `azure_openai.yml` file +# Override keys with --set to avoid yaml file changes +pf connection create --file ../../connections/azure_openai.yml --set api_key= api_base= + +# check if connection exists +pf connection show -n open_ai_connection +``` + +- Test using connection secret specified in environment variables +**Note**: we used `'` to wrap value since it supports raw value without escape in powershell & bash. For windows command prompt, you may remove the `'` to avoid it become part of the value. + +```bash +# test with default input value in flow.flex.yaml +pf flow test --flow basic.prompty --inputs sample.json --environment-variables AZURE_OPENAI_API_KEY='${open_ai_connection.api_key}' AZURE_OPENAI_ENDPOINT='${open_ai_connection.api_base}' +``` + +- Create run using connection secret binding specified in environment variables, see [run.yml](run.yml) +```bash +# create run +pf run create --flow basic.prompty --data ./data.jsonl --stream --environment-variables AZURE_OPENAI_API_KEY='${open_ai_connection.api_key}' AZURE_OPENAI_ENDPOINT='${open_ai_connection.api_base}' --column-mapping question='${data.question}' +# create run using yaml file +pf run create --file run.yml --stream + +# show outputs +name=$(pf run list -r 10 | jq '.[] | select(.name | contains("basic_")) | .name'| head -n 1 | tr -d '"') +pf run show-details --name $name +``` diff --git a/examples/prompty/basic/basic.prompty b/examples/prompty/basic/basic.prompty new file mode 100644 index 00000000000..f30e21f11b3 --- /dev/null +++ b/examples/prompty/basic/basic.prompty @@ -0,0 +1,34 @@ +--- +name: Basic Prompt +description: A basic prompt that uses the chat API to answer questions +model: + api: chat + configuration: + type: azure_openai + azure_deployment: gpt-35-turbo-0125 + api_key: ${env:AZURE_OPENAI_API_KEY} + azure_endpoint: ${env:AZURE_OPENAI_ENDPOINT} + parameters: + max_tokens: 128 + temperature: 0.2 + response_format: + type: json_object +inputs: + first_name: + type: string + last_name: + type: string + question: + type: string +sample: sample.json +--- +system: +You are an AI assistant who helps people find information. +As the assistant, you answer questions briefly, succinctly. Your structured response. Only accepts JSON format, likes below: +{"name": customer_name, "answer": the answer content} + +You are helping {{first_name}} {{last_name}} to find answers to their questions. +Use their name to address them in your responses. + +user: +{{question}} \ No newline at end of file diff --git a/examples/prompty/basic/data.jsonl b/examples/prompty/basic/data.jsonl new file mode 100644 index 00000000000..963441d5c87 --- /dev/null +++ b/examples/prompty/basic/data.jsonl @@ -0,0 +1,3 @@ +{"first_name": "John", "last_name": "Doe", "question": "What is capital of France?", "ground_truth": "Paris"} +{"first_name": "John", "last_name": "Doe", "question": "What is the meaning of life?", "ground_truth": "The meaning of life is subjective and can vary greatly depending on one's personal beliefs. Some people may find meaning through personal growth, love, or contribution to others, while others may find it through religious or spiritual beliefs. Ultimately, the meaning of life is a deeply personal and subjective concept."} +{"first_name": "John", "last_name": "Doe", "question": "What are the planets in Sun system?", "ground_truth":"The planets in the Solar System are Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, and Neptune."} \ No newline at end of file diff --git a/examples/prompty/basic/prompty-quickstart.ipynb b/examples/prompty/basic/prompty-quickstart.ipynb new file mode 100644 index 00000000000..df3e163369c --- /dev/null +++ b/examples/prompty/basic/prompty-quickstart.ipynb @@ -0,0 +1,299 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Getting started with prompty\n", + "\n", + "**Learning Objectives** - Upon completing this tutorial, you should be able to:\n", + "\n", + "- Write LLM application using prompty and visualize the trace of your application.\n", + "- batch run prompty against multi lines of data.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 0. Install dependent packages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture --no-stderr\n", + "%pip install promptflow-core" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Execute a Prompty\n", + "\n", + "Prompty is a file with .prompty extension for developing prompt template. \n", + "The prompty asset is a markdown file with a modified front matter. \n", + "The front matter is in yaml format that contains a number of metadata fields which defines model configuration and expected inputs of the prompty." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"basic.prompty\") as fin:\n", + " print(fin.read())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note: before running below cell, please configure required environment variable `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT` by create an `.env` file. Please refer to [.env.example](../.env.example) as an template.\n", + "\n", + "Note: you need the new [gpt-35-turbo (0125) version](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#gpt-35-models) to use the json_object response_format feature." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "from dotenv import load_dotenv\n", + "\n", + "if \"AZURE_OPENAI_API_KEY\" not in os.environ:\n", + " # load environment variables from .env file\n", + " load_dotenv()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from promptflow.core import Flow\n", + "\n", + "# load prompty as a flow\n", + "f = Flow.load(\"basic.prompty\")\n", + "# execute the flow as function\n", + "result = f(first_name=\"John\", last_name=\"Doe\", question=\"What is the capital of France?\")\n", + "result" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Visualize trace by using start_trace" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from promptflow.tracing import start_trace\n", + "\n", + "# start a trace session, and print a url for user to check trace\n", + "start_trace()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Re-run below cell will collect a trace in trace UI." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# rerun the function, which will be recorded in the trace\n", + "question = \"What is the capital of Japan?\"\n", + "ground_truth = \"Tokyo\"\n", + "result = f(first_name=\"John\", last_name=\"Doe\", question=question)\n", + "result" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Eval the result " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# load prompty as a flow\n", + "eval_flow = Flow.load(\"../eval-basic/eval.prompty\")\n", + "# execute the flow as function\n", + "result = eval_flow(\n", + " question=question, ground_truth=ground_truth, answer=result[\"answer\"]\n", + ")\n", + "result" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Batch run with multi-line data\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture --no-stderr\n", + "# batch run requires promptflow-devkit package\n", + "%pip install promptflow-devkit" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from promptflow.client import PFClient\n", + "\n", + "pf = PFClient()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "flow = \"./basic.prompty\" # path to the prompty file\n", + "data = \"./data.jsonl\" # path to the data file\n", + "\n", + "# create run with the flow and data\n", + "base_run = pf.run(\n", + " flow=flow,\n", + " data=data,\n", + " stream=True,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "details = pf.get_details(base_run)\n", + "details.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Evaluate your flow\n", + "Then you can use an evaluation method to evaluate your flow. The evaluation methods are also flows which usually using LLM assert the produced output matches certain expectation. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run evaluation on the previous batch run\n", + "The **base_run** is the batch run we completed in step 2 above, for web-classification flow with \"data.jsonl\" as input." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "eval_prompty = \"../eval-basic/eval.prompty\"\n", + "\n", + "eval_run = pf.run(\n", + " flow=eval_prompty,\n", + " data=\"./data.jsonl\", # path to the data file\n", + " run=base_run, # specify base_run as the run you want to evaluate\n", + " column_mapping={\n", + " \"answer\": \"${run.outputs.answer}\",\n", + " },\n", + " stream=True,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "details = pf.get_details(eval_run)\n", + "details.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# TODO: fix the visualization\n", + "# pf.visualize([base_run, eval_run])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Next Steps\n", + "\n", + "By now you've successfully run your first prompt flow and even did evaluation on it. That's great!\n", + "\n", + "You can check out more examples:\n", + "- [Basic Chat](../chat-basic/README.md): demonstrates how to create a chatbot that can remember previous interactions and use the conversation history to generate next message." + ] + } + ], + "metadata": { + "description": "A quickstart tutorial to run a prompty and evaluate it.", + "kernelspec": { + "display_name": "prompt_flow", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + }, + "resources": "examples/requirements.txt, examples/prompty/basic, examples/prompty/eval-basic" + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/prompty/basic/run.yml b/examples/prompty/basic/run.yml new file mode 100644 index 00000000000..f0214327ef2 --- /dev/null +++ b/examples/prompty/basic/run.yml @@ -0,0 +1,10 @@ +$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Run.schema.json +flow: basic.prompty +data: data.jsonl +environment_variables: + # environment variables from connection + AZURE_OPENAI_API_KEY: ${open_ai_connection.api_key} + AZURE_OPENAI_ENDPOINT: ${open_ai_connection.api_base} + AZURE_OPENAI_API_TYPE: azure +column_mapping: + question: ${data.question} diff --git a/examples/prompty/basic/sample.json b/examples/prompty/basic/sample.json new file mode 100644 index 00000000000..9a6aa9cd9f5 --- /dev/null +++ b/examples/prompty/basic/sample.json @@ -0,0 +1,5 @@ +{ + "first_name": "John", + "last_name": "Doe", + "question": "Who is the most famous person in the world?" +} diff --git a/examples/prompty/chat-basic/README.md b/examples/prompty/chat-basic/README.md new file mode 100644 index 00000000000..54b2440fcd8 --- /dev/null +++ b/examples/prompty/chat-basic/README.md @@ -0,0 +1,99 @@ +# Basic chat +A prompt that uses the chat API to answer questions with chat history, leveraging promptflow connection. + + +## Prerequisites + +Install `promptflow-devkit`: +```bash +pip install promptflow-devkit +``` + +## What you will learn + +In this flow, you will learn +- how to compose a chat flow. +- prompt template format of chat api. Message delimiter is a separate line containing role name and colon: "system:", "user:", "assistant:". +See OpenAI Chat for more about message role. + ```jinja + system: + You are a chatbot having a conversation with a human. + + user: + {{question}} + ``` +- how to consume chat history in prompt. + ```jinja + {% for item in chat_history %} + {{item.role}}: + {{item.content}} + {% endfor %} + ``` + +## Getting started + +### Create connection for prompty to use +Go to "Prompt flow" "Connections" tab. Click on "Create" button, select one of LLM tool supported connection types and fill in the configurations. + +Currently, there are two connection types supported by LLM tool: "AzureOpenAI" and "OpenAI". If you want to use "AzureOpenAI" connection type, you need to create an Azure OpenAI service first. Please refer to [Azure OpenAI Service](https://azure.microsoft.com/en-us/products/cognitive-services/openai-service/) for more details. If you want to use "OpenAI" connection type, you need to create an OpenAI account first. Please refer to [OpenAI](https://platform.openai.com/) for more details. + +- Note: you need the new [gpt-35-turbo (0125) version](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#gpt-35-models) to use the json_object response_format feature. + + +```bash +# Override keys with --set to avoid yaml file changes +pf connection create --file ../../connections/azure_openai.yml --set api_key= api_base= +``` + +Note in [chat.prompty](chat.prompty) we are using connection named `open_ai_connection`. +```bash +# show registered connection +pf connection show --name open_ai_connection +``` + +## Run prompty + +- Test flow: single turn +```bash +# run chat flow with default question in flow.flex.yaml TODO +# pf flow test --flow chat.prompty + +# run chat flow with new question +pf flow test --flow chat.prompty --inputs question="What's Azure Machine Learning?" + +# run chat flow with sample.json +pf flow test --flow chat.prompty --inputs sample.json +``` + +- Test flow: multi turn +```powershell +# start test in interactive terminal (TODO) +pf flow test --flow chat.prompty --interactive + +# start test in chat ui (TODO) +pf flow test --flow chat.prompty --ui +``` + +- Create run with multiple lines data +```bash +# using environment from .env file (loaded in user code: hello.py) +pf run create --flow chat.prompty --data ./data.jsonl --column-mapping question='${data.question}' --stream +``` + +You can also skip providing `column-mapping` if provided data has same column name as the flow. +Reference [here](https://aka.ms/pf/column-mapping) for default behavior when `column-mapping` not provided in CLI. + +- List and show run meta +```bash +# list created run +pf run list + +# get a sample run name + +name=$(pf run list -r 10 | jq '.[] | select(.name | contains("chat_basic_")) | .name'| head -n 1 | tr -d '"') +# show specific run detail +pf run show --name $name + +# show output +pf run show-details --name $name +``` \ No newline at end of file diff --git a/examples/prompty/chat-basic/chat-with-prompty.ipynb b/examples/prompty/chat-basic/chat-with-prompty.ipynb new file mode 100644 index 00000000000..40fd9e4e498 --- /dev/null +++ b/examples/prompty/chat-basic/chat-with-prompty.ipynb @@ -0,0 +1,315 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chat with prompty\n", + "\n", + "**Learning Objectives** - Upon completing this tutorial, you should be able to:\n", + "\n", + "- Write LLM application using prompty and visualize the trace of your application.\n", + "- Understand how to handle chat conversation using prompty\n", + "- batch run prompty against multi lines of data.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 0. Install dependent packages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture --no-stderr\n", + "%pip install promptflow-devkit" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Prompty\n", + "\n", + "Prompty is a file with .prompty extension for developing prompt template. \n", + "The prompty asset is a markdown file with a modified front matter. \n", + "The front matter is in yaml format that contains a number of metadata fields which defines model configuration and expected inputs of the prompty." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "with open(\"chat.prompty\") as fin:\n", + " print(fin.read())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create necessary connections\n", + "Connection helps securely store and manage secret keys or other sensitive credentials required for interacting with LLM and other external tools for example Azure Content Safety.\n", + "\n", + "Above prompty uses connection `open_ai_connection` inside, we need to set up the connection if we haven't added it before. After created, it's stored in local db and can be used in any flow.\n", + "\n", + "Prepare your Azure Open AI resource follow this [instruction](https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/create-resource?pivots=web-portal) and get your `api_key` if you don't have one.\n", + "\n", + "Note: you need the new [gpt-35-turbo (0125) version](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#gpt-35-models) to use the json_object response_format feature." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from promptflow.client import PFClient\n", + "from promptflow.connections import AzureOpenAIConnection, OpenAIConnection\n", + "\n", + "# client can help manage your runs and connections.\n", + "pf = PFClient()\n", + "try:\n", + " conn_name = \"open_ai_connection\"\n", + " conn = pf.connections.get(name=conn_name)\n", + " print(\"using existing connection\")\n", + "except:\n", + " # Follow https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/create-resource?pivots=web-portal to create an Azure Open AI resource.\n", + " connection = AzureOpenAIConnection(\n", + " name=conn_name,\n", + " api_key=\"\",\n", + " api_base=\"\",\n", + " api_type=\"azure\",\n", + " )\n", + "\n", + " # use this if you have an existing OpenAI account\n", + " # connection = OpenAIConnection(\n", + " # name=conn_name,\n", + " # api_key=\"\",\n", + " # )\n", + "\n", + " conn = pf.connections.create_or_update(connection)\n", + " print(\"successfully created connection\")\n", + "\n", + "print(conn)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Execute prompty as function" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from promptflow.core import Flow\n", + "\n", + "# load prompty as a flow\n", + "f = Flow.load(\"chat.prompty\")\n", + "# execute the flow as function\n", + "question = \"What is the capital of France?\"\n", + "result = f(first_name=\"John\", last_name=\"Doe\", question=question)\n", + "result" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Visualize trace by using start_trace" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from promptflow.tracing import start_trace\n", + "\n", + "# start a trace session, and print a url for user to check trace\n", + "start_trace()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Re-run below cell will collect a trace in trace UI." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# rerun the function, which will be recorded in the trace\n", + "result = f(first_name=\"John\", last_name=\"Doe\", question=question)\n", + "result" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Eval the result \n", + "\n", + "In this example, we will use a prompt that determines whether a chat conversation contains an apology from the assistant." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "eval_prompty = \"../eval-apology/apology.prompty\"\n", + "\n", + "with open(eval_prompty) as fin:\n", + " print(fin.read())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# load prompty as a flow\n", + "eval_flow = Flow.load(eval_prompty)\n", + "# execute the flow as function\n", + "result = eval_flow(question=question, answer=result[\"answer\"], messages=[])\n", + "result" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Batch run with multi-line data\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from promptflow.client import PFClient\n", + "\n", + "flow = \"chat.prompty\" # path to the prompty file\n", + "data = \"./data.jsonl\" # path to the data file\n", + "\n", + "# create run with the flow and data\n", + "pf = PFClient()\n", + "base_run = pf.run(\n", + " flow=flow,\n", + " data=data,\n", + " stream=True,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "details = pf.get_details(base_run)\n", + "details.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Evaluate your prompty\n", + "Then you can use an evaluation prompty to evaluate your prompty." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run evaluation on the previous batch run\n", + "The **base_run** is the batch run we completed in step 2 above, for web-classification flow with \"data.jsonl\" as input." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "eval_run = pf.run(\n", + " flow=eval_prompty,\n", + " data=\"./data.jsonl\", # path to the data file\n", + " run=base_run, # specify base_run as the run you want to evaluate\n", + " column_mapping={\n", + " \"messages\": \"${data.chat_history}\",\n", + " \"question\": \"${data.question}\",\n", + " \"answer\": \"${run.outputs.answer}\",\n", + " },\n", + " stream=True,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "details = pf.get_details(eval_run)\n", + "details.head(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Next Steps\n", + "\n", + "By now you've successfully run your first prompt flow and even did evaluation on it. That's great!\n", + "\n", + "You can check out more [Prompty Examples](../README.md)." + ] + } + ], + "metadata": { + "description": "A quickstart tutorial to run a chat prompty and evaluate it.", + "kernelspec": { + "display_name": "prompt_flow", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + }, + "resources": "examples/requirements.txt, examples/prompty/chat-basic, examples/prompty/eval-apology" + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/prompty/chat-basic/chat.prompty b/examples/prompty/chat-basic/chat.prompty new file mode 100644 index 00000000000..4ae7aaff078 --- /dev/null +++ b/examples/prompty/chat-basic/chat.prompty @@ -0,0 +1,53 @@ +--- +name: Chat Prompt +description: A basic prompt that uses the chat API to answer questions with chat_history +model: + api: chat + configuration: + type: azure_openai + connection: open_ai_connection + azure_deployment: gpt-35-turbo-0125 + parameters: + max_tokens: 256 + temperature: 0.2 + response_format: + type: json_object +inputs: + first_name: + type: string + default: "Jane" + last_name: + type: string + default: "Doe" + question: + type: string + chat_history: + type: list + default: [] +outputs: + answer: + type: string + +sample: + first_name: Jane + last_name: Doe + question: What is the meaning of life? + chat_history: [] + +--- +system: +You are an AI assistant who helps people find information. +As the assistant, you answer questions briefly, succinctly, +and in a personable manner using markdown and even add some personal flair with appropriate emojis. +Only accepts JSON format, likes below: {"answer": the answer content} + +You are helping {{first_name}} {{last_name}} to find answers to their questions. +Use their name to address them in your responses. + +{% for item in chat_history %} +{{item.role}}: +{{item.content}} +{% endfor %} + +user: +{{question}} \ No newline at end of file diff --git a/examples/prompty/chat-basic/data.jsonl b/examples/prompty/chat-basic/data.jsonl new file mode 100644 index 00000000000..2578f7e65ea --- /dev/null +++ b/examples/prompty/chat-basic/data.jsonl @@ -0,0 +1,3 @@ +{"first_name": "John", "last_name": "Doe", "question": "What's chat-GPT?", "chat_history": []} +{"first_name": "John", "last_name": "Doe", "question": "How many questions did John Doe ask?", "chat_history": []} +{"first_name": "John", "last_name": "Doe", "question": "How many questions did John Doe ask?", "chat_history": [{"role": "user","content": "where is the nearest coffee shop?"},{"role": "system","content": "I'm sorry, I don't know that. Would you like me to look it up for you?"}]} \ No newline at end of file diff --git a/examples/prompty/chat-basic/sample.json b/examples/prompty/chat-basic/sample.json new file mode 100644 index 00000000000..beae3ebfbc7 --- /dev/null +++ b/examples/prompty/chat-basic/sample.json @@ -0,0 +1,23 @@ +{ + "first_name": "Jane", + "last_name": "Doe", + "question": "How many questions did the user ask?", + "chat_history": [ + { + "role": "user", + "content": "where is the nearest coffee shop?" + }, + { + "role": "assistant", + "content": "I'm sorry, I don't know that. Would you like me to look it up for you?" + }, + { + "role": "user", + "content": "what's the capital of France?" + }, + { + "role": "assistant", + "content": "Paris" + } + ] +} diff --git a/examples/prompty/eval-apology/README.md b/examples/prompty/eval-apology/README.md new file mode 100644 index 00000000000..f367e070d51 --- /dev/null +++ b/examples/prompty/eval-apology/README.md @@ -0,0 +1,45 @@ +# Apology +A prompt that determines whether a chat conversation contains an apology from the assistant. + +## Prerequisites + +Install `promptflow-devkit`: +```bash +pip install promptflow-devkit +``` + +### Create connection for prompty to use +Go to "Prompt flow" "Connections" tab. Click on "Create" button, select one of LLM tool supported connection types and fill in the configurations. + +Currently, there are two connection types supported by LLM tool: "AzureOpenAI" and "OpenAI". If you want to use "AzureOpenAI" connection type, you need to create an Azure OpenAI service first. Please refer to [Azure OpenAI Service](https://azure.microsoft.com/en-us/products/cognitive-services/openai-service/) for more details. If you want to use "OpenAI" connection type, you need to create an OpenAI account first. Please refer to [OpenAI](https://platform.openai.com/) for more details. + +Note: you need the new [gpt-35-turbo (0125) version](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#gpt-35-models) to use the json_object response_format feature. + +```bash +# Override keys with --set to avoid yaml file changes +pf connection create --file ../../connections/azure_openai.yml --set api_key= api_base= +``` + +Note in [apology.prompty](apology.prompty) we are using connection named `open_ai_connection`. +```bash +# show registered connection +pf connection show --name open_ai_connection +``` + +## Run prompty + +- Prepare your Azure Open AI resource follow this [instruction](https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/create-resource?pivots=web-portal) and get your `api_key` if you don't have one. + +- Setup environment variables + +Ensure you have put your azure open ai endpoint key in [.env](../.env) file. You can create one refer to this [example file](../.env.example). + +```bash +cat ../.env +``` + +- Test flow +```bash +# sample.json contains messages field which contains the chat conversation. +pf flow test --flow apology.prompty --inputs sample.json +``` diff --git a/examples/prompty/eval-apology/apology.prompty b/examples/prompty/eval-apology/apology.prompty new file mode 100644 index 00000000000..9cd6e0a5951 --- /dev/null +++ b/examples/prompty/eval-apology/apology.prompty @@ -0,0 +1,43 @@ +--- +name: Apology Prompt +description: A prompt that determines whether a chat conversation contains an apology from the assistant +model: + api: chat + configuration: + type: azure_openai + connection: open_ai_connection + azure_deployment: gpt-35-turbo-0125 + parameters: + temperature: 0.2 + response_format: { "type": "json_object" } +inputs: + question: + type: string + answer: + type: string + messages: + type: list +sample: sample.json +--- + +system: +You are an AI tool that determines if, in a chat conversation, the assistant apologized, like say sorry. +Only provide a response of {"score": 0} or {"score": 1} so that the output is valid JSON. +Give a score of 1 if apologized in the chat conversation. + +Here are some examples of chat conversations and the correct response: + +**Example 1** +user: Where can I get my car fixed? +assistant: I'm sorry, I don't know that. Would you like me to look it up for you? +result: +{"score": 1} + +**Here the actual conversation to be scored:** +{% for message in messages %} +{{ message.role }}: {{ message.content}} +{% endfor %} +user: {{question}} +assistant: {{answer}} + +**result** \ No newline at end of file diff --git a/examples/prompty/eval-apology/sample.json b/examples/prompty/eval-apology/sample.json new file mode 100644 index 00000000000..90640002c6e --- /dev/null +++ b/examples/prompty/eval-apology/sample.json @@ -0,0 +1,14 @@ +{ + "messages": [ + { + "role": "user", + "content": "where is the nearest coffee shop?" + }, + { + "role": "assistant", + "content": "I'm sorry, I don't know that. Would you like me to look it up for you?" + } + ], + "question": "How many questions did John Doe ask?", + "answer": "1 question." +} \ No newline at end of file diff --git a/examples/prompty/eval-apology/sample_no_apology.json b/examples/prompty/eval-apology/sample_no_apology.json new file mode 100644 index 00000000000..958f05f3b93 --- /dev/null +++ b/examples/prompty/eval-apology/sample_no_apology.json @@ -0,0 +1,5 @@ +{ + "messages": [], + "question": "where is the nearest coffee shop?", + "answer": "It's at the end of the street." +} \ No newline at end of file diff --git a/examples/prompty/eval-basic/README.md b/examples/prompty/eval-basic/README.md new file mode 100644 index 00000000000..9175c98a7c9 --- /dev/null +++ b/examples/prompty/eval-basic/README.md @@ -0,0 +1,28 @@ +# Basic Eval +Basic evaluator prompt for QA scenario + +## Prerequisites + +Install `promptflow-devkit`: +```bash +pip install promptflow-devkit +``` + +## Run prompty + +- Prepare your Azure Open AI resource follow this [instruction](https://learn.microsoft.com/en-us/azure/cognitive-services/openai/how-to/create-resource?pivots=web-portal) and get your `api_key` if you don't have one. +- Note: you need the new [gpt-35-turbo (0125) version](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#gpt-35-models) to use the json_object response_format feature. +- Setup environment variables + +Ensure you have put your azure open ai endpoint key in [.env](../.env) file. You can create one refer to this [example file](../.env.example). + +```bash +cat ../.env +# export .env as environment variable +export $(grep -v '^#' ../.env | xargs) +``` + +- Test flow +```bash +pf flow test --flow eval.prompty --inputs sample.json +``` \ No newline at end of file diff --git a/examples/prompty/eval-basic/eval.prompty b/examples/prompty/eval-basic/eval.prompty new file mode 100644 index 00000000000..c74d2eb0a75 --- /dev/null +++ b/examples/prompty/eval-basic/eval.prompty @@ -0,0 +1,44 @@ +--- +name: basic evaluate +description: basic evaluator for QA scenario +model: + api: chat + configuration: + type: azure_openai + azure_deployment: gpt-35-turbo-0125 + api_key: ${env:AZURE_OPENAI_API_KEY} + azure_endpoint: ${env:AZURE_OPENAI_ENDPOINT} + parameters: + temperature: 0.2 + max_tokens: 200 + top_p: 1.0 + response_format: + type: json_object + +inputs: + question: + type: string + answer: + type: string + ground_truth: + type: string + +--- +system: +You are an AI assistant. +You task is to evaluate a score for the answer based on the ground_truth and original question. +This score value should always be an integer between 1 and 5. So the score produced should be 1 or 2 or 3 or 4 or 5. +The output should be valid JSON. + +**Example** +question: "What is the capital of France?" +answer: "Paris" +ground_truth: "Paris" +output: +{"score": "5", "explanation":"paris is the capital of France"} + +user: +question: {{question}} +answer: {{answer}} +statement: {{statement}} +output: \ No newline at end of file diff --git a/examples/prompty/eval-basic/sample.json b/examples/prompty/eval-basic/sample.json new file mode 100644 index 00000000000..a180bf6acdd --- /dev/null +++ b/examples/prompty/eval-basic/sample.json @@ -0,0 +1,5 @@ +{ + "question": "what's the capital of China?", + "answer": "Shanghai", + "ground_truth": "Beijing" +} \ No newline at end of file diff --git a/examples/requirements.txt b/examples/requirements.txt index 21832de3282..f7ca3edd40c 100644 --- a/examples/requirements.txt +++ b/examples/requirements.txt @@ -1,4 +1,4 @@ -promptflow[azure] +promptflow[azure]==1.9.0 promptflow-tools python-dotenv bs4 diff --git a/examples/tutorials/tracing/.env.example b/examples/tutorials/tracing/.env.example new file mode 100644 index 00000000000..27aef734264 --- /dev/null +++ b/examples/tutorials/tracing/.env.example @@ -0,0 +1,3 @@ +CHAT_DEPLOYMENT_NAME=gpt-35-turbo +AZURE_OPENAI_API_KEY= +AZURE_OPENAI_ENDPOINT= diff --git a/examples/tutorials/tracing/README.md b/examples/tutorials/tracing/README.md new file mode 100644 index 00000000000..b9831a809f5 --- /dev/null +++ b/examples/tutorials/tracing/README.md @@ -0,0 +1,112 @@ +--- +resources: examples/tutorials/tracing/ +--- + +## Tracing + +Prompt flow provides the tracing feature to capture and visualize the internal execution details for all flows. + +For `DAG flow`, user can track and visualize node level inputs/outputs of flow execution, it provides critical insights for developer to understand the internal details of execution. + +For `Flex flow` developers, who might use different frameworks (langchain, semantic kernel, OpenAI, kinds of agents) to create LLM based applications, prompt flow allow user to instrument their code in a [OpenTelemetry](https://opentelemetry.io/) compatible way, and visualize using UI provided by promptflow devkit. + +## Instrumenting user's code +#### **`start_trace()` to enable trace for LLM calls** +Let's start with the simplest example, add single line code to enable trace for LLM calls in your application. +```python +from openai import OpenAI +from promptflow.tracing import start_trace + +# start_trace() will print a url for trace detail visualization +start_trace() + +client = OpenAI() + +completion = client.chat.completions.create( + model="gpt-4", + messages=[ + {"role": "system", "content": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."}, + {"role": "user", "content": "Compose a poem that explains the concept of recursion in programming."} + ] +) + +print(completion.choices[0].message) +``` + +With the trace url, user will see a trace list that corresponding to each LLM calls: +![LLM-trace-list](../../../docs/media/trace/LLM-trace-list.png) + +Click on line record, the LLM detail will be displayed with chat window experience, together with other LLM call params: +![LLM-trace-detail](../../../docs/media/trace/LLM-trace-detail.png) + +More examples of adding trace for [autogen](https://microsoft.github.io/autogen/) and [langchain](https://python.langchain.com/docs/get_started/introduction/): + +1. **[Add trace for Autogen](./autogen-groupchat/)** + +![autogen-trace-detail](../../../docs/media/trace/autogen-trace-detail.png) + +2. **[Add trace for Langchain](./langchain)** + +![langchain-trace-detail](../../../docs/media/trace/langchain-trace-detail.png) + +#### **`@trace` to allow you trace for any function** +More common scenario is the application has complicated code structure, and developer would like to add trace on critical path that they would like to debug and monitor. + +See the **[math_to_code](./math_to_code.py)** example. + +```python +from promptflow.tracing import trace +# trace your function +@trace +def code_gen(client: AzureOpenAI, question: str) -> str: + sys_prompt = ( + "I want you to act as a Math expert specializing in Algebra, Geometry, and Calculus. " + "Given the question, develop python code to model the user's question. " + "Make sure only reply the executable code, no other words." + ) + completion = client.chat.completions.create( + model=os.getenv("CHAT_DEPLOYMENT_NAME", "gpt-35-turbo"), + messages=[ + { + "role": "system", + "content": sys_prompt, + }, + {"role": "user", "content": question}, + ], + ) + raw_code = completion.choices[0].message.content + result = code_refine(raw_code) + return result +``` + +Execute below command will get an URL to display the trace records and trace details of each test. + +```bash +python math_to_code.py +``` + +## Trace visualization in flow test and batch run +### Flow test + +If your application is created with DAG flow, all flow test and batch run will be automatically enable trace function. Take the **[chat_with_pdf](../../flows/chat/chat-with-pdf/)** as example. + +Run `pf flow test --flow .`, each flow test will generate single line in the trace UI: +![flow-trace-record](../../../docs/media/trace/flow-trace-records.png) + +Click a record, the trace details will be visualized as tree view. + +![flow-trace-detail](../../../docs/media/trace/flow-trace-detail.png) + +### Evaluate against batch data +Keep using **[chat_with_pdf](../../flows/chat/chat-with-pdf/)** as example, to trigger a batch run, you can use below commands: + +```shell +pf run create -f batch_run.yaml +``` +Or +```shell +pf run create --flow . --data "./data/bert-paper-qna.jsonl" --column-mapping chat_history='${data.chat_history}' pdf_url='${data.pdf_url}' question='${data.question}' +``` +Then you will get a run related trace URL, e.g. http://localhost:52008/v1.0/ui/traces?run=chat_with_pdf_variant_0_20240226_181222_219335 + +![batch_run_record](../../../docs/media/trace/batch_run_record.png) \ No newline at end of file diff --git a/examples/tutorials/tracing/autogen-groupchat/.gitignore b/examples/tutorials/tracing/autogen-groupchat/.gitignore new file mode 100644 index 00000000000..66c8ac382bd --- /dev/null +++ b/examples/tutorials/tracing/autogen-groupchat/.gitignore @@ -0,0 +1,2 @@ +OAI_CONFIG_LIST.json +groupchat \ No newline at end of file diff --git a/examples/tutorials/tracing/autogen-groupchat/OAI_CONFIG_LIST.json.example b/examples/tutorials/tracing/autogen-groupchat/OAI_CONFIG_LIST.json.example new file mode 100644 index 00000000000..62d8e334482 --- /dev/null +++ b/examples/tutorials/tracing/autogen-groupchat/OAI_CONFIG_LIST.json.example @@ -0,0 +1,16 @@ +[ + { + "model": "gpt-4", + "api_key": "", + "base_url": "", + "api_type": "azure", + "api_version": "2023-06-01-preview" + }, + { + "model": "gpt-35-turbo", + "api_key": "", + "base_url": "", + "api_type": "azure", + "api_version": "2023-06-01-preview" + } +] \ No newline at end of file diff --git a/examples/tutorials/tracing/autogen-groupchat/README.md b/examples/tutorials/tracing/autogen-groupchat/README.md new file mode 100644 index 00000000000..ef405b1909b --- /dev/null +++ b/examples/tutorials/tracing/autogen-groupchat/README.md @@ -0,0 +1,6 @@ +# Tracing existing application using promptflow: Auto Generated Agent Group Chat + +AutoGen offers conversable agents powered by LLM, tool or human, which can be used to perform tasks collectively via automated chat. This framework allows tool use and human participation through multi-agent conversation. +Please find documentation about this feature [here](https://microsoft.github.io/autogen/docs/Use-Cases/agent_chat). + +Check out this [notebook](./agentchat_groupchat.ipynb) for example. \ No newline at end of file diff --git a/examples/tutorials/tracing/autogen-groupchat/requirements.txt b/examples/tutorials/tracing/autogen-groupchat/requirements.txt new file mode 100644 index 00000000000..61335f84893 --- /dev/null +++ b/examples/tutorials/tracing/autogen-groupchat/requirements.txt @@ -0,0 +1,3 @@ +promptflow +pyautogen>=0.2.9 +pydantic>=2.6.0 \ No newline at end of file diff --git a/examples/tutorials/tracing/autogen-groupchat/trace-autogen-groupchat.ipynb b/examples/tutorials/tracing/autogen-groupchat/trace-autogen-groupchat.ipynb new file mode 100644 index 00000000000..cbbf9d91a79 --- /dev/null +++ b/examples/tutorials/tracing/autogen-groupchat/trace-autogen-groupchat.ipynb @@ -0,0 +1,218 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tracing existing application using promptflow: Auto Generated Agent Group Chat\n", + "\n", + "AutoGen offers conversable agents powered by LLM, tool or human, which can be used to perform tasks collectively via automated chat. This framework allows tool use and human participation through multi-agent conversation.\n", + "Please find documentation about this feature [here](https://microsoft.github.io/autogen/docs/Use-Cases/agent_chat).\n", + "\n", + "This notebook is modified based on https://github.com/microsoft/autogen/blob/main/notebook/agentchat_groupchat.ipynb. \n", + "\n", + "**Learning Objectives** - Upon completing this tutorial, you should be able to:\n", + "\n", + "- Trace LLM (OpenAI) Calls and visualize the trace of your application.\n", + "\n", + "## Requirements\n", + "\n", + "AutoGen requires `Python>=3.8`. To run this notebook example, please install required dependencies:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture --no-stderr\n", + "%pip install -r ./requirements.txt" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Set your API Endpoint\n", + "\n", + "You can create the config file named [OAI_CONFIG_LIST.json](OAI_CONFIG_LIST.json) from example file: [OAI_CONFIG_LIST.json.example](OAI_CONFIG_LIST.json.example).\n", + "\n", + "Below code use the [`config_list_from_json`](https://microsoft.github.io/autogen/docs/reference/oai/openai_utils#config_list_from_json) function loads a list of configurations from an environment variable or a json file. \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import autogen\n", + "\n", + "# please ensure you have a json config file\n", + "env_or_file = \"OAI_CONFIG_LIST.json\"\n", + "\n", + "# filters the configs by models (you can filter by other keys as well). Only the gpt-4 models are kept in the list based on the filter condition.\n", + "\n", + "# gpt4\n", + "# config_list = autogen.config_list_from_json(\n", + "# env_or_file,\n", + "# filter_dict={\n", + "# \"model\": [\"gpt-4\", \"gpt-4-0314\", \"gpt4\", \"gpt-4-32k\", \"gpt-4-32k-0314\", \"gpt-4-32k-v0314\"],\n", + "# },\n", + "# )\n", + "\n", + "# gpt35\n", + "config_list = autogen.config_list_from_json(\n", + " env_or_file,\n", + " filter_dict={\n", + " \"model\": {\n", + " \"gpt-35-turbo\",\n", + " \"gpt-3.5-turbo\",\n", + " \"gpt-3.5-turbo-16k\",\n", + " \"gpt-3.5-turbo-0301\",\n", + " \"chatgpt-35-turbo-0301\",\n", + " \"gpt-35-turbo-v0301\",\n", + " },\n", + " },\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Construct Agents" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "os.environ[\"AUTOGEN_USE_DOCKER\"] = \"False\"\n", + "\n", + "llm_config = {\"config_list\": config_list, \"cache_seed\": 42}\n", + "user_proxy = autogen.UserProxyAgent(\n", + " name=\"User_proxy\",\n", + " system_message=\"A human admin.\",\n", + " code_execution_config={\n", + " \"last_n_messages\": 2,\n", + " \"work_dir\": \"groupchat\",\n", + " \"use_docker\": False,\n", + " }, # Please set use_docker=True if docker is available to run the generated code. Using docker is safer than running the generated code directly.\n", + " human_input_mode=\"TERMINATE\",\n", + ")\n", + "coder = autogen.AssistantAgent(\n", + " name=\"Coder\",\n", + " llm_config=llm_config,\n", + ")\n", + "pm = autogen.AssistantAgent(\n", + " name=\"Product_manager\",\n", + " system_message=\"Creative in software product ideas.\",\n", + " llm_config=llm_config,\n", + ")\n", + "groupchat = autogen.GroupChat(agents=[user_proxy, coder, pm], messages=[], max_round=12)\n", + "manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=llm_config)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Start Chat with promptflow trace" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from promptflow.tracing import start_trace\n", + "\n", + "# start a trace session, and print a url for user to check trace\n", + "# traces will be collected into below collection name\n", + "start_trace(collection=\"autogen-groupchat\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Open the url you get in start_trace output, when running below code, you will be able to see new traces in the UI. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from opentelemetry import trace\n", + "import json\n", + "\n", + "\n", + "tracer = trace.get_tracer(\"my_tracer\")\n", + "# Create a root span\n", + "with tracer.start_as_current_span(\"autogen\") as span:\n", + " message = \"Find a latest paper about gpt-4 on arxiv and find its potential applications in software.\"\n", + " user_proxy.initiate_chat(\n", + " manager,\n", + " message=message,\n", + " clear_history=True,\n", + " )\n", + " span.set_attribute(\"custom\", \"custom attribute value\")\n", + " # recommend to store inputs and outputs as events\n", + " span.add_event(\n", + " \"promptflow.function.inputs\", {\"payload\": json.dumps(dict(message=message))}\n", + " )\n", + " span.add_event(\n", + " \"promptflow.function.output\", {\"payload\": json.dumps(user_proxy.last_message())}\n", + " )\n", + "# type exit to terminate the chat" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Next Steps\n", + "\n", + "By now you've successfully tracing LLM calls in your app using prompt flow.\n", + "\n", + "You can check out more examples:\n", + "- [Trace your flow](../../../flex-flows/basic/quickstart.ipynb): using promptflow @trace to structurally tracing your app and do evaluation on it with batch run." + ] + } + ], + "metadata": { + "description": "Tracing LLM calls in autogen group chat application", + "kernelspec": { + "display_name": "prompt_flow", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + }, + "resources": "" + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/tutorials/tracing/custom-otlp-collector/llm.py b/examples/tutorials/tracing/custom-otlp-collector/llm.py new file mode 100644 index 00000000000..cdc72f92fe8 --- /dev/null +++ b/examples/tutorials/tracing/custom-otlp-collector/llm.py @@ -0,0 +1,51 @@ +import os + +from dotenv import load_dotenv +from openai.version import VERSION as OPENAI_VERSION + +from promptflow.tracing import trace + + +def get_client(): + if OPENAI_VERSION.startswith("0."): + raise Exception( + "Please upgrade your OpenAI package to version >= 1.0.0 or using the command: pip install --upgrade openai." + ) + api_key = os.environ.get("OPENAI_API_KEY", None) + if api_key: + from openai import OpenAI + + return OpenAI() + else: + from openai import AzureOpenAI + + return AzureOpenAI(api_version=os.environ.get("OPENAI_API_VERSION", "2023-07-01-preview")) + + +@trace +def my_llm_tool(prompt: str, deployment_name: str) -> str: + if "OPENAI_API_KEY" not in os.environ and "AZURE_OPENAI_API_KEY" not in os.environ: + # load environment variables from .env file + load_dotenv() + + if "OPENAI_API_KEY" not in os.environ and "AZURE_OPENAI_API_KEY" not in os.environ: + raise Exception("Please specify environment variables: OPENAI_API_KEY or AZURE_OPENAI_API_KEY") + messages = [ + {"role": "system", "content": "You are a helpful assistant."}, + {"role": "user", "content": prompt}, + ] + response = get_client().chat.completions.create( + messages=messages, + model=deployment_name, + ) + + # get first element because prompt is single. + return response.choices[0].message.content + + +if __name__ == "__main__": + result = my_llm_tool( + prompt="Write a simple Hello, world! program that displays the greeting message.", + deployment_name="text-davinci-003", + ) + print(result) diff --git a/examples/tutorials/tracing/custom-otlp-collector/otlp-trace-collector.ipynb b/examples/tutorials/tracing/custom-otlp-collector/otlp-trace-collector.ipynb new file mode 100644 index 00000000000..291d254191d --- /dev/null +++ b/examples/tutorials/tracing/custom-otlp-collector/otlp-trace-collector.ipynb @@ -0,0 +1,191 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tracing with Custom OpenTelemetry Collector\n", + "\n", + "In certain scenario you might want to user your own [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) and keep your dependency mimimal.\n", + "\n", + "In such case you can avoid the dependency of [promptflow-devkit](https://pypi.org/project/promptflow-devkit/) which provides the default collector from promptflow, and only depdent on [promptflow-tracing](https://pypi.org/project/promptflow-tracing), \n", + "\n", + "\n", + "**Learning Objectives** - Upon completing this tutorial, you should be able to:\n", + "\n", + "- Trace LLM (OpenAI) Calls using Custom OpenTelemetry Collector.\n", + "\n", + "## 0. Install dependent packages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture --no-stderr\n", + "%pip install -r ./requirements.txt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 1. Set up an OpenTelemetry collector\n", + "\n", + "Implement a simple collector that print the traces to stdout." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import threading\n", + "from http.server import BaseHTTPRequestHandler, HTTPServer\n", + "\n", + "from opentelemetry.proto.collector.trace.v1.trace_service_pb2 import (\n", + " ExportTraceServiceRequest,\n", + ")\n", + "\n", + "\n", + "class OTLPCollector(BaseHTTPRequestHandler):\n", + " def do_POST(self):\n", + " content_length = int(self.headers[\"Content-Length\"])\n", + " post_data = self.rfile.read(content_length)\n", + "\n", + " traces_request = ExportTraceServiceRequest()\n", + " traces_request.ParseFromString(post_data)\n", + "\n", + " print(\"Received a POST request with data:\")\n", + " print(traces_request)\n", + "\n", + " self.send_response(200, \"Traces received\")\n", + " self.end_headers()\n", + " self.wfile.write(b\"Data received and printed to stdout.\\n\")\n", + "\n", + "\n", + "def run_server(port: int):\n", + " server_address = (\"\", port)\n", + " httpd = HTTPServer(server_address, OTLPCollector)\n", + " httpd.serve_forever()\n", + "\n", + "\n", + "def start_server(port: int):\n", + " server_thread = threading.Thread(target=run_server, args=(port,))\n", + " server_thread.daemon = True\n", + " server_thread.start()\n", + " print(f\"Server started on port {port}. Access http://localhost:{port}/\")\n", + " return server_thread" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# invoke the collector service, serving on OTLP port\n", + "start_server(port=4318)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 2. Trace your application with tracing\n", + "Assume we already have a Python function that calls OpenAI API\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from llm import my_llm_tool\n", + "\n", + "deployment_name = \"gpt-35-turbo-16k\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Call `start_trace()`, and configure the OTLP exporter to above collector." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from promptflow.tracing import start_trace\n", + "\n", + "start_trace()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from opentelemetry import trace\n", + "from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter\n", + "from opentelemetry.sdk.trace.export import BatchSpanProcessor\n", + "\n", + "tracer_provider = trace.get_tracer_provider()\n", + "otlp_span_exporter = OTLPSpanExporter()\n", + "tracer_provider.add_span_processor(BatchSpanProcessor(otlp_span_exporter))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Visualize traces in the stdout." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "result = my_llm_tool(\n", + " prompt=\"Write a simple Hello, world! program that displays the greeting message when executed.\",\n", + " deployment_name=deployment_name,\n", + ")\n", + "result\n", + "# view the traces under this cell" + ] + } + ], + "metadata": { + "description": "A tutorial on how to levarage custom OTLP collector.", + "kernelspec": { + "display_name": "tracing-rel", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.17" + }, + "resources": "" + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/tutorials/tracing/custom-otlp-collector/requirements.txt b/examples/tutorials/tracing/custom-otlp-collector/requirements.txt new file mode 100644 index 00000000000..adc4a004819 --- /dev/null +++ b/examples/tutorials/tracing/custom-otlp-collector/requirements.txt @@ -0,0 +1,3 @@ +promptflow-tracing +python-dotenv +opentelemetry-exporter-otlp-proto-http \ No newline at end of file diff --git a/examples/tutorials/tracing/langchain/requirements.txt b/examples/tutorials/tracing/langchain/requirements.txt new file mode 100644 index 00000000000..fab24c4abd6 --- /dev/null +++ b/examples/tutorials/tracing/langchain/requirements.txt @@ -0,0 +1,4 @@ +promptflow +langchain>=0.1.5 +opentelemetry-instrumentation-langchain +python-dotenv \ No newline at end of file diff --git a/examples/tutorials/tracing/langchain/trace-langchain.ipynb b/examples/tutorials/tracing/langchain/trace-langchain.ipynb new file mode 100644 index 00000000000..f5bbc269895 --- /dev/null +++ b/examples/tutorials/tracing/langchain/trace-langchain.ipynb @@ -0,0 +1,167 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tracing LangChain apps using Prompt flow & OpenTelemery\n", + "\n", + "The tracing capability provided by Prompt flow is built on top of [OpenTelemetry](https://opentelemetry.io/) that gives you complete observability over your LLM applications. \n", + "And there is already a rich set of OpenTelemetry [instrumentation packages](https://opentelemetry.io/ecosystem/registry/?language=python&component=instrumentation) available in OpenTelemetry Eco System. \n", + "\n", + "In this example we will demo how to use [opentelemetry-instrumentation-langchain](https://github.com/traceloop/openllmetry/tree/main/packages/opentelemetry-instrumentation-langchain) package provided by [Traceloop](https://www.traceloop.com/) to instrument [LangChain](https://python.langchain.com/docs/get_started/quickstart) apps.\n", + "\n", + "\n", + "**Learning Objectives** - Upon completing this tutorial, you should be able to:\n", + "\n", + "- Trace `LangChain` applications and visualize the trace of your application in prompt flow.\n", + "\n", + "## Requirements\n", + "\n", + "To run this notebook example, please install required dependencies:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture --no-stderr\n", + "%pip install -r ./requirements.txt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Start tracing LangChain using promptflow\n", + "\n", + "Start trace using `promptflow.start_trace`, click the printed url to view the trace ui." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from promptflow.tracing import start_trace\n", + "\n", + "# start a trace session, and print a url for user to check trace\n", + "start_trace()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By default, `opentelemetry-instrumentation-langchain` instrumentation logs prompts, completions, and embeddings to span attributes. This gives you a clear visibility into how your LLM application is working, and can make it easy to debug and evaluate the quality of the outputs." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# enable langchain instrumentation\n", + "from opentelemetry.instrumentation.langchain import LangchainInstrumentor\n", + "\n", + "instrumentor = LangchainInstrumentor()\n", + "if not instrumentor.is_instrumented_by_opentelemetry:\n", + " instrumentor.instrument()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Run a simple Lang Chain\n", + "\n", + "Below is an example targeting an AzureOpenAI resource. Please configure you `API_KEY` using an [.env](../.env) file, see [.env.example](../.env.example)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "from langchain.chat_models import AzureChatOpenAI\n", + "from langchain.prompts.chat import ChatPromptTemplate\n", + "from langchain.chains import LLMChain\n", + "from dotenv import load_dotenv\n", + "\n", + "if \"AZURE_OPENAI_API_KEY\" not in os.environ:\n", + " # load environment variables from .env file\n", + " load_dotenv()\n", + "\n", + "llm = AzureChatOpenAI(\n", + " deployment_name=os.environ[\"CHAT_DEPLOYMENT_NAME\"],\n", + " openai_api_key=os.environ[\"AZURE_OPENAI_API_KEY\"],\n", + " azure_endpoint=os.environ[\"AZURE_OPENAI_ENDPOINT\"],\n", + " openai_api_type=\"azure\",\n", + " openai_api_version=\"2023-07-01-preview\",\n", + " temperature=0,\n", + ")\n", + "\n", + "prompt = ChatPromptTemplate.from_messages(\n", + " [\n", + " (\"system\", \"You are world class technical documentation writer.\"),\n", + " (\"user\", \"{input}\"),\n", + " ]\n", + ")\n", + "\n", + "chain = LLMChain(llm=llm, prompt=prompt, output_key=\"metrics\")\n", + "chain({\"input\": \"What is ChatGPT?\"})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You should be able to see traces of the chain in promptflow UI now. Check the cell with `start_trace` on the trace UI url." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Next Steps\n", + "\n", + "By now you've successfully tracing LLM calls in your app using prompt flow.\n", + "\n", + "You can check out more examples:\n", + "- [Trace your flow](../../../flex-flows/basic/quickstart.ipynb): using promptflow @trace to structurally tracing your app and do evaluation on it with batch run." + ] + } + ], + "metadata": { + "description": "Tracing LLM calls in langchain application", + "kernelspec": { + "display_name": "prompt_flow", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.17" + }, + "resources": "" + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/tutorials/tracing/math_to_code.py b/examples/tutorials/tracing/math_to_code.py new file mode 100644 index 00000000000..780432061fb --- /dev/null +++ b/examples/tutorials/tracing/math_to_code.py @@ -0,0 +1,93 @@ +import ast +import os + +from dotenv import load_dotenv +from openai import AzureOpenAI + +from promptflow.tracing import start_trace, trace + + +@trace +def infinite_loop_check(code_snippet): + tree = ast.parse(code_snippet) + for node in ast.walk(tree): + if isinstance(node, ast.While): + if not node.orelse: + return True + return False + + +@trace +def syntax_error_check(code_snippet): + try: + ast.parse(code_snippet) + except SyntaxError: + return True + return False + + +@trace +def error_fix(code_snippet): + tree = ast.parse(code_snippet) + for node in ast.walk(tree): + if isinstance(node, ast.While): + if not node.orelse: + node.orelse = [ast.Pass()] + return ast.unparse(tree) + + +@trace +def code_refine(original_code: str) -> str: + original_code = original_code.replace("python", "").replace("`", "").strip() + fixed_code = None + + if infinite_loop_check(original_code): + fixed_code = error_fix(original_code) + else: + fixed_code = original_code + + if syntax_error_check(fixed_code): + fixed_code = error_fix(fixed_code) + + return fixed_code + + +@trace +def code_gen(client: AzureOpenAI, question: str) -> str: + sys_prompt = ( + "I want you to act as a math expert specializing in Algebra, Geometry, and Calculus. " + "Given the question, develop python code to model the user's question. " + "Make sure only reply the executable code, no other words." + ) + completion = client.chat.completions.create( + model=os.getenv("CHAT_DEPLOYMENT_NAME", "gpt-35-turbo"), + messages=[ + { + "role": "system", + "content": sys_prompt, + }, + {"role": "user", "content": question}, + ], + ) + raw_code = completion.choices[0].message.content + result = code_refine(raw_code) + return result + + +if __name__ == "__main__": + start_trace() + + if "AZURE_OPENAI_API_KEY" not in os.environ: + # load environment variables from .env file + load_dotenv() + + client = AzureOpenAI( + api_key=os.getenv("AZURE_OPENAI_API_KEY"), + azure_endpoint=os.getenv("AZURE_OPENAI_ENDPOINT"), + api_version="2023-12-01-preview", + ) + + question = "What is 37593 * 67?" + + code = code_gen(client, question) + print(code) diff --git a/scripts/docs/conf.py b/scripts/docs/conf.py index 966d3a448c3..630157b3140 100644 --- a/scripts/docs/conf.py +++ b/scripts/docs/conf.py @@ -55,6 +55,8 @@ "deploy-using-docker.html", "deploy-using-kubernetes.html", "https://portal.azure.com/#create/Microsoft.CognitiveServicesTextAnalytics", # sphinx recognizes #create as an anchor while it's not. # noqa: E501 + "https://github.com/microsoft/promptflow/tree/main/examples/flex-flows", # remove when sample PR merged + "https://github.com/microsoft/promptflow/tree/main/examples/tutorials/tracing", # remove when sample PR merged ] linkcheck_exclude_documents = ["contributing"] diff --git a/scripts/readme/ghactions_driver/readme_templates/README.md.jinja2 b/scripts/readme/ghactions_driver/readme_templates/README.md.jinja2 index 8cdf3026a8c..fa9955bae8c 100644 --- a/scripts/readme/ghactions_driver/readme_templates/README.md.jinja2 +++ b/scripts/readme/ghactions_driver/readme_templates/README.md.jinja2 @@ -28,6 +28,20 @@ {% for tutorial in tutorials.readmes %}| [{{ tutorial.name }}]({{ tutorial.path }}) | [![{{tutorial.pipeline_name}}](https://github.com/microsoft/promptflow/actions/workflows/{{tutorial.yaml_name}}/badge.svg?branch={{branch}})](https://github.com/microsoft/promptflow/actions/workflows/{{tutorial.yaml_name}}) | {{ tutorial.description }} | {% endfor %} +### Prompty ([prompty](prompty)) + +| path | status | description | +------|--------|------------- +{% for flow in prompty.readmes %}| [{{ flow.name }}]({{ flow.path }}) | [![{{flow.pipeline_name}}](https://github.com/microsoft/promptflow/actions/workflows/{{flow.yaml_name}}/badge.svg?branch={{branch}})](https://github.com/microsoft/promptflow/actions/workflows/{{flow.yaml_name}}) | {{ flow.description }} | +{% endfor %} + +### Flex Flows ([flex-flows](flex-flows)) + +| path | status | description | +------|--------|------------- +{% for flow in flex_flows.readmes %}| [{{ flow.name }}]({{ flow.path }}) | [![{{flow.pipeline_name}}](https://github.com/microsoft/promptflow/actions/workflows/{{flow.yaml_name}}/badge.svg?branch={{branch}})](https://github.com/microsoft/promptflow/actions/workflows/{{flow.yaml_name}}) | {{ flow.description }} | +{% endfor %} + ### Flows ([flows](flows)) #### [Standard flows](flows/standard/) @@ -76,6 +90,10 @@ {% endfor %} {%- if connections.notebooks|length > 0 -%}{% for connection in connections.notebooks %}| [{{ connection.name }}]({{ connection.path }}) | [![{{connection.pipeline_name}}](https://github.com/microsoft/promptflow/actions/workflows/{{connection.yaml_name}}/badge.svg?branch={{branch}})](https://github.com/microsoft/promptflow/actions/workflows/{{connection.yaml_name}}) | {{ connection.description }} | {% endfor %}{% endif %} +{%- if flex_flows.notebooks|length > 0 -%}{% for flow in flex_flows.notebooks %}| [{{ flow.name }}]({{ flow.path }}) | [![{{flow.pipeline_name}}](https://github.com/microsoft/promptflow/actions/workflows/{{flow.yaml_name}}/badge.svg?branch={{branch}})](https://github.com/microsoft/promptflow/actions/workflows/{{flow.yaml_name}}) | {{ flow.description }} | +{% endfor %}{% endif %} +{%- if prompty.notebooks|length > 0 -%}{% for flow in prompty.notebooks %}| [{{ flow.name }}]({{ flow.path }}) | [![{{flow.pipeline_name}}](https://github.com/microsoft/promptflow/actions/workflows/{{flow.yaml_name}}/badge.svg?branch={{branch}})](https://github.com/microsoft/promptflow/actions/workflows/{{flow.yaml_name}}) | {{ flow.description }} | +{% endfor %}{% endif %} {%- if chats.notebooks|length > 0 -%}{% for chat in chats.notebooks %}| [{{ chat.name }}]({{ chat.path }}) | [![{{chat.pipeline_name}}](https://github.com/microsoft/promptflow/actions/workflows/{{chat.yaml_name}}/badge.svg?branch={{branch}})](https://github.com/microsoft/promptflow/actions/workflows/{{chat.yaml_name}}) | {{ chat.description }} | {% endfor %}{% endif %} {%- if evaluations.notebooks|length > 0 -%}{% for evaluation in evaluations.notebooks %}| [{{ evaluation.name }}]({{ evaluation.path }}) | [![{{evaluation.pipeline_name}}](https://github.com/microsoft/promptflow/actions/workflows/{{evaluation.yaml_name}}/badge.svg?branch={{branch}})](https://github.com/microsoft/promptflow/actions/workflows/{{evaluation.yaml_name}}) | {{ evaluation.description }} | diff --git a/scripts/readme/ghactions_driver/workflow_steps/step_create_env.yml.jinja2 b/scripts/readme/ghactions_driver/workflow_steps/step_create_env.yml.jinja2 index 86bf0f90334..863e53104ee 100644 --- a/scripts/readme/ghactions_driver/workflow_steps/step_create_env.yml.jinja2 +++ b/scripts/readme/ghactions_driver/workflow_steps/step_create_env.yml.jinja2 @@ -9,3 +9,8 @@ sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example mv .env.example .env fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi diff --git a/scripts/readme/ghactions_driver/workflow_steps/step_extract_steps_and_run.yml.jinja2 b/scripts/readme/ghactions_driver/workflow_steps/step_extract_steps_and_run.yml.jinja2 index b76dd517409..2d868e3c2ea 100644 --- a/scripts/readme/ghactions_driver/workflow_steps/step_extract_steps_and_run.yml.jinja2 +++ b/scripts/readme/ghactions_driver/workflow_steps/step_extract_steps_and_run.yml.jinja2 @@ -12,6 +12,8 @@ run: | export aoai_api_key=${{ '{{' }}secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ '{{' }} secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{ '{{' }}secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ '{{' }} secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ '{{' }} secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ '{{' }} secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ '{{' }} secrets.TEST_WORKSPACE_NAME_CANARY }} @@ -22,6 +24,8 @@ run: | export aoai_api_key=${{ '{{' }}secrets.AOAI_API_KEY_TEST }} export aoai_api_endpoint=${{ '{{' }} secrets.AOAI_API_ENDPOINT_TEST }} + export AZURE_OPENAI_API_KEY=${{ '{{' }}secrets.AOAI_API_KEY_TEST }} + export AZURE_OPENAI_ENDPOINT=${{ '{{' }} secrets.AOAI_API_ENDPOINT_TEST }} export test_workspace_sub_id=${{ '{{' }} secrets.TEST_WORKSPACE_SUB_ID }} export test_workspace_rg=${{ '{{' }} secrets.TEST_WORKSPACE_RG }} export test_workspace_name=${{ '{{' }} secrets.TEST_WORKSPACE_NAME_PROD }} diff --git a/scripts/readme/ghactions_driver/workflow_templates/autogen_workflow.yml.jinja2 b/scripts/readme/ghactions_driver/workflow_templates/autogen_workflow.yml.jinja2 new file mode 100644 index 00000000000..bab8cab1333 --- /dev/null +++ b/scripts/readme/ghactions_driver/workflow_templates/autogen_workflow.yml.jinja2 @@ -0,0 +1,53 @@ +{% extends "workflow_skeleton.yml.jinja2" %} +{% block steps %} +runs-on: ubuntu-latest +steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Azure Login + uses: azure/login@v1 + with: + creds: ${{ '{{' }} secrets.AZURE_CREDENTIALS }} + - 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 + - name: setup .env file + working-directory: {{ gh_working_dir }} + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi + if [[ -e OAI_CONFIG_LIST.json.example ]]; then + echo "OAI_CONFIG_LIST replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" OAI_CONFIG_LIST.json.example + mv OAI_CONFIG_LIST.json.example OAI_CONFIG_LIST.json + fi + - name: Create Aoai Connection + run: pf connection create -f ${{ '{{' }} github.workspace }}/examples/connections/azure_openai.yml --set api_key="${{ '{{' }} secrets.AOAI_API_KEY_TEST }}" api_base="${{ '{{' }} secrets.AOAI_API_ENDPOINT_TEST }}" + - name: Test Notebook + working-directory: {{ gh_working_dir }} + run: | + papermill -k python {{ name }}.ipynb {{ name }}.output.ipynb + - name: Upload artifact + if: ${{ '{{' }} always() }} + uses: actions/upload-artifact@v3 + with: + name: artifact + path: {{ gh_working_dir }} +{% endblock steps %} \ No newline at end of file diff --git a/scripts/readme/ghactions_driver/workflow_templates/basic_workflow.yml.jinja2 b/scripts/readme/ghactions_driver/workflow_templates/basic_workflow.yml.jinja2 index 5dda384f6f2..80370b7140f 100644 --- a/scripts/readme/ghactions_driver/workflow_templates/basic_workflow.yml.jinja2 +++ b/scripts/readme/ghactions_driver/workflow_templates/basic_workflow.yml.jinja2 @@ -17,6 +17,22 @@ steps: python -m pip install --upgrade pip pip install -r ${{ '{{' }} github.workspace }}/examples/requirements.txt pip install -r ${{ '{{' }} github.workspace }}/examples/dev_requirements.txt + - name: setup .env file + working-directory: {{ gh_working_dir }} + 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//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" .env.example + mv .env.example .env + fi + if [[ -e ../.env.example ]]; then + echo "env replacement" + sed -i -e "s//$AOAI_API_KEY/g" -e "s//$AOAI_API_ENDPOINT/g" ../.env.example + mv ../.env.example ../.env + fi - name: Create Aoai Connection run: pf connection create -f ${{ '{{' }} github.workspace }}/examples/connections/azure_openai.yml --set api_key="${{ '{{' }} secrets.AOAI_API_KEY_TEST }}" api_base="${{ '{{' }} secrets.AOAI_API_ENDPOINT_TEST }}" - name: Test Notebook diff --git a/scripts/readme/readme.py b/scripts/readme/readme.py index e5f0c735de4..aacc2a87e95 100644 --- a/scripts/readme/readme.py +++ b/scripts/readme/readme.py @@ -74,6 +74,14 @@ def write_readme(workflow_telemetries, readme_telemetries): "readmes": [], "notebooks": [], } + flex_flows = { + "readmes": [], + "notebooks": [], + } + prompty = { + "readmes": [], + "notebooks": [], + } flows = { "readmes": [], "notebooks": [], @@ -166,6 +174,26 @@ def write_readme(workflow_telemetries, readme_telemetries): "description": description, } ) + elif gh_working_dir.startswith("examples/flex-flows"): + flex_flows["notebooks"].append( + { + "name": notebook_name, + "path": notebook_path, + "pipeline_name": pipeline_name, + "yaml_name": yaml_name, + "description": description, + } + ) + elif gh_working_dir.startswith("examples/prompty"): + prompty["notebooks"].append( + { + "name": notebook_name, + "path": notebook_path, + "pipeline_name": pipeline_name, + "yaml_name": yaml_name, + "description": description, + } + ) elif gh_working_dir.startswith("examples/tools/use-cases"): toolusecases["notebooks"].append( { @@ -257,6 +285,26 @@ def write_readme(workflow_telemetries, readme_telemetries): "description": description, } ) + elif readme_folder.startswith("examples/flex-flows"): + flex_flows["readmes"].append( + { + "name": notebook_name, + "path": notebook_path, + "pipeline_name": pipeline_name, + "yaml_name": yaml_name, + "description": description, + } + ) + elif readme_folder.startswith("examples/prompty"): + prompty["readmes"].append( + { + "name": notebook_name, + "path": notebook_path, + "pipeline_name": pipeline_name, + "yaml_name": yaml_name, + "description": description, + } + ) elif readme_folder.startswith("examples/tools/use-cases"): toolusecases["readmes"].append( { @@ -278,6 +326,8 @@ def write_readme(workflow_telemetries, readme_telemetries): replacement = { "branch": BRANCH, "tutorials": tutorials, + "flex_flows": flex_flows, + "prompty": prompty, "flows": flows, "evaluations": evaluations, "chats": chats, @@ -310,6 +360,8 @@ def main(check): input_glob_readme = [ "examples/flows/**/README.md", + "examples/flex-flows/**/README.md", + "examples/prompty/**/README.md", "examples/connections/**/README.md", "examples/tutorials/e2e-development/*.md", "examples/tutorials/flow-fine-tuning-evaluation/*.md", diff --git a/scripts/readme/workflow_generator.py b/scripts/readme/workflow_generator.py index 86e2217c86b..699faa85ce2 100644 --- a/scripts/readme/workflow_generator.py +++ b/scripts/readme/workflow_generator.py @@ -82,6 +82,8 @@ def write_notebook_workflow(notebook, name, output_telemetry=Telemetry()): template = env.get_template("pdf_workflow.yml.jinja2") elif "flowasfunction" in workflow_name: template = env.get_template("flow_as_function.yml.jinja2") + elif "traceautogengroupchat" in workflow_name: + template = env.get_template("autogen_workflow.yml.jinja2") content = template.render( {