@maogo/embedding
TypeScript icon, indicating that this package has built-in type declarations

1.0.5 • Public • Published

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 数组就是所需的向量值,有多少个文本就对应多少数组项。

Package Sidebar

Install

npm i @maogo/embedding

Weekly Downloads

8

Version

1.0.5

License

MIT

Unpacked Size

10.7 kB

Total Files

13

Last publish

Collaborators

  • lvlin_60
  • leinad59
  • tone-lyle