トップK件の結果を取得する
埋め込みをベクトルデータベースに保存した後、類似したコンテンツを見つけるためにクエリを実行する必要があります。
query
メソッドは、入力埋め込みに意味的に最も類似したチャンクを関連性順に返します。topK
パラメータを使用して、返す結果の数を指定できます。
この例では、Pineconeベクトルデータベースから類似したチャンクを取得する方法を示しています。
import { openai } from "@ai-sdk/openai";
import { PineconeVector } from "@mastra/pinecone";
import { MDocument } from "@mastra/rag";
import { embedMany } from "ai";
const doc = MDocument.fromText("Your text content...");
const chunks = await doc.chunk();
const { embeddings } = await embedMany({
values: chunks.map((chunk) => chunk.text),
model: openai.embedding("text-embedding-3-small"),
});
const pinecone = new PineconeVector({
apiKey: "your-api-key",
});
await pinecone.createIndex({
indexName: "test_index",
dimension: 1536,
});
await pinecone.upsert({
indexName: "test_index",
vectors: embeddings,
metadata: chunks?.map((chunk: any) => ({ text: chunk.text })),
});
const topK = 10;
const results = await pinecone.query({
indexName: "test_index",
queryVector: embeddings[0],
topK,
});
console.log(results);
GitHubで例を見る