一站式网站建设方案免费的网站在哪里下载

张小明 2026/1/2 19:21:48
一站式网站建设方案,免费的网站在哪里下载,shopnc本地生活o2o网站源码,网站搭建服务器需要什么Spring AI Alibaba 的 ChatClient 工具注册与 Function Calling 实践总结在实际使用 Spring AI 进行聊天应用开发时#xff0c;碰到工具#xff08;Tool#xff09;注册、函数调用#xff08;Function Calling#xff09;以及 ChatClient 配置的问题。本文将总结从源码到…Spring AI Alibaba 的 ChatClient 工具注册与 Function Calling 实践总结在实际使用 Spring AI 进行聊天应用开发时碰到工具Tool注册、函数调用Function Calling以及ChatClient 配置的问题。本文将总结从源码到实践的一些经验和知识点帮助你更高效地集成 AI 聊天功能。1. ChatClient Builder 的核心方法Spring AI 提供了ChatClient.Builder用于构建一个可用的 AI 聊天客户端。常用方法包括默认系统提示.defaultSystem(AiPrompts.GENERAL_ASSISTANT)默认会话记忆顾问.defaultAdvisors(MessageChatMemoryAdvisor.builder(MessageWindowChatMemory.builder().chatMemoryRepository(chatMemoryRepository).build()).build())工具注册.defaultTools(...)// 注册对象实例.defaultToolNames(...)// 注册 Spring Bean 名称对应的工具.tool(...)// 注册 Tool 注解方法注意.defaultTools()与.defaultToolNames()的作用不同稍后详细说明。2. Function Calling 与工具注册Spring AI 支持把 Spring Bean 自动注册为 AI 可调用的函数function calling。常用方式有两种2.1 Bean Supplier / FunctionBeanDescription(查询所有学生信息)publicSupplierListStudentgetAllStudents(){return()-studentInfoService.selectStudentInfoList(newStudent());}BeanDescription(根据学生ID查询学生信息)publicFunctionLong,StudentgetStudentById(){returnstudentId-studentInfoService.selectStudentInfoByStudentId(studentId);}Supplier无入参返回值为工具输出。FunctionT, R有入参T返回值为工具输出R。通过.defaultToolNames(getAllStudents)自动注册AI 可以直接调用。2.2 Tool 注解方法Tool(namegetAllStudents,description查询所有学生信息)publicListStudentgetAllStudents(){returnstudentInfoService.selectStudentInfoList(newStudent());}适用于更标准的 function calling 方式需要使用.defaultTools()注册3..defaultTools()与.defaultToolNames()区别方法适用场景注意点.defaultTools(Object... tools)注册对象实例Lambda、工具对象如果 Lambda 没有Tool注解会报错 “No Tool annotated methods found”需要使用.toolCallbacks().defaultToolNames(String... beanNames)自动注册 Spring 上下文中 Bean 名称对应的工具只能识别 Bean 名称对应的 Supplier / Function 或Tool方法.toolCallbacks()注册Tool注解方法或ToolCallback支持标准 function-calling✅ 结论Supplier / Function Bean → 推荐.defaultToolNames()普通方法 Tool 注解 →.defaultTools()4. 自动收集 Bean 注册工具在实际项目中如果工具数量较多不希望手动写.defaultToolNames(...)可以通过循环自动收集MapString,SuppliersupplierBeansapplicationContext.getBeansOfType(Supplier.class);MapString,FunctionfunctionBeansapplicationContext.getBeansOfType(Function.class);SetStringallToolNamessupplierBeans.keySet().stream().collect(Collectors.toSet());allToolNames.addAll(functionBeans.keySet());ChatClientclientChatClient.builder(chatModel).defaultSystem(你是智能助手).defaultAdvisors(...).defaultToolNames(allToolNames.toArray(newString[0])).build();自动扫描 Spring 上下文的所有 Supplier / Function Bean避免手动列出工具名称保持 ChatClient 配置简洁5. Supplier 与 Function 区别类型参数返回值使用场景SupplierR无R无输入参数工具直接返回结果FunctionT, RTR需要输入参数的工具例如根据 ID 查询对象示例SupplierListStudentgetAllStudents;// 无入参FunctionLong,StudentgetStudentById;// 入参为学生ID本文记录于 MindCampus 毕设项目开发过程中2024年12月如果对你有帮助不妨留一个赞
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

广东建设工程造价管理协会网站网站建设360元起全包

第一章:Open-AutoGLM WiFi稳定性问题的背景与挑战在物联网与边缘计算快速发展的背景下,Open-AutoGLM 作为一款开源自动化语言模型推理框架,广泛应用于智能终端设备中。然而,随着部署场景从实验室环境转向复杂多变的现场网络&#…

张小明 2025/12/31 9:25:15 网站建设

外贸推广建站蓝颜seo牛广州短视频代运营公司

事务拦截器TransactionInterceptor、事务管理器和DataSource数据源三者的关系1. 事务拦截器 (TransactionInterceptor) - “交通指挥中心”2. 事务管理器 (PlatformTransactionManager) - “施工现场经理”3. DataSource数据源 - “资源仓库管理员”事务拦截器(Tran…

张小明 2025/12/31 9:25:13 网站建设

wordpress网站非常慢上海城乡建设管理局网站保障房板块

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个Docker权限问题解决效率对比工具,能够:1) 自动测试不同解决方案(如sudo、用户组添加、修改socket权限等)的执行效率,2) 评估每种方案的…

张小明 2025/12/31 11:23:19 网站建设

公司搭建一个网站公众号开发菜单

DevOps环境中的IT运维技能与报表制作指南 1. 为失败做好规划 在DevOps环境里,有人会觉得向生产环境推送新代码会引发诸多问题。确实,任何变更都可能带来麻烦。但DevOps的核心,尤其是运维在其中的角色,是打造一个能快速失败并快速修复的环境。如果DevOps意味着持续推送小批…

张小明 2025/12/31 11:23:18 网站建设