Изисквания: Използвайте големи модели за получаване на информация в реално време, като текущо време, днешно време, проверка на експресната доставка и др., или използвайте големи модели за анализ на бизнес данни, трябва да използвате функцията 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, моля, не забравяйте да вземете чадър.
Отворих калкулатора за вас и можете да започнете да изчислявате печалбите си още днес. Препратка:
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Входът към хиперлинк е видим. |