Solon
Solon 是一个轻量级、高性能的 Java 企业框架,专为高效、环保的开发而设计。它增强了并发性,减少了内存使用,加快了启动速度,最小化了打包大小,并支持 Java 8 到 Java 23,提供了 Spring 的灵活替代方案。
Qdrant 作为 Solon-AI 中的一个组件可用,用于高效的向量索引和检索。
安装
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-ai-repo-qdrant</artifactId>
</dependency>
这是 solon-ai 的主要扩展插件,提供了 QdrantRepository
知识库。
配置
使用 QdrantRepository
时,需要配置一个嵌入模型。
solon.ai.embed:
bgem3:
apiUrl: "http://127.0.0.1:11434/api/embed"
provider: "ollama"
model: "bge-m3:latest"
solon.ai.repo:
qdrant:
host: "localhost"
port: 6334
useSsl: false
您现在可以实例化嵌入模型和 Qdrant。
@Configuration
public class DemoConfig {
// Create the embedding model
@Bean
public EmbeddingModel embeddingModel(@Inject("${solon.ai.embed.bgem3}") EmbeddingConfig config) {
return EmbeddingModel.of(config).build();
}
// Configure the QdrantClient using QdrantGrpcClient
@BindProps(prefix = "solon.ai.repo.qdrant")
@Bean
public QdrantClient qdrantClient(@Value("${solon.ai.repo.qdrant.host}") String host,
@Value("${solon.ai.repo.qdrant.port}") int port,
@Value("${solon.ai.repo.qdrant.useSsl}") boolean useSsl) {
return new QdrantClient(
QdrantGrpcClient.newBuilder(host, port, useSsl).build()
);
}
// Initialize the Qdrant knowledge base
@Bean
public QdrantRepository repository(EmbeddingModel embeddingModel, QdrantClient client) {
return new QdrantRepository(embeddingModel, client);
}
}
用法
@Component
public class DemoService {
@Inject
private QdrantRepository repository;
// Add documents to the repository
public void addDocument(List<Document> docs) {
repository.insert(docs);
}
// Search for documents based on a query
public List<Document> findDocument(String query) {
return repository.search(query);
}
}