Skip to content

AI Applications Chassis - AI Apps Best Practices Tailored for Azure

License

Notifications You must be signed in to change notification settings

Azure-Samples/az-ai-kickstarter

Repository files navigation

AI Applications Chassis - AI Apps Best Practices Tailored for Azure

ToC: USER STORY | GETTING STARTED | HOW IT WORKS

Azure AI App Kickstarter

An opinionated set of best practices and patterns to bootstrap your Multi Agent application in minutes.

Infrasturcture architechture

High level Kickstarter architecture - infra view

Application architecture

Kickstarter cognitive architecture - app view

This architecture implements a Debate Pattern using the Semantic Kernel's agent framework, a dynamic environment where multiple AI agents collaborate to refine ideas, test arguments, or reach a resolution.

The core architecture components based on Semantic Kernel abstractions:

  • Speaker Selection Strategy (Green Box):
    • This component determines which agent (WRITER or CRITIC) "speaks" next.
    • It ensures productive collaboration by regulating the flow of interaction between the agents and preventing redundant actions.
  • WRITER Agent: provides the initial proposal and the subsequent revisions following the direction from critic.
  • CRITIC Agent: evaluates the text and provides constructive feedback to drive readibility and popularity of the post. Provides scoring across a number of categories and a final score.
  • Chat Termination Strategy (Red Box):
    • This component decides when the conversation has reached a satisfactory conclusion. It takes the overall critic score and compares to acceptance treshold.

Semantic Kernel powers the agents with features like prompt engineering, memory recall, and logic orchestration.

Getting Started

Codespaces and DevContainers

This respository has been configured to support GitHub Codespace and DevContainers. Open in GitHub Codespaces Open in Dev Containers

Warning

Do NOT git clone the application under Windows and then open a DevContainer. This would create issues with file end of lines. For DevContainer click on the button above and let Visual Studio Code download the repository for you. Alternatively you can also git clone under Windows Subsystem for Linux (WSL) and ask Visual Studio Code to Re-Open in Container.

Dependencies

See below for installation instructions

Quick deploy

Dependency Install Guide

Deploy

To deploy Azure AI App Kickstarter just run:

azd up

Warning

This deploys the application with authentication DISABLED.

Deploy with authentication enabled

AZD can automatically configure authentication to secure the frontend and/or backend. To do so execute the following command before azd up:

azd env set USE_AUTHENTICATION true

If you already executed azd up just set the variable and run provisioning again:

azd env set USE_AUTHENTICATION true
azd provision

Warning

The account executing azd needs to be able to create Application Registrations in your Azure Entra ID tenant.

External Model

If you have an external Azure OpenAI model already provisioned, you can reference it by setting environment variable prior callin azd up

export AOAI_ENDPOINT="https://<endpoint>.openai.azure.com"
export AOAI_DEPLOYMENT_NAME="gpt-4o-2024-11-20"
export AOAI_API_VERSION="2024-12-01-preview"
export aoaikeysecret="key"

[WARNING!] The aoaikeysecret is not set in azd .azure/./.env file automatically. In order to use it when running the model locally, either set it as env variable or add it to azd .env file.

How it works

Running the frontend

cd src/frontend
uv sync
uv run streamlit app.py

Running the backend

# Sync Python dependencies
uv sync
# Start the backend server with live reloading
uv run uvicorn app:app --reload

Tracing

The AI Traces you will be able to find in AI Foundry Project under "Tracing". If you click on one of the traces you will see a detailed history view with every agent, prompt, etc.: Azure AI Foundry Portal Trace Detail

Accessing logs of Azure Container Apps

If you need to troubleshoot and access the logs of the containers running in Azure Container apps you can use this helper script (bash only). It will connect to Azure remotely and stream the logs to your local terminal.

For the Frontend:

./scripts/aca_logs.sh frontend

For the Backend:

./scripts/aca_logs.sh backend

Logs will be streamed to your terminal: Semantic Kernel Logs

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct.

Resources:

For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Responsible AI Guidelines

This project follows the below responsible AI guidelines and best practices, please review them before using this project:

Acknowledgements

Authors

About

AI Applications Chassis - AI Apps Best Practices Tailored for Azure

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Contributors 3

  •  
  •  
  •