Dela via


Använda Azure Functions med Azure AI Foundry Agent Service

Azure AI Foundry Agent Service integreras med Azure Functions så att du kan skapa intelligenta, händelsedrivna program med minimala omkostnader. Med den här kombinationen kan AI-drivna arbetsflöden utnyttja skalbarheten och flexibiliteten i serverlös databehandling, vilket gör det enklare att skapa och distribuera lösningar som svarar på realtidshändelser eller komplexa arbetsflöden.

För närvarande stöds direktintegrering med Azure Functions endast för funktioner som utlöses av Azure Storage-köer. Andra utlösartyper, till exempel HTTP eller Blob Storage, stöds inte internt just nu.

Azure Functions ger stöd för utlösare och bindningar, vilket förenklar hur dina AI-agenter interagerar med externa system och tjänster. Utlösare avgör när en funktion körs, till exempel en HTTP-begäran, ett meddelande från en kö eller en filuppladdning till Azure Blob Storage, och tillåter agenter att agera dynamiskt baserat på inkommande händelser.

För HTTP-utlösta Azure Functions är integrering möjlig genom att beskriva funktionen via en OpenAPI-specifikation och registrera den som ett anropsbart verktyg i agentkonfigurationen. Du kan också implementera en köbaserad omslutningsfunktion som tar emot meddelanden från agenten och internt anropar HTTP-logiken, vilket möjliggör användning av den befintliga köbaserade integreringen.

Samtidigt underlättar bindningar strömlinjeformade anslutningar till indata- eller utdatakällor, till exempel databaser eller API:er, utan att kräva omfattande pannplåtskod. Du kan till exempel konfigurera en utlösare för att köra en Azure-funktion när ett kundmeddelande tas emot i en chattrobot och använda utdatabindningar för att skicka ett svar via Azure AI-agenten.

Modeller som stöds

Om du vill använda alla funktioner för funktionsanrop, inklusive parallella funktioner, måste du använda en modell som släpptes efter den 6 november 2023.

Prerequisites

Förbereda din lokala miljö

I följande exempel visas hur Azure AI Foundry Agent Service används för att anropa funktioner där funktionsanrop placeras i en lagringskö av agenttjänsten för att bearbetas av en Azure Funktion som övervakar kön.

Du hittar mallen och koden som används här på GitHub.

Användningsstöd

Stöd för Azure AI Foundry Python SDK C# SDK Java SDK REST API Grundläggande agentkonfiguration Standardagentkonfiguration
✔️ ✔️ ✔️ ✔️ ✔️

Skapa Azure-resurser för lokalt och molnbaserat utvecklingstest

När du har din Azure-prenumeration kör du följande i ett nytt terminalfönster för att skapa Azure OpenAI och andra resurser som behövs:

azd init --template https://github.com/Azure-Samples/azure-functions-ai-services-agent-python

Mac/Linux:

chmod +x ./infra/scripts/*.sh 

Windows:

set-executionpolicy remotesigned

Tilldela resurser

Kör följande kommando för att skapa nödvändiga resurser i Azure.

azd provision

Skapa local.settings.json

Note

Den här filen ska finnas i samma mapp som host.json. Den skapas automatiskt om du körde azd provision.

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "python",
    "STORAGE_CONNECTION__queueServiceUri": "https://<storageaccount>.queue.core.windows.net",
    "PROJECT_CONNECTION_STRING": "<project connnection for AI Project>",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true"
    }
}

Kör din app med Visual Studio Code

  1. Öppna mappen i en ny terminal.
  2. code . Kör kodkommandot för att öppna projektet i Visual Studio Code.
  3. I kommandopaletten (F1) skriver du Azurite: Start, som möjliggör felsökning med lokal lagring för Azure Functions-körning.
  4. Tryck på Kör/Felsök (F5) för att köra i felsökningsprogrammet. Välj Felsök ändå om du tillfrågas om att den lokala emulatorn inte körs.
  5. Skicka POST-slutpunkter prompt med hjälp av HTTP-testverktyget. Om du har RestClient-tillägget installerat kan du köra begäranden direkt från test.http projektfilen.

Distribuera till Azure

Kör det här kommandot för att etablera funktionsappen med nödvändiga Azure-resurser och distribuera koden:

azd up

Du uppmanas att ange följande nödvändiga distributionsparametrar:

Parameter Description
Miljönamn En miljö som används för att upprätthålla en unik distributionskontext för din app. Du uppmanas inte om du har skapat det lokala projektet med hjälp av azd init.
Azure-prenumeration Prenumeration där dina resurser skapas.
Azure-lokalisering Azure-region där du kan skapa resursgruppen som innehåller de nya Azure-resurserna. Endast regioner som för närvarande stöder Flex Consumption-planen visas.

När publiceringen har slutförts azd får du URL-slutpunkterna för dina nya funktioner, men utan de funktionsnyckelvärden som krävs för att få åtkomst till slutpunkterna. Information om hur du hämtar samma slutpunkter tillsammans med de nödvändiga funktionsnycklarna finns i Anropa funktionen på Azure i den tillhörande artikeln Snabbstart: Skapa och distribuera funktioner till Azure Functions med hjälp av Azure Developer CLI.

Distribuera om koden

Du kan köra azd up kommandot så många gånger du behöver både etablera dina Azure-resurser och distribuera koduppdateringar till funktionsappen.

Note

Distribuerade kodfiler skrivs alltid över av det senaste distributionspaketet.

Rensa resurser

När du är klar med funktionsappen och relaterade resurser kan du använda det här kommandot för att ta bort funktionsappen och dess relaterade resurser från Azure och undvika att medföra ytterligare kostnader (--rensa lämnar inte en mjuk borttagning av AI-resursen och återställer din kvot):

azd down --purge