跳到主要内容

DuckDB

https://duckdb.org/

Maven 依赖

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-duckdb</artifactId>
<version>1.0.0-beta3</version>
</dependency>

API

  • DuckDBEmbeddingStore

示例

// 初始化模型和存储
var embeddingStore = DuckDBEmbeddingStore.inMemory();
var embeddingModel = new AllMiniLmL6V2QuantizedEmbeddingModel();

// 创建嵌入
Stream.of(
"DuckDB 是一个令人惊叹的数据库引擎!",
"Python 真的缺乏类型 :D")
.forEach(text -> {
var segment = TextSegment.from(text);
var embedding = embeddingModel.embed(segment).content();
embeddingStore.add(embedding, segment);
});


// 搜索请求
var queryEmbedding = embeddingModel.embed("什么是最好的数据库引擎").content();
var request = EmbeddingSearchRequest.builder()
.queryEmbedding(queryEmbedding)
.maxResults(1)
.build();

var relevant = embeddingStore.search(request);
EmbeddingMatch<TextSegment> embeddingMatch = relevant.matches().get(0);

// 显示结果
System.out.println(embeddingMatch.score()); // 0.8416415629618381
System.out.println(embeddingMatch.embedded().text()); // DuckDB 是一个令人惊叹的数据库引擎!