Krav: Brug store modeller til at indhente realtidsinformation, såsom aktuel tid, dagens vejr, tjek ekspreslevering osv., eller brug store modeller til at analysere forretningsdata, du skal bruge funktionen Function Calling. Mange artikler på internettet om Function Calling er meget vage og forklarer ikke klart, og jeg forstår denne funktion ud fra anmodningsoplysningerne.
Lad os først se på renderingerne og bruge den store modelFå det aktuelle tidspunkt, vejret i Shanghai og lommeregneren, der hjalp mig med at tænde min computer, som vist i figuren nedenfor:
OpenAI Interface Dokumentation:Hyperlink-login er synlig., som vist i figuren nedenfor:
Funktionskald
Store modeller er muligvis ikke effektive, når de står over for realtidsproblemer, matematiske beregninger og andre problemer. Du kan bruge funktionen Function Calling til at gøre det muligt for store modeller at interagere med omverdenen ved at introducere eksterne værktøjer.
Function Calling er en ny funktion, der forbinder store modeller med eksterne værktøjer og API'er for at hjælpe store modeller med at bevæge sig mod faktisk industriel implementering. Function Calling gør det muligt for udviklere mere pålideligt at hente strukturerede data fra modeller uden behov for, at brugerne indtaster komplekse prompts.
Når det bruges, kan man beskrive funktionerne og definitionerne af et sæt funktioner til modellen i naturligt sprog; Under samtalen, når den store model føler, at den skal bruge en funktion, vil den intelligent vælge funktionen og vende tilbage for at kalde de nødvendige parametre for at opfylde brugerens specifikke behov. I andre tilfælde vil den store model ikke returnere en funktion og vil fortsætte samtalen. Den store model kalder ikke funktionen direkte, men returnerer dens tilsvarende inputparametre, og du kan selv kalde funktions-/API-grænsefladen.
Kort sagt er Function Calling en "oversætter" mellem naturligt sprog og informationsgrænseflader
Oversæt det naturlige sprog til de nødvendige funktioner og parametre, og returnér det til den store modelkalder Efter at den store modelkalder har udført funktionen, returneres resultatet til den store model, og den store model kan opsummeres i naturligt sprog eller fortsætte med at planlægge delopgaver
Workflow-diagrammet vises nedenfor:
Semantisk kerne
Semantic Kernel er et letvægts, open source udviklingskit, der kan bruges til nemt at generere AI-agenter og integrere de nyeste AI-modeller i C#-, Python- eller Java-kodebaser. Det fungerer som en effektiv middleware, der muliggør hurtig levering af løsninger på virksomhedsniveau.
Dokumentation:Hyperlink-login er synlig. Kilde:Hyperlink-login er synlig.
C# kalder Alibaba Cloud Tongyi Qianwen for at udføre Function Calling
Opret et nyt .NET 8-konsolprojekt med følgende referencer:
Koden er som følger:
Kør programmet, som er renderingen i starten, få det aktuelle tidspunkt og vejret i Shanghai, og åbn lommeregneren.
Udførelseslog:
=============================================================================
Request:
Method: POST
Uri: Hyperlink-login er synlig. Anmodningsindhold: {"tools":[{"function":{"description":"Meget nyttigt, når du vil vide, hvad klokken er." ,"name":"itsvse-get_current_time","strict":false,"parameters":{"type":"object","required":[],"properties":{}}},"type":"function"},{"function":{"description":" Dette er nyttigt, når du vil tjekke vejret i en given by i dag. ","name":"itsvse-get_current_weather","strict":false,"parameters":{"type":"object","required":["location"],"properties":{"location":{"description":"By eller amt, såsom Beijing, Shanghai, Hangzhou by, Yuhang-distriktet osv. ","type":"string"}}}},"type":"function"},{"function":{"description":"Dette er meget nyttigt, når du vil forespørge den specificerede express logistics-information." ","name":"itsvse-get_current_test","strict":false,"parameters":{"type":"object","required":["no"],"properties":{"no":{"description":"Messenger tracking number, f.eks. SF, ZTO og postens kurérsporingsnumre er acceptable." ","type":"string"}}}},"type":"function"},{"function":{"description":"Meget nyttigt, når du vil åbne lommeregneren." ,"name":"itsvse-open_calculator","strict":false,"parameters":{"type":"object","required":[],"properties":{}}},"type":"function"}],"messages":{{"role":"user","content" "Hej, hjælp mig venligst med at tjekke det aktuelle tidspunkt og dagens vejr i Shanghai." Hjælp mig så med klokke-ind-beregneren, jeg vil regne dagens indkomst ud. "}],"model":"qwen-max","tool_choice":"auto","parallel_tool_calls":true}
Response: Statuskode: OK
Body: {"choices":[{"message":{"content":"","role":"assistant","tool_calls":[{"function":{"name":"itsvse-get_current_time","arguments":"{}"},"index":0,"id":"call_6e6cade782f54c9ca87186","type":"function"},{"function":{"name":"itsvse-get_current_weather","arguments":"{\"location\": \"上海市\"}"},"index":1,"id":"call_cc957be34f5741f4b2a969","type":"function"},{"function":{"name":"itsvse-open_calculator","arguments":"{}"},"index":2,"id":"call_6023df74d7bd48c789e876","type":"function"}]},"finish_reason":"tool_calls","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":500,"completion_tokens":53,"total_tokens":553,"prompt_tokens_details":{"cached_tokens":256}},"created":1742980780,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-1761acb9-717a-997c-9f17-7284e82fd121"} ============================================================================= ----------------------- kalder det metoden til at få tid----------------------- ---------------------------------------------------------------- ----------------------- kalder det metoden til at få vejret----------------------- Parameter: Shanghai ---------------------------------------------------------------- ----------------------- Åbn computerens lommeregner----------------------- =============================================================================
Request:
Method: POST
Uri: Hyperlink-login er synlig. Anmodningsindhold: {"tools":[{"function":{"description":"Meget nyttigt, når du vil vide, hvad klokken er." ,"name":"itsvse-get_current_time","strict":false,"parameters":{"type":"object","required":[],"properties":{}}},"type":"function"},{"function":{"description":" Dette er nyttigt, når du vil tjekke vejret i en given by i dag. ","name":"itsvse-get_current_weather","strict":false,"parameters":{"type":"object","required":["location"],"properties":{"location":{"description":"By eller amt, såsom Beijing, Shanghai, Hangzhou by, Yuhang-distriktet osv. ","type":"string"}}}},"type":"function"},{"function":{"description":"Dette er meget nyttigt, når du vil forespørge den specificerede express logistics-information." ","name":"itsvse-get_current_test","strict":false,"parameters":{"type":"object","required":["no"],"properties":{"no":{"description":"Messenger tracking number, f.eks. SF, ZTO og postens kurérsporingsnumre er acceptable." ","type":"string"}}}},"type":"function"},{"function":{"description":"Meget nyttigt, når du vil åbne lommeregneren." ,"name":"itsvse-open_calculator","strict":false,"parameters":{"type":"object","required":[],"properties":{}}},"type":"function"}],"messages":{{"role":"user","content" "Hej, hjælp mig venligst med at tjekke det aktuelle tidspunkt og dagens vejr i Shanghai." Hjælp mig så med klokke-ind-beregneren, jeg vil regne dagens indkomst ud. "},{"role":"assistant","content":"","tool_calls":[{"id":"call_6e6cade782f54c9ca87186","function":{"name":"itsvse-get_current_time","arguments":"{}"}"},"type":"function" ","index":0},{"id":"call_cc957be34f5741f4b2a969","function":{"name":"itsvse-get_current_weather","arguments":"{\"location\": \"Shanghai\"}""type":"function","index":1},{" id":"call_6023df74d7bd48c789e876","Funktion":{"Navn":"ItSVSE-open_calculator","Argumenter":"{}"}},"Type":"Funktion","Index":2}]},{"Rolle":"Værktøj","tool_call_id":"call_ 6e6cade782f54c9ca87186","content":"2025/3/26 17:19:40"},{"role":"tool","tool_call_id":"call_cc957be34f5741f4b2a969","content":"Vejrforholdene i Shanghai er som følger: skyet med tordenvejr, temperaturer mellem 10°C og 20°C",{" rolle":"værktøj","tool_call_id":"call_6023df74d7bd48c789e876","indhold":"Lommeregner åbnet." }],"model":"qwen-max","tool_choice":"auto","parallel_tool_calls":true}
Response: Statuskode: OK
Body: {"choices":[{"message":{"content":"现在的时间是2025年3月26日17点19分40秒。\n\n今天上海市的天气情况如下:多云转雷阵雨,气温介于10°C到20°C之间,请记得带伞哦。\n\n我已经 帮你打开了计算器,你可以开始计算今天的收入了。","role":"assistant"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":621,"completion_tokens":70,"total_tokens":691,"prompt_tokens_details":{"cached_tokens":0}},"created":1742980783,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-b0bd149e-3f5b-9a53-91d7-7bb26487d822"} ============================================================================= Assistent > er nu 17:19:40, 26. marts 2025.
Vejrforholdene i Shanghai i dag er som følger: skyet til tordenvejr, temperaturer mellem 10°C og 20°C, husk venligst at medbringe en paraply.
Jeg har åbnet lommeregneren for dig, og du kan begynde at regne dine indtægter ud i dag. Henvisning:
Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig. |