Commit c8a584c51e29509891bb33d329174251f3327645

Authored by YunaiV
1 parent 73ac8f7e

fix(ai): 显式注册工具回调,修复异步线程类型解析失败

yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/framework/ai/config/AiAutoConfiguration.java
... ... @@ -21,6 +21,9 @@ import cn.iocoder.yudao.module.ai.framework.ai.core.model.yiyan.YiYanChatModel;
21 21 import cn.iocoder.yudao.module.ai.framework.ai.core.model.zhipu.ZhiPuChatModel;
22 22 import cn.iocoder.yudao.module.ai.framework.ai.core.webserch.AiWebSearchClient;
23 23 import cn.iocoder.yudao.module.ai.framework.ai.core.webserch.bocha.AiBoChaWebSearchClient;
  24 +import cn.iocoder.yudao.module.ai.tool.function.DirectoryListToolFunction;
  25 +import cn.iocoder.yudao.module.ai.tool.function.UserProfileQueryToolFunction;
  26 +import cn.iocoder.yudao.module.ai.tool.function.WeatherQueryToolFunction;
24 27 import cn.iocoder.yudao.module.ai.tool.method.PersonService;
25 28 import io.micrometer.observation.ObservationRegistry;
26 29 import lombok.extern.slf4j.Slf4j;
... ... @@ -38,6 +41,7 @@ import org.springframework.ai.support.ToolCallbacks;
38 41 import org.springframework.ai.tokenizer.JTokkitTokenCountEstimator;
39 42 import org.springframework.ai.tokenizer.TokenCountEstimator;
40 43 import org.springframework.ai.tool.ToolCallback;
  44 +import org.springframework.ai.tool.function.FunctionToolCallback;
41 45 import org.springframework.ai.vectorstore.milvus.autoconfigure.MilvusServiceClientProperties;
42 46 import org.springframework.ai.vectorstore.milvus.autoconfigure.MilvusVectorStoreProperties;
43 47 import org.springframework.ai.vectorstore.qdrant.autoconfigure.QdrantVectorStoreProperties;
... ... @@ -424,7 +428,7 @@ public class AiAutoConfiguration {
424 428 return new AiBoChaWebSearchClient(yudaoAiProperties.getWebSearch().getApiKey());
425 429 }
426 430  
427   - // ========== MCP 相关 ==========
  431 + // ========== MCP & 工具相关 ==========
428 432  
429 433 /**
430 434 * 参考自 <a href="https://docs.spring.io/spring-ai/reference/api/mcp/mcp-client-boot-starter-docs.html">MCP Server Boot Starter</>
... ... @@ -434,4 +438,25 @@ public class AiAutoConfiguration {
434 438 return List.of(ToolCallbacks.from(personService));
435 439 }
436 440  
  441 + @Bean
  442 + public ToolCallback directoryListToolCallback(DirectoryListToolFunction function) {
  443 + return FunctionToolCallback.builder("directory_list", function)
  444 + .description("列出指定目录的文件列表")
  445 + .inputType(DirectoryListToolFunction.Request.class).build();
  446 + }
  447 +
  448 + @Bean
  449 + public ToolCallback weatherQueryToolCallback(WeatherQueryToolFunction function) {
  450 + return FunctionToolCallback.builder("weather_query", function)
  451 + .description("查询指定城市的天气信息")
  452 + .inputType(WeatherQueryToolFunction.Request.class).build();
  453 + }
  454 +
  455 + @Bean
  456 + public ToolCallback userProfileQueryToolCallback(UserProfileQueryToolFunction function) {
  457 + return FunctionToolCallback.builder("user_profile_query", function)
  458 + .description("用户信息查询")
  459 + .inputType(UserProfileQueryToolFunction.Request.class).build();
  460 + }
  461 +
437 462 }
... ...