当前位置: 首页 > news >正文

罗马尼亚网站后缀如何创建网站平台

罗马尼亚网站后缀,如何创建网站平台,网络系统分类,全国文明城市创建标语这是一个 完整的 Spring AI 函数调用实例#xff0c;涵盖从函数定义、注册到实际调用的全流程#xff0c;以「天气查询」功能为例#xff0c;结合代码详细说明#xff1a; 1. 环境准备 1.1 添加依赖 !-- Spring AI OpenAI -- dependencygroupIdo…这是一个 完整的 Spring AI 函数调用实例涵盖从函数定义、注册到实际调用的全流程以「天气查询」功能为例结合代码详细说明 1. 环境准备 1.1 添加依赖 !-- Spring AI OpenAI -- dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-openai-spring-boot-starter/artifactId /dependency1.2 配置 OpenAI 密钥 # application.properties spring.ai.openai.api-keyYOUR_API_KEY spring.ai.openai.chat.options.modelgpt-3.5-turbo-01252. 定义函数逻辑 2.1 天气服务接口 Service public class WeatherService {// 模拟天气数据存储private MapString, String weatherData Map.of(北京, 晴气温 25°C,上海, 多云气温 28°C,广州, 阵雨气温 30°C);/*** 定义函数获取当前天气* Function 注解描述函数元数据*/Function(name getCurrentWeather,description 获取指定城市的当前天气信息,inputType Function.Parameter(type object,properties Function.ParameterProperty(name location, type string, description 城市名称如 北京)))public String getWeather(RequestParam String location) {return weatherData.getOrDefault(location, 暂无该城市天气数据);} }3. 注册函数到 Spring AI 3.1 函数回调配置 Configuration public class FunctionConfig {Beanpublic FunctionCallback weatherFunction(WeatherService weatherService) {return new FunctionCallbackWrapper(getCurrentWeather, // 函数名称必须与 Function 注解一致获取天气信息, // 函数描述可选weatherService::getWeather, // 函数实现方法引用new WeatherRequestConverter() // 参数转换器见下一步);}// 参数转换器将模型传入的 JSON 参数转换为 Java 对象private static class WeatherRequestConverter implements ConverterString, String {Overridepublic String convert(String source) {// 解析 JSON 参数示例简化实际可使用 Jacksonreturn source.replaceAll(\, ).split(:)[1].trim();}} }3.2 启用函数调用 Configuration public class ChatConfig {Beanpublic ChatClient chatClient(OpenAiChatClient chatClient,ListFunctionCallback functionCallbacks) {// 将函数回调注册到 ChatClientchatClient.setFunctionCallbacks(functionCallbacks);return chatClient;} }4. 实现对话接口 RestController public class ChatController {Autowiredprivate ChatClient chatClient;PostMapping(/chat)public String chat(RequestBody String userMessage) {// 构造对话请求UserMessage message new UserMessage(userMessage,OpenAiChatOptions.builder().withFunctionCallbacks(List.of(getCurrentWeather)) // 允许调用的函数.build());// 发送请求并获取响应ChatResponse response chatClient.call(message);// 处理可能的函数调用结果if (response.getMetadata().containsKey(function_call)) {return handleFunctionCall(response);}return response.getResult().getOutput().getContent();}private String handleFunctionCall(ChatResponse response) {// 解析函数调用请求String functionName response.getMetadata().get(function_call.name).toString();String functionArgs response.getMetadata().get(function_call.arguments).toString();// 执行函数此处实际由 Spring AI 自动处理此处仅为演示String result 执行函数 functionName 参数: functionArgs;// 将结果回传模型生成最终回答ChatResponse finalResponse chatClient.call(new UserMessage(函数执行结果 result));return finalResponse.getResult().getOutput().getContent();} }5. 完整流程测试 测试请求 1直接提问 curl -X POST http://localhost:8080/chat -H Content-Type: text/plain -d 北京现在的天气怎么样模型响应流程 模型识别需要调用 getCurrentWeather(location北京)。Spring AI 自动触发 WeatherService.getWeather(北京)。函数返回 晴气温 25°C。模型生成最终回答北京当前的天气是晴气温 25°C。 测试请求 2需要澄清参数 curl -X POST http://localhost:8080/chat -d 帮我查一下天气模型响应 请问您要查询哪个城市的天气6. 关键代码解析 6.1 函数元数据的重要性 Function 注解提供模型理解函数用途的关键信息影响模型是否决定调用。参数描述清晰的参数描述如 location 类型为城市名称提升模型参数提取准确性。 6.2 函数执行流程 模型决策根据用户输入模型决定是否调用函数。参数解析WeatherRequestConverter 将模型传入的 JSON 参数转为 Java 类型。自动执行Spring AI 自动调用注册的 WeatherService.getWeather() 方法。结果回传函数返回结果自动注入后续对话上下文模型生成最终回答。 7. 扩展场景 7.1 多函数协同 定义更多函数并注册 // 股票查询函数 Function(name getStockPrice, description 查询股票实时价格) public String getStockPrice(RequestParam String symbol) { ... }// 注册 Bean public FunctionCallback stockFunction(StockService stockService) { ... }7.2 动态函数调用列表 根据用户身份动态启用不同函数 UserMessage message new UserMessage(input,OpenAiChatOptions.builder().withFunctionCallbacks(getAllowedFunctions(userRole)) // 根据角色返回允许的函数列表.build() );8. 调试技巧 查看元数据检查 response.getMetadata() 中的 function_call.* 字段。日志拦截添加 Advisor 记录函数调用请求和响应。模拟测试使用 Mock 替换真实函数实现验证参数传递逻辑。 将函数调用无缝集成到 Spring Boot 应用以后即可实现动态数据获取与业务逻辑触发。如需进一步优化如异步执行函数可结合 Async 或消息队列扩展。
http://www.dnsts.com.cn/news/186196.html

相关文章:

  • 心理咨询类微网站怎么做如何自己免费创建网站
  • 用discuz建设企业网站湛江做网站电话
  • 网站建设服务中企动力极客学院 网站建设
  • 怎么在网站上做推广专业建站公司的业务内容
  • 上海网站建设q479185700強上海企业推广
  • 优化型网站的好处又拍云wordpress
  • 做一家仓储用地的网站常见的三种网站类型
  • 建设单位企业锁登陆网站wordpress 显示大图
  • 廊坊电商网站建设西安网优项目公司
  • 自己做网站的给微信取个什么名字好哪个电商平台最好
  • 衡水网站建设费用红豆影视传媒有限公司
  • 友链网站降权合肥关键词排名提升
  • 汕头seo关键词排名网站排名网站优化
  • 坚持网站机制建设2023电商平台排行
  • 北京网站建设联系电话百度网站上做推广受骗
  • 郑州做网站外包的公司有哪些用zend做饿了么网站
  • 如何抄袭网站公司建设网站的通知书
  • 网站建设最好用什么语言大型门户网站都有
  • 怎样做网站的排名百度官方电话人工服务电话
  • 什么样的网站需要备案摄影网站设计
  • 网站带gov后缀主流网站关键词排名
  • 建设银行网站适用浏览器学生想搭建网站怎么做
  • 域名注册在那个网站好手机应用下载网站源码
  • 做网站开源更多标签的下载方法
  • 如何用word做简单的网站桥梁建设 网站
  • 视频购物网站开发方案微生成网站
  • 云建站空间做背景网站
  • 做企业网站注意安微凤阳县建设局网站
  • 做presentation的网站菏泽到濮阳
  • 微信网站建设哪家好青岛seo排名收费