Jina 嵌入模型
JinaEmbeddings 类利用 Jina API 为给定的文本输入生成嵌入向量。本指南将带您了解 JinaEmbeddings 类的设置和使用方法,帮助您无缝地将其集成到您的项目中。
安装
按照以下方式安装 @langchain/community 包:
:::提示 请参阅安装集成包的一般说明部分。 :::
- npm
- Yarn
- pnpm
npm i @langchain/community @langchain/core
yarn add @langchain/community @langchain/core
pnpm add @langchain/community @langchain/core
初始化
通过此集成,您可以使用 Jina 嵌入模型为您的文本数据生成嵌入向量。这是嵌入模型的链接。
首先,您需要在 Jina 网站上注册,并从此处获取 API 令牌。您可以在 API 测试界面的下拉菜单中复制模型名称。
要使用 JinaEmbeddings 类,您需要一个来自 Jina 的 API 令牌。您可以直接将该令牌传递给构造函数,或者将其设置为环境变量(JINA_API_KEY)。
基础用法
以下是创建 JinaEmbeddings 实例的方法:
import { JinaEmbeddings } from "@langchain/community/embeddings/jina";
const embeddings = new JinaEmbeddings({
apiKey: "YOUR_API_TOKEN",
model: "jina-clip-v2", // 可选,默认为 "jina-clip-v2"
});
如果没有提供 apiKey,它将从 JINA_API_KEY 环境变量中读取。
生成嵌入向量
嵌入单个查询
要为单个文本查询生成嵌入向量,请使用 embedQuery 方法:
const embedding = await embeddings.embedQuery(
"对于一家生产彩色袜子的公司来说,一个好的公司名称是什么?"
);
console.log(embedding);
嵌入多个文档
要为多个文档生成嵌入向量,请使用 embedDocuments 方法。
import { localImageToBase64 } from "@langchain/community/utils/local_image_to_base64";
const documents = [
"hello",
{
text: "hello",
},
{
image: "https://i.ibb.co/nQNGqL0/beach1.jpg",
},
{
image: await localImageToBase64("beach1.jpg"),
},
];
const embeddingsArray = await embeddings.embedDocuments(documents);
console.log(embeddingsArray);
错误处理
如果未提供 API 令牌且无法在环境变量中找到,将抛出错误:
try {
const embeddings = new JinaEmbeddings();
} catch (error) {
console.error("未找到 Jina API 令牌");
}
示例
以下是如何设置和使用 JinaEmbeddings 类的完整示例:
import { JinaEmbeddings } from "@langchain/community/embeddings/jina";
import { localImageToBase64 } from "@langchain/community/embeddings/jina/util";
const embeddings = new JinaEmbeddings({
apiKey: "YOUR_API_TOKEN",
model: "jina-embeddings-v2-base-en",
});
async function runExample() {
const queryEmbedding = await embeddings.embedQuery("示例查询文本。");
console.log("查询嵌入向量:", queryEmbedding);
const documents = [
"hello",
{
text: "hello",
},
{
image: "https://i.ibb.co/nQNGqL0/beach1.jpg",
},
{
image: await localImageToBase64("beach1.jpg"),
},
];
const documentEmbeddings = await embeddings.embedDocuments(documents);
console.log("文档嵌入向量:", documentEmbeddings);
}
runExample();
反馈与支持
如需反馈或疑问,请联系 [email protected]。
相关内容
Related
- Embedding model conceptual guide
- Embedding model how-to guides