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);
    }
}

下一步

这个页面有用吗?

感谢您的反馈! 🙏

我们很抱歉听到这个。😔 您可以在 GitHub 上编辑此页面,或者创建一个 GitHub 问题。