@xsai/embed 0.0.7 → 0.0.8

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,7 +1,7 @@
1
1
  import { requestUrl, clean } from '@xsai/shared';
2
2
 
3
3
  const embed = async (options) => {
4
- const request = new Request(requestUrl(options.path ?? "embeddings", options.base), {
4
+ const { data, usage } = await fetch(requestUrl(options.path ?? "embeddings", options.base), {
5
5
  body: JSON.stringify(clean({
6
6
  ...options,
7
7
  abortSignal: void 0,
@@ -15,15 +15,35 @@ const embed = async (options) => {
15
15
  },
16
16
  method: "POST",
17
17
  signal: options.abortSingal
18
- });
19
- const response = await fetch(request);
20
- const json = await response.json();
18
+ }).then((res) => res.json());
21
19
  return {
22
- embedding: json.data[0].embedding,
23
- request,
24
- response,
25
- usage: json.usage
20
+ embedding: data[0].embedding,
21
+ input: options.input,
22
+ usage
26
23
  };
27
24
  };
28
25
 
29
- export { embed as default, embed };
26
+ const embedMany = async (options) => {
27
+ const { data, usage } = await fetch(requestUrl(options.path ?? "embeddings", options.base), {
28
+ body: JSON.stringify(clean({
29
+ ...options,
30
+ abortSignal: void 0,
31
+ base: void 0,
32
+ headers: void 0,
33
+ path: void 0
34
+ })),
35
+ headers: {
36
+ "Content-Type": "application/json",
37
+ ...options.headers
38
+ },
39
+ method: "POST",
40
+ signal: options.abortSingal
41
+ }).then((res) => res.json());
42
+ return {
43
+ embeddings: data.map((data2) => data2.embedding),
44
+ input: options.input,
45
+ usage
46
+ };
47
+ };
48
+
49
+ 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.8",
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.8"
27
27
  },
28
28
  "scripts": {
29
29
  "build": "pkgroll",