Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu öğreticide, mevcut bir veri temelli ASP.NET Core CRUD uygulamasına aracılık özelliğinin nasıl ekleneceği gösterilmektedir. Bunu iki farklı yaklaşım kullanarak yapar: Microsoft Agent Framework ve Foundry Agent Service.
Web uygulamanızın zaten alışveriş, otel rezervasyonu veya veri yönetimi gibi kullanışlı özellikleri varsa, bu işlevleri araç olarak ( Microsoft Agent Framework için) veya openAPI uç noktası ( Foundry Agent Service için) olarak sarmalayarak web uygulamanıza aracı işlevselliği eklemek oldukça kolaydır. Bu öğreticide basit bir to-do listesi uygulamasıyla başlayacaksınız. Sonunda, App Service uygulamasında bir aracıyla görev oluşturabilecek, güncelleştirebilecek ve yönetebileceksiniz.
Hem Microsoft Agent Framework hem de Foundry Agent Service, yapay zeka destekli özelliklerle aracı web uygulamaları oluşturmanıza olanak tanır. Aşağıdaki tabloda dikkat edilmesi gereken bazı noktalar ve dengeler gösterilmektedir:
| Consideration | Microsoft Aracı Çerçevesi | Döküm Acentası Hizmeti |
|---|---|---|
| Performance | Hızlı (yerel olarak çalışır) | Daha yavaş (yönetilen, uzak hizmet) |
| Development | Tam kod, maksimum denetim | Düşük kod, hızlı tümleştirme |
| Testing | Kodda manuel/birim testler | Hızlı test için yerleşik oyun alanı |
| Scalability | App-managed | Azure tarafından yönetilen, otomatik ölçeklendirilen |
| Güvenlik korumaları | Özel uygulama gerekiyor | Yerleşik içerik güvenliği ve moderasyonu |
| Kimlik | Özel uygulama gerekiyor | Yerleşik aracı kimliği ve kimlik doğrulaması |
| Enterprise | Özel tümleştirme gerekiyor | Yerleşik Microsoft 365/Teams dağıtımı ve Microsoft 365 entegre edilmiş araç çağrıları. |
Bu eğitimde şunları öğreniyorsunuz:
- Mevcut uygulama işlevselliğini Microsoft Agent Framework araçlarına dönüştürün.
- Microsoft Agent Framework aracısına araçları ekleyin ve bir web uygulamasında kullanın.
- Mevcut uygulama işlevselliğini Foundry Agent Service için OpenAPI uç noktasına dönüştürün.
- Web uygulamasında bir Foundry aracısını çağırma.
- Yönetilen kimlik bağlantısı için gerekli izinleri atayın.
Prerequisites
- Etkin aboneliği olan bir Azure hesabı - Ücretsiz bir hesap oluşturun.
- GitHub Codespaces kullanmak için GitHub hesabı - GitHub Codespaces hakkında daha fazla bilgi edinin.
Codespaces ile örneği açma
Başlamanın en kolay yolu, gerekli tüm araçların önceden yüklenmiş olduğu eksiksiz bir geliştirme ortamı sağlayan GitHub Codespaces'ı kullanmaktır.
konumundaki GitHub deposuna https://github.com/Azure-Samples/app-service-agentic-semantic-kernel-ai-foundry-agentgidin.
Kod düğmesini seçin, Codespaces sekmesini ve ardından Main üzerinde kod alanı oluştur'u seçin.
Codespace'ınızın başlatılması için birkaç dakika bekleyin. Hazır olduğunuzda, tarayıcınızda tam olarak yapılandırılmış bir geliştirme ortamı görürsünüz.
Uygulamayı yerel olarak çalıştırın:
dotnet runUygulamanızın 5280 numaralı bağlantı noktasında çalıştığınıgördüğünüzde Tarayıcıda Aç'ı seçin ve birkaç görev ekleyin.
Aracı kodunu gözden geçirme
Her iki yaklaşım da aynı uygulama desenini kullanır; burada aracı bir sağlayıcıda hizmet olarak (Program.cs) başlatılır ve ilgili Blazor bileşenine eklenir.
AgentFrameworkProvider, Services/AgentFrameworkProvider.cs'da başlatılır. Başlatma kodu aşağıdakileri yapar:
AzureOpenAIClientkullanarak Azure OpenAI'den bir oluşturur.- CRUD uygulaması işlevselliğini kapsayan
TaskCrudToolörneğini alır (Araçlar/TaskCrudTool.cs içinde).DescriptionAraç yöntemlerindeki öznitelikler aracının bunları nasıl çağıracaklarını belirlemesine yardımcı olur. -
CreateAIAgent()kullanarakAIFunctionFactory.Create()aracılığıyla kaydedilen talimatlar ve araçlarla bir yapay zeka aracısı oluşturur. - Agentin gezinti boyunca konuşmayı sürdürmesini sağlamak için bir iş parçacığı oluşturur.
// Create IChatClient
IChatClient chatClient = new AzureOpenAIClient(
new Uri(endpoint),
new DefaultAzureCredential())
.GetChatClient(deployment)
.AsIChatClient();
// Get TaskCrudTool instance from service provider
var taskCrudTool = sp.GetRequiredService<TaskCrudTool>();
// Create agent with tools
var agent = chatClient.CreateAIAgent(
instructions: @"You are an agent that manages tasks using CRUD operations.
Use the provided functions to create, read, update, and delete tasks.
Always call the appropriate function for any task management request.
Don't try to handle any requests that are not related to task management.
When handling requests, if you're missing any information, don't make it up but prompt the user for it instead.",
tools:
[
AIFunctionFactory.Create(taskCrudTool.CreateTaskAsync),
AIFunctionFactory.Create(taskCrudTool.ReadTasksAsync),
AIFunctionFactory.Create(taskCrudTool.UpdateTaskAsync),
AIFunctionFactory.Create(taskCrudTool.DeleteTaskAsync)
]);
// Create thread for this scoped instance (persists across navigation)
var thread = agent.GetNewThread();
return (agent, thread);
Kullanıcı bir ileti her gönderdiğinde, Blazor bileşeni (Components/Pages/AgentFrameworkAgent.razor içinde), kullanıcı girdisi ve aracı iş parçacığı ile Agent.RunAsync() çağırır. Ajan iş parçacığı sohbet geçmişini takip eder.
var response = await this.Agent.RunAsync(sentInput, this.agentThread);
Örnek uygulamayı dağıtma
Örnek depo, yönetilen kimlikli bir App Service uygulaması oluşturan ve örnek uygulamanızı dağıtan bir Azure Geliştirici CLI (AZD) şablonu içerir.
Terminalde Azure Geliştirici CLI'sini kullanarak Azure'da oturum açın:
azd auth loginKimlik doğrulama işlemini tamamlamak için yönergeleri izleyin.
Azure App Service uygulamasını AZD şablonuyla dağıtın:
azd upİstendiğinde aşağıdaki yanıtları verin:
Question Answer Yeni bir ortam adı girin: Benzersiz bir ad yazın. Kullanılacak azure aboneliğini seçin: Aboneliği seçin. Kullanılacak kaynak grubunu seçin: Yeni kaynak grubu oluştur'u seçin. Kaynak grubunun oluşturulacağı konumu seçin: İsveç Orta seçin. Yeni kaynak grubu için bir ad girin: Enter yazın. AZD çıktısında, uygulamanızın URL'ini bulun ve tarayıcıda bu URL'ye gidin. AZD çıktısındaki URL şöyle görünür:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <URL>
Otomatik olarak oluşturulan OpenAPI şemasını varsayılan
/openapi/v1.jsonyolda açmak için OpenAPI şema öğesini seçin. Bu şemaya daha sonra ihtiyacınız olacak.Dağıtım başarılı olduktan sonra dağıtılan uygulamanız için bir URL görürsünüz.
Artık sistem tarafından atanan yönetilen kimliğe sahip bir App Service uygulamanız var.
Microsoft Foundry kaynağını oluşturma ve yapılandırma
Dökümhane portalında, en üstteki Yeni Dökümhane radyo düğmesinin etkin olarak ayarlandığından emin olun ve bir proje oluşturun.
Seçtiğiniz bir modeli dağıtın (bkz. Microsoft Foundry Hızlı Başlangıcı: Kaynak oluşturma).
Model oyun alanının en üstünden model adını kopyalayın.
Azure OpenAI uç noktasını almanın en kolay yolu hala klasik portaldandır. Yeni Dökümhane seçenek düğmesini, ardından Azure OpenAI'yi seçin ve daha sonra için Azure OpenAI uç noktasındaki URL'yi kopyalayın.
Gerekli izinleri ata
Yeni Foundry portalının üst menüsünden Çalışma'yı ve ardından Yönetici'yi seçin. Foundry projenizin satırında iki bağlantı görmeniz gerekir. Ad sütunundaki kaynak Foundry projesi kaynağıdır, Ana kaynak sütunundaki kaynak ise Foundry kaynağıdır.
Üst Kaynak içinde Foundry kaynağı'nı ve ardından Azure portalında bu kaynağı yönetin seçin. Azure portalından, dağıtılan web uygulamasına kaynak için rol tabanlı erişim atayabilirsiniz.
App Service uygulamasının yönetilen kimliği için aşağıdaki rolü ekleyin:
Hedef kaynak Gerekli rol Şunun için gerekli: Döküm Bilişsel Hizmetler OpenAI Kullanıcısı Microsoft Agent Framework'teki sohbet tamamlama hizmeti. Yönergeler için bkz. Azure portal kullanarak Azure rollerini atama.
Örnek uygulamanızda bağlantı değişkenlerini yapılandırma
appsettings.json açın. Daha önce Foundry portalından kopyaladığınız değerleri kullanarak aşağıdaki değişkenleri yapılandırın:
Variable Description AzureOpenAIEndpointAzure OpenAI uç noktası (klasik Foundry portalından kopyalanır). ModelDeploymentDağıtımdaki model adı (yeni Foundry portalındaki model oyun alanından kopyalanır). Note
Öğreticiyi basit tutmak için, appsettings.json'daki bu değişkenleri kullanacak ve bunların App Service'teki uygulama ayarlarıyla üzerine yazılmasından kaçınacaksınız.
Note
Öğreticiyi basit tutmak için, appsettings.json'daki bu değişkenleri kullanacak ve bunların App Service'teki uygulama ayarlarıyla üzerine yazılmasından kaçınacaksınız.
Azure CLI ile Azure'da oturum açın:
az loginBu, örnek koddaki Azure Identity istemci kitaplığının oturum açmış kullanıcı için bir kimlik doğrulama belirteci almasını sağlar. Bu kullanıcı için gerekli rolü daha önce eklediğinizi unutmayın.
Uygulamayı yerel olarak çalıştırın:
dotnet runUygulamanızın 5280 numaralı bağlantı noktasında çalıştığınıgördüğünüzde Tarayıcıda Aç'ı seçin.
Sohbet arabirimini denemek için Microsoft Agent Framework Aracısı bağlantısını ve Foundry Agent Hizmeti bağlantısını seçin. Bir yanıt alırsanız, uygulamanız Microsoft Foundry kaynağına başarıyla bağlanıyordur.
GitHub Codespaces'ta uygulama değişikliklerinizi yayınlayın.
azd upDağıtılan uygulamaya yeniden gidin ve sohbet aracılarını test edin.
Kaynakları temizle
Uygulamayla işiniz bittiğinde, daha fazla maliyet oluşmasını önlemek için App Service kaynaklarını silebilirsiniz:
azd down --purge
AZD şablonu Microsoft Foundry kaynaklarını içermediğinden, isterseniz bunları el ile silmeniz gerekir.