Commit c8a584c51e29509891bb33d329174251f3327645
1 parent
73ac8f7e
fix(ai): 显式注册工具回调,修复异步线程类型解析失败
Showing
1 changed file
with
26 additions
and
1 deletions
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 | } | ... | ... |