From 2e09afae366cf30b27f37257475d7eb76a3dec8a Mon Sep 17 00:00:00 2001 From: Atulku-Microsoft Date: Fri, 14 Nov 2025 11:22:09 +0530 Subject: [PATCH 1/9] Add disclaimer for AI solutions in README Added disclaimer regarding AI solutions and associated risks. --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8f15cf87a..fe27dec50 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,10 @@ Analysts working with large volumes of conversational data can use this solution
- +
+ +>⚠️ **Disclaimer:** With any AI solutions you create using these templates, you are responsible for assessing all associated risks and for complying with all applicable laws and safety standards. Learn more in the transparency documents for [Agent Service](https://learn.microsoft.com/en-us/azure/ai-foundry/responsible-ai/agents/transparency-note) and [Agent Framework](https://github.com/microsoft/agent-framework/blob/main/TRANSPARENCY_FAQ.md). +

Solution overview

From 1591025258acba0ad1bd4c8af7cc588e1289d02c Mon Sep 17 00:00:00 2001 From: Harmanpreet-Microsoft Date: Fri, 14 Nov 2025 20:14:25 +0530 Subject: [PATCH 2/9] Remove AI solutions disclaimer from README --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index fe27dec50..6739b3762 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,7 @@ Analysts working with large volumes of conversational data can use this solution

->⚠️ **Disclaimer:** With any AI solutions you create using these templates, you are responsible for assessing all associated risks and for complying with all applicable laws and safety standards. Learn more in the transparency documents for [Agent Service](https://learn.microsoft.com/en-us/azure/ai-foundry/responsible-ai/agents/transparency-note) and [Agent Framework](https://github.com/microsoft/agent-framework/blob/main/TRANSPARENCY_FAQ.md). -
+

Solution overview

From 61949cc7e0dfaacab51c3586fdc2bd9e67cdd1eb Mon Sep 17 00:00:00 2001 From: Harmanpreet-Microsoft Date: Fri, 14 Nov 2025 20:19:15 +0530 Subject: [PATCH 3/9] Remove extra line break in README.md Removed unnecessary line break from README. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6739b3762..396b8be14 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,6 @@ Analysts working with large volumes of conversational data can use this solution
-

From 2638de1cf01315724b0bb7deccf606b397f33690 Mon Sep 17 00:00:00 2001 From: Harmanpreet-Microsoft Date: Fri, 14 Nov 2025 21:45:51 +0530 Subject: [PATCH 4/9] Add disclaimer for AI solutions and compliance Added a disclaimer regarding AI solutions and compliance. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 396b8be14..c57de4c08 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,10 @@ Analysts working with large volumes of conversational data can use this solution
+
+ **Disclaimer:** With any AI solutions you create using these templates, you are responsible for assessing all associated risks and for complying with all applicable laws and safety standards. Learn more in the transparency documents for [Agent Service](https://learn.microsoft.com/en-us/azure/ai-foundry/responsible-ai/agents/transparency-note) and [Agent Framework](https://github.com/microsoft/agent-framework/blob/main/TRANSPARENCY_FAQ.md). +

Solution overview From 270a4ea74a1598deeb3afd83e26e9198bcec1664 Mon Sep 17 00:00:00 2001 From: Roopan-Microsoft <168007406+Roopan-Microsoft@users.noreply.github.com> Date: Fri, 14 Nov 2025 22:24:08 +0530 Subject: [PATCH 5/9] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index c57de4c08..7ba6df208 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,6 @@ Analysts working with large volumes of conversational data can use this solution
-
**Disclaimer:** With any AI solutions you create using these templates, you are responsible for assessing all associated risks and for complying with all applicable laws and safety standards. Learn more in the transparency documents for [Agent Service](https://learn.microsoft.com/en-us/azure/ai-foundry/responsible-ai/agents/transparency-note) and [Agent Framework](https://github.com/microsoft/agent-framework/blob/main/TRANSPARENCY_FAQ.md).
From 6f1bc90a96896d74e5f48f20404b103ec1f2656a Mon Sep 17 00:00:00 2001 From: Roopan-Microsoft <168007406+Roopan-Microsoft@users.noreply.github.com> Date: Fri, 14 Nov 2025 23:47:22 +0530 Subject: [PATCH 6/9] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7ba6df208..afa9fc9ee 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Analysts working with large volumes of conversational data can use this solution
- **Disclaimer:** With any AI solutions you create using these templates, you are responsible for assessing all associated risks and for complying with all applicable laws and safety standards. Learn more in the transparency documents for [Agent Service](https://learn.microsoft.com/en-us/azure/ai-foundry/responsible-ai/agents/transparency-note) and [Agent Framework](https://github.com/microsoft/agent-framework/blob/main/TRANSPARENCY_FAQ.md). + **Note:** With any AI solutions you create using these templates, you are responsible for assessing all associated risks and for complying with all applicable laws and safety standards. Learn more in the transparency documents for [Agent Service](https://learn.microsoft.com/en-us/azure/ai-foundry/responsible-ai/agents/transparency-note) and [Agent Framework](https://github.com/microsoft/agent-framework/blob/main/TRANSPARENCY_FAQ.md).

From 852ded5afbfe59c4f391fc82cee4f345dc1700c8 Mon Sep 17 00:00:00 2001 From: Harsh-Microsoft Date: Thu, 20 Nov 2025 18:20:58 +0530 Subject: [PATCH 7/9] Add initial project files for VS Code web integration --- infra/vscode_web/.gitignore | 85 ++++++++++++++++++++++ infra/vscode_web/LICENSE | 21 ++++++ infra/vscode_web/README-noazd.md | 2 + infra/vscode_web/README.md | 43 +++++++++++ infra/vscode_web/codeSample.py | 25 +++++++ infra/vscode_web/endpoint-requirements.txt | 3 + infra/vscode_web/endpointCodeSample.py | 31 ++++++++ infra/vscode_web/index.json | 72 ++++++++++++++++++ infra/vscode_web/install.sh | 3 + infra/vscode_web/requirements.txt | 3 + 10 files changed, 288 insertions(+) create mode 100644 infra/vscode_web/.gitignore create mode 100644 infra/vscode_web/LICENSE create mode 100644 infra/vscode_web/README-noazd.md create mode 100644 infra/vscode_web/README.md create mode 100644 infra/vscode_web/codeSample.py create mode 100644 infra/vscode_web/endpoint-requirements.txt create mode 100644 infra/vscode_web/endpointCodeSample.py create mode 100644 infra/vscode_web/index.json create mode 100644 infra/vscode_web/install.sh create mode 100644 infra/vscode_web/requirements.txt diff --git a/infra/vscode_web/.gitignore b/infra/vscode_web/.gitignore new file mode 100644 index 000000000..23de01ef5 --- /dev/null +++ b/infra/vscode_web/.gitignore @@ -0,0 +1,85 @@ +# ========== .NET ========== # +## Build results +bin/ +obj/ +[Bb]uild/ +[Ll]ogs/ +*.log +## User-specific files +*.user +*.suo +*.userosscache +*.sln.docstates +*.vsp +*.vspx +*.vspscc +## Rider / VS Code / Visual Studio +.idea/ +.vscode/ +.vs/ +## NuGet packages +*.nupkg +packages/ +*.snupkg +project.lock.json +project.assets.json +## Dotnet tools +.tools/ +# ========== Java ========== # +## Compiled class files +*.class +## Logs +*.log +## Maven +target/ +## Gradle +.gradle/ +build/ +## Eclipse +.project +.classpath +.settings/ +.loadpath +## IntelliJ IDEA +*.iml +*.ipr +*.iws +out/ +.idea/ +# ========== Python ========== # +## Byte-compiled / cache +__pycache__/ +*.py[cod] +*$py.class +## Virtual environment +env/ +venv/ +ENV/ +.venv/ +.env* +## PyInstaller +*.spec +dist/ +build/ +## Jupyter Notebook +.ipynb_checkpoints/ +## Misc +*.log +*.pot +*.pyc +.DS_Store +*.sqlite3 +# ========== General ========== # +## OS generated +Thumbs.db +ehthumbs.db +Desktop.ini +.DS_Store +*.swp +*.swo +*.bak +*.tmp +*.old +## Node (just in case mixed project) +node_modules/ +# End \ No newline at end of file diff --git a/infra/vscode_web/LICENSE b/infra/vscode_web/LICENSE new file mode 100644 index 000000000..22aed37e6 --- /dev/null +++ b/infra/vscode_web/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Microsoft Corporation. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/infra/vscode_web/README-noazd.md b/infra/vscode_web/README-noazd.md new file mode 100644 index 000000000..1436b6150 --- /dev/null +++ b/infra/vscode_web/README-noazd.md @@ -0,0 +1,2 @@ +# VS Code for the Web - Azure AI Foundry Templates + diff --git a/infra/vscode_web/README.md b/infra/vscode_web/README.md new file mode 100644 index 000000000..6ce5aedfa --- /dev/null +++ b/infra/vscode_web/README.md @@ -0,0 +1,43 @@ +# VS Code for the Web - Azure AI Foundry Templates + +We've generated a simple development environment for you to deploy the templates. + +The Azure AI Foundry extension provides tools to help you build, test, and deploy AI models and AI Applications directly from VS Code. It offers simplified operations for interacting with your models, agents, and threads without leaving your development environment. Click on the Azure AI Foundry Icon on the left to see more. + +Follow the instructions below to get started! + +You should see a terminal opened with the template code already cloned. + +## Deploy the template + +You can provision and deploy this template using: + +```bash +azd up +``` + +Follow any instructions from the deployment script and launch the application. + + +If you need to delete the deployment and stop incurring any charges, run: + +```bash +azd down +``` + +## Continuing on your local desktop + +You can keep working locally on VS Code Desktop by clicking "Continue On Desktop..." at the bottom left of this screen. Be sure to take the .env file with you using these steps: + +- Right-click the .env file +- Select "Download" +- Move the file from your Downloads folder to the local git repo directory +- For Windows, you will need to rename the file back to .env using right-click "Rename..." + +## More examples + +Check out [Azure AI Projects client library for Python](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/README.md) for more information on using this SDK. + +## Troubleshooting + +- If you are instantiating your client via endpoint on an Azure AI Foundry project, ensure the endpoint is set in the `.env` as https://{your-foundry-resource-name}.services.ai.azure.com/api/projects/{your-foundry-project-name}` \ No newline at end of file diff --git a/infra/vscode_web/codeSample.py b/infra/vscode_web/codeSample.py new file mode 100644 index 000000000..2ad2d0413 --- /dev/null +++ b/infra/vscode_web/codeSample.py @@ -0,0 +1,25 @@ +from azure.ai.projects import AIProjectClient +from azure.identity import DefaultAzureCredential + +project_client = AIProjectClient.from_connection_string( + credential=DefaultAzureCredential(), + conn_str="<%= connectionString %>") + +agent = project_client.agents.get_agent("<%= agentId %>") + +thread = project_client.agents.create_thread() +print(f"Created thread, ID: {thread.id}") + +message = project_client.agents.create_message( + thread_id=thread.id, + role="user", + content="<%= userMessage %>" +) + +run = project_client.agents.create_and_process_run( + thread_id=thread.id, + agent_id=agent.id) +messages = project_client.agents.list_messages(thread_id=thread.id) + +for text_message in messages.text_messages: + print(text_message.as_dict()) \ No newline at end of file diff --git a/infra/vscode_web/endpoint-requirements.txt b/infra/vscode_web/endpoint-requirements.txt new file mode 100644 index 000000000..18d6803e8 --- /dev/null +++ b/infra/vscode_web/endpoint-requirements.txt @@ -0,0 +1,3 @@ +azure-ai-projects==1.0.0b12 +azure-identity==1.20.0 +ansible-core~=2.17.0 \ No newline at end of file diff --git a/infra/vscode_web/endpointCodeSample.py b/infra/vscode_web/endpointCodeSample.py new file mode 100644 index 000000000..21452478a --- /dev/null +++ b/infra/vscode_web/endpointCodeSample.py @@ -0,0 +1,31 @@ +from azure.ai.projects import AIProjectClient +from azure.identity import DefaultAzureCredential +from azure.ai.agents.models import ListSortOrder + +project = AIProjectClient( + credential=DefaultAzureCredential(), + endpoint="<%= endpoint %>") + +agent = project.agents.get_agent("<%= agentId %>") + +thread = project.agents.threads.create() +print(f"Created thread, ID: {thread.id}") + +message = project.agents.messages.create( + thread_id=thread.id, + role="user", + content="<%= userMessage %>" +) + +run = project.agents.runs.create_and_process( + thread_id=thread.id, + agent_id=agent.id) + +if run.status == "failed": + print(f"Run failed: {run.last_error}") +else: + messages = project.agents.messages.list(thread_id=thread.id, order=ListSortOrder.ASCENDING) + + for message in messages: + if message.text_messages: + print(f"{message.role}: {message.text_messages[-1].text.value}") \ No newline at end of file diff --git a/infra/vscode_web/index.json b/infra/vscode_web/index.json new file mode 100644 index 000000000..55157c9da --- /dev/null +++ b/infra/vscode_web/index.json @@ -0,0 +1,72 @@ +{ + "ai-projects-sdk": { + "python": { + "default-azure-auth": { + "connectionString": [ + { + "name": "run_agent.py", + "type": "code", + "path": "/codeSample.py" + }, + { + "name": "INSTRUCTIONS.md", + "type": "readme", + "path": "/README-noazd.md" + }, + { + "name": "requirements.txt", + "type": "dependencies", + "path": "/requirements.txt" + }, + { + "name": ".env", + "type": "env", + "path": "/.env" + }, + { + "name": "install.sh", + "type": "install", + "path": "/install.sh" + }, + { + "name": ".gitignore", + "type": "code", + "path": "/.gitignore" + } + ], + "endpoint": [ + { + "name": "run_agent.py", + "type": "code", + "path": "/endpointCodeSample.py" + }, + { + "name": "INSTRUCTIONS.md", + "type": "readme", + "path": "/README.md" + }, + { + "name": "requirements.txt", + "type": "dependencies", + "path": "/endpoint-requirements.txt" + }, + { + "name": ".env", + "type": "env", + "path": "/.env" + }, + { + "name": "install.sh", + "type": "install", + "path": "/install.sh" + }, + { + "name": ".gitignore", + "type": "code", + "path": "/.gitignore" + } + ] + } + } + } +} \ No newline at end of file diff --git a/infra/vscode_web/install.sh b/infra/vscode_web/install.sh new file mode 100644 index 000000000..c172fa2f4 --- /dev/null +++ b/infra/vscode_web/install.sh @@ -0,0 +1,3 @@ +pip install -r requirements.txt --user -q + +azd init -t microsoft/Conversation-Knowledge-Mining-Solution-Accelerator \ No newline at end of file diff --git a/infra/vscode_web/requirements.txt b/infra/vscode_web/requirements.txt new file mode 100644 index 000000000..18d6803e8 --- /dev/null +++ b/infra/vscode_web/requirements.txt @@ -0,0 +1,3 @@ +azure-ai-projects==1.0.0b12 +azure-identity==1.20.0 +ansible-core~=2.17.0 \ No newline at end of file From 145cc0c0ad8d201297893f979a9a0a437b3a9cae Mon Sep 17 00:00:00 2001 From: Harsh-Microsoft Date: Thu, 20 Nov 2025 18:29:42 +0530 Subject: [PATCH 8/9] Add .env configuration file for VS Code web integration --- infra/vscode_web/.env | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 infra/vscode_web/.env diff --git a/infra/vscode_web/.env b/infra/vscode_web/.env new file mode 100644 index 000000000..d47886009 --- /dev/null +++ b/infra/vscode_web/.env @@ -0,0 +1,7 @@ +AZURE_EXISTING_AGENT_ID="<%= agentId %>" +AZURE_ENV_NAME="<%= playgroundName %>" +AZURE_LOCATION="<%= location %>" +AZURE_SUBSCRIPTION_ID="<%= subscriptionId %>" +AZURE_EXISTING_AIPROJECT_ENDPOINT="<%= endpoint %>" +AZURE_EXISTING_AIPROJECT_RESOURCE_ID="<%= projectResourceId %>" +AZD_ALLOW_NON_EMPTY_FOLDER=true From 15914d1b5e999ab6f7fc97210f5bca0593771838 Mon Sep 17 00:00:00 2001 From: Harsh-Microsoft Date: Thu, 20 Nov 2025 19:32:18 +0530 Subject: [PATCH 9/9] Add link to open in Visual Studio Code Web in README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index afa9fc9ee..81993e778 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,8 @@ Follow the quick deploy steps on the deployment guide to deploy this solution

-| [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/microsoft/Conversation-Knowledge-Mining-Solution-Accelerator) | [![Open in Dev Containers](https://img.shields.io/static/v1?style=for-the-badge&label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/microsoft/Conversation-Knowledge-Mining-Solution-Accelerator) | -|---|---| +| [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/microsoft/Conversation-Knowledge-Mining-Solution-Accelerator) | [![Open in Dev Containers](https://img.shields.io/static/v1?style=for-the-badge&label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/microsoft/Conversation-Knowledge-Mining-Solution-Accelerator) | [![Open in Visual Studio Code Web](https://img.shields.io/static/v1?style=for-the-badge&label=Visual%20Studio%20Code%20(Web)&message=Open&color=blue&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/azure/?vscode-azure-exp=foundry&agentPayload=eyJiYXNlVXJsIjogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9taWNyb3NvZnQvQ29udmVyc2F0aW9uLUtub3dsZWRnZS1NaW5pbmctU29sdXRpb24tQWNjZWxlcmF0b3IvcmVmcy9oZWFkcy9tYWluL2luZnJhL3ZzY29kZV93ZWIiLCAiaW5kZXhVcmwiOiAiL2luZGV4Lmpzb24iLCAidmFyaWFibGVzIjogeyJhZ2VudElkIjogIiIsICJjb25uZWN0aW9uU3RyaW5nIjogIiIsICJ0aHJlYWRJZCI6ICIiLCAidXNlck1lc3NhZ2UiOiAiIiwgInBsYXlncm91bmROYW1lIjogIiIsICJsb2NhdGlvbiI6ICIiLCAic3Vic2NyaXB0aW9uSWQiOiAiIiwgInJlc291cmNlSWQiOiAiIiwgInByb2plY3RSZXNvdXJjZUlkIjogIiIsICJlbmRwb2ludCI6ICIifSwgImNvZGVSb3V0ZSI6IFsiYWktcHJvamVjdHMtc2RrIiwgInB5dGhvbiIsICJkZWZhdWx0LWF6dXJlLWF1dGgiLCAiZW5kcG9pbnQiXX0=) | +|---|---|---|