Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 1326|Отговор: 3

[Източник] [AI] (16) Semantic Kernel е базиран на Qwen за тестване на извикване на функции

[Копирай линк]
Публикувано на 26.03.2025 17:46:52 | | | |
Изисквания: Използвайте големи модели за получаване на информация в реално време, като текущо време, днешно време, проверка на експресната доставка и др., или използвайте големи модели за анализ на бизнес данни, трябва да използвате функцията Function Calling. Много статии в интернет за извикване на функции са много неясни и не обясняват ясно, а аз разбирам тази функция въз основа на информацията от заявката.

Нека първо разгледаме визуализациите и използваме големия моделВземи текущото време, времето в Шанхай и калкулатора, който ми помогна да включа компютъра си, както е показано на фигурата по-долу:



Документация за интерфейса на OpenAI:Входът към хиперлинк е видим., както е показано на фигурата по-долу:



Извикване на функции

Големите модели може да не са ефективни при решаване на задачи в реално време, математически изчисления и други задачи. Можете да използвате функцията Function Calling, за да позволите на големи модели да взаимодействат с външния свят чрез въвеждане на външни инструменти.

Извикването на функции е нова функция, която свързва големи модели с външни инструменти и API-та, за да помогне на големите модели да преминат към реална индустриална реализация. Извикването на функции позволява на разработчиците да получават структурирани данни от модели по-надеждно, без да е необходимо потребителите да въвеждат сложни подсказки.

Когато се използва, можете да опишете функциите и дефинициите на набор от функции на модела на естествен език; По време на разговора, когато големият модел прецени, че трябва да използва функция, той интелигентно избира функцията и се връща, за да извиква необходимите параметри, за да отговори на специфичните нужди на потребителя. В други случаи големият модел няма да върне функция и ще продължи разговора. Големият модел не извиква функцията директно, а връща съответните входни параметри, и можете сами да извикнете функцията/API интерфейса.

С прости думи, извикването на функции е "преводач" между интерфейсите между естествен език и информационни интерфейси

Преведете естествения език в необходимите функции и параметри и го върнете на големия моделен обаждащ се
След като извикващият се от големия модел изпълни функцията, резултатът се връща към големия модел, а големият модел може да бъде обобщен на естествен език или да продължи да планира подзадачи

Диаграмата на работния процес е показана по-долу:



Семантично ядро

Semantic Kernel е лек, с отворен код комплект за разработка, който може лесно да генерира AI агенти и да интегрира най-новите AI модели в C#, Python или Java кодови бази. Той действа като ефективен междинен софтуер, позволяващ бърза доставка на решения на корпоративно ниво.

Документация:Входът към хиперлинк е видим.
Източник:Входът към хиперлинк е видим.

C# извиква Alibaba Cloud Tongyi Qianwen, за да изпълни извикване на функция

Създайте нов проект за .NET 8 конзола със следните референции:

Кодът е следният:

Стартирай програмата, която е рендирането в началото, вземи текущото време и времето в Шанхай, и отвори калкулатора.

Дневник на изпълнението:

=============================================================================
Request:
Method: POST
Uri: Входът към хиперлинк е видим.
Заявка за съдържание: {"tools":[{"function":{"description":"Много полезно, когато искате да знаете колко е часът." ,"name":"itsvse-get_current_time","strict":false,"parameters":{"type":"object","required":[],"properties":{}}},"type":"function"},{"function":{"description":" Това е полезно, когато искате да проверите времето за даден град днес. ","name":"itsvse-get_current_weather","strict":false,"parameters":{"type":"object","required":["location"],"properties":{"location":{"description":"град или окръг, като Пекин, Шанхай, Град Ханджоу, район Юханг и др. ","type":"string"}}}},"type":"function"},{"function":{"description":"Това е много полезно, когато искате да направите заявка към посочената експресна логистична информация." ","name":"itsvse-get_current_test","strict":false,"parameters":{"type":"object","required":["no"],"properties":{"no":{"description":"Courier tracking number, например SF, ZTO и пощенски куриерски номера са приемливи." ","type":"string"}}}},"type":"function"},{"function":{"description":"Много полезно, когато искате да отворите калкулатора." ,"name":"itsvse-open_calculator","strict":false,"parameters":{"type":"object","required":[],"properties":{}}},"type":"function"}],"messages":[{"role":"user","content" "Здравейте, моля, помогнете ми да проверя текущото време и днешното време в Шанхай." После, помогнете ми с калкулатора за пристигане, искам да изчисля днешния доход. "}],"model":"qwen-max","tool_choice":"auto","parallel_tool_calls":true}
Response:
Статус код: ОК
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"}
=============================================================================
----------------------- наречете метод за получаване на време-----------------------
----------------------------------------------------------------
----------------------- наречете метода за получаване на времето-----------------------
Параметър: Шанхай
----------------------------------------------------------------
----------------------- Отвори компютърния калкулатор-----------------------
=============================================================================
Request:
Method: POST
Uri: Входът към хиперлинк е видим.
Заявка за съдържание: {"tools":[{"function":{"description":"Много полезно, когато искате да знаете колко е часът." ,"name":"itsvse-get_current_time","strict":false,"parameters":{"type":"object","required":[],"properties":{}}},"type":"function"},{"function":{"description":" Това е полезно, когато искате да проверите времето за даден град днес. ","name":"itsvse-get_current_weather","strict":false,"parameters":{"type":"object","required":["location"],"properties":{"location":{"description":"град или окръг, като Пекин, Шанхай, Град Ханджоу, район Юханг и др. ","type":"string"}}}},"type":"function"},{"function":{"description":"Това е много полезно, когато искате да направите заявка към посочената експресна логистична информация." ","name":"itsvse-get_current_test","strict":false,"parameters":{"type":"object","required":["no"],"properties":{"no":{"description":"Courier tracking number, например SF, ZTO и пощенски куриерски номера са приемливи." ","type":"string"}}}},"type":"function"},{"function":{"description":"Много полезно, когато искате да отворите калкулатора." ,"name":"itsvse-open_calculator","strict":false,"parameters":{"type":"object","required":[],"properties":{}}},"type":"function"}],"messages":[{"role":"user","content" "Здравейте, моля, помогнете ми да проверя текущото време и днешното време в Шанхай." После, помогнете ми с калкулатора за пристигане, искам да изчисля днешния доход. "},{"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":"Метеорологичните условия в Шанхай са следните: облачно с гръмотевични бури, температури между 10°C и 20°C"},{" role":"tool","tool_call_id":"call_6023df74d7bd48c789e876","content":"Калкулаторът е отворен." }],"model":"qwen-max","tool_choice":"auto","parallel_tool_calls":true}
Response:
Статус код: ОК
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"}
=============================================================================
Асистент-> вече е 17:19:40, 26 март 2025 г.

Метеорологичните условия в Шанхай днес са следните: облачно до гръмотевични бури, температури между 10°C и 20°C, моля, не забравяйте да вземете чадър.

Отворих калкулатора за вас и можете да започнете да изчислявате печалбите си още днес.

Препратка:

Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.

Резултат

Брой участници1MB+1 Срив причина
GoodTime + 1 Подкрепете собственика да публикува добър пост, а аз също ще публикувам добър пост!

Вижте всички оценки





Предишен:toPlainString, toEngineeringString, toString for BigDecimal in Java
Следващ:.NET/C# процесите родител-дете комуникират чрез стандартни входно-изходни потоци
 Хазяин| Публикувано на 27.03.2025 08:59:23 |
Код за разговор с няколко хода:


секундаИнформацията за инициираната заявка е следната:



 Хазяин| Публикувано на 27.03.2025 08:58:04 |
За стрийминг продукция

В стрийм режим tool_calls също важи, но има няколко допълнителни точки, които трябва да се отбележат, както са изброени по-долу:

По време на изхода на стрийминга, тъй като finish_reason ще се появи във финалния chunk, препоръчва се да се използва наличието или отсъствието на полето delta.tool_calls, за да се определи дали текущият отговор съдържа извикване на инструмент;
По време на изхода на стрийминга, първо ще бъде изведен delta.content, а след това delta.tool_calls, така че трябва да изчакате delta.content да завърши, преди да можете да прецените и идентифицирате tool_calls;
В процеса на стрийминг изход ще зададем tool_call.id и tool_call.function.name на текущото извикване tool_calls в началния блок данни, а само tool_call.function.arguments ще бъдат изведени в следващия блок данни.
По време на процеса на изход на потока, ако моделът на Кими връща няколко tool_calls едновременно, ще използваме допълнително поле, наречено index, за да идентифицираме текущия tool_call индекс, така че да можете правилно да съчетаем параметъра tool_call.function.arguments.

Входът към хиперлинк е видим.

Пример за стрийминг реакция е следният:

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]


 Хазяин| Публикувано на 22.10.2025 11:30:02 |
MCP (1) Въвеждащ урок по протокол за контекст на модела
https://www.itsvse.com/thread-11104-1-1.html
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com