Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 1326|Svar: 3

[Källa] [AI] (16) Semantic Kernel baseras på Qwen för att testa funktionsanrop

[Kopiera länk]
Publicerad den 26-3-2025 17:46:52 | | | |
Krav: Använd stora modeller för att få realtidsinformation, såsom aktuell tid, dagens väder, kontrollera expressleverans osv., eller använd stora modeller för att analysera affärsdata, du behöver använda funktionen Function Calling. Många artiklar på internet om Function Calling är mycket vaga och förklarar inte tydligt, och jag förstår denna funktion baserat på förfrågningsinformationen.

Låt oss först titta på renderingarna och använda den stora modellenFå den aktuella tiden, vädret i Shanghai och kalkylatorn som hjälpte mig att slå på datorn, som visas i figuren nedan:



OpenAI-gränssnittsdokumentation:Inloggningen med hyperlänken är synlig., som visas i figuren nedan:



Funktionsanrop

Stora modeller kan vara ineffektiva när de ställs inför realtidsproblem, matematiska beräkningar och andra problem. Du kan använda funktionen Function Calling för att möjliggöra för stora modeller att interagera med omvärlden genom att introducera externa verktyg.

Function Calling är en ny funktion som kopplar stora modeller till externa verktyg och API:er för att hjälpa stora modeller att gå mot faktisk industriell implementering. Function Calling gör det möjligt för utvecklare att mer pålitligt erhålla strukturerad data från modeller utan att användarna behöver mata in komplexa prompts.

När det används kan du beskriva funktionerna och definitionerna av en uppsättning funktioner till modellen på naturligt språk; Under samtalet, när den stora modellen känner att den behöver använda en funktion, väljer den intelligent funktionen och återvänder för att anropa de nödvändiga parametrarna för att möta användarens specifika behov. I andra fall returnerar inte den stora modellen en funktion utan fortsätter konversationen. Den stora modellen anropar inte funktionen direkt, utan returnerar dess motsvarande indataparametrar, och du kan själv anropa funktionen/API-gränssnittet.

Enkelt uttryckt är Function Calling en "översättare" mellan naturligt språk och informationsgränssnitt

Översätt det naturliga språket till de nödvändiga funktionerna och parametrarna, och returnera det till den stora modellanroparen
Efter att den stora modellanroparen utfört funktionen returneras resultatet till den stora modellen, och den stora modellen kan sammanfattas till naturligt språk eller fortsätta planera deluppgifter

Arbetsflödesdiagrammet visas nedan:



Semantisk kärna

Semantic Kernel är ett lättviktigt, öppen källkods-utvecklingskit som kan användas för att enkelt generera AI-agenter och integrera de senaste AI-modellerna i C#-, Python- eller Java-kodbaser. Den fungerar som en effektiv mellanvara som möjliggör snabb leverans av lösningar på företagsnivå.

Dokumentation:Inloggningen med hyperlänken är synlig.
Källa:Inloggningen med hyperlänken är synlig.

C# anropar Alibaba Cloud Tongyi Qianwen för att utföra Function Calling

Skapa ett nytt .NET 8-konsolprojekt med följande referenser:

Koden är följande:

Kör programmet, som är renderingen i början, få aktuell tid och väder i Shanghai, och öppna kalkylatorn.

Genomförandelogg:

=============================================================================
Request:
Method: POST
Uri: Inloggningen med hyperlänken är synlig.
Begär innehåll: {"tools":[{"function":{"description":"Mycket användbart när du vill veta vad klockan är." ,"name":"itsvse-get_current_time","strict":false,"parameters":{"type":"object","required":[],"properties":{}}},"type":"function"},{"function":{"description"::" Detta är användbart när du vill kolla vädret i en viss stad idag. ","name":"itsvse-get_current_weather","strict":false,"parameters":{"type":"object","required":["location"],"properties":{"location":{"description":"Stad:", såsom Peking, Shanghai, Hangzhou stad, Yuhang-distriktet, etc. ","type":"string"}}}},"type":"function"},{"function":{"description":"Detta är mycket användbart när du vill fråga den specificerade express logistics-informationen." ","name":"itsvse-get_current_test","strict":false,"parameters":{"type":"object","required":["no"],"properties":{"no":{"description":"Messenger-spårningsnummer, t.ex. SF, ZTO och postbudets spårningsnummer är acceptabla." ","type":"string"}}}},"type":"function"},{"function":{"description":"Mycket användbart när du vill öppna miniräknaren." ,"name":"itsvse-open_calculator","strict":false,"parameters":{"type":"object","required":[],"properties":{}}},"type":"function"}],"messages":[{"role":"user","content" "Hej, hjälp mig att kolla dagens tid och väder i Shanghai." Hjälp mig sedan med klockräknaren, jag vill räkna ut dagens inkomst. "}],"model":"qwen-max","tool_choice":"auto","parallel_tool_calls":true}
Response:
Statuskod: 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"}
=============================================================================
----------------------- kallar det metoden att få tid-----------------------
----------------------------------------------------------------
----------------------- kallar metoden för att få vädret-----------------------
Parameter: Shanghai
----------------------------------------------------------------
----------------------- Öppna datorns kalkylator-----------------------
=============================================================================
Request:
Method: POST
Uri: Inloggningen med hyperlänken är synlig.
Begär innehåll: {"tools":[{"function":{"description":"Mycket användbart när du vill veta vad klockan är." ,"name":"itsvse-get_current_time","strict":false,"parameters":{"type":"object","required":[],"properties":{}}},"type":"function"},{"function":{"description"::" Detta är användbart när du vill kolla vädret i en viss stad idag. ","name":"itsvse-get_current_weather","strict":false,"parameters":{"type":"object","required":["location"],"properties":{"location":{"description":"Stad:", såsom Peking, Shanghai, Hangzhou stad, Yuhang-distriktet, etc. ","type":"string"}}}},"type":"function"},{"function":{"description":"Detta är mycket användbart när du vill fråga den specificerade express logistics-informationen." ","name":"itsvse-get_current_test","strict":false,"parameters":{"type":"object","required":["no"],"properties":{"no":{"description":"Messenger-spårningsnummer, t.ex. SF, ZTO och postbudets spårningsnummer är acceptabla." ","type":"string"}}}},"type":"function"},{"function":{"description":"Mycket användbart när du vill öppna miniräknaren." ,"name":"itsvse-open_calculator","strict":false,"parameters":{"type":"object","required":[],"properties":{}}},"type":"function"}],"messages":[{"role":"user","content" "Hej, hjälp mig att kolla dagens tid och väder i Shanghai." Hjälp mig sedan med klockräknaren, jag vill räkna ut dagens inkomst. "},{"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","function":{"name":"itsvse-open_calculator","arguments":"{}"}""type":"function","index":2}]},{"role":"tool","tool_call_id":"call_ 6e6cade782f54c9ca87186","content":"2025/3/26 17:19:40"},{"role":"tool","tool_call_id":"call_cc957be34f5741f4b2a969","content":"Väderförhållandena i Shanghai är följande: molniga med åskväder, temperaturer mellan 10°C och 20°C"},{" roll":"verktyg","tool_call_id":"call_6023df74d7bd48c789e876","innehåll":"Kalkylator öppnad." }],"model":"qwen-max","tool_choice":"auto","parallel_tool_calls":true}
Response:
Statuskod: 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"}
=============================================================================
Assisterande > är nu 17:19:40, 26 mars 2025.

Väderförhållandena i Shanghai idag är följande: molnigt till åskväder, temperaturer mellan 10°C och 20°C, vänligen kom ihåg att ta med ett paraply.

Jag har öppnat kalkylatorn åt dig och du kan börja räkna ut dina intäkter idag.

Hänvisning:

Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.
Inloggningen med hyperlänken är synlig.

Tjog

Antal deltagare1MB+1 Kollaps förnuft
GoodTime + 1 Stöd ägaren att posta ett bra inlägg, och jag kommer också att posta ett bra inlägg!

Se alla betyg





Föregående:toPlainString, toEngineeringString, toString för BigDecimal i Java
Nästa:.NET/C#-föräldra-barn-processer kommunicerar med standardin-/utmatningsströmmar
 Hyresvärd| Publicerad den 27-3-2025 08:59:23 |
Samtalskod med flera varv:


andraInformationen för den initierade begäran är följande:



 Hyresvärd| Publicerad 2025-3-27 08:58:04 |
Om strömmande material

I strömningsläget gäller tool_calls också, men det finns några ytterligare punkter att notera, som anges nedan:

Under strömningsutdatan, eftersom finish_reason kommer att förekomma i den sista delen, rekommenderas det att använda närvaron eller frånvaron av fältet delta.tool_calls för att avgöra om det aktuella svaret innehåller ett verktygsanrop;
Under streamingutmatningen kommer delta.content att utmatas först, och sedan delta.tool_calls, så du måste vänta tills delta.content-utmatningen är klar innan du kan bedöma och identifiera tool_calls;
I processen att strömma utdata kommer vi att specificera tool_call.id och tool_call.function.name för det aktuella anropet tool_calls i det initiala datablocket, och endast tool_call.function.arguments kommer att outputtas i det efterföljande datablocket.
Under strömningsutdataprocessen, om Kimi-modellen returnerar flera tool_calls samtidigt, använder vi ett extra fält kallat index för att identifiera det aktuella tool_call-indexet, så att du korrekt kan sy parametern tool_call.function.arguments.

Inloggningen med hyperlänken är synlig.

Ett exempel på ett strömmande svar är följande:

data: {"choices":[{"delta":{"content":null,"tool_calls":[{"function":{"name":"itsvse-get_current_time","arguments":""},"index":0,"id":"call_deb0063d315441b18b50d8","type":"function"}],"role":"assistant"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1743037194,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-c4e2a989-10a3-9604-bdae-0b58b4f876a7"}

data: {"choices":[{"delta":{"content":null,"tool_calls":[{"function":{"arguments":"{}"},"index":0,"id":"","type":"function"}]},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1743037194,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-c4e2a989-10a3-9604-bdae-0b58b4f876a7"}

data: {"choices":[{"delta":{"content":null,"tool_calls":[{"function":{},"index":0,"id":"","type":"function"}]},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1743037194,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-c4e2a989-10a3-9604-bdae-0b58b4f876a7"}

data: {"choices":[{"delta":{"content":null,"tool_calls":[{"function":{},"index":0,"id":"","type":"function"}]},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1743037194,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-c4e2a989-10a3-9604-bdae-0b58b4f876a7"}

data: {"choices":[{"delta":{"content":null,"tool_calls":[{"function":{},"index":0,"id":"","type":"function"},{"function":{"name":"itsvse-get_current_weather","arguments":""},"index":1,"id":"call_9790fb45e2b7419097d578","type":"function"}]},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1743037194,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-c4e2a989-10a3-9604-bdae-0b58b4f876a7"}

data: {"choices":[{"delta":{"content":null,"tool_calls":[{"function":{"arguments":"{\"location\": \""},"index":1,"id":"","type":"function"}]},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1743037194,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-c4e2a989-10a3-9604-bdae-0b58b4f876a7"}

data: {"choices":[{"delta":{"content":null,"tool_calls":[{"function":{"arguments":"上海市\"}"},"index":1,"id":"","type":"function"}]},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1743037194,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-c4e2a989-10a3-9604-bdae-0b58b4f876a7"}

data: {"choices":[{"delta":{"content":null,"tool_calls":[{"function":{},"index":1,"id":"","type":"function"}]},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1743037194,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-c4e2a989-10a3-9604-bdae-0b58b4f876a7"}

data: {"choices":[{"delta":{"content":null,"tool_calls":[{"function":{},"index":1,"id":"","type":"function"}]},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1743037194,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-c4e2a989-10a3-9604-bdae-0b58b4f876a7"}

data: {"choices":[{"delta":{"content":null,"tool_calls":[{"function":{},"index":1,"id":"","type":"function"}]},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1743037194,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-c4e2a989-10a3-9604-bdae-0b58b4f876a7"}

data: {"choices":[{"delta":{"tool_calls":[{"function":{"arguments":null},"index":1,"id":"","type":"function"},{"function":{"arguments":"{}","name":"itsvse-open_calculator"},"index":2,"id":"call_3ad6478075f04021ab9ea1","type":"function"}]},"index":0}],"object":"chat.completion.chunk","usage":null,"created":1743037194,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-c4e2a989-10a3-9604-bdae-0b58b4f876a7"}

data: {"choices":[{"finish_reason":"tool_calls","delta":{},"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1743037194,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-c4e2a989-10a3-9604-bdae-0b58b4f876a7"}

data: {"choices":[],"object":"chat.completion.chunk","usage":{"prompt_tokens":500,"completion_tokens":53,"total_tokens":553,"prompt_tokens_details":{"cached_tokens":0}},"created":1743037194,"system_fingerprint":null,"model":"qwen-max","id":"chatcmpl-c4e2a989-10a3-9604-bdae-0b58b4f876a7"}

data: [DONE]


 Hyresvärd| Publicerad den 2025-10-22 11:30:02 |
MCP (1) Introduktionshandledning för modellkontextprotokoll
https://www.itsvse.com/thread-11104-1-1.html
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com