您的位置:首页 > 房产 > 家装 > 做app的流程_怎么创建网页文件_品牌网站建设哪家好_产品推广的渠道有哪些

做app的流程_怎么创建网页文件_品牌网站建设哪家好_产品推广的渠道有哪些

2025/4/21 18:17:33 来源:https://blog.csdn.net/qq_58159506/article/details/147258956  浏览:    关键词:做app的流程_怎么创建网页文件_品牌网站建设哪家好_产品推广的渠道有哪些
做app的流程_怎么创建网页文件_品牌网站建设哪家好_产品推广的渠道有哪些

1.报错

2.Java 代码

2.1 pom.xml

    <dependencyManagement><dependencies><!-- Spring AI --><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>1.0.0-M6</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><!-- Spring Ai OpenAI 模型依赖 --><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId><version>1.0.0-M6</version></dependency>

2.2 application.yml

spring:ai:openai:base-url: https://dashscope.aliyuncs.com/compatible-mode  # 默认使用 v1 版本号,如果添加会变成 /compatible-mode/v1/v1api-key: xxxxchat:options:model: qwen-max   # 模型名称temperature: 0.8  # 模型温度,值越大,输出结果越随机

2.3 Config-配置类

package com.dragon.springboot3vue3.config;import com.dragon.springboot3vue3.tools.LogoutTools;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor;
import org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor;
import org.springframework.ai.chat.memory.ChatMemory;
import org.springframework.ai.chat.memory.InMemoryChatMemory;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class OpenAIConfig {@Autowiredprivate LogoutTools logoutTools;/*** 配置会话存储方式* @return*/@Beanpublic ChatMemory chatMemory() {return new InMemoryChatMemory(); // 将历史会话临时存储在应用内存中(重启应用后数据丢失)。生产环境需要持久化存储(如 Redis、数据库)}@Beanpublic ChatClient chatClient(OpenAiChatModel model, ChatMemory chatMemory) {return ChatClient.builder(model).defaultSystem("""你是韶君,一个温柔可爱机智的智能助手。请:1.使用自然语言回答问题2.如果涉及到数学计算,使用标准数学符号(如+、-、×、÷)回答,示例格式:"18 ÷ 6 = 3"""").defaultAdvisors(new SimpleLoggerAdvisor(),                // 配置日志 Advisor,需在 yml 开启日志级别(默认:debug)new MessageChatMemoryAdvisor(chatMemory)  // 配置会话记忆).defaultTools(logoutTools)  // Tool Calling.build();}}

2.4 Controller

package com.dragon.springboot3vue3.controller;import cn.dev33.satoken.util.SaResult;
import com.dragon.springboot3vue3.controller.dto.entityDto.ChatDto;
import com.dragon.springboot3vue3.tools.LogoutTools;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.AbstractChatMemoryAdvisor;
import org.springframework.ai.chat.memory.ChatMemory;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.SystemMessage;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.openai.OpenAiChatOptions;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Flux;
import java.util.List;@Tag(name = "Spring AI 对话接口")
@RestController
@RequestMapping("/aiConversation")
public class AiConversationController {@Autowiredprivate ChatClient chatClient;/*** 流式输出(要设置流式输出格式)*/@Operation(summary = "对话")@PostMapping(value = "/conversation",produces = "text/html;charset=utf-8")public Flux<String> chatClient(@RequestBody ChatDto chatDto) {return chatClient.prompt().user(chatDto.getPrompt()).advisors(item -> item.param(AbstractChatMemoryAdvisor.CHAT_MEMORY_CONVERSATION_ID_KEY, chatDto.getConversationId())) // 将会话ID,添加到AdvisorsContext上下文.stream().content();}
}

2.5 LogoutTools

package com.dragon.springboot3vue3.tools;import cn.dev33.satoken.util.SaResult;
import org.springframework.ai.tool.annotation.Tool;
import org.springframework.stereotype.Component;@Component
public class LogoutTools {@Tool(name = "userLogout",description = "退出当前登录")public SaResult userLogout() {System.out.println("退出ing"); // 能输出“退出ing”,但是后续报错return SaResult.ok("退出成功");}
}

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com