@xsai/embed 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -3,35 +3,30 @@ import { CommonRequestOptions } from '@xsai/shared';
3
3
  type EmbedModel = 'all-minilm' | 'mxbai-embed-large' | 'nomic-embed-text' | ({} & string);
4
4
  interface EmbedOptions extends CommonRequestOptions<'embeddings'> {
5
5
  [key: string]: unknown;
6
- input: string | string[];
6
+ input: string;
7
7
  model: EmbedModel;
8
8
  }
9
- interface EmbedResponse {
10
- data: {
11
- embedding: number[];
12
- index: number;
13
- object: 'embedding';
14
- }[];
15
- model: string;
16
- object: 'list' | ({} & string);
17
- system_fingerprint?: string;
18
- usage: EmbedResponseUsage;
19
- }
20
9
  interface EmbedResponseUsage {
21
10
  prompt_tokens: number;
22
11
  total_tokens: number;
23
12
  }
24
13
  interface EmbedResult {
25
14
  embedding: number[];
26
- request: Request;
27
- response: Response;
15
+ input: string;
28
16
  usage: EmbedResponseUsage;
29
17
  }
30
- declare const embed: (options: EmbedOptions) => Promise<{
31
- embedding: number[];
32
- request: Request;
33
- response: Response;
18
+ declare const embed: (options: EmbedOptions) => Promise<EmbedResult>;
19
+
20
+ interface EmbedManyOptions extends CommonRequestOptions<'embeddings'> {
21
+ [key: string]: unknown;
22
+ input: string[];
23
+ model: EmbedModel;
24
+ }
25
+ interface EmbedManyResult {
26
+ embeddings: number[][];
27
+ input: string[];
34
28
  usage: EmbedResponseUsage;
35
- }>;
29
+ }
30
+ declare const embedMany: (options: EmbedManyOptions) => Promise<EmbedManyResult>;
36
31
 
37
- export { type EmbedModel, type EmbedOptions, type EmbedResponse, type EmbedResponseUsage, type EmbedResult, embed as default, embed };
32
+ export { type EmbedManyOptions, type EmbedManyResult, type EmbedModel, type EmbedOptions, type EmbedResponseUsage, type EmbedResult, embed as default, embed, embedMany };
package/dist/index.js CHANGED
@@ -1,29 +1,43 @@
1
1
  import { requestUrl, clean } from '@xsai/shared';
2
2
 
3
- const embed = async (options) => {
4
- const request = new Request(requestUrl(options.path ?? "embeddings", options.base), {
5
- body: JSON.stringify(clean({
6
- ...options,
7
- abortSignal: void 0,
8
- base: void 0,
9
- headers: void 0,
10
- path: void 0
11
- })),
12
- headers: {
13
- "Content-Type": "application/json",
14
- ...options.headers
15
- },
16
- method: "POST",
17
- signal: options.abortSingal
18
- });
19
- const response = await fetch(request);
20
- const json = await response.json();
21
- return {
22
- embedding: json.data[0].embedding,
23
- request,
24
- response,
25
- usage: json.usage
26
- };
27
- };
3
+ const embed = async (options) => await fetch(requestUrl(options.path ?? "embeddings", options.base), {
4
+ body: JSON.stringify(clean({
5
+ ...options,
6
+ abortSignal: void 0,
7
+ base: void 0,
8
+ headers: void 0,
9
+ path: void 0
10
+ })),
11
+ headers: {
12
+ "Content-Type": "application/json",
13
+ ...options.headers
14
+ },
15
+ method: "POST",
16
+ signal: options.abortSignal
17
+ }).then((res) => res.json()).then(({ data, usage }) => ({
18
+ embedding: data[0].embedding,
19
+ input: options.input,
20
+ usage
21
+ }));
28
22
 
29
- export { embed as default, embed };
23
+ const embedMany = async (options) => await fetch(requestUrl(options.path ?? "embeddings", options.base), {
24
+ body: JSON.stringify(clean({
25
+ ...options,
26
+ abortSignal: void 0,
27
+ base: void 0,
28
+ headers: void 0,
29
+ path: void 0
30
+ })),
31
+ headers: {
32
+ "Content-Type": "application/json",
33
+ ...options.headers
34
+ },
35
+ method: "POST",
36
+ signal: options.abortSignal
37
+ }).then((res) => res.json()).then(({ data, usage }) => ({
38
+ embeddings: data.map((data2) => data2.embedding),
39
+ input: options.input,
40
+ usage
41
+ }));
42
+
43
+ export { embed as default, embed, embedMany };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xsai/embed",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "type": "module",
5
5
  "author": "藍+85CD",
6
6
  "license": "MIT",
@@ -23,7 +23,7 @@
23
23
  "dist"
24
24
  ],
25
25
  "dependencies": {
26
- "@xsai/shared": "^0.0.7"
26
+ "@xsai/shared": "^0.0.9"
27
27
  },
28
28
  "scripts": {
29
29
  "build": "pkgroll",