Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 1326|Resposta: 3

[Fonte] [AI] (16) Kernel Semântico é baseado no Qwen para testar a Chamada de Função

[Copiar link]
Postado em 26-03-2025 17:46:52 | | | |
Requisitos: Use modelos grandes para obter informações em tempo real, como horário atual, clima atual, entrega expressa, etc., ou use modelos grandes para analisar dados de negócios, você precisa usar a função de Chamada de Função. Muitos artigos na internet sobre Chamada de Função são muito vagos e não explicam claramente, e eu entendo essa função com base nas informações do pedido.

Vamos dar uma olhada nas renderizações primeiro e usar o modelo grandeVeja o horário atual, o clima em Xangai e a calculadora que me ajudou a ligar o computador, como mostrado na figura abaixo:



Documentação da Interface OpenAI:O login do hiperlink está visível., como mostrado na figura abaixo:



Chamada de Função

Modelos grandes podem não ser eficazes diante de problemas em tempo real, cálculos matemáticos e outros problemas. Você pode usar a função Function Calling para permitir que modelos grandes interajam com o mundo externo ao introduzir ferramentas externas.

Function Calling é uma nova função que conecta grandes modelos com ferramentas externas e APIs para ajudar grandes modelos a avançarem rumo à implementação industrial real. O Function Calling permite que os desenvolvedores obtenham dados estruturados de modelos de forma mais confiável, sem a necessidade de os usuários inserirem prompts complexos.

Quando usada, você pode descrever as funções e definições de um conjunto de funções ao modelo em linguagem natural; Durante a conversa, quando o modelo grande sentir que precisa usar uma função, ele seleciona inteligentemente a função e retorna para chamar os parâmetros necessários para atender às necessidades específicas do usuário. Em outros casos, o modelo grande não retorna uma função e continua a conversa. O modelo grande não chama diretamente a função, mas retorna seus parâmetros de entrada correspondentes, e você pode chamar a interface função/API você mesmo.

Em termos simples, Function Calling é um "tradutor" entre interfaces de linguagem natural e informação

Traduza a linguagem natural para as funções e parâmetros necessários e retorne ao grande chamador do modelo
Após o chamador de modelo grande executar a função, o resultado é retornado ao modelo grande, e o modelo grande pode ser resumido em linguagem natural ou continuar a planejar subtarefas

O diagrama do fluxo de trabalho é mostrado abaixo:



Kernel Semântico

O Semantic Kernel é um kit de desenvolvimento leve e de código aberto que pode ser usado para gerar agentes de IA facilmente e integrar os modelos mais recentes em bases de código em C#, Python ou Java. Ele atua como um middleware eficiente, permitindo a entrega rápida de soluções em nível empresarial.

Documentação:O login do hiperlink está visível.
Fonte:O login do hiperlink está visível.

C# chama Alibaba Cloud Tongyi Qianwen para executar Function Calling

Crie um novo projeto de console .NET 8 com as seguintes referências:

O código é o seguinte:

Execute o programa, que é a renderização no início, obtenha a hora atual e o clima de Xangai, e abra a calculadora.

Registro de execução:

=============================================================================
Request:
Method: POST
Uri: O login do hiperlink está visível.
Solicite conteúdo: {"tools":[{{"function":{"description":"Muito útil quando você quer saber que horas são." ,"name":"itsvse-get_current_time","strict":false,"parameters":{"type":"object","required":[],"properties":{}}},"type":"function"},{"function":{"description":" Isso é útil quando você quer checar o clima de uma determinada cidade hoje. ","nome":"itsvse-get_current_weather","rigoroso":falso,"parâmetros":{"tipo":"objeto","requerido":["localização"],"propriedades":{"localização":{"descrição":"Cidade ou condado, como Pequim, Xangai, Cidade de Hangzhou, distrito de Yuhang, etc. ","type":"string"}}}},"type":"function"},{"function":{"description":"Isso é muito útil quando você quer consultar a informação logística expressa especificada." ","name":"itsvse-get_current_test","strict":false,"parameters":{"type":"object","required":["no"],"properties":{"no":{"description":"Número de rastreamento do courier, por exemplo, números de rastreamento do SF, ZTO e postal do courier são aceitáveis." ","type":"string"}}}},"type":"function"},{"function":{"description":"Muito útil quando você quer abrir a calculadora." ,"nome":"itsvse-open_calculator","strict":false,"parâmetros":{"tipo":"objeto","requerido":[],"propriedades":{}}},"tipo":"função"}],"mensagens":[{"papel":"usuário","conteúdo" "Olá, por favor, me ajude a checar o horário atual e o clima de hoje em Xangai." Depois, me ajude com a calculadora de ponto, quero calcular a renda de hoje. "}],"modelo":"qwen-max","tool_choice":"auto","parallel_tool_calls":true}
Response:
Código de Status: 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"}
=============================================================================
----------------------- chama de método para conseguir tempo-----------------------
----------------------------------------------------------------
----------------------- chama o método de pegar o tempo-----------------------
Parâmetro: Xangai
----------------------------------------------------------------
----------------------- Abra a calculadora do computador-----------------------
=============================================================================
Request:
Method: POST
Uri: O login do hiperlink está visível.
Solicite conteúdo: {"tools":[{{"function":{"description":"Muito útil quando você quer saber que horas são." ,"name":"itsvse-get_current_time","strict":false,"parameters":{"type":"object","required":[],"properties":{}}},"type":"function"},{"function":{"description":" Isso é útil quando você quer checar o clima de uma determinada cidade hoje. ","nome":"itsvse-get_current_weather","rigoroso":falso,"parâmetros":{"tipo":"objeto","requerido":["localização"],"propriedades":{"localização":{"descrição":"Cidade ou condado, como Pequim, Xangai, Cidade de Hangzhou, distrito de Yuhang, etc. ","type":"string"}}}},"type":"function"},{"function":{"description":"Isso é muito útil quando você quer consultar a informação logística expressa especificada." ","name":"itsvse-get_current_test","strict":false,"parameters":{"type":"object","required":["no"],"properties":{"no":{"description":"Número de rastreamento do courier, por exemplo, números de rastreamento do SF, ZTO e postal do courier são aceitáveis." ","type":"string"}}}},"type":"function"},{"function":{"description":"Muito útil quando você quer abrir a calculadora." ,"nome":"itsvse-open_calculator","strict":false,"parâmetros":{"tipo":"objeto","requerido":[],"propriedades":{}}},"tipo":"função"}],"mensagens":[{"papel":"usuário","conteúdo" "Olá, por favor, me ajude a checar o horário atual e o clima de hoje em Xangai." Depois, me ajude com a calculadora de ponto, quero calcular a renda de hoje. "},{"função":"assistente","conteúdo":"","tool_calls":[{"id":"call_6e6cade782f54c9ca87186","função":{"nome":"itsvse-get_current_time","argumentos":"{}"},"tipo":"função" ","index":0},{"id":"call_cc957be34f5741f4b2a969","function":{"name":"itsvse-get_current_weather","arguments":"{\"location\": \"Shanghai\"}"},"type":"function", "index":1},{" id":"call_6023df74d7bd48c789e876","função":{"nome":"itsvse-open_calculator","argumentos":"{}"},"tipo":"função", "index":2}]},{"papel":"ferramenta","tool_call_id":"call_ 6e6cade782f54c9ca87186","conteúdo":"2025/3/26 17:19:40"},{"role":"tool,"tool_call_id":"call_cc957be34f5741f4b2a969","content":"As condições climáticas em Xangai são as seguintes: nublado com tempestades, temperaturas entre 10°C e 20°C"},{" papel":"ferramenta","tool_call_id":"call_6023df74d7bd48c789e876""conteúdo":"Calculadora aberta." }],"modelo":"qwen-max","tool_choice":"auto","parallel_tool_calls":true}
Response:
Código de Status: 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"}
=============================================================================
Assistente > agora é às 17:19:40, 26 de março de 2025.

As condições climáticas em Xangai hoje são as seguintes: nublado a tempestades, temperaturas entre 10°C e 20°C, por favor, lembre-se de levar um guarda-chuva.

Abri a calculadora para você e você pode começar a calcular seus ganhos hoje.

Referência:

O login do hiperlink está visível.
O login do hiperlink está visível.
O login do hiperlink está visível.
O login do hiperlink está visível.
O login do hiperlink está visível.

Pontuação

Número de participantes1MB+1 Colapso razão
GoodTime + 1 Apoie o dono para postar um bom post, e eu também vou postar um bom post!

Veja todas as classificações





Anterior:toPlainString, toEngineeringString, toString para BigDecimal em Java
Próximo:Processos pai-filho .NET/C# se comunicam usando fluxos padrão de entrada/saída
 Senhorio| Postado em 27-03-2025 08:59:23 |
Código de conversa com múltiplas voltas:


segundoAs informações para a solicitação iniciada são as seguintes:



 Senhorio| Postado em 27-03-2025 08:58:04 |
Sobre a produção de streaming

No modo stream, tool_calls também se aplica, mas há alguns pontos adicionais a serem observados, conforme enumerado abaixo:

Durante a saída em streaming, como finish_reason aparecerá no bloco final, recomenda-se usar a presença ou ausência do campo delta.tool_calls para determinar se a resposta atual contém uma chamada de ferramenta;
Durante a saída em streaming, o delta.content será gerado primeiro, depois o delta.tool_calls, então você deve esperar a saída do delta.content ser concluída antes de poder julgar e identificar tool_calls;
No processo de streaming de saída, especificaremos o tool_call.id e tool_call.function.name do tool_calls de chamada atual no bloco de dados inicial, e apenas tool_call.function.arguments serão gerados no bloco de dados subsequente.
Durante o processo de saída de streaming, se o modelo Kimi retorna múltiplos tool_calls ao mesmo tempo, usaremos um campo adicional chamado índice para identificar o índice de tool_call atual, para que você possa unir corretamente o parâmetro tool_call.function.arguments.

O login do hiperlink está visível.

Um exemplo de resposta de streaming é o seguinte:

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]


 Senhorio| Publicado em 2025-10-22 11:30:02 |
MCP (1) Tutorial Introdutório do Protocolo de Contexto do Modelo
https://www.itsvse.com/thread-11104-1-1.html
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com