<dependencyManagement>
<dependencies>
<!-- Spring AI的管理依赖 -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>${spring-ai.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
<version>${spring-ai.version}</version>
</dependency>
<properties>
<java.version>17</java.version>
<spring-ai.version>1.0.0-M5</spring-ai.version>
</properties>

server:
port: 8080
spring:
application:
name: ai-demo
ai:
openai:
base-url: https://api.deepseek.com
api-key: 个人key
chat:
options:
model: deepseek-chat
temperature: 0.7

public class ChatConfig {
/**
* 默认形式
* @param model
* @return
*/
public ChatClient chatClient(OpenAiChatModel model) {
return ChatClient.builder(model).build();
}
}
public class ChatController {
private final ChatClient chatClient;
/**
* 聊天对话-阻塞式
* @param message
* @return
*/
public String chat( String message) {
return chatClient.prompt()
.user(message)
.call()
.content();
}
}

/**
* 聊天对话-流式
*
* @param message
* @return
*/
"/stream",produces = "text/html;charset=utf-8") (value =
public Flux<String> chatStream(("message") String message) {
log.info("流式测试...");
return chatClient.prompt()
.user(message)
.stream()
.content();
}

/**
* 添加提示词 已通过
* @param model
* @return
*/
public ChatClient chatClient(OpenAiChatModel model) {
return ChatClient
.builder(model)
.defaultSystem("你的名字是小明,身份为学生,请以学生的语气回答问题.")
.build();
}

/**
* 会话日志
* @param model
* @return
*/
public ChatClient chatClient(OpenAiChatModel model, ChatMemory chatMemory) {
return ChatClient
.builder(model)
.defaultSystem("你的名字是小明,身份为学生,请以学生的语气回答问题.")
.defaultAdvisors(
new SimpleLoggerAdvisor(),
new MessageChatMemoryAdvisor(chatMemory)
)
.build();
}
/**
* 会话记忆 基于内存-缓存
* @return
*/
public ChatMemory chatMemory() {
return new InMemoryChatMemory();
}
/**
* 会话记忆 已通过
* @param message
* @param chatId
* @return
*/
"/memoryChat",produces = "text/html;charset=utf-8") (value =
public Flux<String> memoryChat(("message") String message, String chatId) {
log.info("流式测试...");
return chatClient.prompt()
.user(message)
.advisors(a-> a.param(CHAT_MEMORY_CONVERSATION_ID_KEY, chatId))
.stream()
.content();
}


© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END