From 5faebcc6a2ac93b0cdcfd7169b8927fc07362d07 Mon Sep 17 00:00:00 2001 From: Francia Riesco Date: Tue, 20 Feb 2024 17:30:24 -0500 Subject: [PATCH 1/4] teams feature --- .env.sample | 2 +- .github/workflows/AdminWebApp.yml | 12 +-- .github/workflows/Backend.yml | 12 +-- .github/workflows/CwyodBackend.yml | 12 +-- .github/workflows/WebApp.yml | 12 +-- code/app/app.py | 8 +- code/batch/GetConversationResponse.py | 58 +++++++++++ code/batch/function_app.py | 2 + docker/docker-compose.yml | 6 +- docs/LOCAL_DEPLOYMENT.md | 4 +- docs/TEAMS_EXTENSION.md | 44 ++------ docs/TEAMS_LOCAL_DEPLOYMENT.md | 22 ++-- extensions/infrastructure/main.bicep | 6 +- extensions/infrastructure/main.json | 4 +- extensions/teams/appPackage/manifest.json | 2 +- extensions/teams/cards/cardBuilder.ts | 112 ++++++++++++++++++++ extensions/teams/env/.env.dev | 2 +- extensions/teams/env/.env.test | 2 +- extensions/teams/env/.env.testtool | 2 +- extensions/teams/model.ts | 7 ++ extensions/teams/teamsBot.ts | 45 ++++---- infra/deployment.bicep | 11 +- infra/deployment.json | 119 +++++++++++----------- media/chat-app.png | Bin 50689 -> 61279 bytes media/teams-deploy-env.png | Bin 0 -> 67835 bytes media/teams-local-3.png | Bin 13249 -> 41541 bytes 26 files changed, 337 insertions(+), 169 deletions(-) create mode 100644 code/batch/GetConversationResponse.py create mode 100644 extensions/teams/cards/cardBuilder.ts create mode 100644 media/teams-deploy-env.png diff --git a/.env.sample b/.env.sample index 0757696f8..8cd7407af 100644 --- a/.env.sample +++ b/.env.sample @@ -27,7 +27,7 @@ AZURE_OPENAI_TOP_P=1.0 AZURE_OPENAI_MAX_TOKENS=1000 AZURE_OPENAI_STOP_SEQUENCE= AZURE_OPENAI_SYSTEM_MESSAGE=You are an AI assistant that helps people find information. -AZURE_OPENAI_API_VERSION=2023-07-01-preview +AZURE_OPENAI_API_VERSION=2023-12-01-preview AZURE_OPENAI_STREAM=True # Backend for processing the documents and application logging in the app AzureWebJobsStorage= diff --git a/.github/workflows/AdminWebApp.yml b/.github/workflows/AdminWebApp.yml index eb1b5d5fd..00dac4448 100644 --- a/.github/workflows/AdminWebApp.yml +++ b/.github/workflows/AdminWebApp.yml @@ -15,15 +15,15 @@ jobs: - name: Docker Login uses: docker/login-action@v3 with: - registry: fruoccopublic.azurecr.io + registry: docker.io/fr4nc3 username: fruoccopublic password: ${{ secrets.DOCKER_PASSWORD }} - uses: actions/checkout@v4 - name: Build the Docker image run: - docker pull fruoccopublic.azurecr.io/rag-adminwebapp:latest || true; - docker build . --file docker/AdminWebApp.Dockerfile --cache-from fruoccopublic.azurecr.io/rag-adminwebapp:latest --tag fruoccopublic.azurecr.io/rag-adminwebapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker tag fruoccopublic.azurecr.io/rag-adminwebapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER fruoccopublic.azurecr.io/rag-adminwebapp:latest; - docker push fruoccopublic.azurecr.io/rag-adminwebapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker push fruoccopublic.azurecr.io/rag-adminwebapp:latest; \ No newline at end of file + docker pull docker.io/fr4nc3/rag-adminwebapp:latest || true; + docker build . --file docker/AdminWebApp.Dockerfile --cache-from docker.io/fr4nc3/rag-adminwebapp:latest --tag docker.io/fr4nc3/rag-adminwebapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker tag docker.io/fr4nc3/rag-adminwebapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER docker.io/fr4nc3/rag-adminwebapp:latest; + docker push docker.io/fr4nc3/rag-adminwebapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker push docker.io/fr4nc3/rag-adminwebapp:latest; \ No newline at end of file diff --git a/.github/workflows/Backend.yml b/.github/workflows/Backend.yml index 2791adeb5..6f82d2c31 100644 --- a/.github/workflows/Backend.yml +++ b/.github/workflows/Backend.yml @@ -15,16 +15,16 @@ jobs: - name: Docker Login uses: docker/login-action@v3 with: - registry: fruoccopublic.azurecr.io + registry: docker.io/fr4nc3 username: fruoccopublic password: ${{ secrets.DOCKER_PASSWORD }} - uses: actions/checkout@v4 - name: Build the Docker image run: - docker pull fruoccopublic.azurecr.io/rag-backend:latest || true; - docker build . --file docker/Backend.Dockerfile --cache-from fruoccopublic.azurecr.io/rag-backend:latest --tag fruoccopublic.azurecr.io/rag-backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker tag fruoccopublic.azurecr.io/rag-backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER fruoccopublic.azurecr.io/rag-backend:latest; - docker push fruoccopublic.azurecr.io/rag-backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker push fruoccopublic.azurecr.io/rag-backend:latest; + docker pull docker.io/fr4nc3/rag-backend:latest || true; + docker build . --file docker/Backend.Dockerfile --cache-from docker.io/fr4nc3/rag-backend:latest --tag docker.io/fr4nc3/rag-backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker tag docker.io/fr4nc3/rag-backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER docker.io/fr4nc3/rag-backend:latest; + docker push docker.io/fr4nc3/rag-backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker push docker.io/fr4nc3/rag-backend:latest; \ No newline at end of file diff --git a/.github/workflows/CwyodBackend.yml b/.github/workflows/CwyodBackend.yml index 64352adca..76bf62289 100644 --- a/.github/workflows/CwyodBackend.yml +++ b/.github/workflows/CwyodBackend.yml @@ -15,16 +15,16 @@ jobs: - name: Docker Login uses: docker/login-action@v3 with: - registry: fruoccopublic.azurecr.io + registry: docker.io/fr4nc3 username: fruoccopublic password: ${{ secrets.DOCKER_PASSWORD }} - uses: actions/checkout@v4 - name: Build the Docker image run: - docker pull fruoccopublic.azurecr.io/cwyod_backend:latest || true; - docker build . --file extensions/docker/Backend.Dockerfile --cache-from fruoccopublic.azurecr.io/cwyod_backend:latest --tag fruoccopublic.azurecr.io/cwyod_backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker tag fruoccopublic.azurecr.io/cwyod_backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER fruoccopublic.azurecr.io/cwyod_backend:latest; - docker push fruoccopublic.azurecr.io/cwyod_backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker push fruoccopublic.azurecr.io/cwyod_backend:latest; + docker pull docker.io/fr4nc3/cwyod_backend:latest || true; + docker build . --file extensions/docker/Backend.Dockerfile --cache-from docker.io/fr4nc3/cwyod_backend:latest --tag docker.io/fr4nc3/cwyod_backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker tag docker.io/fr4nc3/cwyod_backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER docker.io/fr4nc3/cwyod_backend:latest; + docker push docker.io/fr4nc3/cwyod_backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker push docker.io/fr4nc3/cwyod_backend:latest; \ No newline at end of file diff --git a/.github/workflows/WebApp.yml b/.github/workflows/WebApp.yml index 789d8cef1..bb3e87a55 100644 --- a/.github/workflows/WebApp.yml +++ b/.github/workflows/WebApp.yml @@ -15,15 +15,15 @@ jobs: - name: Docker Login uses: docker/login-action@v3 with: - registry: fruoccopublic.azurecr.io + registry: docker.io/fr4nc3 username: fruoccopublic password: ${{ secrets.DOCKER_PASSWORD }} - uses: actions/checkout@v4 - name: Build the Docker image run: - docker pull fruoccopublic.azurecr.io/rag-webapp:latest || true; - docker build . --file docker/WebApp.Dockerfile --cache-from fruoccopublic.azurecr.io/rag-webapp:latest --tag fruoccopublic.azurecr.io/rag-webapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker tag fruoccopublic.azurecr.io/rag-webapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER fruoccopublic.azurecr.io/rag-webapp:latest; - docker push fruoccopublic.azurecr.io/rag-webapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker push fruoccopublic.azurecr.io/rag-webapp:latest; \ No newline at end of file + docker pull docker.io/fr4nc3/rag-webapp:latest || true; + docker build . --file docker/WebApp.Dockerfile --cache-from docker.io/fr4nc3/rag-webapp:latest --tag docker.io/fr4nc3/rag-webapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker tag docker.io/fr4nc3/rag-webapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER docker.io/fr4nc3/rag-webapp:latest; + docker push docker.io/fr4nc3/rag-webapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker push docker.io/fr4nc3/rag-webapp:latest; \ No newline at end of file diff --git a/code/app/app.py b/code/app/app.py index 5ec28fd4b..bfdf0da66 100644 --- a/code/app/app.py +++ b/code/app/app.py @@ -69,7 +69,7 @@ def get_config(): "You are an AI assistant that helps people find information.", ) AZURE_OPENAI_API_VERSION = os.environ.get( - "AZURE_OPENAI_API_VERSION", "2023-06-01-preview" + "AZURE_OPENAI_API_VERSION", "2023-12-01-preview" ) AZURE_OPENAI_STREAM = os.environ.get("AZURE_OPENAI_STREAM", "true") AZURE_OPENAI_MODEL_NAME = os.environ.get( @@ -144,9 +144,9 @@ def prepare_body_headers_with_data(request): chatgpt_url = f"https://{AZURE_OPENAI_RESOURCE}.openai.azure.com/openai/deployments/{AZURE_OPENAI_MODEL}" if is_chat_model(): - chatgpt_url += "/chat/completions?api-version=2023-03-15-preview" + chatgpt_url += "/chat/completions?api-version=2023-12-01-preview" else: - chatgpt_url += "/completions?api-version=2023-03-15-preview" + chatgpt_url += "/completions?api-version=2023-12-01-preview" headers = { "Content-Type": "application/json", @@ -243,7 +243,7 @@ def stream_without_data(response): def conversation_without_data(request): openai.api_type = "azure" openai.api_base = f"https://{AZURE_OPENAI_RESOURCE}.openai.azure.com/" - openai.api_version = "2023-03-15-preview" + openai.api_version = "2023-12-01-preview" openai.api_key = AZURE_OPENAI_KEY request_messages = request.json["messages"] diff --git a/code/batch/GetConversationResponse.py b/code/batch/GetConversationResponse.py new file mode 100644 index 000000000..c17d68808 --- /dev/null +++ b/code/batch/GetConversationResponse.py @@ -0,0 +1,58 @@ +import azure.functions as func +import logging +import json +import os +import sys +from utilities.helpers.OrchestratorHelper import Orchestrator + +sys.path.append("..") + +bp_get_conversation_response = func.Blueprint() + +@bp_get_conversation_response.route(route="GetConversationResponse") +def get_conversation_response(req: func.HttpRequest) -> func.HttpResponse: + logging.info("Python HTTP trigger function processed a request.") + + + message_orchestrator = Orchestrator() + + try: + req_body = req.get_json() + user_message = req_body["messages"][-1]["content"] + conversation_id = req_body["conversation_id"] + user_assistant_messages = list( + filter( + lambda x: x["role"] in ("user", "assistant"), req_body["messages"][0:-1] + ) + ) + chat_history = [] + for i, k in enumerate(user_assistant_messages): + if i % 2 == 0: + chat_history.append( + ( + user_assistant_messages[i]["content"], + user_assistant_messages[i + 1]["content"], + ) + ) + from utilities.helpers.ConfigHelper import ConfigHelper + + messages = message_orchestrator.handle_message( + user_message=user_message, + chat_history=chat_history, + conversation_id=conversation_id, + orchestrator=ConfigHelper.get_active_config_or_default().orchestrator, + ) + + response_obj = { + "id": "response.id", + "model": os.getenv("AZURE_OPENAI_MODEL"), + "created": "response.created", + "object": "response.object", + "choices": [{"messages": messages}], + } + + return func.HttpResponse(json.dumps(response_obj), status_code=200) + + except Exception as e: + logging.exception("Exception in /api/GetConversationResponse") + return func.HttpResponse(json.dumps({"error": str(e)}), status_code=500) \ No newline at end of file diff --git a/code/batch/function_app.py b/code/batch/function_app.py index fb8e84ce9..3e3d26e3c 100644 --- a/code/batch/function_app.py +++ b/code/batch/function_app.py @@ -2,6 +2,7 @@ from AddURLEmbeddings import bp_add_url_embeddings from BatchPushResults import bp_batch_push_results from BatchStartProcessing import bp_batch_start_processing +from GetConversationResponse import bp_get_conversation_response app = func.FunctionApp( http_auth_level=func.AuthLevel.FUNCTION @@ -9,3 +10,4 @@ app.register_functions(bp_add_url_embeddings) app.register_functions(bp_batch_push_results) app.register_functions(bp_batch_start_processing) +app.register_functions(bp_get_conversation_response) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 10c056d5d..24285f11c 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -2,19 +2,19 @@ version: "0.1" name: rag services: web: - image: fruoccopublic.azurecr.io/rag-webapp + image: docker.io/fr4nc3/rag-webapp ports: - "8080:80" env_file: - ../.env admin: - image: fruoccopublic.azurecr.io/rag-adminwebapp + image: docker.io/fr4nc3/rag-adminwebapp ports: - "8081:80" env_file: - ../.env backend: - image: fruoccopublic.azurecr.io/rag-backend + image: docker.io/fr4nc3/rag-backend ports: - "8082:80" env_file: diff --git a/docs/LOCAL_DEPLOYMENT.md b/docs/LOCAL_DEPLOYMENT.md index 1a8d653bc..93b3807fb 100644 --- a/docs/LOCAL_DEPLOYMENT.md +++ b/docs/LOCAL_DEPLOYMENT.md @@ -187,7 +187,7 @@ docker push YOUR_DOCKER_REGISTRY/YOUR_DOCKER_IMAGE |AZURE_OPENAI_MAX_TOKENS|1000|The maximum number of tokens allowed for the generated answer.| |AZURE_OPENAI_STOP_SEQUENCE||Up to 4 sequences where the API will stop generating further tokens. Represent these as a string joined with "|", e.g. `"stop1|stop2|stop3"`| |AZURE_OPENAI_SYSTEM_MESSAGE|You are an AI assistant that helps people find information.|A brief description of the role and tone the model should use| -|AZURE_OPENAI_API_VERSION|2023-06-01-preview|API version when using Azure OpenAI on your data| +|AZURE_OPENAI_API_VERSION|2023-12-01-preview|API version when using Azure OpenAI on your data| |AzureWebJobsStorage||The connection string to the Azure Blob Storage for the Azure Functions Batch processing| |BACKEND_URL||The URL for the Backend Batch Azure Function. Use http://localhost:7071 for local execution and http://backend for docker compose| |DOCUMENT_PROCESSING_QUEUE_NAME|doc-processing|The name of the Azure Queue to handle the Batch processing| @@ -202,4 +202,4 @@ docker push YOUR_DOCKER_REGISTRY/YOUR_DOCKER_IMAGE |AZURE_CONTENT_SAFETY_KEY | | The key of the Azure AI Content Safety service| |AZURE_SPEECH_SERVICE_KEY | | The key of the Azure Speech service| |AZURE_SPEECH_SERVICE_REGION | | The region (location) of the Azure Speech service| -|AZURE_AUTH_TYPE | rbac | Change the value to 'keys' to authenticate using AZURE API keys. For more information refer to section [Authenticate using RBAC](#authenticate-using-rbac) +|AZURE_AUTH_TYPE | rbac | Change the value to 'keys' to authenticate using AZURE API keys. For more information refer to section [Authenticate using RBAC](#authenticate-using-rbac) \ No newline at end of file diff --git a/docs/TEAMS_EXTENSION.md b/docs/TEAMS_EXTENSION.md index efca5220c..72fbe6588 100644 --- a/docs/TEAMS_EXTENSION.md +++ b/docs/TEAMS_EXTENSION.md @@ -1,16 +1,14 @@ [Back to *Chat with your data* README](../README.md) # Teams extension -[**USER STORY**](#user-story) | [**ONE-CLICK DEPLOY**](#one-click-deploy) | [**SUPPORTING DOCUMENTATION**](#supporting-documentation) +[**USER STORY**](#user-story) | [**TEAMS DEPLOY**](#teams-deploy) | [**SUPPORTING DOCUMENTATION**](#supporting-documentation) \ \ ![User Story](/media/userStory.png) ## User story This extension enables users to experience Chat with your data within Teams, without having to switch platforms. It allows them to stay within their existing workflow and get the answers they need. Instead of building the Chat with your data solution accelerator from scratch within Teams, the same underlying backend used for the web application is leveraged within Teams. -\ -\ -![One-click Deploy](/media/oneClickDeploy.png) -## One-click deploy + +## Deployment to Teams **IMPORTANT**: Before you proceed, installation and configuration of the [Chat with your data with speech-to-text deployment](../README.md) is required. ### Pre-requisites @@ -22,31 +20,6 @@ This extension enables users to experience Chat with your data within Teams, wit - [Enable custom Teams apps and turn on custom app uploading](https://learn.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/prepare-your-o365-tenant#enable-custom-teams-apps-and-turn-on-custom-app-uploading) (optional: Teams extension only) - In order to publish the App to the Teams Store, the Teams Administrator role is required. -### Deploy backend Azure Function - -[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure-Samples%2Fchat-with-your-data-solution-accelerator%2Fmain%2Fextensions%2Finfrastructure%2Fmain.json) - -Note: The (p) suffix on the App Setting (below) means that you should use the same resources and services deployed during the [Chat with your data with speech-to-text deployment](../README.md) - -| App Setting | Note | -| --- | ------------- | -|Resource group | The resource group that will contain the resources for this accelerator. You can select Create new to create a new group or use the existing resource group created with [Speech-to-text deployment](#speech-to-text-deployment). | -|Resource prefix | A text string that will be appended to each resource that gets created, and used as the website name for the web app. This name cannot contain spaces or special characters. | -|App Insights Connection String (p) | The Application Insights connection string to store the application logs. | -|Azure AI Search (p) | The **name** of your Azure AI Search resource. e.g. https://<**name**>.search.windows.net. | -|Azure Search Index (p) | The name of your Azure AI Search Index. | -|Azure Search Key (p) | An admin key for your Azure AI Search resource. | -|Azure OpenAI resource (p) | The name of your Azure OpenAI resource. This resource must have already been created previously. | -|Azure OpenAI key (p) | The access key is associated with your Azure OpenAI resource. | -|Orchestration strategy (p) | Use Azure OpenAI Functions (openai_functions) or LangChain (langchain) for messages orchestration. If you are using a new model version 0613 select "openai_functions" (or "langchain"), if you are using a model version 0314 select "langchain". | -|Azure Form Recognizer Endpoint (p) | The name of the Azure Form Recognizer for extracting the text from the documents. | -|Azure Form Recognizer Key (p) | The key of the Azure Form Recognizer for extracting the text from the documents. | -|Azure Blob Account Name (p) | The name of the Azure Blob Storage for storing the original documents to be processed. | -|Azure Blob Account Key (p) | The key of the Azure Blob Storage for storing the original documents to be processed. | -|Azure Blob Container Name (p) | The name of the Container in the Azure Blob Storage for storing the original documents to be processed. | - -You can find the [ARM template](/extensions/infrastructure/main.json) used, along with a [Bicep file](/extensions/infrastructure/main.bicep) for deploying this accelerator in the /infrastructure directory. - ### Deploy Teams application 1. Clone this GitHub repo. 2. Open the “extensions/teams” folder with Visual Studio Code @@ -57,8 +30,13 @@ You can find the [ARM template](/extensions/infrastructure/main.json) used, alon ![ENV](/media/teams-1.png) -4. Locate the environment variable AZURE_FUNCTION_URL. -5. Replace the with the name of your Function App resource (created in previous section) +4. Locate the environment variable _AZURE_FUNCTION_URL_. +5. Replace the `` and `` with the name of your Function App resource and its clientKey (created in previous section) + ```env + AZURE_FUNCTION_URL=https://-backend.azurewebsites.net/api/GetConversationResponse?code=&clientId=clientKey + + ``` + ![Env](/media/teams-deploy-env.png) 6. Save the file. 7. Select Teams Toolkit from the navigation panel. @@ -166,4 +144,4 @@ To customize the accelerator or run it locally, first, copy the .env.sample file ## Supporting documentation ### Resource links for Teams extension This solution accelerator deploys the following resources. It's crucial to comprehend the functionality of each. Below are the links to their respective documentation: -- [Bots in Microsoft Teams - Teams | Microsoft Learn](https://learn.microsoft.com/en-us/microsoftteams/platform/bots/what-are-bots) +- [Bots in Microsoft Teams - Teams | Microsoft Learn](https://learn.microsoft.com/en-us/microsoftteams/platform/bots/what-are-bots) \ No newline at end of file diff --git a/docs/TEAMS_LOCAL_DEPLOYMENT.md b/docs/TEAMS_LOCAL_DEPLOYMENT.md index 6e533c5cd..e40dd34cd 100644 --- a/docs/TEAMS_LOCAL_DEPLOYMENT.md +++ b/docs/TEAMS_LOCAL_DEPLOYMENT.md @@ -14,30 +14,26 @@ First, install [Azure Functions Core Tools](https://learn.microsoft.com/en-us/az ```shell -cd extensions -cd backend +cd code\batch func start ``` Or use the [Azure Functions VS Code extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azurefunctions). -#### Building the Teams Backend Docker image -```shell -docker build -f extensions\docker\Backend.Dockerfile -t YOUR_DOCKER_REGISTRY/YOUR_DOCKER_IMAGE . -docker run --env-file .env -p 7071:80 YOUR_DOCKER_REGISTRY/YOUR_DOCKER_IMAGE -docker push YOUR_DOCKER_REGISTRY/YOUR_DOCKER_IMAGE -``` ### Develop & run the Teams Frontend 1. Open the “extensions/teams” folder with Visual Studio Code ![Teams](/media/teams.png) 2. Open the file env\\.env.local -3. Locate the environment variable AZURE_FUNCTION_URL. -4. Replace the with your local Teams Backend URL (i.e., http://localhost:7071/api/http_cwyod) +3. Locate the environment variable _AZURE_FUNCTION_URL_. -![Env](/media/teams-local-3.png) +4. Replace the `` with your local Teams Backend URL (i.e., http://localhost:7071/api/GetConversationResponse) + ```env + AZURE_FUNCTION_URL=http://localhost:7071/api/GetConversationResponse + ``` + ![Env](/media/teams-local-3.png) 5. Save the file. 6. Select Teams Toolkit from the navigation panel. @@ -76,7 +72,7 @@ docker push YOUR_DOCKER_REGISTRY/YOUR_DOCKER_IMAGE |AZURE_OPENAI_MAX_TOKENS|1000|The maximum number of tokens allowed for the generated answer.| |AZURE_OPENAI_STOP_SEQUENCE||Up to 4 sequences where the API will stop generating further tokens. Represent these as a string joined with "|", e.g. `"stop1|stop2|stop3"`| |AZURE_OPENAI_SYSTEM_MESSAGE|You are an AI assistant that helps people find information.|A brief description of the role and tone the model should use| -|AZURE_OPENAI_API_VERSION|2023-06-01-preview|API version when using Azure OpenAI on your data| +|AZURE_OPENAI_API_VERSION|2023-12-01-preview|API version when using Azure OpenAI on your data| |AzureWebJobsStorage||The connection string to the Azure Blob Storage for the Azure Functions Batch processing| |BACKEND_URL||The URL for the Backend Batch Azure Function. Use http://localhost:7071 for local execution and http://backend for docker compose| |DOCUMENT_PROCESSING_QUEUE_NAME|doc-processing|The name of the Azure Queue to handle the Batch processing| @@ -90,4 +86,4 @@ docker push YOUR_DOCKER_REGISTRY/YOUR_DOCKER_IMAGE |AZURE_CONTENT_SAFETY_ENDPOINT | | The endpoint of the Azure AI Content Safety service | |AZURE_CONTENT_SAFETY_KEY | | The key of the Azure AI Content Safety service| |AZURE_SPEECH_SERVICE_KEY | | The key of the Azure Speech service| -|AZURE_SPEECH_SERVICE_REGION | | The region (location) of the Azure Speech service| +|AZURE_SPEECH_SERVICE_REGION | | The region (location) of the Azure Speech service| \ No newline at end of file diff --git a/extensions/infrastructure/main.bicep b/extensions/infrastructure/main.bicep index 0e8080717..a37d65ff5 100644 --- a/extensions/infrastructure/main.bicep +++ b/extensions/infrastructure/main.bicep @@ -104,7 +104,7 @@ param AzureOpenAIStopSequence string = '\n' param AzureOpenAISystemMessage string = 'You are an AI assistant that helps people find information.' @description('Azure OpenAI Api Version - Created during the "Chat with your data" Solution Accelerator') -param AzureOpenAIApiVersion string = '2023-07-01-preview' +param AzureOpenAIApiVersion string = '2023-12-01-preview' @description('Whether or not to stream responses from Azure OpenAI - Created during the "Chat with your data" Solution Accelerator') param AzureOpenAIStream string = 'true' @@ -129,7 +129,7 @@ param AzureBlobAccountKey string @description('Storage Account Container Name - Created during the "Chat with your data" Solution Accelerator') param AzureBlobContainerName string -var BackendImageName = 'DOCKER|fruoccopublic.azurecr.io/cwyod_backend' +var BackendImageName = 'DOCKER|docker.io/fr4nc3/rag-backend' resource HostingPlan 'Microsoft.Web/serverfarms@2020-06-01' = { name: HostingPlanName @@ -214,4 +214,4 @@ resource WaitFunctionDeploymentSection 'Microsoft.Resources/deploymentScripts@20 dependsOn: [ Function ] -} \ No newline at end of file +} diff --git a/extensions/infrastructure/main.json b/extensions/infrastructure/main.json index e01afd9e7..69c471a60 100644 --- a/extensions/infrastructure/main.json +++ b/extensions/infrastructure/main.json @@ -217,7 +217,7 @@ }, "AzureOpenAIApiVersion": { "type": "string", - "defaultValue": "2023-07-01-preview", + "defaultValue": "2023-12-01-preview", "metadata": { "description": "Azure OpenAI Api Version - Created during the \"Chat with your data\" Solution Accelerator" } @@ -268,7 +268,7 @@ } }, "variables": { - "BackendImageName": "DOCKER|fruoccopublic.azurecr.io/cwyod_backend" + "BackendImageName": "DOCKER|docker.io/fr4nc3//rag-backend" }, "resources": [ { diff --git a/extensions/teams/appPackage/manifest.json b/extensions/teams/appPackage/manifest.json index c48178e60..e0a8e8245 100644 --- a/extensions/teams/appPackage/manifest.json +++ b/extensions/teams/appPackage/manifest.json @@ -1,7 +1,7 @@ { "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json", "manifestVersion": "1.16", - "version": "1.0.0", + "version": "1.1.4", "id": "${{TEAMS_APP_ID}}", "packageName": "com.microsoft.teams.extension", "developer": { diff --git a/extensions/teams/cards/cardBuilder.ts b/extensions/teams/cards/cardBuilder.ts new file mode 100644 index 000000000..b6087e16f --- /dev/null +++ b/extensions/teams/cards/cardBuilder.ts @@ -0,0 +1,112 @@ +import { Attachment, CardFactory } from "botbuilder"; +import { Citation, CardType } from "../model"; + +export function actionBuilder(citation: Citation, docId: number): any { + + const urlParts = citation.url.split("]"); + let url = urlParts[urlParts.length - 1].replaceAll("(", "").replaceAll(")", ""); + let title = citation.title.replaceAll("/documents/", ""); + let content = citation.content.replaceAll(citation.title, "").replaceAll("url", ""); + content = content.replaceAll(/(<([^>]+)>)/ig, "\n").replaceAll("<>", ""); + let citationCardAction = { + title: `Ref${docId}`, + type: CardType.ShowCard, + card: { + type: CardType.AdaptiveCard, + body: [ + { + type: CardType.TextBlock, + text: `Reference - Part ${parseInt(citation.chunk_id) + 1}`, + wrap: true, + size: "small", + }, + { + type: CardType.TextBlock, + text: title, + wrap: true, + weight: "Bolder", + size: "Large", + }, + { + type: CardType.TextBlock, + text: content, + wrap: true + } + ], + actions: [ + { + type: CardType.OpenUrl, + title: "Go to the source", + url: url, + } + ] + } + }; + + return citationCardAction; +} +export function cardBodyBuilder(citations: any[], assistantAnswer: string): any { + let answerCard = { + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.6", + type: CardType.AdaptiveCard, + body: [ + { + type: CardType.TextBlock, + text: assistantAnswer, + wrap: true + + }, { + type: 'ActionSet', + actions: [] + } + ], + actions: [], + msteams: { + width: "Full" + } + }; + if (citations.length <= 6) { + answerCard["actions"] = citations; + } else { + const chunkSize = 5; + for (let i = 0; i < citations.length; i += chunkSize) { + const chunk = citations.slice(i, i + chunkSize); + answerCard["body"].push({ + type: 'ActionSet', + actions: chunk + }); + } + } + + return answerCard; +} +export function cwydResponseBuilder(citations: Citation[], assistantAnswer: string): Attachment { + let citationActions: any[] = []; + let docId = 1; + let deleteEnd = ""; + let deleteEndSpace = ""; + let refCount = 1; + let findPart = {}; + let reIndex = 0; + citations.map((citation: Citation) => { + if (!(citation.chunk_id in findPart)) { + reIndex = docId; + citationActions.push(actionBuilder(citation, reIndex)); + findPart[citation.chunk_id] = reIndex; + docId++; + } else { + reIndex = findPart[citation.chunk_id]; + } + + deleteEnd += `[${reIndex}]`; + deleteEndSpace += ` [${reIndex}]`; + assistantAnswer = assistantAnswer.replaceAll(`[doc${refCount}]`, `[${reIndex}]`); + + refCount++; + }); + assistantAnswer = assistantAnswer.replaceAll(deleteEnd, ""); + assistantAnswer = assistantAnswer.replaceAll(deleteEndSpace, ""); + let answerCard = CardFactory.adaptiveCard(cardBodyBuilder(citationActions, assistantAnswer)); + return answerCard; +} \ No newline at end of file diff --git a/extensions/teams/env/.env.dev b/extensions/teams/env/.env.dev index cc4e23e7b..cf35d4966 100644 --- a/extensions/teams/env/.env.dev +++ b/extensions/teams/env/.env.dev @@ -14,4 +14,4 @@ BOT_ID= TEAMS_APP_ID= BOT_AZURE_APP_SERVICE_RESOURCE_ID= BOT_DOMAIN= -AZURE_FUNCTION_URL=https://.azurewebsites.net/api/http_cwyod \ No newline at end of file +AZURE_FUNCTION_URL=https://-backend.azurewebsites.net/api/GetConversationResponse?code=&clientId=clientKey \ No newline at end of file diff --git a/extensions/teams/env/.env.test b/extensions/teams/env/.env.test index 2ddddaed7..56c299b9a 100644 --- a/extensions/teams/env/.env.test +++ b/extensions/teams/env/.env.test @@ -14,6 +14,6 @@ BOT_ID= TEAMS_APP_ID= BOT_AZURE_APP_SERVICE_RESOURCE_ID= BOT_DOMAIN= -AZURE_FUNCTION_URL=https://.azurewebsites.net/api/http_cwyod +AZURE_FUNCTION_URL=https://-backend.azurewebsites.net/api/GetConversationResponse?code=&clientId=clientKey TEAMS_APP_TENANT_ID= TEAMS_APP_PUBLISHED_APP_ID= \ No newline at end of file diff --git a/extensions/teams/env/.env.testtool b/extensions/teams/env/.env.testtool index 2b45eb48b..e7d1b25ab 100644 --- a/extensions/teams/env/.env.testtool +++ b/extensions/teams/env/.env.testtool @@ -5,4 +5,4 @@ TEAMSFX_ENV=testtool # Environment variables used by test tool TEAMSAPPTESTER_PORT=56150 -AZURE_FUNCTION_URL=https://.azurewebsites.net/api/http_cwyod \ No newline at end of file +AZURE_FUNCTION_URL=https://-backend.azurewebsites.net/api/GetConversationResponse?code=&clientId=clientKey \ No newline at end of file diff --git a/extensions/teams/model.ts b/extensions/teams/model.ts index eb9156d2f..71d42f2e8 100644 --- a/extensions/teams/model.ts +++ b/extensions/teams/model.ts @@ -15,6 +15,13 @@ export type Citation = { reindex_id: string | null; } +export enum CardType { + OpenUrl = "Action.OpenUrl", + ShowCard = "Action.ShowCard", + AdaptiveCard = "AdaptiveCard", + TextBlock = "TextBlock" +} + export type ToolMessageContent = { citations: Citation[]; intent: string; diff --git a/extensions/teams/teamsBot.ts b/extensions/teams/teamsBot.ts index 5ba4fce75..23b784153 100644 --- a/extensions/teams/teamsBot.ts +++ b/extensions/teams/teamsBot.ts @@ -2,7 +2,7 @@ import { TeamsActivityHandler, TurnContext, ActivityTypes, - MessageFactory, + MessageFactory } from "botbuilder"; import config from "./config"; import { @@ -11,6 +11,7 @@ import { ToolMessageContent, Citation, } from "./model"; +import { cwydResponseBuilder } from "./cards/cardBuilder"; const EMPTY_RESPONSE = "Sorry, I do not have an answer. Please try again."; @@ -19,6 +20,7 @@ export class TeamsBot extends TeamsActivityHandler { super(); let newActivity; let assistantAnswer = ""; + let activityUpdated = true; this.onMessage(async (context, next) => { console.log("Running with Message Activity."); @@ -118,32 +120,41 @@ export class TeamsBot extends TeamsActivityHandler { assistantAnswer = answer.content; if (assistantAnswer.startsWith("[doc")) { assistantAnswer = EMPTY_RESPONSE; + newActivity = MessageFactory.text(assistantAnswer); } else { - const citations = parseCitationFromMessage(answers[index - 1]); - let docId = 1; - citations.map((citation: Citation) => { - const urlParts = citation.url.split("]"); - const url = urlParts[urlParts.length - 1]; - assistantAnswer = assistantAnswer.replaceAll( - `[doc${docId}]`, - `[[${citation.filepath}]${url}]` - ); - docId++; - }); + const citations = parseCitationFromMessage(answers[index - 1]) as Citation[]; + if (citations.length === 0) { + newActivity = MessageFactory.text(assistantAnswer); + newActivity.id = reply.id; + } else { + newActivity = MessageFactory.attachment(cwydResponseBuilder(citations, assistantAnswer)); + activityUpdated = false; + } } - newActivity = MessageFactory.text(assistantAnswer); - newActivity.id = reply.id; } else if (answer.role === "error") { newActivity = MessageFactory.text( "Sorry, an error occurred. Try waiting a few minutes. If the issue persists, contact your system administrator. Error: " + - answer.content + answer.content ); newActivity.id = reply.id; } + }); newActivity.typing = false; // Stop the ellipses visual indicator - await context.updateActivity(newActivity); + + if (activityUpdated) { + await context.updateActivity(newActivity); + } else { + try { + await context.deleteActivity(reply.id); + } catch (error) { + console.log('Error in deleting message', error); + } + await context.sendActivity(newActivity); + } + } catch (error) { + console.log('Error in onMessage:', error); } finally { } @@ -164,4 +175,4 @@ export class TeamsBot extends TeamsActivityHandler { await next(); }); } -} +} \ No newline at end of file diff --git a/infra/deployment.bicep b/infra/deployment.bicep index 8f6da40ad..0ed5d7a3f 100644 --- a/infra/deployment.bicep +++ b/infra/deployment.bicep @@ -104,7 +104,7 @@ param AzureOpenAIStopSequence string = '\n' param AzureOpenAISystemMessage string = 'You are an AI assistant that helps people find information.' @description('Azure OpenAI Api Version') -param AzureOpenAIApiVersion string = '2023-07-01-preview' +param AzureOpenAIApiVersion string = '2023-12-01-preview' @description('Whether or not to stream responses from Azure OpenAI') param AzureOpenAIStream string = 'true' @@ -156,9 +156,9 @@ param authType string = 'keys' @description('Id of the user or app to assign application roles') param principalId string = '' -var WebAppImageName = 'DOCKER|fruoccopublic.azurecr.io/rag-webapp' -var AdminWebAppImageName = 'DOCKER|fruoccopublic.azurecr.io/rag-adminwebapp' -var BackendImageName = 'DOCKER|fruoccopublic.azurecr.io/rag-backend' +var WebAppImageName = 'DOCKER|docker.io/fr4nc3/rag-webapp' +var AdminWebAppImageName = 'DOCKER|docker.io/fr4nc3/rag-adminwebapp' +var BackendImageName = 'DOCKER|docker.io/fr4nc3/rag-backend' var BlobContainerName = 'documents' var QueueName = 'doc-processing' @@ -510,6 +510,7 @@ resource Function 'Microsoft.Web/sites@2018-11-01' = { properties: { siteConfig: { appSettings: [ + { name: 'APPINSIGHTS_CONNECTION_STRING', value: reference(ApplicationInsights.id, '2015-05-01').ConnectionString } { name: 'FUNCTIONS_EXTENSION_VERSION', value: '~4' } { name: 'WEBSITES_ENABLE_APP_SERVICE_STORAGE', value: 'false' } { name: 'APPINSIGHTS_INSTRUMENTATIONKEY', value: reference(ApplicationInsights.id, '2015-05-01').InstrumentationKey } @@ -904,4 +905,4 @@ module searchIndexDataContUser 'security/role.bicep' = if (authType == 'rbac' && roleDefinitionId: '8ebe5a00-799e-43f5-93ac-243d3dce84a7' principalType: 'User' } -} \ No newline at end of file +} diff --git a/infra/deployment.json b/infra/deployment.json index f805e8c94..423852bd1 100644 --- a/infra/deployment.json +++ b/infra/deployment.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "8362420292927365599" + "version": "0.25.53.49325", + "templateHash": "10944925979843412005" } }, "parameters": { @@ -230,7 +230,7 @@ }, "AzureOpenAIApiVersion": { "type": "string", - "defaultValue": "2023-07-01-preview", + "defaultValue": "2023-12-01-preview", "metadata": { "description": "Azure OpenAI Api Version" } @@ -340,9 +340,9 @@ } }, "variables": { - "WebAppImageName": "DOCKER|fruoccopublic.azurecr.io/rag-webapp", - "AdminWebAppImageName": "DOCKER|fruoccopublic.azurecr.io/rag-adminwebapp", - "BackendImageName": "DOCKER|fruoccopublic.azurecr.io/rag-backend", + "WebAppImageName": "DOCKER|docker.io/fr4nc3/rag-webapp", + "AdminWebAppImageName": "DOCKER|docker.io/fr4nc3/rag-adminwebapp", + "BackendImageName": "DOCKER|docker.io/fr4nc3/rag-backend", "BlobContainerName": "documents", "QueueName": "doc-processing", "ClientKey": "[format('{0}{1}', uniqueString(guid(resourceGroup().id, deployment().name)), parameters('newGuidString'))]", @@ -956,6 +956,9 @@ "properties": { "siteConfig": { "appSettings": [ + { + "name": "APPINSIGHTS_CONNECTION_STRING", + }, { "name": "FUNCTIONS_EXTENSION_VERSION", "value": "~4" @@ -1173,8 +1176,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -1242,8 +1245,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -1311,8 +1314,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -1380,8 +1383,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -1449,8 +1452,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -1518,8 +1521,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -1584,8 +1587,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -1653,8 +1656,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -1722,8 +1725,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -1791,8 +1794,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -1860,8 +1863,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -1929,8 +1932,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -1998,8 +2001,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -2064,8 +2067,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -2133,8 +2136,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -2202,8 +2205,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -2271,8 +2274,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -2340,8 +2343,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -2406,8 +2409,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -2475,8 +2478,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -2544,8 +2547,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -2613,8 +2616,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -2679,8 +2682,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -2748,8 +2751,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -2817,8 +2820,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, @@ -2886,8 +2889,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.24.24.22086", - "templateHash": "2184194315885104837" + "version": "0.25.53.49325", + "templateHash": "15698903649631098787" }, "description": "Creates a role assignment for a service principal." }, diff --git a/media/chat-app.png b/media/chat-app.png index f7bffa9d6d977de23aadb0c3ffb387e5029a96ff..d7c6716d0529e2edf3fec03ceb5c0bdc58690c16 100644 GIT binary patch literal 61279 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%0Dp4Y1 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 diff --git a/media/teams-deploy-env.png b/media/teams-deploy-env.png new file mode 100644 index 0000000000000000000000000000000000000000..ea4bccb8482f44952caa8b767cd5ea2621a72474 GIT binary patch literal 67835 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 Hu0mjf+C`0- literal 0 HcmV?d00001 diff --git a/media/teams-local-3.png b/media/teams-local-3.png index 4738693117fbcfeda7baf057da43200f960fb689..5e9de298dd2176a91c0f38baca2a9fd337537cbf 100644 GIT binary patch literal 41541 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 literal 13249 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 Q`za1Y3HrR?nQ7qv0u}ReGynhq From 19092fadc3f6673b2a0450b1152a5300e2855737 Mon Sep 17 00:00:00 2001 From: Francia Riesco Date: Tue, 20 Feb 2024 17:30:31 -0500 Subject: [PATCH 2/4] Update deployment.json --- infra/deployment.json | 1 + 1 file changed, 1 insertion(+) diff --git a/infra/deployment.json b/infra/deployment.json index 423852bd1..4ae3fe355 100644 --- a/infra/deployment.json +++ b/infra/deployment.json @@ -958,6 +958,7 @@ "appSettings": [ { "name": "APPINSIGHTS_CONNECTION_STRING", + "value": "[reference(resourceId('Microsoft.Insights/components', parameters('ApplicationInsightsName')), '2015-05-01').ConnectionString]" }, { "name": "FUNCTIONS_EXTENSION_VERSION", From bb27a6a0a07e0adae8ef4df28e23c97fd9299af4 Mon Sep 17 00:00:00 2001 From: Francia Riesco Date: Tue, 20 Feb 2024 17:45:30 -0500 Subject: [PATCH 3/4] Update requirements.txt --- code/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/requirements.txt b/code/requirements.txt index 03703c69f..f88a9ea97 100644 --- a/code/requirements.txt +++ b/code/requirements.txt @@ -16,7 +16,7 @@ beautifulsoup4==4.12.3 fake-useragent==1.4.0 chardet==5.2.0 --extra-index-url https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-python/pypi/simple/ -azure-search-documents==11.4.0b8 +azure-search-documents==11.4.0 opencensus-ext-azure==1.1.13 pandas==2.2.0 python-docx==1.1.0 From a4ea1d4227dea56608d0150018d07b947076ea32 Mon Sep 17 00:00:00 2001 From: Francia Riesco Date: Tue, 20 Feb 2024 17:54:14 -0500 Subject: [PATCH 4/4] rollback docker endpoints --- .github/workflows/AdminWebApp.yml | 12 ++++++------ .github/workflows/Backend.yml | 12 ++++++------ .github/workflows/CwyodBackend.yml | 12 ++++++------ .github/workflows/WebApp.yml | 12 ++++++------ docker/docker-compose.yml | 6 +++--- extensions/infrastructure/main.bicep | 2 +- extensions/infrastructure/main.json | 2 +- infra/deployment.bicep | 6 +++--- infra/deployment.json | 6 +++--- 9 files changed, 35 insertions(+), 35 deletions(-) diff --git a/.github/workflows/AdminWebApp.yml b/.github/workflows/AdminWebApp.yml index 00dac4448..eb1b5d5fd 100644 --- a/.github/workflows/AdminWebApp.yml +++ b/.github/workflows/AdminWebApp.yml @@ -15,15 +15,15 @@ jobs: - name: Docker Login uses: docker/login-action@v3 with: - registry: docker.io/fr4nc3 + registry: fruoccopublic.azurecr.io username: fruoccopublic password: ${{ secrets.DOCKER_PASSWORD }} - uses: actions/checkout@v4 - name: Build the Docker image run: - docker pull docker.io/fr4nc3/rag-adminwebapp:latest || true; - docker build . --file docker/AdminWebApp.Dockerfile --cache-from docker.io/fr4nc3/rag-adminwebapp:latest --tag docker.io/fr4nc3/rag-adminwebapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker tag docker.io/fr4nc3/rag-adminwebapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER docker.io/fr4nc3/rag-adminwebapp:latest; - docker push docker.io/fr4nc3/rag-adminwebapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker push docker.io/fr4nc3/rag-adminwebapp:latest; \ No newline at end of file + docker pull fruoccopublic.azurecr.io/rag-adminwebapp:latest || true; + docker build . --file docker/AdminWebApp.Dockerfile --cache-from fruoccopublic.azurecr.io/rag-adminwebapp:latest --tag fruoccopublic.azurecr.io/rag-adminwebapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker tag fruoccopublic.azurecr.io/rag-adminwebapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER fruoccopublic.azurecr.io/rag-adminwebapp:latest; + docker push fruoccopublic.azurecr.io/rag-adminwebapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker push fruoccopublic.azurecr.io/rag-adminwebapp:latest; \ No newline at end of file diff --git a/.github/workflows/Backend.yml b/.github/workflows/Backend.yml index 6f82d2c31..2791adeb5 100644 --- a/.github/workflows/Backend.yml +++ b/.github/workflows/Backend.yml @@ -15,16 +15,16 @@ jobs: - name: Docker Login uses: docker/login-action@v3 with: - registry: docker.io/fr4nc3 + registry: fruoccopublic.azurecr.io username: fruoccopublic password: ${{ secrets.DOCKER_PASSWORD }} - uses: actions/checkout@v4 - name: Build the Docker image run: - docker pull docker.io/fr4nc3/rag-backend:latest || true; - docker build . --file docker/Backend.Dockerfile --cache-from docker.io/fr4nc3/rag-backend:latest --tag docker.io/fr4nc3/rag-backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker tag docker.io/fr4nc3/rag-backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER docker.io/fr4nc3/rag-backend:latest; - docker push docker.io/fr4nc3/rag-backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker push docker.io/fr4nc3/rag-backend:latest; + docker pull fruoccopublic.azurecr.io/rag-backend:latest || true; + docker build . --file docker/Backend.Dockerfile --cache-from fruoccopublic.azurecr.io/rag-backend:latest --tag fruoccopublic.azurecr.io/rag-backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker tag fruoccopublic.azurecr.io/rag-backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER fruoccopublic.azurecr.io/rag-backend:latest; + docker push fruoccopublic.azurecr.io/rag-backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker push fruoccopublic.azurecr.io/rag-backend:latest; \ No newline at end of file diff --git a/.github/workflows/CwyodBackend.yml b/.github/workflows/CwyodBackend.yml index 76bf62289..64352adca 100644 --- a/.github/workflows/CwyodBackend.yml +++ b/.github/workflows/CwyodBackend.yml @@ -15,16 +15,16 @@ jobs: - name: Docker Login uses: docker/login-action@v3 with: - registry: docker.io/fr4nc3 + registry: fruoccopublic.azurecr.io username: fruoccopublic password: ${{ secrets.DOCKER_PASSWORD }} - uses: actions/checkout@v4 - name: Build the Docker image run: - docker pull docker.io/fr4nc3/cwyod_backend:latest || true; - docker build . --file extensions/docker/Backend.Dockerfile --cache-from docker.io/fr4nc3/cwyod_backend:latest --tag docker.io/fr4nc3/cwyod_backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker tag docker.io/fr4nc3/cwyod_backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER docker.io/fr4nc3/cwyod_backend:latest; - docker push docker.io/fr4nc3/cwyod_backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker push docker.io/fr4nc3/cwyod_backend:latest; + docker pull fruoccopublic.azurecr.io/cwyod_backend:latest || true; + docker build . --file extensions/docker/Backend.Dockerfile --cache-from fruoccopublic.azurecr.io/cwyod_backend:latest --tag fruoccopublic.azurecr.io/cwyod_backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker tag fruoccopublic.azurecr.io/cwyod_backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER fruoccopublic.azurecr.io/cwyod_backend:latest; + docker push fruoccopublic.azurecr.io/cwyod_backend:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker push fruoccopublic.azurecr.io/cwyod_backend:latest; \ No newline at end of file diff --git a/.github/workflows/WebApp.yml b/.github/workflows/WebApp.yml index bb3e87a55..789d8cef1 100644 --- a/.github/workflows/WebApp.yml +++ b/.github/workflows/WebApp.yml @@ -15,15 +15,15 @@ jobs: - name: Docker Login uses: docker/login-action@v3 with: - registry: docker.io/fr4nc3 + registry: fruoccopublic.azurecr.io username: fruoccopublic password: ${{ secrets.DOCKER_PASSWORD }} - uses: actions/checkout@v4 - name: Build the Docker image run: - docker pull docker.io/fr4nc3/rag-webapp:latest || true; - docker build . --file docker/WebApp.Dockerfile --cache-from docker.io/fr4nc3/rag-webapp:latest --tag docker.io/fr4nc3/rag-webapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker tag docker.io/fr4nc3/rag-webapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER docker.io/fr4nc3/rag-webapp:latest; - docker push docker.io/fr4nc3/rag-webapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; - docker push docker.io/fr4nc3/rag-webapp:latest; \ No newline at end of file + docker pull fruoccopublic.azurecr.io/rag-webapp:latest || true; + docker build . --file docker/WebApp.Dockerfile --cache-from fruoccopublic.azurecr.io/rag-webapp:latest --tag fruoccopublic.azurecr.io/rag-webapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker tag fruoccopublic.azurecr.io/rag-webapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER fruoccopublic.azurecr.io/rag-webapp:latest; + docker push fruoccopublic.azurecr.io/rag-webapp:$(date +'%Y-%m-%d')_$GITHUB_RUN_NUMBER; + docker push fruoccopublic.azurecr.io/rag-webapp:latest; \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 24285f11c..10c056d5d 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -2,19 +2,19 @@ version: "0.1" name: rag services: web: - image: docker.io/fr4nc3/rag-webapp + image: fruoccopublic.azurecr.io/rag-webapp ports: - "8080:80" env_file: - ../.env admin: - image: docker.io/fr4nc3/rag-adminwebapp + image: fruoccopublic.azurecr.io/rag-adminwebapp ports: - "8081:80" env_file: - ../.env backend: - image: docker.io/fr4nc3/rag-backend + image: fruoccopublic.azurecr.io/rag-backend ports: - "8082:80" env_file: diff --git a/extensions/infrastructure/main.bicep b/extensions/infrastructure/main.bicep index a37d65ff5..a6ad89062 100644 --- a/extensions/infrastructure/main.bicep +++ b/extensions/infrastructure/main.bicep @@ -129,7 +129,7 @@ param AzureBlobAccountKey string @description('Storage Account Container Name - Created during the "Chat with your data" Solution Accelerator') param AzureBlobContainerName string -var BackendImageName = 'DOCKER|docker.io/fr4nc3/rag-backend' +var BackendImageName = 'DOCKER|fruoccopublic.azurecr.io/rag-backend' resource HostingPlan 'Microsoft.Web/serverfarms@2020-06-01' = { name: HostingPlanName diff --git a/extensions/infrastructure/main.json b/extensions/infrastructure/main.json index 69c471a60..32c6949a9 100644 --- a/extensions/infrastructure/main.json +++ b/extensions/infrastructure/main.json @@ -268,7 +268,7 @@ } }, "variables": { - "BackendImageName": "DOCKER|docker.io/fr4nc3//rag-backend" + "BackendImageName": "DOCKER|fruoccopublic.azurecr.io//rag-backend" }, "resources": [ { diff --git a/infra/deployment.bicep b/infra/deployment.bicep index 0ed5d7a3f..d4b3bdb09 100644 --- a/infra/deployment.bicep +++ b/infra/deployment.bicep @@ -156,9 +156,9 @@ param authType string = 'keys' @description('Id of the user or app to assign application roles') param principalId string = '' -var WebAppImageName = 'DOCKER|docker.io/fr4nc3/rag-webapp' -var AdminWebAppImageName = 'DOCKER|docker.io/fr4nc3/rag-adminwebapp' -var BackendImageName = 'DOCKER|docker.io/fr4nc3/rag-backend' +var WebAppImageName = 'DOCKER|fruoccopublic.azurecr.io/rag-webapp' +var AdminWebAppImageName = 'DOCKER|fruoccopublic.azurecr.io/rag-adminwebapp' +var BackendImageName = 'DOCKER|fruoccopublic.azurecr.io/rag-backend' var BlobContainerName = 'documents' var QueueName = 'doc-processing' diff --git a/infra/deployment.json b/infra/deployment.json index 4ae3fe355..2012dc700 100644 --- a/infra/deployment.json +++ b/infra/deployment.json @@ -340,9 +340,9 @@ } }, "variables": { - "WebAppImageName": "DOCKER|docker.io/fr4nc3/rag-webapp", - "AdminWebAppImageName": "DOCKER|docker.io/fr4nc3/rag-adminwebapp", - "BackendImageName": "DOCKER|docker.io/fr4nc3/rag-backend", + "WebAppImageName": "DOCKER|fruoccopublic.azurecr.io/rag-webapp", + "AdminWebAppImageName": "DOCKER|fruoccopublic.azurecr.io/rag-adminwebapp", + "BackendImageName": "DOCKER|fruoccopublic.azurecr.io/rag-backend", "BlobContainerName": "documents", "QueueName": "doc-processing", "ClientKey": "[format('{0}{1}', uniqueString(guid(resourceGroup().id, deployment().name)), parameters('newGuidString'))]",