官方文档:Chat Memory :: Spring AI Reference
1. 引言
SpringAI 1.0.0 改动了很多地方,本文根据官方的InMemoryChatMemoryRepository实现了自定义的RedisChatMemoryRepository,并使用MessageWindowChatMemory创建ChatMemory
2. 实现
2.1. 添加依赖
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-openai</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
注意:SpringAI 1.0.0的maven依赖有所改变,artifactId变化了
2.2. 配置文件
server:
port: 8080
spring:
ai:
openai:
api-key: xxx # 填自己的api-key
base-url: https://api.deepseek.com
chat:
options:
model: deepseek-chat
temperature: 0.7
data:
redis:
host: localhost
port: 6379
password: 123456
正确配置redis连接即可
api-key可以填deepseek的(需要购买,1块钱能用挺久)
2.3. RedisChatMemoryRepository
RedisChatMemoryRepository用于存储会话数据
这里参考InMemoryChatMemoryRepository与【SpringAI 1.0.0】 ChatMemory 转换为 Redis 存储_springai如何将数据保存到redis-优快云博客
package com.njust.repository;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.ai.chat.memory.ChatMemoryRepository;
import org.springframework.ai.chat.messages.*;
import org.springframework.ai.content.Media;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.util.MimeType;
import java.io.IOException;
import java.net.URL;
import java.util.*;
import java.util.stream.Collectors;
public class RedisChatMemoryRepository implements ChatMemoryRepository {
private final StringRedisTemplate stringRedisTemplate; // 用于操作 Redis
private final ObjectMapper objectMapper; // 用于序列化和反序列化
private final String PREFIX ; // 存储对话的 Redis Key 前缀
private final String CONVERSATION_IDS_SET; // 存储对话ID的 Redis Key
public RedisChatMemoryRepository(StringRedisTemplate stringRedisTemplate, ObjectMapper objectMapper) {
this(stringRedisTemplate, objectMapper, "chat:conversation:", "chat
SpringAI 1.0.0:用Redis存储会话实现

最低0.47元/天 解锁文章
719

被折叠的 条评论
为什么被折叠?



