From 0f4df36c364c370ee9ecbbc7aed9d9adafe50c7b Mon Sep 17 00:00:00 2001 From: Julia Muiruri Date: Fri, 6 Jun 2025 16:45:10 +0300 Subject: [PATCH 01/10] Update README with list of study jams --- README.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a6eaaa0..b69ac91 100644 --- a/README.md +++ b/README.md @@ -28,9 +28,9 @@ 1️⃣ Right Click on the **Start Course** ↓ button below and open in a new tab. - **Owner**: _Your personal account_ - - **Repository name**: _Your GitHub username_ + `-AI-Build-a-thon` (e.g. `johndoe-AI-Build-a-thon`) + - **Repository name**: (e.g. `JSAI-Build-a-thon`) - **We recommend creating a public repository**, as private repositories will [use Actions minutes](https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions). - - Give your repository a name, such as `JS-AI-Build-a-thon` + - Optionally give your repository a description, such as `JS-AI-Build-a-thon` - **Privacy**: _Public_ ⚠️ Ensure you select **Public**. If you select Private, GitHub Actions will not work. @@ -52,6 +52,15 @@ To find an _In-Person_ or _Virtual_ Study Jam and Connect with other developers, [![Join Azure AI Community Discord](https://dcbadge.limes.pink/api/server/kzRShWzttr)](https://aka.ms/JSAIonDiscord) -© 2025 JavaScript at Microsoft • [Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/code_of_conduct.md) • [MIT License](https://gh.io/mit) +|Study Jam|Country|Time zone| +|---|---|---| +|University of Southern California (USC)|US|PDT (GMT -7)| +|MLSA SPSU (Sir Padampat Singhania University)|India|IST (GMT + 05:30)| +|MLSA Nepal|Nepal|GMT + 5:45| +|Azure Developer Community Kolkata|India|IST (GMT + 05:30)| +|Elliot|Bosnia and Herzegovina|Central Time| +|MLSC-PRPCEM|India|IST (GMT + 05:30)| +|Federal University of Agriculture, Abeokuta, Ogun, Nigeria|Nigeria|WAT (GMT + 1)| +© 2025 JavaScript at Microsoft • [Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/code_of_conduct.md) • [MIT License](https://gh.io/mit) From 14995107f9e7dc90a6366d232087aa6dc0bb661c Mon Sep 17 00:00:00 2001 From: Julia Muiruri Date: Sat, 7 Jun 2025 10:24:07 +0300 Subject: [PATCH 02/10] improvements for quest 1 --- .github/steps/1-genai-prototype.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/steps/1-genai-prototype.md b/.github/steps/1-genai-prototype.md index 9326668..720cd88 100644 --- a/.github/steps/1-genai-prototype.md +++ b/.github/steps/1-genai-prototype.md @@ -23,7 +23,7 @@ With GitHub Models, you can use GitHub Personal Access Tokens (PAT) to authentic 1. Right click [GitHub Models](https://github.com/marketplace/models) and open in a new tab > [!NOTE] -> Open the link IN A NEW TAB so you can keep this page open for reference. +> Open the link IN A NEW TAB so you can keep this page open for reference. You can use the _Split Screen_ feature on Edge to have this instructions and GitHub Models/ VS Code open side-by-side 2. Click on **explore the full model catalog** to see the available models. @@ -142,7 +142,7 @@ Now that you have a better understanding of the models from the GitHub Models pl ## πŸ“Œ Exercise: Convert a hand-drawn sketch to a web page -1. Download the contoso website hand-drawn sketch from [this link](https://github.com/Azure-Samples/JS-AI-Build-a-thon/blob/assets/jsai-buildathon-assets/contoso_layout_sketch.jpg), and save it `contoso_layout_sketch.jpg` in the same directory as your `sample.js` file. +1. Download the contoso website hand-drawn sketch from [this link](https://github.com/Azure-Samples/JS-AI-Build-a-thon/blob/assets/jsai-buildathon-assets/contoso_layout_sketch.jpg), _(right click and open in new tab)_. and save it `contoso_layout_sketch.jpg` in the same directory as your `sample.js` file. > **Note** > @@ -214,11 +214,11 @@ To complete this quest and **AUTOMATICALLY UPDATE** your progress, you MUST push Here are some additional resources to help you learn more about experimenting with AI models and building prototypes: +- [About GitHub Models](https://docs.github.com/en/github-models/about-github-models) +- [Choosing the right AI model for your task](https://docs.github.com/en/copilot/using-github-copilot/ai-models/choosing-the-right-ai-model-for-your-task) +- [Introducing GitHub Models: A new generation of AI engineers building on GitHub](https://github.blog/news-insights/product-news/introducing-github-models/) +- [What is the AI Toolkit for Visual Studio Code?](https://learn.microsoft.com/en-us/windows/ai/toolkit/) - [Lesson 1: Introduction to Generative AI and LLMs for JavaScript Developers](https://github.com/microsoft/generative-ai-with-javascript/tree/main/lessons/01-intro-to-genai#lesson-1-introduction-to-generative-ai-and-llms-for-javascript-developers) - [Lesson 2: Writing your first AI app](https://github.com/microsoft/generative-ai-with-javascript/blob/main/lessons/02-first-ai-app/README.md#lesson-2-writing-your-first-ai-app) - [Lesson 3: Prompt Engineering](https://github.com/microsoft/generative-ai-with-javascript/blob/main/lessons/03-prompt-engineering/README.md) -- [GitHub Models - Your AI toolbox built into GitHub](https://github.com/features/models) -- [Install the AI Toolkit](https://marketplace.visualstudio.com/items?itemName=ms-windows-ai-studio.windows-ai-studio&ssr=false#overview) to browse and download public and custom models; author, test and evaluate prompts; fine-tune; and use them in your applications. -- [What is the AI Toolkit for Visual Studio Code?](https://learn.microsoft.com/en-us/windows/ai/toolkit/) -- [Build Apps and Agents with Visual Studio Code and Azure blog](https://devblogs.microsoft.com/blog/build-apps-and-agents-with-visual-studio-code-and-azure) -- A curated set of essential extensions for building generative AI applications and agents in Visual Studio Code. Install [the Microsoft AI Tools Extension Pack](https://marketplace.visualstudio.com/items?itemName=ms-windows-ai-studio.microsoft-ai-tools-pack) \ No newline at end of file +- [Microsoft AI Tools Extension Pack](https://marketplace.visualstudio.com/items?itemName=ms-windows-ai-studio.microsoft-ai-tools-pack), a curated set of essential extensions for building generative AI applications and agents in VS Code \ No newline at end of file From 738d818439d56c83c1bf6262abf05da9d8553512 Mon Sep 17 00:00:00 2001 From: Julia Muiruri Date: Sat, 7 Jun 2025 10:32:10 +0300 Subject: [PATCH 03/10] code improvements for quest 2 --- .github/steps/1-genai-prototype.md | 1 + .github/steps/2-to-azure.md | 7 ++----- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/steps/1-genai-prototype.md b/.github/steps/1-genai-prototype.md index 720cd88..61541c3 100644 --- a/.github/steps/1-genai-prototype.md +++ b/.github/steps/1-genai-prototype.md @@ -217,6 +217,7 @@ Here are some additional resources to help you learn more about experimenting wi - [About GitHub Models](https://docs.github.com/en/github-models/about-github-models) - [Choosing the right AI model for your task](https://docs.github.com/en/copilot/using-github-copilot/ai-models/choosing-the-right-ai-model-for-your-task) - [Introducing GitHub Models: A new generation of AI engineers building on GitHub](https://github.blog/news-insights/product-news/introducing-github-models/) +- [πŸ“Ή DEM500: Prototype, build, and deploy AI apps quickly with GitHub Models](https://build.microsoft.com/en-US/sessions/DEM500?source=sessions) - [What is the AI Toolkit for Visual Studio Code?](https://learn.microsoft.com/en-us/windows/ai/toolkit/) - [Lesson 1: Introduction to Generative AI and LLMs for JavaScript Developers](https://github.com/microsoft/generative-ai-with-javascript/tree/main/lessons/01-intro-to-genai#lesson-1-introduction-to-generative-ai-and-llms-for-javascript-developers) - [Lesson 2: Writing your first AI app](https://github.com/microsoft/generative-ai-with-javascript/blob/main/lessons/02-first-ai-app/README.md#lesson-2-writing-your-first-ai-app) diff --git a/.github/steps/2-to-azure.md b/.github/steps/2-to-azure.md index 387e9bc..6205627 100644 --- a/.github/steps/2-to-azure.md +++ b/.github/steps/2-to-azure.md @@ -70,7 +70,7 @@ To continue working with your deployed model in VS Code, you will need to instal 6. Create a `.env` file in your project folder and update it with the following environment variables: ```bash - AZURE_INFERENCE_API_KEY=your_api_key + AZURE_INFERENCE_SDK_KEY=your_api_key AZURE_INFERENCE_SDK_ENDPOINT=your_api_endpoint ``` @@ -126,8 +126,5 @@ Here are some additional resources to help you learn more about getting started - [Azure AI Foundry Extension for Visual Studio Code is Available in Preview](https://devblogs.microsoft.com/foundry/azure-ai-foundry-vscode-extension-preview/) - [Work with the Azure AI Foundry for Visual Studio Code extension docs](https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/develop/get-started-projects-vs-code) -- [πŸ“Ή DEM500: Prototype, build, and deploy AI apps quickly with GitHub Models](https://build.microsoft.com/en-US/sessions/DEM500?source=sessions) - [πŸ“Ή BRK107: Develop, Build and Deploy LLM Apps using GitHub Models and Azure AI Foundry](https://build.microsoft.com/en-US/sessions/BRK107?source=sessions) -- [Build with the AI Foundry JavaScript SDK](https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/develop/sdk-overview?pivots=programming-language-javascript) - -- A curated set of essential extensions for building generative AI applications and agents in Visual Studio Code. Install [the Microsoft AI Tools Extension Pack](https://marketplace.visualstudio.com/items?itemName=ms-windows-ai-studio.microsoft-ai-tools-pack) \ No newline at end of file +- [Microsoft AI Tools Extension Pack](https://marketplace.visualstudio.com/items?itemName=ms-windows-ai-studio.microsoft-ai-tools-pack), a curated set of essential extensions for building generative AI applications and agents in VS Code \ No newline at end of file From 48fbf94f4b081975afb2cd820cf98fbf23279f14 Mon Sep 17 00:00:00 2001 From: Julia Muiruri Date: Sat, 7 Jun 2025 10:44:20 +0300 Subject: [PATCH 04/10] code improvements for quest 3 --- .github/steps/3-add-chat-ui.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/steps/3-add-chat-ui.md b/.github/steps/3-add-chat-ui.md index 3d43c83..a3bfe41 100644 --- a/.github/steps/3-add-chat-ui.md +++ b/.github/steps/3-add-chat-ui.md @@ -37,6 +37,11 @@ In your current working directory, _(at the root)_, run the following command to azd init -t Azure-Samples/vite-chat-interface ``` +> [!Note] +> After running the above command, select **Keep my existing files unchanged** for the following option. +> +> ![azd files option to kep](https://github.com/Azure-Samples/JS-AI-Build-a-thon/blob/assets/jsai-buildathon-assets/azd-files-options.png?raw=true) + This will initialize a new Vite project and add the necessary files and folders to your project: ```markdown @@ -226,7 +231,7 @@ The project is already configured to deploy the webapp (frontend) to Azure Stati ```yaml webapp: - project: packages/webapp + project: webapp host: staticwebapp language: js dist: dist @@ -254,11 +259,13 @@ module webapp 'br/public:avm/res/web/static-site:0.7.0' = { } } ``` +However, remember you updated the path to the `webapp` folder when we moved it to the `packages` folder. **So change the project path in `azure.yaml` to `project: packages/webapp` for the webapp service** + The webapi service is not yet configured in the `azure.yaml` file. To add the webapi service, add the following code to the `azure.yaml` file inside the `services` node: ```yaml webapi: - project: packages/webapp + project: packages/webapi host: appservice language: js ``` @@ -281,6 +288,7 @@ module webapi 'br/public:avm/res/web/site:0.15.1' = { params: { kind: 'app' name: webapiName + tags: union(tags, { 'azd-service-name': webapiName }) serverFarmResourceId: serverfarm.outputs.resourceId } } @@ -289,7 +297,7 @@ module webapi 'br/public:avm/res/web/site:0.15.1' = { Declare the following parameters at the top of the `main.bicep` file to pass the names of the webapi and app service plan to the module: ```bash -param webapiName string = 'webapi' +param webapiName string = '' #use a unique string. avoid common names like webapi, website etc. param appServicePlanName string = 'appserviceplan' ``` @@ -337,8 +345,6 @@ To complete this quest and **AUTOMATICALLY UPDATE** your progress, you MUST push Here are some additional resources to help you learn more about tools used in this step: -- https://vite.dev/ -- https://lit.dev/ - [Accelerate your journey to the cloud with azd](https://azure.github.io/awesome-azd/getting-started) - [πŸ“Ή BRK118: Accelerate Azure Development with GitHub Copilot, VS Code & AI](https://build.microsoft.com/en-US/sessions/BRK118?source=sessions) - [Introducing the Azure Developer CLI (azd): A faster way to build apps for the cloud blog](https://devblogs.microsoft.com/azure-sdk/introducing-the-azure-developer-cli-a-faster-way-to-build-apps-for-the-cloud/) From 037452ea5aaebc4a46781b5a1cc9957fff65b02c Mon Sep 17 00:00:00 2001 From: Julia Muiruri Date: Sat, 7 Jun 2025 11:18:31 +0300 Subject: [PATCH 05/10] code fixes for rag quest --- .github/steps/3-add-chat-ui.md | 2 +- .github/steps/4-add-rag.md | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/steps/3-add-chat-ui.md b/.github/steps/3-add-chat-ui.md index a3bfe41..a333ccb 100644 --- a/.github/steps/3-add-chat-ui.md +++ b/.github/steps/3-add-chat-ui.md @@ -38,7 +38,7 @@ azd init -t Azure-Samples/vite-chat-interface ``` > [!Note] -> After running the above command, select **Keep my existing files unchanged** for the following option. +> After running the above command, select **Keep my existing files unchanged** for the following option to prevent your README from being overwritten > > ![azd files option to kep](https://github.com/Azure-Samples/JS-AI-Build-a-thon/blob/assets/jsai-buildathon-assets/azd-files-options.png?raw=true) diff --git a/.github/steps/4-add-rag.md b/.github/steps/4-add-rag.md index 0d6db2c..73d03f6 100644 --- a/.github/steps/4-add-rag.md +++ b/.github/steps/4-add-rag.md @@ -25,7 +25,7 @@ In this step, you will learn how to add RAG (**R**etrieval-**A**ugmented **G**en To complete this step, you will need to get a sample dataset in any format (e.g., PDF, CSV, JSON) to work with. -An example, will use a [sample Contoso Electronics Employee Handbook PDF](https://github.com/Azure-Samples/JS-AI-Build-a-thon/blob/assets/jsai-buildathon-assets/employee_handbook.pdf) file. **You can bring any file of your choice**, but make sure it contains relevant information that you want your AI app to use for RAG. The code provided here will work with any text-based file. +For this quest, as an example, will use a [sample Contoso Electronics Employee Handbook PDF](https://github.com/Azure-Samples/JS-AI-Build-a-thon/blob/assets/jsai-buildathon-assets/employee_handbook.pdf) file. **You can bring any file of your choice**, but make sure it contains relevant information that you want your AI app to use for RAG. The code provided here will work with any text-based file. - Create a new folder `data` in the root of your project and move the file in it. To search and read your PDF, you will need to extract the text from it. You can use any PDF parser library of your choice, but for this example, we will use the `pdf-parse` library. @@ -51,8 +51,7 @@ Open your server code `webapi/server.js` and modify it to include the following ```javascript // add at the top of the file ----------------------------------------- -import ModelClient, { isUnexpected } from "@azure-rest/ai-inference"; -import { AzureKeyCredential } from "@azure/core-auth"; +import { isUnexpected } from "@azure-rest/ai-inference"; import fs from "fs"; import path from "path"; import { fileURLToPath } from 'url'; @@ -79,7 +78,7 @@ async function loadPDF() { const dataBuffer = fs.readFileSync(pdfPath); const data = await pdfParse(dataBuffer); - pdfText = data.text; / + pdfText = data.text; let currentChunk = ""; const words = pdfText.split(/\s+/); @@ -135,7 +134,7 @@ app.post("/chat", async (req, res) => { Use ONLY the following information from the handbook to answer the user's question. If you can't find relevant information in the provided context, say so clearly. --- EMPLOYEE HANDBOOK EXCERPTS --- - ${sources.join('\n\n')} + ${sources.join('')} --- END OF EXCERPTS ---` }); } else { @@ -172,10 +171,9 @@ app.post("/chat", async (req, res) => { } }); -const PORT = process.env.PORT || 3001; -app.listen(PORT, () => { - console.log(`AI API server running on port ${PORT}`); -}); +// -------------------------------------------------------------------- +// rest of the code from const PORT ... + ``` @@ -415,4 +413,8 @@ To complete this quest and **AUTOMATICALLY UPDATE** your progress, you MUST push ## πŸ“š Further Reading Here are some additional resources to help you learn more about RAG and how to implement it in your applications: -- [Lesson 5: Talk to your data with Retrieval-Augmented Generation (RAG)](https://github.com/microsoft/generative-ai-with-javascript/blob/main/lessons/05-rag/README.md) \ No newline at end of file +- [Lesson 5: Talk to your data with Retrieval-Augmented Generation (RAG)](https://github.com/microsoft/generative-ai-with-javascript/blob/main/lessons/05-rag/README.md) +- [What is retrieval-augmented generation (RAG)?](https://azure.microsoft.com/en-us/resources/cloud-computing-dictionary/what-is-retrieval-augmented-generation-rag) +- [Retrieval augmented generation and indexes](https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/retrieval-augmented-generation) +- [Get started with Serverless AI Chat with RAG using LlamaIndex](https://learn.microsoft.com/en-us/azure/developer/javascript/ai/get-started-app-chat-template-llamaindex?tabs=github-codespaces) +- [Get started with Serverless AI Chat with RAG using LangChain.js](https://learn.microsoft.com/en-us/azure/developer/javascript/ai/get-started-app-chat-template-langchainjs?tabs=github-codespaces) From 5b2c05c997313a175355176ea4cf2bb864a4d90d Mon Sep 17 00:00:00 2001 From: Julia Muiruri Date: Sat, 7 Jun 2025 11:39:31 +0300 Subject: [PATCH 06/10] code improvements for langchain.js quest --- .github/steps/5-frameworks.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/steps/5-frameworks.md b/.github/steps/5-frameworks.md index 1cae00d..a6a0e80 100644 --- a/.github/steps/5-frameworks.md +++ b/.github/steps/5-frameworks.md @@ -38,8 +38,8 @@ The current api code uses the Azure REST SDK directly. By switching to LangChain Open `server.js` and replace: ```javascript -import ModelClient, { isUnexpected } from "@azure-rest/ai-inference"; import { AzureKeyCredential } from "@azure/core-auth"; +import { isUnexpected } from "@azure-rest/ai-inference"; ``` with: @@ -71,6 +71,9 @@ const chatModel = new AzureChatOpenAI({ }); ``` +> [!Note] +> Update your `.env` with the missing variables + ### Update chat endpoint Replace the Azure REST SDK api call logic in the try-catch block (_app.post("/chat")_) with the following code: @@ -124,7 +127,7 @@ import { ChatMessageHistory } from "langchain/stores/message/in_memory"; Store session histories, allowing you to maintain separate chat histories for different users or sessions. ```javascript -const sessionHistories = {}; +const sessionMemories = {}; ``` ### Add a helper function to get/create a session history @@ -170,8 +173,7 @@ app.post("/chat", async (req, res) => { ? { role: "system", content: sources.length > 0 - ? `You are a helpful assistant for Contoso Electronics. You must ONLY use the information provided below to answer.\n\n--- EMPLOYEE HANDBOOK EXCERPTS ---\n${sources.join('\n\n')}\n--- END OF EXCERPTS ---` - : `You are a helpful assistant for Contoso Electronics. The excerpts do not contain relevant information for this question. Reply politely: "I'm sorry, I don't know. The employee handbook does not contain information about that."`, + ? `You are a helpful assistant for Contoso Electronics. You must ONLY use the information provided below to answer.\\n\\n--- EMPLOYEE HANDBOOK EXCERPTS ---\\n${sources.join('\\n\\n')}\\n--- END OF EXCERPTS ---`\n : `You are a helpful assistant for Contoso Electronics. The excerpts do not contain relevant information for this question. Reply politely: \"I'm sorry, I don't know. The employee handbook does not contain information about that.\"`, } : { role: "system", @@ -233,5 +235,8 @@ To complete this quest and **AUTOMATICALLY UPDATE** your progress, you MUST push ## πŸ“š Further Reading Here are some additional resources to help you learn more about LangChain.js and its features: -- [Serverless AI Chat with RAG using LangChain.js sample](https://github.com/Azure-Samples/serverless-chat-langchainjs) +- [Get started with Serverless AI Chat with RAG using LangChain.js](https://github.com/Azure-Samples/serverless-chat-langchainjs) +- [LangChain.js x Microsoft docs](https://js.langchain.com/docs/integrations/platforms/microsoft/) +- [Ask YouTube: LangChain.js + Azure Quickstart](https://github.com/Azure-Samples/langchainjs-quickstart-demo) +- [LangChain.js + Azure: A Generative AI App Journey](https://techcommunity.microsoft.com/blog/educatordeveloperblog/langchain-js--azure-a-generative-ai-app-journey/4101258) - [LangChain.js docs](https://js.langchain.com/docs/introduction/) \ No newline at end of file From 86e0e99b8887c6c418824875dd6f2aa57b63531a Mon Sep 17 00:00:00 2001 From: Julia Muiruri Date: Sat, 7 Jun 2025 11:41:56 +0300 Subject: [PATCH 07/10] fix workflow to step 6 --- .github/workflows/5-frameworks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/5-frameworks.yml b/.github/workflows/5-frameworks.yml index fd68cd5..9e68826 100644 --- a/.github/workflows/5-frameworks.yml +++ b/.github/workflows/5-frameworks.yml @@ -44,7 +44,7 @@ jobs: - name: Check for LangChain in package.json id: check_langchain run: | - if [ -f "packages/webapi/package.json" ] && grep -q "@langchain/azure-openai" packages/webapi/package.json; then + if [ -f "packages/webapi/package.json" ] && grep -q "@langchain/openai" packages/webapi/package.json; then echo "langchain_exists=true" >> $GITHUB_OUTPUT else echo "langchain_exists=false" >> $GITHUB_OUTPUT From 95c7f791392805f1c736abe8ff45147ef9494b9e Mon Sep 17 00:00:00 2001 From: Julia Muiruri Date: Mon, 9 Jun 2025 09:24:08 +0300 Subject: [PATCH 08/10] made improvements to the agent quest --- .github/steps/6-build-agent.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/steps/6-build-agent.md b/.github/steps/6-build-agent.md index f10a6a8..b159780 100644 --- a/.github/steps/6-build-agent.md +++ b/.github/steps/6-build-agent.md @@ -152,16 +152,16 @@ options: Save the `bing.yaml` file. -On the Agent Designer, click on the + icon next to the "Tools" section. This will prompt you to select a yaml file for the tool. Select the `bing.yaml` file you created earlier. Click on **Deploy to Azure AI Foundry** to deploy your updated agent with the new tool to Azure AI Foundry. +On the Agent Designer, click on the + icon next to the "Tools" section. This will prompt you to select a yaml file for the tool. Select the `bing.yaml` file you created earlier. Click on **Update Agent on Azure AI Foundry** to update your agent with the new tool to Azure AI Foundry. -![Add bing tool via extension](https://github.com/Azure-Samples/JS-AI-Build-a-thon/blob/assets/jsai-buildathon-assets/add-bing.png?raw=true) +![Add bing tool via extension](https://github.com/Azure-Samples/JS-AI-Build-a-thon/blob/assets/jsai-buildathon-assets/update-tool.png?raw=true) Now that we have added the Bing Search API tool to our agent, we can test it in the Playground. Open the "Agent Playground" and send the agent a message like _"What's the weather in Nairobi right now?"_ The agent should use the Bing Search API tool to fetch the current weather information and respond with a friendly message. ![Weather with Bing](https://github.com/Azure-Samples/JS-AI-Build-a-thon/blob/assets/jsai-buildathon-assets/weather-with-bing.png?raw=true) -## Step 4️⃣: Agent playground to Code + ## βœ… Activity: Push your updated code to the repository @@ -494,5 +494,6 @@ To complete this quest and **AUTOMATICALLY UPDATE** your progress, you MUST push Here are some additional resources to help you learn more about building AI agents and extending their capabilities with tools: - [Azure AI Agents JavaScript examples](https://github.com/Azure-Samples/azure-ai-agents-javascript) - [Your First AI Agent in JS with Azure AI Agent Service](https://www.youtube.com/live/RNphlRKvmJQ?si=I3rUp-LmnvS008ym) -- [Create a new Agent - JS/TS](https://learn.microsoft.com/en-us/azure/ai-services/agents/quickstart?pivots=programming-language-javascript) -- [πŸ“Ή DEMFP781: From Prompt to Product: Build an AI Agent That Generates UI](https://build.microsoft.com/en-US/sessions/DEMFP781?source=sessions) \ No newline at end of file +- [Build Apps and Agents with Visual Studio Code and Azure blog](https://devblogs.microsoft.com/blog/build-apps-and-agents-with-visual-studio-code-and-azure) +- [πŸ“Ή DEMFP781: From Prompt to Product: Build an AI Agent That Generates UI](https://build.microsoft.com/en-US/sessions/DEMFP781?source=sessions) +- [Build with the AI Foundry JavaScript SDK](https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/develop/sdk-overview?pivots=programming-language-javascript) \ No newline at end of file From e1f03960f5fa97d0f37cfeabc9c485ac183e50e1 Mon Sep 17 00:00:00 2001 From: Julia Muiruri Date: Mon, 9 Jun 2025 09:43:57 +0300 Subject: [PATCH 09/10] added project submission guidelines --- .github/steps/6-build-agent.md | 2 +- .github/steps/9-templates.md | 42 ++++++++++++++++++++++++++++++++-- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/.github/steps/6-build-agent.md b/.github/steps/6-build-agent.md index b159780..ae8145b 100644 --- a/.github/steps/6-build-agent.md +++ b/.github/steps/6-build-agent.md @@ -466,7 +466,7 @@ If you ask the agent a question that requires real-time information, such as _"W ![Weather in Spain in Agent mode](https://github.com/Azure-Samples/JS-AI-Build-a-thon/blob/assets/jsai-buildathon-assets/weather-in-spain.png?raw=true) --> -## βœ… Activity: Push your updated code to the repository +## βœ… Activity: Push your updated code to the repository - TBD ### Quest Checklist diff --git a/.github/steps/9-templates.md b/.github/steps/9-templates.md index fb20c7f..7aabb9d 100644 --- a/.github/steps/9-templates.md +++ b/.github/steps/9-templates.md @@ -75,14 +75,52 @@ Some of the popular templates for JavaScript developers are:- - [RAG chat with Azure AI Search + JavaScript](https://azure.github.io/ai-app-templates/repo/azure-samples/azure-search-openai-javascript/) - [Serverless GenAI assistant using function calling](https://azure.github.io/ai-app-templates/repo/azure-samples/azure-openai-assistant-javascript/) +## βœ… Activity: Submit your customized project idea for community voting ### Quest Checklist -To complete this quest and **AUTOMATICALLY UPDATE** your progress, you MUST push your code to the repository as described below. +To complete this final challenge and unlock the true power of **AI + Cloud**, you'll pick a ready-made Azure Developer CLI (azd)/ AI template and customize it to solve a problem you care about. **Checklist** -[![Complete Quest](https://img.shields.io/badge/Complete--Quest-ff3860?logo=esbuild)](/issues/new?title=Quest:+I+want+a+Production-Ready+Template+to+customize&labels=quest&body=πŸš€+I%27ve+browsed+through+the+AI+App+Template+gallery%21%0A%0A**After+you+click+on+Create+below,+wait+about+15+seconds.+This+issue+will+automatically+close,+and+the+README+will+update+with+your+next+instructions.**) +- [ ] Think of a problem that matters to you + This can be personal, societal, climate-related, educational β€” anything that gets you thinking creatively and purposefully. + +- [ ] Browse the azd/ AI template gallery + + Find a template that provides a strong starting point for solving your chosen problem. You can explore app types like: + + - Gen AI copilots + - Chat-enabled apps + - Data summarizers + - RAG implementations + - Serverless APIs + - Full-stack web apps + +- [ ] Follow the setup instructions provided in your chosen template +- [ ] Customize it to fit your vision + + Tweak the front end, update the backend, change the model, connect external data β€” anything goes. This is where your creativity and dev skills shine. + +- [ ] Push your code + + Make sure your new project has a README.md explaining: + + - The problem you’re solving + - Why you picked the template + - What customizations you made + +- [ ] Open a New Issue using the **πŸ› οΈ Project Submission - Build-a-thon** issue template +- [ ] Encourage your peers to upvote your issue for the **People’s Choice spotlight**! + + ⏳ After submission: Keep updating your project as you build. You can edit your issue to reflect new progress and keep your voters informed. + + + + +> To skip this quest and select a different one, click this button: +> +> [![Skip to another quest](https://img.shields.io/badge/Skip--to--another--quest-ff3860?logo=mattermost)](../../issues/new?title=Skip+quest&labels=reset-quest&body=πŸ”„+I+want+to+reset+my+AI+learning+quest+and+start+from+the+beginning.%0A%0A**Please+wait+about+15+seconds.+Your+progress+will+be+reset,+this+issue+will+automatically+close,+and+you+will+be+taken+back+to+the+Welcome+step+to+select+a+new+quest.**) ## πŸ“š Further Reading From c79547ca91f7c18fc232ae504227a3ed8a3e8c11 Mon Sep 17 00:00:00 2001 From: Julia Muiruri Date: Mon, 9 Jun 2025 10:00:50 +0300 Subject: [PATCH 10/10] update to the list of jams --- README.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index b69ac91..c23d56d 100644 --- a/README.md +++ b/README.md @@ -54,13 +54,18 @@ To find an _In-Person_ or _Virtual_ Study Jam and Connect with other developers, |Study Jam|Country|Time zone| |---|---|---| -|University of Southern California (USC)|US|PDT (GMT -7)| -|MLSA SPSU (Sir Padampat Singhania University)|India|IST (GMT + 05:30)| -|MLSA Nepal|Nepal|GMT + 5:45| -|Azure Developer Community Kolkata|India|IST (GMT + 05:30)| -|Elliot|Bosnia and Herzegovina|Central Time| -|MLSC-PRPCEM|India|IST (GMT + 05:30)| -|Federal University of Agriculture, Abeokuta, Ogun, Nigeria|Nigeria|WAT (GMT + 1)| +|[University of Southern California (USC)](https://bit.ly/js-ai-buildathon)|US, UK, India, Bangladesh|PT, ET, BST, IST| +|[MLSA SPSU (Sir Padampat Singhania University)](https://forms.cloud.microsoft/r/fNFAuELdk4)|India|IST (GMT + 05:30)| +|[MLSA Nepal](https://forms.cloud.microsoft/r/ANcMqGKrrv)|Nepal|GMT + 5:45| +|[Azure Developer Community Kolkata](https://forms.cloud.microsoft/r/tZLHWTk3Cm )|India|IST (GMT + 05:30)| +|[Elliot, Herzegovina](https://forms.cloud.microsoft/r/MGJ6StHWa4?origin=lprLink)|Bosnia|Central Time| +|[MLSC-PRPCEM](https://globalai.community/chapters/amravati/events/js-ai-build-a-thon/)|India|IST (GMT + 05:30)| +|[Federal University of Agriculture, Abeokuta, Ogun](https://forms.cloud.microsoft/r/eHYGdD2gBr)|Nigeria|WAT (GMT + 1)| +|[Nairobi Azure AI](https://forms.office.com/r/3DK5Z7gqU3)|Kenya|EAT (GMT + 3)| +|[SRM Institute of Science & Technology](https://forms.office.com/r/VQ4f1TXdCv)|India |IST (GMT + 05:30)| +|[National Institute of Business Management](https://shorturl.at/UN509)|Sri Lanka|IST (GMT + 05:30)| +|[DHA Suffa University](https://forms.cloud.microsoft/r/7r1ddkxyfH)|India |IST (GMT + 05:30)| +|[Code Crafting](https://forms.office.com/pages/responsepage.aspx?id=oBzDhDusrk6tEVGdgCM-b034xDCHMYNAl2nq0Nl42JZUMVFaQTJFSEpIT0xYVTc0QUoxWjEyMExNVi4u&route=shorturl)|India|IST (GMT + 05:30)| © 2025 JavaScript at Microsoft • [Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/code_of_conduct.md) • [MIT License](https://gh.io/mit)