Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 1326|Répondre: 3

[Source] [AI] (16) Le noyau sémantique est basé sur Qwen pour tester l’appel de fonction

[Copié le lien]
Publié le 26-03-2025 à 17:46:52 | | | |
Exigences : Utilisez de grands modèles pour obtenir des informations en temps réel, telles que l’heure actuelle, la météo actuelle, la livraison express de vérification, etc., ou utilisez de grands modèles pour analyser les données métier, vous devez utiliser la fonction d’appel de fonction. Beaucoup d’articles sur Internet concernant les appels de fonction sont très vagues et n’expliquent pas clairement, et je comprends cette fonction d’après les informations de la demande.

Regardons d’abord les rendus et utilisons le grand modèleObtenez l’heure actuelle, la météo à Shanghai, et la calculatrice qui m’a aidé à allumer mon ordinateur, comme montré dans la figure ci-dessous :



Documentation de l’interface OpenAI :La connexion hyperlientérée est visible., comme montré dans la figure ci-dessous :



Appel de fonction

Les grands modèles peuvent ne pas être efficaces face à des problèmes en temps réel, des calculs mathématiques et d’autres problèmes. Vous pouvez utiliser la fonction Function Calling pour permettre aux grands modèles d’interagir avec le monde extérieur en introduisant des outils externes.

L’appel de fonctions est une nouvelle fonction qui connecte de grands modèles à des outils externes et des API pour aider les grands modèles à évoluer vers une véritable implémentation industrielle. L’appel de fonction permet aux développeurs d’obtenir des données structurées à partir de modèles de manière plus fiable, sans que les utilisateurs aient besoin d’entrer des invites complexes.

Lorsqu’elles sont utilisées, on peut décrire les fonctions et définitions d’un ensemble de fonctions au modèle en langage naturel ; Pendant la conversation, lorsque le grand modèle estime qu’il doit utiliser une fonction, il sélectionne intelligemment la fonction et revient appeler les paramètres nécessaires pour répondre aux besoins spécifiques de l’utilisateur. Dans d’autres cas, le grand modèle ne renverra pas de fonction et poursuivra la conversation. Le grand modèle n’appelle pas directement la fonction, mais renvoie ses paramètres d’entrée correspondants, et vous pouvez appeler vous-même l’interface fonction/API.

En termes simples, l’appel de fonction est un « traducteur » entre les interfaces de langage naturel et d’information

Traduisez le langage naturel en fonctions et paramètres requis, puis retournez-le au grand appelant modèle
Après que le grand appelant modèle ait exécuté la fonction, le résultat est retourné au grand modèle, et le grand modèle peut être résumé en langage naturel ou continuer à planifier des sous-tâches

Le diagramme du flux de travail est présenté ci-dessous :



Noyau sémantique

Le Noyau Sémantique est un kit de développement léger et open source qui peut être utilisé pour générer facilement des agents IA et intégrer les derniers modèles d’IA dans des bases de code C#, Python ou Java. Il agit comme un middleware efficace, permettant une livraison rapide de solutions au niveau entreprise.

Documentation:La connexion hyperlientérée est visible.
Source:La connexion hyperlientérée est visible.

C# appelle Alibaba Cloud Tongyi Qianwen pour exécuter l’appel de fonction

Créez un nouveau projet console .NET 8 avec les références suivantes :

Le code est le suivant :

Lance le programme, qui est le rendu au début, obtiens l’heure actuelle et la météo de Shanghai, puis ouvre la calculatrice.

Journal d’exécution :

=============================================================================
Request:
Method: POST
Uri: La connexion hyperlientérée est visible.
Demande de contenu : {"tools » :[{"function » :{"description » :"Très utile quand vous voulez savoir l’heure qu’il est. » ,"name » :"itsvse-get_current_time »,"strict » :false,"parameters » :{"type » :"object »,"required » :[],"propriétés » :{}}},"type » :"function"},{"function » :{"description » : » C’est utile lorsque vous souhaitez vérifier la météo d’une ville donnée aujourd’hui. « ,"name » :"itsvse-get_current_weather »,"strict » :false,"parameters » :{"type » :"object »,"required » :["location"],"propriétés » :{"location » :{"description » :"ville ou comté, comme Pékin, Shanghai, Ville de Hangzhou, district de Yuhang, etc. « ,"type » :"chaîne"}}}},"type » :"function"},{"function » :{"description » :"C’est très utile lorsque vous souhaitez interroger les informations logistiques explicites spécifiées. » « ,"name » :"itsvse-get_current_test »,"strict » :false,"parameters » :{"type » :"object »,"required » :["no"],"propriétés » :{"no » :{"description » :"Les numéros de suivi du coursier, par exemple, SF, ZTO et postal sont acceptables. » « ,"type » :"string"}}}},"type » :"function"},{"function » :{"description » :"Très utile quand vous voulez ouvrir la calculatrice. » ,"name » :"itsvse-open_calculator »,"strict » :false,"parameters » :{"type » :"object »,"required » :[],"propriétés » :{}}},"type » :"function"}],"messages » :[{"role » :"utilisateur »,"content » « Bonjour, aidez-moi à vérifier l’heure actuelle et la météo actuelle à Shanghai. » Ensuite, aide-moi avec la calculatrice d’entrée, je veux calculer le revenu d’aujourd’hui. « }],"modèle » :"qwen-max »,"tool_choice » :"auto », « parallel_tool_calls » :vrai}
Response:
Code de statut : 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"}
=============================================================================
----------------------- appelle la méthode pour obtenir du temps-----------------------
----------------------------------------------------------------
----------------------- appelle la méthode pour obtenir la météo-----------------------
Paramètre : Shanghai
----------------------------------------------------------------
----------------------- Ouvre la calculatrice de l’ordinateur-----------------------
=============================================================================
Request:
Method: POST
Uri: La connexion hyperlientérée est visible.
Demande de contenu : {"tools » :[{"function » :{"description » :"Très utile quand vous voulez savoir l’heure qu’il est. » ,"name » :"itsvse-get_current_time »,"strict » :false,"parameters » :{"type » :"object »,"required » :[],"propriétés » :{}}},"type » :"function"},{"function » :{"description » : » C’est utile lorsque vous souhaitez vérifier la météo d’une ville donnée aujourd’hui. « ,"name » :"itsvse-get_current_weather »,"strict » :false,"parameters » :{"type » :"object »,"required » :["location"],"propriétés » :{"location » :{"description » :"ville ou comté, comme Pékin, Shanghai, Ville de Hangzhou, district de Yuhang, etc. « ,"type » :"chaîne"}}}},"type » :"function"},{"function » :{"description » :"C’est très utile lorsque vous souhaitez interroger les informations logistiques explicites spécifiées. » « ,"name » :"itsvse-get_current_test »,"strict » :false,"parameters » :{"type » :"object »,"required » :["no"],"propriétés » :{"no » :{"description » :"Les numéros de suivi du coursier, par exemple, SF, ZTO et postal sont acceptables. » « ,"type » :"string"}}}},"type » :"function"},{"function » :{"description » :"Très utile quand vous voulez ouvrir la calculatrice. » ,"name » :"itsvse-open_calculator »,"strict » :false,"parameters » :{"type » :"object »,"required » :[],"propriétés » :{}}},"type » :"function"}],"messages » :[{"role » :"utilisateur »,"content » « Bonjour, aidez-moi à vérifier l’heure actuelle et la météo actuelle à Shanghai. » Ensuite, aide-moi avec la calculatrice d’entrée, je veux calculer le revenu d’aujourd’hui. « },{"rôle » :"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 » :"outil », « tool_call_id » :"call_cc957be34f5741f4b2a969 »,"content » :"Les conditions météorologiques à Shanghai sont les suivantes : nuageux avec orages, températures entre 10°C et 20°C"},{ » rôle » :"outil »,"tool_call_id"call_6023df74d7bd48c789e876 »,"contenu » :"Calculatrice ouverte. » }],"modèle » :"qwen-max »,"tool_choice » :"auto », « parallel_tool_calls » :true}
Response:
Code de statut : 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"}
=============================================================================
L'> d’assistant est maintenant à 17:19:40, le 26 mars 2025.

Les conditions météorologiques à Shanghai aujourd’hui sont les suivantes : nuageux à orages, températures comprises entre 10°C et 20°C, merci d’apporter un parapluie.

J’ai ouvert la calculatrice pour vous et vous pouvez commencer à calculer vos gains dès aujourd’hui.

Référence:

La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible.

Score

Nombre de participants1MO+1 Effondrement raison
GoodTime + 1 Soutenez le propriétaire pour qu’il publie un bon post, et je publierai aussi un bon post !

Voir toutes les notes





Précédent:toPlainString, toEngineeringString, toString pour BigDecimal en Java
Prochain:Les processus parent-enfant .NET/C# communiquent via des flux standardisés d’entrée/sortie
 Propriétaire| Publié le 27-03-2025 08:59:23 |
Code de conversation à plusieurs tours :


deuxièmeLes informations pour la demande initiée sont les suivantes :



 Propriétaire| Publié le 27-03-2025 08:58:04 |
À propos de la production en streaming

En mode stream, tool_calls s’applique également, mais il y a quelques points supplémentaires à noter, comme énuméré ci-dessous :

Lors de la sortie en streaming, puisque finish_reason apparaîtra dans le dernier bloc, il est recommandé d’utiliser la présence ou l’absence du champ delta.tool_calls pour déterminer si la réponse actuelle contient un appel d’outil ;
Lors de la sortie en streaming, delta.content sera d’abord sorti, puis la delta.tool_calls, donc vous devez attendre que la sortie delta.content soit terminée avant de pouvoir juger et identifier tool_calls ;
Dans le processus de diffusion en continu, nous spécifierons les tool_call.id et tool_call.function.name de la tool_calls d’appel courante dans le bloc de données initial, et seuls tool_call.function.arguments seront générés dans le bloc de données suivant.
Lors du processus de sortie en streaming, si le modèle Kimi retourne plusieurs tool_calls simultanément, nous utiliserons un champ supplémentaire appelé index pour identifier l’indice tool_call courant, afin de pouvoir correctement assembler le paramètre tool_call.function.arguments.

La connexion hyperlientérée est visible.

Voici un exemple de réponse en streaming :

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]


 Propriétaire| Publié le 22-10-2025 à 11:30:02 |
MCP (1) Tutoriel d’introduction au protocole de contexte de modèle
https://www.itsvse.com/thread-11104-1-1.html
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com