Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Aanroepen van hulpprogramma's is een AI-modelmogelijkheid waarmee u beschikbare hulpprogramma's kunt beschrijven voor een AI-model, zodat het model kan aanvragen dat uw toepassing deze aanroept. Hulpprogramma's kunnen .NET-methoden zijn, aanroepen naar externe API's, interacties met MCP-servers (Model Context Protocol) of een andere uitvoerbare bewerking. In plaats van deze hulpprogramma's rechtstreeks uit te voeren, retourneert het model een gestructureerde uitvoer waarin wordt beschreven welke hulpprogramma's moeten worden aangeroepen en met welke argumenten. Uw toepassing roept deze hulpprogramma's aan en stuurt de resultaten terug naar het model, zodat deze een nauwkeuriger en geaard antwoord kan bouwen.
Microsoft.Extensions.AI (MEAI) biedt provideragnostische abstracties voor het aanroepen van hulpprogramma's die werken in AI-services, waaronder Azure OpenAI, OpenAI, Ollama en andere. U schrijft uw logica voor het aanroepen van hulpprogramma's eenmaal en werkt ongeacht welk onderliggend model of welke provider u gebruikt.
Waarom het aanroepen van hulpprogramma's gebruiken
Het aanroepen van hulpprogramma's vereenvoudigt hoe u externe hulpprogramma's verbindt met AI-modellen. U beschrijft elk hulpprogramma voor het model als onderdeel van het gesprek. Het model bepaalt vervolgens welke hulpprogramma's moeten worden aangeroepen op basis van de vraag van de gebruiker. Nadat uw toepassing de aangevraagde hulpprogramma's heeft aangeroepen en de resultaten retourneert, gebruikt het model deze resultaten om een vollediger en nauwkeuriger antwoord te maken.
Veelvoorkomende use cases voor het aanroepen van hulpprogramma's zijn:
- Vragen beantwoorden door externe API's aan te roepen. Bijvoorbeeld het controleren van de weersvoorspelling of het verzenden van e-mail.
- Informatie ophalen uit interne gegevensarchieven. Bijvoorbeeld het samenvoegen van verkoopgegevens om te antwoorden: 'Wat zijn mijn best verkopende producten?'
- Gestructureerde gegevens produceren op basis van ongestructureerde tekst. Bijvoorbeeld het samenstellen van een gebruikersprofiel op basis van de chatgeschiedenis.
AI-functies aanroepen in MEAI
De algemene stroom voor het aanroepen van AI-functies met IChatClient is:
Definieer .NET-methoden als functies en configureer deze op een ChatOptions exemplaar.
Verzend het bericht van de gebruiker naar het model. Het model bepaalt welke functies, indien van toepassing, moeten worden aangeroepen. Het retourneert een gestructureerd antwoord waarin de functie-aanroepen en hun argumenten worden vermeld.
Note
Modellen kunnen argumenten hallugumenteren die niet zijn beschreven in uw functiedefinities.
Parseert het antwoord van het model en roept de aangevraagde functies aan met de opgegeven argumenten.
Verzend een andere aanvraag met de functieresultaten als nieuwe berichten in de gespreksgeschiedenis.
Het model reageert met meer aanvragen voor functieaanroepen of een definitief antwoord op de vraag van de gebruiker. Ga door met het aanroepen van aangevraagde functies totdat het model een definitief antwoord biedt.
MEAI FunctionInvokingChatClient verwerkt stap 3 tot en met 5 automatisch, dus u hoeft de aanroeplus niet zelf te beheren.
Sleuteltypen
MEAI biedt de volgende typen ter ondersteuning van functiegesprekken:
- AIFunction: Vertegenwoordigt een functie die kan worden beschreven in een AI-model en wordt aangeroepen. Dit is de kernabstractie voor een functie in MEAI.
-
AIFunctionFactory: biedt factorymethoden voor het maken van
AIFunction-exemplaren van .NET methoden. GebruikAIFunctionFactorydeze methode om bestaande methoden als functies te verpakken zonder standaardbeschrijving of argumentparseringscode te schrijven. -
FunctionInvokingChatClient: verpakt alle
IChatClientfuncties en voegt automatische functie-aanroepmogelijkheden toe. Wanneer het model een functieoproep aanvraagt, roept u het bijbehorendeFunctionInvokingChatClientaan,AIFunctionverzamelt u het resultaat en gaat u door met het gesprek, allemaal transparant.
Parallelle functie aanroepen
Sommige modellen ondersteunen het aanroepen van parallelle functies, waarbij het model meerdere functie-aanroepen in één antwoord aanvraagt. Uw toepassing roept elke functie aan en retourneert alle resultaten in één opvolgingsbericht. Parallelle functie-aanroepen verminderen het aantal retouren naar het model, waardoor de latentie en het API-gebruik worden verlaagd.
FunctionInvokingChatClient biedt ondersteuning voor het automatisch aanroepen van parallelle functies.
Ondersteuning voor meerdere providers
Een van de belangrijkste voordelen van het gebruik van MEAI voor functiegesprekken is onafhankelijkheid van de provider. De AIFunction, AIFunctionFactoryen FunctionInvokingChatClient typen werken met elke IChatClient implementatie, waaronder:
- Azure OpenAI
- OpenAI
- Ollama
- Iedere andere provider die
IChatClientimplementeert
Omdat ondersteuning voor functiegesprekken verschilt van modellen en providers, controleert u de documentatie van uw provider om te controleren of een specifiek model ondersteuning biedt voor het aanroepen van functies of het aanroepen van parallelle functies.
Overwegingen voor tokens
Beschrijvingen van hulpprogramma's worden opgenomen in de aanvraag die naar het model is verzonden en tellen mee op basis van de tokenlimiet van het model. Dit betekent dat hulpprogrammadefinities bijdragen aan zowel tokenverbruik als aanvraagkosten.
Als uw aanvraag de tokenlimiet van het model nadert, kunt u deze aanpassingen overwegen:
- Verminder het aantal hulpprogramma's dat is geregistreerd voor het gesprek.
- Verkort de methodenamen en beschrijvingen die worden gebruikt voor het genereren van hulpprogrammadefinities.
- Beperk de registratie van hulpprogramma's tot alleen de hulpprogramma's die relevant zijn voor een bepaalde gesprekscontext.