成都php网站建设工程师网站建设服务费合同

张小明 2025/12/29 23:25:55
成都php网站建设工程师,网站建设服务费合同,彩票网站开发,微商城是怎么做的1、ChatClient简介 ChatClient 是Spring AI为“大多数常见AI交互场景”设计的推荐入口点#xff0c;是最佳实践指南#xff0c;它涵盖了90%以上的用例。ChatClient 不仅仅是一个简单的转发器#xff0c;它集成了AI应用中最常见的“高级功能”#xff0c;并以一致的、声明式…1、ChatClient简介ChatClient是Spring AI为“大多数常见AI交互场景”设计的推荐入口点是最佳实践指南它涵盖了90%以上的用例。ChatClient不仅仅是一个简单的转发器它集成了AI应用中最常见的“高级功能”并以一致的、声明式的方式提供系统提示词可以通过SystemPromptTemplate轻松设定AI的角色。格式化响应可以指定返回格式为JSON等方便后续解析。聊天记忆通过Conversation或ChatMemory组件轻松管理多轮对话的历史上下文无需手动拼接消息列表。Tools函数调用可以方便地注册工具FunctionCallback让AI模型在需要时调用业务方法。需要使用某个模型独有的、尚未被ChatClient通用API支持的参数或特性可以回退到使用底层的ChatModel。Spring AI的完整架构层次上图可以用三句话来理解Spring AI提供了OllamaChatModel等来封装各自的APIChatClient在这些ChatModel实现上提供了更高层次的抽象和便利功能ChatClient提供一套统一的、更优雅的API使用所有模型。**简化为一句话**ChatClient是Spring AI提供的统一抽象层让开发者能够用一套简洁的API调用封装好的各大模型。总结在使用Spring AI调用大模型API时除非ChatClient无法实现否则优先考虑用ChatClient。2、ChatClient基本使用2.1、创建方式ChatClient 有两种创建方式静态工厂方法和建造者模式。2.1.1、静态工厂方法// 最简单、最直接的创建方式ChatClientchatClientChatClient.create(ollamaChatModel);优点使用模型的默认配置一行代码创建。适合场景快速原型、简单测试。2.1.2、建造者模式// 可配置的创建方式ChatClientchatClientChatClient.builder(dashScopeChatModel).defaultSystem(我是阿里云通义千问助手).build();优点可设置默认参数支持高级功能记忆、函数调用等适合场景生产环境、需要定制化配置。2.1.3、总结从ChatClient源码看不管是用create()还是builder()都有一个参数就是ChatModel接口。而OllamaChatModel和DashScopeChatModel都是实现ChatModel接口。2.2、示例代码演示以文本生成测试为示例创建一个测试类ChatClientController写接口调用API进行测试方便实时修改提示信息与接口交互测试我在接口加了一个msg参数接收用户输入的信息。RestControllerRequestMapping(value/chat/client)publicclassChatClientController{AutowiredprivateOllamaChatModelollamaChatModel;/** * 文本生成 * param msg 用户提示信息 * return */RequestMapping(value/text)publicStringtextTest(RequestParam(valuemsg,defaultValue你是谁呀)Stringmsg){ChatClientchatClientChatClient.create(ollamaChatModel);returnchatClient.prompt().user(msg).call().content();}}启动项目访问接口测试结果如下3、ChatClient多平台模型动态管理我在《0元玩转大模型SpringBoot集成Spring AI与Ollama实现文本视觉AI》有介绍到Ollama专注于文本生成和理解的工具本身不支持生成音频或视频。在实际项目使用过程中也可能存在某一大模型厂商提供功能不满足业务需求或者因价格原因不想使用它们提供模型需要替换掉或同时接入多个模型。一般代码是不会轻易修改的毕竟有时可能会迁一发动全身这时能修改配置的方式来动态切换是最好的。本文就以阿里云百炼大模型和本地Ollama为例写演示代码。3.1、pom依赖由于项目是基于Spring AI与Ollama实现 Demo因此需要添加云百炼大模型的maven依赖。!--云百炼--dependencygroupIdcom.alibaba.cloud.ai/groupIdartifactIdspring-ai-alibaba-starter-dashscope/artifactIdversion1.1.0.0-RC1/version/dependency3.2、application.yml配置spring:application:# 服务应用名name:spring-ai-demo-ollamaai:ollama:# 默认服务URLwindows# 文档https://docs.ollama.com/windowsbase-url:http://localhost:11434chat:# 模型名称必须下载到本地才可用model:gemma3:4b# 阿里 云百炼大模型dashscope:api-key:${ALI_AI_KEY}# 文本生成模型配置项chat:options:# 默认模型qwen-plus可不配置model:qwen-plus3.3、示例代码演示3.3.1、方式一根据参数动态创建实现思路大致如下定义多平台模型选项参数实体类MultiPlatformModelOptions定义多平台模型platformModelMap的Map并初始化它根据参数可动态切换平台模型。步骤一定义多平台模型选项参数实体类DatapublicclassMultiPlatformModelOptionsimplementsSerializable{/** * 平台名称 */privateStringplatform;/** * 模型名称 */privateStringmodel;/** * 模型温度 */privateDoubletemperature;}步骤二定义MultiPlatformModelController在里面模拟切换RestControllerRequestMapping(value/multi/platform)publicclassMultiPlatformModelController{privateMapString,ChatModelplatformModelMapnewHashMap();publicMultiPlatformModelController(OllamaChatModelollamaChatModel,DashScopeChatModeldashScopeChatModel){platformModelMap.put(ollama,ollamaChatModel);platformModelMap.put(dashscope,dashScopeChatModel);}RequestMapping(value/streamText,producestext/stream;charsetUTF-8)publicFluxStringstreamText(Stringmsg,MultiPlatformModelOptionsoptions){// 获取模型ChatModelchatModelplatformModelMap.get(options.getPlatform());// 创建ChatClientChatClientchatClientChatClient.builder(chatModel).defaultSystem(我是options.getPlatform()模型AI助手).defaultOptions(ChatOptions.builder().model(options.getModel())// 该参数如果不设置模型调用时按默认值.temperature(options.getTemperature()).build()).build();// 调用模型returnchatClient.prompt().user(msg).stream().content();}}步骤三测试验证启动项目访问接口构造请求参数示例?msg你是谁platformollamamodelgemma3:4btemperature0.8。测试结果如下3.3.2、方式二使用配置类实现思路大致和【方式一根据参数动态创建】一样只不过把参数放到配置类而已。步骤一在配置类application.yml添加以下内容# 多平台大模型配置项multi:platform:options:# 平台名称platform:ollama# 模型名称model:gemma3:4b# 模型温度temperature:0.8步骤二定义多平台模型配置类MultiPlatformModelConfigConfigurationSlf4jpublicclassMultiPlatformModelConfig{/** * 多平台模型配置 * param ollamaChatModel 本地Ollama模型 * param dashScopeChatModel 阿里通义千问模型 * return */BeanpublicMapString,ChatModelplatformModelMap(OllamaChatModelollamaChatModel,DashScopeChatModeldashScopeChatModel){MapString,ChatModelmapnewHashMap();map.put(ollama,ollamaChatModel);map.put(dashscope,dashScopeChatModel);log.info(已注册模型平台: {},map.keySet());returnmap;}/** * 多平台模型客户端 * param platformModelMap 多平台模型配置 * param defaultPlatform 默认平台名称 * param defaultModel 默认模型名称 * param defaultTemperature 默认模型 * return */BeanpublicMapString,ChatClientchatClientMap(MapString,ChatModelplatformModelMap,Value(${multi.platform.options.default.platform})StringdefaultPlatform,Value(${multi.platform.options.default.model})StringdefaultModel,Value(${multi.platform.options.default.temperature})DoubledefaultTemperature){MapString,ChatClientclientMapnewHashMap();// 为每个平台创建ChatClientplatformModelMap.forEach((platform,model)-{// 为每个平台创建基础ChatClientChatClient.BuilderbuilderChatClient.builder(model).defaultSystem(我是platform模型AI助手);// 如果是默认平台应用默认配置if(platform.equals(defaultPlatform)){builder.defaultOptions(ChatOptions.builder().model(defaultModel).temperature(defaultTemperature).build());}clientMap.put(platform,builder.build());});returnclientMap;}/** * 默认平台ChatClient * param chatClientMap 多平台模型客户端 * param defaultPlatform 默认平台名称 * return */BeanPrimarypublicChatClientdefaultChatClient(MapString,ChatClientchatClientMap,Value(${multi.platform.options.default.platform:ollama})StringdefaultPlatform){ChatClientclientchatClientMap.get(defaultPlatform);if(clientnull){thrownewIllegalStateException(默认平台未找到: defaultPlatform);}returnclient;}/** * 显示平台【本地Ollama模型】方式ChatClient * param chatClientMap 多平台模型客户端 * return */BeanpublicChatClientollamaClient(MapString,ChatClientchatClientMap){returnchatClientMap.get(ollama);}/** * 显示平台【阿里云通义千问】方式ChatClient * param chatClientMap 多平台模型客户端 * return */BeanpublicChatClientdashScopeClient(MapString,ChatClientchatClientMap){returnchatClientMap.get(dashscope);}}步骤三创建DynamicPlatformModelController添加三个接口分别用于验证根据配置值动态调用、显示平台【本地Ollama模型】方式调用和显示平台【阿里云通义千问】方式调用。RestControllerRequestMapping(value/dynamic/platform)publicclassDynamicPlatformModelController{AutowiredprivateChatClientdynamicChatClient;AutowiredprivateChatClientollamaClient;AutowiredprivateChatClientdashScopeClient;/** * 根据配置值动态调用 * param msg 用户提示信息 * return */RequestMapping(value/streamText,producestext/stream;charsetUTF-8)publicFluxStringstreamText(Stringmsg){returndynamicChatClient.prompt().user(msg).stream().content();}/** * 显示平台【本地Ollama模型】方式调用 * param msg * return */RequestMapping(value/streamText/ollama,producestext/stream;charsetUTF-8)publicFluxStringstreamTextOllama(Stringmsg){returnollamaClient.prompt().user(msg).stream().content();}/** * 显示平台【阿里云通义千问】方式调用 * param msg * return */RequestMapping(value/streamText/dashScope,producestext/stream;charsetUTF-8)publicFluxStringstreamTextDashScope(Stringmsg){returndashScopeClient.prompt().user(msg).stream().content();}}步骤四测试验证根据配置值动态调用结果如下显示平台【本地Ollama模型】方式调用结果如下显示平台【阿里云通义千问】方式调结果如下至此Spring AI ChatClient多平台模型动态管理实战内容就结束啦感兴趣的同学赶快动手起来吧。4、我的公众号资料获取敬请关注我的公众号大象只为你持续更新技术知识…如需Spring AI与Ollama实现 Demo代码有更新请后台回复【ollama】。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

安平县英文网站建设网站字体只能用

在医疗资源紧张、患者就医体验需求升级的背景下,Java技术凭借其稳定性、扩展性和生态优势,为陪诊小程序构建了全场景、智能化、安全可靠的数字化服务平台,从患者预约、陪诊服务到医院管理,实现“就医流程简化、服务温度提升、资源…

张小明 2025/12/27 17:23:03 网站建设

中文域名可以做网站吗汕头网站开发服务

基于深度学习的道路坑洼检测系统, 以下文字及代码仅供参考学习使用 软件pycharm和anaconda 内含2000张道路坑洼数据集 包括pothole,1类 也可自行替换模型,使用该界面做其他检测 以下是 基于深度学习的道路坑洼检测系统 的完整实现方案&…

张小明 2025/12/27 17:23:02 网站建设

建设网站英语贵阳市 网站建设

FaceFusion能否用于科学可视化?大脑活动映射面部在神经科学实验室里,研究人员盯着屏幕上跳动的脑电波形和静态的fMRI热图,试图解读情绪、注意力或疼痛背后的大脑密码。这些数据维度高、动态性强,却往往以抽象符号呈现——一条曲线…

张小明 2025/12/27 17:23:07 网站建设

网站开发定做有没有单纯做旅游攻略的网站

还在为Proxmox VE中LXC容器挂载NFS网络存储而头疼吗?权限配置复杂、重启后挂载丢失、性能调优困难,这些困扰无数用户的存储难题,现在有了更优雅的解决方案。本文将带你通过Proxmox VE Helper-Scripts项目,实现LXC容器的NFS挂载自动…

张小明 2025/12/27 17:23:06 网站建设

js网站变灰色代码wordpress 调用链接

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

张小明 2025/12/27 15:51:48 网站建设

石家庄微网站深圳网站建设销售前景

第一章:Open-AutoGLM沉思的核心价值与应用前景Open-AutoGLM作为新一代开源自动化语言生成模型框架,融合了大语言模型的推理能力与自动化任务编排机制,旨在降低AI应用开发门槛,提升复杂业务场景下的智能响应效率。其核心价值不仅体…

张小明 2025/12/27 17:23:05 网站建设