solon-ai-repo-redis
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-ai-repo-redis</artifactId>
</dependency>
1、描述
solon-ai 的主展插件,基于 RediSearch 适配的 RedisRepository 知识库。更多可参考 《教程 / Solon AI 开发》
2、环境准备
使用时,需要使用专门的 RediSearch 服务,或者在 Redis 服务上,添加 RediSearch 能力扩展。附 docker-compose 配置参考(方便测试):
version: '3'
services:
redis:
image: redis/redis-stack-server:latest
container_name: redisearch
ports:
- 16379:6379 #测试时,避免与 redis 端口冲突
3、构建示例
使用 RedisRepository 时,需要嵌入模型做为支持。
solon.ai.embed:
bgem3:
apiUrl: "http://127.0.0.1:11434/api/embed" # 使用完整地址(而不是 api_base)
provider: "ollama" # 使用 ollama 服务时,需要配置 provider
model: "bge-m3:latest"
solon.ai.repo:
redis:
server: "127.0.0.1:16379" # 改为你的 Redis 地址
db: 0
maxTotal: 200
开始构建
@Configuration
public class DemoConfig {
//构建向量模型
@Bean
public EmbeddingModel embeddingModel(@Inject("${solon.ai.embed.bgem3}") EmbeddingConfig config) {
return EmbeddingModel.of(config).build();
}
//构建知识库
@Bean
public RedisRepository repository(EmbeddingModel embeddingModel,
@Inject("${solon.ai.repo.redis}") RedisClient client){
return new RedisRepository(embeddingModel, client.openSession().jedis());
}
}
4、应用效果
@Component
public class DemoService {
@Inject
RedisRepository repository;
//添加资源
publiv void addDocument(List<Document> docs) {
repository.insert(docs);
}
//查资资料
publiv List<Document> findDocument(String query) {
return repository.search(query);
}
}