@maogo/embedding
v1.0.5
Published
基于 midway 的自定义 embedding 组件库
Downloads
5
Readme
README.md
midway 的 embeding 组件
该组件用于实现对文案进行 embedding 的能力。
目前暂时只接入了百度文心大模型接口,参考文档。
安装
$ npm i @maogo/embedding
设置配置项
配置百度的 clientId 和 clientSecret,用于获取 token 鉴权。
// config.default.ts
import { MidwayConfig } from '@midwayjs/core';
export default {
//...
embedding: {
baiduClientId: 'xxx',
baiduClientSecret: 'xxx'
}
//...
} as MidwayConfig;
使用示例
midway 组件引入。
//...
import * as embedding from '@maogo/embedding';
@Configuration({
imports: [
//...
embedding
//...
],
importConfigs: [join(__dirname, './config')],
})
export class MainConfiguration {
//...
}
具体使用示例如下。
import { BaiduEmbeddingsService } from '@maogo/embedding';
@Provide()
export class testService {
@Inject()
baiduEmbeddingsService: BaiduEmbeddingsService;
async textToEmbedding() {
// 接受单个文本传参
const embeddingData = await this.baiduEmbeddingsService.toEmbeddings('测试文本');
// 接受多个文本数组传参
const embeddingData2 = await this.baiduEmbeddingsService.toEmbeddings(['测试文本1', '测试文本2']);
// 接受指定模型,默认为 embedding-v1
// 目前支持:embedding-v1,bge-large-zh,bge-large-en,tao-8k
// 注意每个模型对文本数量和长度的限制,参考上述文档
const embeddingData3 = await this.baiduEmbeddingsService.toEmbeddings('测试文本', 'bge-large-zh');
}
}
返回值为 baidu 接口的返回值的 data 项,参考文档,结构如下:
[
{
"object": "embedding",
"embedding": [...],
"index": 0
},
...
]
其中 embedding 数组就是所需的向量值,有多少个文本就对应多少数组项。