@aigne/aigne-hub 1.74.0-beta.8 → 1.74.0-beta.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.
@@ -7,8 +7,8 @@ declare class AIGNEHubChatModel extends ChatModel {
7
7
  options: AIGNEHubChatModelOptions;
8
8
  constructor(options: AIGNEHubChatModelOptions);
9
9
  models(): Promise<{
10
- type: string;
11
10
  model: string;
11
+ type: string;
12
12
  provider: string;
13
13
  input_credits_per_token: string;
14
14
  output_credits_per_token: string;
@@ -7,8 +7,8 @@ declare class AIGNEHubChatModel extends ChatModel {
7
7
  options: AIGNEHubChatModelOptions;
8
8
  constructor(options: AIGNEHubChatModelOptions);
9
9
  models(): Promise<{
10
- type: string;
11
10
  model: string;
11
+ type: string;
12
12
  provider: string;
13
13
  input_credits_per_token: string;
14
14
  output_credits_per_token: string;
@@ -0,0 +1,96 @@
1
+ const require_blocklet = require('./utils/blocklet.cjs');
2
+ const require_constants = require('./utils/constants.cjs');
3
+ const require_hub = require('./utils/hub.cjs');
4
+ const require_type = require('./utils/type.cjs');
5
+ let _aigne_model_base = require("@aigne/model-base");
6
+ let _aigne_model_base_transport_base_client = require("@aigne/model-base/transport/base-client");
7
+ let _aigne_model_base_utils_nodejs = require("@aigne/model-base/utils/nodejs");
8
+ let _aigne_model_base_utils_type_utils = require("@aigne/model-base/utils/type-utils");
9
+ let ufo = require("ufo");
10
+
11
+ //#region src/aigne-hub-embedding-model.ts
12
+ var AIGNEHubEmbeddingModel = class extends _aigne_model_base.EmbeddingModel {
13
+ constructor(options) {
14
+ (0, _aigne_model_base_utils_type_utils.checkArguments)("AIGNEHubEmbeddingModel", require_type.aigneHubModelOptionsSchema, options);
15
+ super();
16
+ this.options = options;
17
+ }
18
+ async models() {
19
+ return require_hub.getModels({
20
+ baseURL: (await this.credential).url,
21
+ type: "embedding"
22
+ });
23
+ }
24
+ _client;
25
+ get client() {
26
+ this._client ??= this.credential.then(({ url, apiKey, model }) => {
27
+ return new _aigne_model_base_transport_base_client.BaseClient({
28
+ ...this.options,
29
+ url,
30
+ apiKey,
31
+ model
32
+ });
33
+ }).catch((err) => {
34
+ this._client = void 0;
35
+ throw err;
36
+ });
37
+ return this._client;
38
+ }
39
+ _credential;
40
+ get credential() {
41
+ this._credential ??= require_blocklet.getAIGNEHubMountPoint(this.options.baseURL || require_constants.aigneHubBaseUrl(), require_constants.AIGNE_HUB_BLOCKLET_DID).then((url) => {
42
+ const path = "/api/v2/embedding";
43
+ const rawCredential = process.env.BLOCKLET_AIGNE_API_CREDENTIAL;
44
+ let credentialOptions = {};
45
+ try {
46
+ credentialOptions = typeof rawCredential === "string" ? JSON.parse(rawCredential) : rawCredential ?? {};
47
+ } catch (err) {
48
+ console.error(err);
49
+ }
50
+ return {
51
+ ...credentialOptions,
52
+ url: url.endsWith(path) ? url : (0, ufo.joinURL)(url, path),
53
+ apiKey: this.options.apiKey || process.env.AIGNE_HUB_API_KEY || credentialOptions.apiKey,
54
+ model: this.options.model || process.env.BLOCKLET_AIGNE_API_MODEL || require_constants.AIGNE_HUB_DEFAULT_MODEL
55
+ };
56
+ }).catch((err) => {
57
+ this._credential = void 0;
58
+ throw err;
59
+ });
60
+ return this._credential;
61
+ }
62
+ async process(input, options) {
63
+ const { BLOCKLET_APP_PID, ABT_NODE_DID } = _aigne_model_base_utils_nodejs.nodejs.env;
64
+ const clientId = this.options?.clientOptions?.clientId || BLOCKLET_APP_PID || ABT_NODE_DID || `@aigne/aigne-hub:${typeof process !== "undefined" ? _aigne_model_base_utils_nodejs.nodejs.os.hostname() : "unknown"}`;
65
+ const response = await (await this.client).__invoke(void 0, {
66
+ ...input,
67
+ modelOptions: {
68
+ ...input.modelOptions,
69
+ model: input.modelOptions?.model || (await this.credential).model
70
+ }
71
+ }, {
72
+ ...options,
73
+ streaming: false,
74
+ fetchOptions: {
75
+ ...options.fetchOptions,
76
+ headers: {
77
+ ...options.fetchOptions?.headers,
78
+ "x-aigne-hub-client-did": clientId
79
+ }
80
+ }
81
+ });
82
+ return {
83
+ ...response,
84
+ embeddings: response.embeddings,
85
+ usage: {
86
+ inputTokens: response.usage?.inputTokens ?? 0,
87
+ outputTokens: response.usage?.outputTokens ?? 0,
88
+ ...response.usage
89
+ },
90
+ model: response?.model
91
+ };
92
+ }
93
+ };
94
+
95
+ //#endregion
96
+ exports.AIGNEHubEmbeddingModel = AIGNEHubEmbeddingModel;
@@ -0,0 +1,33 @@
1
+ import { AIGNEHubEmbeddingModelOptions } from "./utils/type.cjs";
2
+ import { EmbeddingModel, EmbeddingModelInput, EmbeddingModelOutput, ModelProcessResult } from "@aigne/model-base";
3
+ import { BaseClient, BaseClientInvokeOptions } from "@aigne/model-base/transport/base-client";
4
+
5
+ //#region src/aigne-hub-embedding-model.d.ts
6
+ declare class AIGNEHubEmbeddingModel extends EmbeddingModel {
7
+ options: AIGNEHubEmbeddingModelOptions;
8
+ constructor(options: AIGNEHubEmbeddingModelOptions);
9
+ models(): Promise<{
10
+ model: string;
11
+ type: string;
12
+ provider: string;
13
+ input_credits_per_token: string;
14
+ output_credits_per_token: string;
15
+ providerDisplayName: string;
16
+ status?: {
17
+ available: boolean;
18
+ } | null | undefined;
19
+ modelMetadata?: Record<string, unknown> | null | undefined;
20
+ }[]>;
21
+ protected _client?: Promise<BaseClient>;
22
+ get client(): Promise<BaseClient>;
23
+ private _credential?;
24
+ get credential(): Promise<{
25
+ url: string;
26
+ apiKey?: string;
27
+ model: string;
28
+ }>;
29
+ process(input: EmbeddingModelInput, options: BaseClientInvokeOptions): Promise<ModelProcessResult<EmbeddingModelOutput>>;
30
+ }
31
+ //#endregion
32
+ export { AIGNEHubEmbeddingModel };
33
+ //# sourceMappingURL=aigne-hub-embedding-model.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aigne-hub-embedding-model.d.cts","names":[],"sources":["../src/aigne-hub-embedding-model.ts"],"mappings":";;;;;cAmBa,sBAAA,SAA+B,cAAA;EACd,OAAA,EAAS,6BAAA;cAAT,OAAA,EAAS,6BAAA;EAK/B,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;YAIF,OAAA,GAAU,OAAA,CAAQ,UAAA;EAAA,IAExB,MAAA,CAAA,GAAM,OAAA,CAAA,UAAA;EAAA,QAaF,WAAA;EAAA,IAMK,UAAA,CAAA,GAAU,OAAA;;;;;EAiCR,OAAA,CACb,KAAA,EAAO,mBAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,oBAAA;AAAA"}
@@ -0,0 +1,33 @@
1
+ import { AIGNEHubEmbeddingModelOptions } from "./utils/type.mjs";
2
+ import { EmbeddingModel, EmbeddingModelInput, EmbeddingModelOutput, ModelProcessResult } from "@aigne/model-base";
3
+ import { BaseClient, BaseClientInvokeOptions } from "@aigne/model-base/transport/base-client";
4
+
5
+ //#region src/aigne-hub-embedding-model.d.ts
6
+ declare class AIGNEHubEmbeddingModel extends EmbeddingModel {
7
+ options: AIGNEHubEmbeddingModelOptions;
8
+ constructor(options: AIGNEHubEmbeddingModelOptions);
9
+ models(): Promise<{
10
+ model: string;
11
+ type: string;
12
+ provider: string;
13
+ input_credits_per_token: string;
14
+ output_credits_per_token: string;
15
+ providerDisplayName: string;
16
+ status?: {
17
+ available: boolean;
18
+ } | null | undefined;
19
+ modelMetadata?: Record<string, unknown> | null | undefined;
20
+ }[]>;
21
+ protected _client?: Promise<BaseClient>;
22
+ get client(): Promise<BaseClient>;
23
+ private _credential?;
24
+ get credential(): Promise<{
25
+ url: string;
26
+ apiKey?: string;
27
+ model: string;
28
+ }>;
29
+ process(input: EmbeddingModelInput, options: BaseClientInvokeOptions): Promise<ModelProcessResult<EmbeddingModelOutput>>;
30
+ }
31
+ //#endregion
32
+ export { AIGNEHubEmbeddingModel };
33
+ //# sourceMappingURL=aigne-hub-embedding-model.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aigne-hub-embedding-model.d.mts","names":[],"sources":["../src/aigne-hub-embedding-model.ts"],"mappings":";;;;;cAmBa,sBAAA,SAA+B,cAAA;EACd,OAAA,EAAS,6BAAA;cAAT,OAAA,EAAS,6BAAA;EAK/B,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;YAIF,OAAA,GAAU,OAAA,CAAQ,UAAA;EAAA,IAExB,MAAA,CAAA,GAAM,OAAA,CAAA,UAAA;EAAA,QAaF,WAAA;EAAA,IAMK,UAAA,CAAA,GAAU,OAAA;;;;;EAiCR,OAAA,CACb,KAAA,EAAO,mBAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,oBAAA;AAAA"}
@@ -0,0 +1,97 @@
1
+ import { getAIGNEHubMountPoint } from "./utils/blocklet.mjs";
2
+ import { AIGNE_HUB_BLOCKLET_DID, AIGNE_HUB_DEFAULT_MODEL, aigneHubBaseUrl } from "./utils/constants.mjs";
3
+ import { getModels } from "./utils/hub.mjs";
4
+ import { aigneHubModelOptionsSchema } from "./utils/type.mjs";
5
+ import { EmbeddingModel } from "@aigne/model-base";
6
+ import { BaseClient } from "@aigne/model-base/transport/base-client";
7
+ import { nodejs } from "@aigne/model-base/utils/nodejs";
8
+ import { checkArguments } from "@aigne/model-base/utils/type-utils";
9
+ import { joinURL } from "ufo";
10
+
11
+ //#region src/aigne-hub-embedding-model.ts
12
+ var AIGNEHubEmbeddingModel = class extends EmbeddingModel {
13
+ constructor(options) {
14
+ checkArguments("AIGNEHubEmbeddingModel", aigneHubModelOptionsSchema, options);
15
+ super();
16
+ this.options = options;
17
+ }
18
+ async models() {
19
+ return getModels({
20
+ baseURL: (await this.credential).url,
21
+ type: "embedding"
22
+ });
23
+ }
24
+ _client;
25
+ get client() {
26
+ this._client ??= this.credential.then(({ url, apiKey, model }) => {
27
+ return new BaseClient({
28
+ ...this.options,
29
+ url,
30
+ apiKey,
31
+ model
32
+ });
33
+ }).catch((err) => {
34
+ this._client = void 0;
35
+ throw err;
36
+ });
37
+ return this._client;
38
+ }
39
+ _credential;
40
+ get credential() {
41
+ this._credential ??= getAIGNEHubMountPoint(this.options.baseURL || aigneHubBaseUrl(), AIGNE_HUB_BLOCKLET_DID).then((url) => {
42
+ const path = "/api/v2/embedding";
43
+ const rawCredential = process.env.BLOCKLET_AIGNE_API_CREDENTIAL;
44
+ let credentialOptions = {};
45
+ try {
46
+ credentialOptions = typeof rawCredential === "string" ? JSON.parse(rawCredential) : rawCredential ?? {};
47
+ } catch (err) {
48
+ console.error(err);
49
+ }
50
+ return {
51
+ ...credentialOptions,
52
+ url: url.endsWith(path) ? url : joinURL(url, path),
53
+ apiKey: this.options.apiKey || process.env.AIGNE_HUB_API_KEY || credentialOptions.apiKey,
54
+ model: this.options.model || process.env.BLOCKLET_AIGNE_API_MODEL || AIGNE_HUB_DEFAULT_MODEL
55
+ };
56
+ }).catch((err) => {
57
+ this._credential = void 0;
58
+ throw err;
59
+ });
60
+ return this._credential;
61
+ }
62
+ async process(input, options) {
63
+ const { BLOCKLET_APP_PID, ABT_NODE_DID } = nodejs.env;
64
+ const clientId = this.options?.clientOptions?.clientId || BLOCKLET_APP_PID || ABT_NODE_DID || `@aigne/aigne-hub:${typeof process !== "undefined" ? nodejs.os.hostname() : "unknown"}`;
65
+ const response = await (await this.client).__invoke(void 0, {
66
+ ...input,
67
+ modelOptions: {
68
+ ...input.modelOptions,
69
+ model: input.modelOptions?.model || (await this.credential).model
70
+ }
71
+ }, {
72
+ ...options,
73
+ streaming: false,
74
+ fetchOptions: {
75
+ ...options.fetchOptions,
76
+ headers: {
77
+ ...options.fetchOptions?.headers,
78
+ "x-aigne-hub-client-did": clientId
79
+ }
80
+ }
81
+ });
82
+ return {
83
+ ...response,
84
+ embeddings: response.embeddings,
85
+ usage: {
86
+ inputTokens: response.usage?.inputTokens ?? 0,
87
+ outputTokens: response.usage?.outputTokens ?? 0,
88
+ ...response.usage
89
+ },
90
+ model: response?.model
91
+ };
92
+ }
93
+ };
94
+
95
+ //#endregion
96
+ export { AIGNEHubEmbeddingModel };
97
+ //# sourceMappingURL=aigne-hub-embedding-model.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aigne-hub-embedding-model.mjs","names":[],"sources":["../src/aigne-hub-embedding-model.ts"],"sourcesContent":["import {\n EmbeddingModel,\n type EmbeddingModelInput,\n type EmbeddingModelOutput,\n type ModelProcessResult,\n} from \"@aigne/model-base\";\nimport { BaseClient, type BaseClientInvokeOptions } from \"@aigne/model-base/transport/base-client\";\nimport { nodejs } from \"@aigne/model-base/utils/nodejs\";\nimport { checkArguments } from \"@aigne/model-base/utils/type-utils\";\nimport { joinURL } from \"ufo\";\nimport { getAIGNEHubMountPoint } from \"./utils/blocklet.js\";\nimport {\n AIGNE_HUB_BLOCKLET_DID,\n AIGNE_HUB_DEFAULT_MODEL,\n aigneHubBaseUrl,\n} from \"./utils/constants.js\";\nimport { getModels } from \"./utils/hub.js\";\nimport { type AIGNEHubEmbeddingModelOptions, aigneHubModelOptionsSchema } from \"./utils/type.js\";\n\nexport class AIGNEHubEmbeddingModel extends EmbeddingModel {\n constructor(public override options: AIGNEHubEmbeddingModelOptions) {\n checkArguments(\"AIGNEHubEmbeddingModel\", aigneHubModelOptionsSchema, options);\n super();\n }\n\n async models() {\n return getModels({ baseURL: (await this.credential).url, type: \"embedding\" });\n }\n\n protected _client?: Promise<BaseClient>;\n\n get client() {\n this._client ??= this.credential\n .then(({ url, apiKey, model }) => {\n const options = { ...this.options, url, apiKey, model };\n return new BaseClient(options);\n })\n .catch((err) => {\n this._client = undefined;\n throw err;\n });\n return this._client;\n }\n\n private _credential?: Promise<{\n url: string;\n apiKey?: string;\n model: string;\n }>;\n\n override get credential() {\n this._credential ??= getAIGNEHubMountPoint(\n this.options.baseURL || aigneHubBaseUrl(),\n AIGNE_HUB_BLOCKLET_DID,\n )\n .then((url) => {\n const path = \"/api/v2/embedding\";\n\n const rawCredential = process.env.BLOCKLET_AIGNE_API_CREDENTIAL;\n let credentialOptions: Record<string, any> = {};\n try {\n credentialOptions =\n typeof rawCredential === \"string\" ? JSON.parse(rawCredential) : (rawCredential ?? {});\n } catch (err) {\n console.error(err);\n }\n\n return {\n ...credentialOptions,\n url: url.endsWith(path) ? url : joinURL(url, path),\n apiKey: this.options.apiKey || process.env.AIGNE_HUB_API_KEY || credentialOptions.apiKey,\n model:\n this.options.model || process.env.BLOCKLET_AIGNE_API_MODEL || AIGNE_HUB_DEFAULT_MODEL,\n };\n })\n .catch((err) => {\n this._credential = undefined;\n throw err;\n });\n\n return this._credential;\n }\n\n override async process(\n input: EmbeddingModelInput,\n options: BaseClientInvokeOptions,\n ): Promise<ModelProcessResult<EmbeddingModelOutput>> {\n const { BLOCKLET_APP_PID, ABT_NODE_DID } = nodejs.env;\n const clientId =\n this.options?.clientOptions?.clientId ||\n BLOCKLET_APP_PID ||\n ABT_NODE_DID ||\n `@aigne/aigne-hub:${typeof process !== \"undefined\" ? nodejs.os.hostname() : \"unknown\"}`;\n\n const response = await (await this.client).__invoke<EmbeddingModelInput, EmbeddingModelOutput>(\n undefined,\n {\n ...input,\n modelOptions: {\n ...input.modelOptions,\n model: input.modelOptions?.model || (await this.credential).model,\n },\n },\n {\n ...options,\n streaming: false,\n fetchOptions: {\n ...options.fetchOptions,\n headers: {\n ...options.fetchOptions?.headers,\n \"x-aigne-hub-client-did\": clientId,\n },\n },\n },\n );\n\n return {\n ...response,\n embeddings: response.embeddings,\n usage: {\n inputTokens: response.usage?.inputTokens ?? 0,\n outputTokens: response.usage?.outputTokens ?? 0,\n ...response.usage,\n },\n model: response?.model,\n };\n }\n}\n"],"mappings":";;;;;;;;;;;AAmBA,IAAa,yBAAb,cAA4C,eAAe;CACzD,YAAY,AAAgB,SAAwC;AAClE,iBAAe,0BAA0B,4BAA4B,QAAQ;AAC7E,SAAO;EAFmB;;CAK5B,MAAM,SAAS;AACb,SAAO,UAAU;GAAE,UAAU,MAAM,KAAK,YAAY;GAAK,MAAM;GAAa,CAAC;;CAG/E,AAAU;CAEV,IAAI,SAAS;AACX,OAAK,YAAY,KAAK,WACnB,MAAM,EAAE,KAAK,QAAQ,YAAY;AAEhC,UAAO,IAAI,WADK;IAAE,GAAG,KAAK;IAAS;IAAK;IAAQ;IAAO,CACzB;IAC9B,CACD,OAAO,QAAQ;AACd,QAAK,UAAU;AACf,SAAM;IACN;AACJ,SAAO,KAAK;;CAGd,AAAQ;CAMR,IAAa,aAAa;AACxB,OAAK,gBAAgB,sBACnB,KAAK,QAAQ,WAAW,iBAAiB,EACzC,uBACD,CACE,MAAM,QAAQ;GACb,MAAM,OAAO;GAEb,MAAM,gBAAgB,QAAQ,IAAI;GAClC,IAAI,oBAAyC,EAAE;AAC/C,OAAI;AACF,wBACE,OAAO,kBAAkB,WAAW,KAAK,MAAM,cAAc,GAAI,iBAAiB,EAAE;YAC/E,KAAK;AACZ,YAAQ,MAAM,IAAI;;AAGpB,UAAO;IACL,GAAG;IACH,KAAK,IAAI,SAAS,KAAK,GAAG,MAAM,QAAQ,KAAK,KAAK;IAClD,QAAQ,KAAK,QAAQ,UAAU,QAAQ,IAAI,qBAAqB,kBAAkB;IAClF,OACE,KAAK,QAAQ,SAAS,QAAQ,IAAI,4BAA4B;IACjE;IACD,CACD,OAAO,QAAQ;AACd,QAAK,cAAc;AACnB,SAAM;IACN;AAEJ,SAAO,KAAK;;CAGd,MAAe,QACb,OACA,SACmD;EACnD,MAAM,EAAE,kBAAkB,iBAAiB,OAAO;EAClD,MAAM,WACJ,KAAK,SAAS,eAAe,YAC7B,oBACA,gBACA,oBAAoB,OAAO,YAAY,cAAc,OAAO,GAAG,UAAU,GAAG;EAE9E,MAAM,WAAW,OAAO,MAAM,KAAK,QAAQ,SACzC,QACA;GACE,GAAG;GACH,cAAc;IACZ,GAAG,MAAM;IACT,OAAO,MAAM,cAAc,UAAU,MAAM,KAAK,YAAY;IAC7D;GACF,EACD;GACE,GAAG;GACH,WAAW;GACX,cAAc;IACZ,GAAG,QAAQ;IACX,SAAS;KACP,GAAG,QAAQ,cAAc;KACzB,0BAA0B;KAC3B;IACF;GACF,CACF;AAED,SAAO;GACL,GAAG;GACH,YAAY,SAAS;GACrB,OAAO;IACL,aAAa,SAAS,OAAO,eAAe;IAC5C,cAAc,SAAS,OAAO,gBAAgB;IAC9C,GAAG,SAAS;IACb;GACD,OAAO,UAAU;GAClB"}
@@ -7,8 +7,8 @@ declare class AIGNEHubImageModel extends ImageModel {
7
7
  options: AIGNEHubImageModelOptions;
8
8
  constructor(options: AIGNEHubImageModelOptions);
9
9
  models(): Promise<{
10
- type: string;
11
10
  model: string;
11
+ type: string;
12
12
  provider: string;
13
13
  input_credits_per_token: string;
14
14
  output_credits_per_token: string;
@@ -7,8 +7,8 @@ declare class AIGNEHubImageModel extends ImageModel {
7
7
  options: AIGNEHubImageModelOptions;
8
8
  constructor(options: AIGNEHubImageModelOptions);
9
9
  models(): Promise<{
10
- type: string;
11
10
  model: string;
11
+ type: string;
12
12
  provider: string;
13
13
  input_credits_per_token: string;
14
14
  output_credits_per_token: string;
@@ -7,8 +7,8 @@ declare class AIGNEHubVideoModel extends VideoModel {
7
7
  options: AIGNEHubVideoModelOptions;
8
8
  constructor(options: AIGNEHubVideoModelOptions);
9
9
  models(): Promise<{
10
- type: string;
11
10
  model: string;
11
+ type: string;
12
12
  provider: string;
13
13
  input_credits_per_token: string;
14
14
  output_credits_per_token: string;
@@ -7,8 +7,8 @@ declare class AIGNEHubVideoModel extends VideoModel {
7
7
  options: AIGNEHubVideoModelOptions;
8
8
  constructor(options: AIGNEHubVideoModelOptions);
9
9
  models(): Promise<{
10
- type: string;
11
10
  model: string;
11
+ type: string;
12
12
  provider: string;
13
13
  input_credits_per_token: string;
14
14
  output_credits_per_token: string;
package/dist/index.cjs CHANGED
@@ -76,6 +76,41 @@ var AIGNEHubImageModel = class AIGNEHubImageModel extends _aigne_model_base.Imag
76
76
  return this.client.invoke(input, options);
77
77
  }
78
78
  };
79
+ var AIGNEHubEmbeddingModel = class AIGNEHubEmbeddingModel extends _aigne_model_base.EmbeddingModel {
80
+ static async models() {
81
+ return require_hub.getModels({ type: "embedding" });
82
+ }
83
+ models() {
84
+ return require_hub.getModels({ type: "embedding" });
85
+ }
86
+ constructor(options) {
87
+ let provider = process.env.BLOCKLET_AIGNE_API_PROVIDER;
88
+ if (!provider && options.model) {
89
+ const parsed = require_model.parseModel(options.model);
90
+ if (parsed.provider && parsed.model) {
91
+ provider = parsed.provider;
92
+ options.model = parsed.model;
93
+ }
94
+ }
95
+ provider ||= AIGNEHubEmbeddingModel.name;
96
+ const { match, all } = require_model.findEmbeddingModel(provider);
97
+ if (!match) {
98
+ const available = all.map((m) => m.name).join(", ");
99
+ throw new Error(`Unsupported model provider: ${provider} ${process.env.BLOCKLET_AIGNE_API_MODEL}. Available providers: ${available}`);
100
+ }
101
+ const client = match.create(options);
102
+ super({ name: client.name });
103
+ this.options = options;
104
+ this.client = client;
105
+ }
106
+ client;
107
+ get credential() {
108
+ return this.client.credential;
109
+ }
110
+ async process(input, options) {
111
+ return this.client.invoke(input, options);
112
+ }
113
+ };
79
114
  var AIGNEHubVideoModel = class AIGNEHubVideoModel extends _aigne_model_base.VideoModel {
80
115
  static async models() {
81
116
  return require_hub.getModels({ type: "video" });
@@ -114,6 +149,7 @@ var AIGNEHubVideoModel = class AIGNEHubVideoModel extends _aigne_model_base.Vide
114
149
 
115
150
  //#endregion
116
151
  exports.AIGNEHubChatModel = AIGNEHubChatModel;
152
+ exports.AIGNEHubEmbeddingModel = AIGNEHubEmbeddingModel;
117
153
  exports.AIGNEHubImageModel = AIGNEHubImageModel;
118
154
  exports.AIGNEHubVideoModel = AIGNEHubVideoModel;
119
155
  exports.AIGNE_HUB_BLOCKLET_DID = require_constants.AIGNE_HUB_BLOCKLET_DID;
@@ -125,9 +161,11 @@ exports.AIGNE_HUB_VIDEO_MODEL = require_constants.AIGNE_HUB_VIDEO_MODEL;
125
161
  exports.AI_PROVIDERS = require_constants.AI_PROVIDERS;
126
162
  exports.PROVIDER_RANK = require_constants.PROVIDER_RANK;
127
163
  exports.aigneHubBaseUrl = require_constants.aigneHubBaseUrl;
164
+ exports.availableEmbeddingModels = require_model.availableEmbeddingModels;
128
165
  exports.availableImageModels = require_model.availableImageModels;
129
166
  exports.availableModels = require_model.availableModels;
130
167
  exports.availableVideoModels = require_model.availableVideoModels;
168
+ exports.findEmbeddingModel = require_model.findEmbeddingModel;
131
169
  exports.findImageModel = require_model.findImageModel;
132
170
  exports.findModel = require_model.findModel;
133
171
  exports.findVideoModel = require_model.findVideoModel;
package/dist/index.d.cts CHANGED
@@ -1,9 +1,9 @@
1
- import { AIGNEHubChatModelOptions, AIGNEHubImageModelOptions, AIGNEHubVideoModelOptions } from "./utils/type.cjs";
1
+ import { AIGNEHubChatModelOptions, AIGNEHubEmbeddingModelOptions, AIGNEHubImageModelOptions, AIGNEHubVideoModelOptions } from "./utils/type.cjs";
2
2
  import { getAIGNEHubMountPoint } from "./utils/blocklet.cjs";
3
3
  import { AIGNE_HUB_BLOCKLET_DID, AIGNE_HUB_DEFAULT_MODEL, AIGNE_HUB_IMAGE_MODEL, AIGNE_HUB_PROVIDER, AIGNE_HUB_URL, AIGNE_HUB_VIDEO_MODEL, AIProviderType, AI_PROVIDERS, PROVIDER_RANK, aigneHubBaseUrl } from "./utils/constants.cjs";
4
4
  import { getDefaultProviderForModel, getSupportedProviders, inferVendorFromModel, resolveProviderModelId } from "./utils/find-provider.cjs";
5
- import { LoadableImageModel, LoadableModel, LoadableVideoModel, availableImageModels, availableModels, availableVideoModels, findImageModel, findModel, findVideoModel, parseModel } from "./utils/model.cjs";
6
- import { ChatModel, ChatModelInput, ChatModelOutput, ImageModel, ImageModelInput, ImageModelOutput, ModelProcessResult, VideoModel, VideoModelInput, VideoModelOutput } from "@aigne/model-base";
5
+ import { LoadableEmbeddingModel, LoadableImageModel, LoadableModel, LoadableVideoModel, availableEmbeddingModels, availableImageModels, availableModels, availableVideoModels, findEmbeddingModel, findImageModel, findModel, findVideoModel, parseModel } from "./utils/model.cjs";
6
+ import { ChatModel, ChatModelInput, ChatModelOutput, EmbeddingModel, EmbeddingModelInput, EmbeddingModelOutput, ImageModel, ImageModelInput, ImageModelOutput, ModelProcessResult, VideoModel, VideoModelInput, VideoModelOutput } from "@aigne/model-base";
7
7
  import { BaseClientInvokeOptions } from "@aigne/model-base/transport/base-client";
8
8
  import * as _aigne_model_base_utils_type_utils0 from "@aigne/model-base/utils/type-utils";
9
9
 
@@ -11,8 +11,8 @@ import * as _aigne_model_base_utils_type_utils0 from "@aigne/model-base/utils/ty
11
11
  declare class AIGNEHubChatModel extends ChatModel {
12
12
  options: AIGNEHubChatModelOptions;
13
13
  static models(): Promise<{
14
- type: string;
15
14
  model: string;
15
+ type: string;
16
16
  provider: string;
17
17
  input_credits_per_token: string;
18
18
  output_credits_per_token: string;
@@ -23,8 +23,8 @@ declare class AIGNEHubChatModel extends ChatModel {
23
23
  modelMetadata?: Record<string, unknown> | null | undefined;
24
24
  }[]>;
25
25
  models(): Promise<{
26
- type: string;
27
26
  model: string;
27
+ type: string;
28
28
  provider: string;
29
29
  input_credits_per_token: string;
30
30
  output_credits_per_token: string;
@@ -46,8 +46,8 @@ declare class AIGNEHubChatModel extends ChatModel {
46
46
  declare class AIGNEHubImageModel extends ImageModel {
47
47
  options: AIGNEHubImageModelOptions;
48
48
  static models(): Promise<{
49
- type: string;
50
49
  model: string;
50
+ type: string;
51
51
  provider: string;
52
52
  input_credits_per_token: string;
53
53
  output_credits_per_token: string;
@@ -58,8 +58,8 @@ declare class AIGNEHubImageModel extends ImageModel {
58
58
  modelMetadata?: Record<string, unknown> | null | undefined;
59
59
  }[]>;
60
60
  models(): Promise<{
61
- type: string;
62
61
  model: string;
62
+ type: string;
63
63
  provider: string;
64
64
  input_credits_per_token: string;
65
65
  output_credits_per_token: string;
@@ -78,11 +78,46 @@ declare class AIGNEHubImageModel extends ImageModel {
78
78
  }>;
79
79
  process(input: ImageModelInput, options: BaseClientInvokeOptions): Promise<ModelProcessResult<ImageModelOutput>>;
80
80
  }
81
+ declare class AIGNEHubEmbeddingModel extends EmbeddingModel {
82
+ options: AIGNEHubEmbeddingModelOptions;
83
+ static models(): Promise<{
84
+ model: string;
85
+ type: string;
86
+ provider: string;
87
+ input_credits_per_token: string;
88
+ output_credits_per_token: string;
89
+ providerDisplayName: string;
90
+ status?: {
91
+ available: boolean;
92
+ } | null | undefined;
93
+ modelMetadata?: Record<string, unknown> | null | undefined;
94
+ }[]>;
95
+ models(): Promise<{
96
+ model: string;
97
+ type: string;
98
+ provider: string;
99
+ input_credits_per_token: string;
100
+ output_credits_per_token: string;
101
+ providerDisplayName: string;
102
+ status?: {
103
+ available: boolean;
104
+ } | null | undefined;
105
+ modelMetadata?: Record<string, unknown> | null | undefined;
106
+ }[]>;
107
+ constructor(options: AIGNEHubEmbeddingModelOptions);
108
+ protected client: EmbeddingModel;
109
+ get credential(): _aigne_model_base_utils_type_utils0.PromiseOrValue<{
110
+ url?: string;
111
+ apiKey?: string;
112
+ model?: string;
113
+ }>;
114
+ process(input: EmbeddingModelInput, options: BaseClientInvokeOptions): Promise<ModelProcessResult<EmbeddingModelOutput>>;
115
+ }
81
116
  declare class AIGNEHubVideoModel extends VideoModel {
82
117
  options: AIGNEHubVideoModelOptions;
83
118
  static models(): Promise<{
84
- type: string;
85
119
  model: string;
120
+ type: string;
86
121
  provider: string;
87
122
  input_credits_per_token: string;
88
123
  output_credits_per_token: string;
@@ -93,8 +128,8 @@ declare class AIGNEHubVideoModel extends VideoModel {
93
128
  modelMetadata?: Record<string, unknown> | null | undefined;
94
129
  }[]>;
95
130
  models(): Promise<{
96
- type: string;
97
131
  model: string;
132
+ type: string;
98
133
  provider: string;
99
134
  input_credits_per_token: string;
100
135
  output_credits_per_token: string;
@@ -114,5 +149,5 @@ declare class AIGNEHubVideoModel extends VideoModel {
114
149
  process(input: VideoModelInput, options: BaseClientInvokeOptions): Promise<ModelProcessResult<VideoModelOutput>>;
115
150
  }
116
151
  //#endregion
117
- export { AIGNEHubChatModel, AIGNEHubImageModel, AIGNEHubVideoModel, AIGNE_HUB_BLOCKLET_DID, AIGNE_HUB_DEFAULT_MODEL, AIGNE_HUB_IMAGE_MODEL, AIGNE_HUB_PROVIDER, AIGNE_HUB_URL, AIGNE_HUB_VIDEO_MODEL, AIProviderType, AI_PROVIDERS, LoadableImageModel, LoadableModel, LoadableVideoModel, PROVIDER_RANK, aigneHubBaseUrl, availableImageModels, availableModels, availableVideoModels, findImageModel, findModel, findVideoModel, getAIGNEHubMountPoint, getDefaultProviderForModel, getSupportedProviders, inferVendorFromModel, parseModel, resolveProviderModelId };
152
+ export { AIGNEHubChatModel, AIGNEHubEmbeddingModel, AIGNEHubImageModel, AIGNEHubVideoModel, AIGNE_HUB_BLOCKLET_DID, AIGNE_HUB_DEFAULT_MODEL, AIGNE_HUB_IMAGE_MODEL, AIGNE_HUB_PROVIDER, AIGNE_HUB_URL, AIGNE_HUB_VIDEO_MODEL, AIProviderType, AI_PROVIDERS, LoadableEmbeddingModel, LoadableImageModel, LoadableModel, LoadableVideoModel, PROVIDER_RANK, aigneHubBaseUrl, availableEmbeddingModels, availableImageModels, availableModels, availableVideoModels, findEmbeddingModel, findImageModel, findModel, findVideoModel, getAIGNEHubMountPoint, getDefaultProviderForModel, getSupportedProviders, inferVendorFromModel, parseModel, resolveProviderModelId };
118
153
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;;;;;cA2Ba,iBAAA,SAA0B,SAAA;EAST,OAAA,EAAS,wBAAA;EAAA,OARxB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;EAInB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;cAIsB,OAAA,EAAS,wBAAA;EAAA,UA6B3B,MAAA,EAAQ,SAAA;EAAA,IAEL,UAAA,CAAA,GAFc,mCAAA,CAEJ,cAAA;;;;;EAIR,OAAA,CACb,KAAA,EAAO,cAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,eAAA;AAAA;AAAA,cAKnB,kBAAA,SAA2B,UAAA;EASV,OAAA,EAAS,yBAAA;EAAA,OARxB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;EAInB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;cAIsB,OAAA,EAAS,yBAAA;EAAA,UA6B3B,MAAA,EAAQ,UAAA;EAAA,IAEL,UAAA,CAAA,GAFe,mCAAA,CAEL,cAAA;;;;;EAIR,OAAA,CACb,KAAA,EAAO,eAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,gBAAA;AAAA;AAAA,cAKnB,kBAAA,SAA2B,UAAA;EASV,OAAA,EAAS,yBAAA;EAAA,OARxB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;EAInB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;cAIsB,OAAA,EAAS,yBAAA;EAAA,UA6B3B,MAAA,EAAQ,UAAA;EAAA,IAEL,UAAA,CAAA,GAFe,mCAAA,CAEL,cAAA;;;;;EAIR,OAAA,CACb,KAAA,EAAO,eAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,gBAAA;AAAA"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;;;;;cAqCa,iBAAA,SAA0B,SAAA;EAST,OAAA,EAAS,wBAAA;EAAA,OARxB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;EAInB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;cAIsB,OAAA,EAAS,wBAAA;EAAA,UA6B3B,MAAA,EAAQ,SAAA;EAAA,IAEL,UAAA,CAAA,GAFc,mCAAA,CAEJ,cAAA;;;;;EAIR,OAAA,CACb,KAAA,EAAO,cAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,eAAA;AAAA;AAAA,cAKnB,kBAAA,SAA2B,UAAA;EASV,OAAA,EAAS,yBAAA;EAAA,OARxB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;EAInB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;cAIsB,OAAA,EAAS,yBAAA;EAAA,UA6B3B,MAAA,EAAQ,UAAA;EAAA,IAEL,UAAA,CAAA,GAFe,mCAAA,CAEL,cAAA;;;;;EAIR,OAAA,CACb,KAAA,EAAO,eAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,gBAAA;AAAA;AAAA,cAKnB,sBAAA,SAA+B,cAAA;EASd,OAAA,EAAS,6BAAA;EAAA,OARxB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;EAInB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;cAIsB,OAAA,EAAS,6BAAA;EAAA,UA6B3B,MAAA,EAAQ,cAAA;EAAA,IAEL,UAAA,CAAA,GAFmB,mCAAA,CAET,cAAA;;;;;EAIR,OAAA,CACb,KAAA,EAAO,mBAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,oBAAA;AAAA;AAAA,cAKnB,kBAAA,SAA2B,UAAA;EASV,OAAA,EAAS,yBAAA;EAAA,OARxB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;EAInB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;cAIsB,OAAA,EAAS,yBAAA;EAAA,UA6B3B,MAAA,EAAQ,UAAA;EAAA,IAEL,UAAA,CAAA,GAFe,mCAAA,CAEL,cAAA;;;;;EAIR,OAAA,CACb,KAAA,EAAO,eAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,gBAAA;AAAA"}
package/dist/index.d.mts CHANGED
@@ -1,9 +1,9 @@
1
- import { AIGNEHubChatModelOptions, AIGNEHubImageModelOptions, AIGNEHubVideoModelOptions } from "./utils/type.mjs";
1
+ import { AIGNEHubChatModelOptions, AIGNEHubEmbeddingModelOptions, AIGNEHubImageModelOptions, AIGNEHubVideoModelOptions } from "./utils/type.mjs";
2
2
  import { getAIGNEHubMountPoint } from "./utils/blocklet.mjs";
3
3
  import { AIGNE_HUB_BLOCKLET_DID, AIGNE_HUB_DEFAULT_MODEL, AIGNE_HUB_IMAGE_MODEL, AIGNE_HUB_PROVIDER, AIGNE_HUB_URL, AIGNE_HUB_VIDEO_MODEL, AIProviderType, AI_PROVIDERS, PROVIDER_RANK, aigneHubBaseUrl } from "./utils/constants.mjs";
4
4
  import { getDefaultProviderForModel, getSupportedProviders, inferVendorFromModel, resolveProviderModelId } from "./utils/find-provider.mjs";
5
- import { LoadableImageModel, LoadableModel, LoadableVideoModel, availableImageModels, availableModels, availableVideoModels, findImageModel, findModel, findVideoModel, parseModel } from "./utils/model.mjs";
6
- import { ChatModel, ChatModelInput, ChatModelOutput, ImageModel, ImageModelInput, ImageModelOutput, ModelProcessResult, VideoModel, VideoModelInput, VideoModelOutput } from "@aigne/model-base";
5
+ import { LoadableEmbeddingModel, LoadableImageModel, LoadableModel, LoadableVideoModel, availableEmbeddingModels, availableImageModels, availableModels, availableVideoModels, findEmbeddingModel, findImageModel, findModel, findVideoModel, parseModel } from "./utils/model.mjs";
6
+ import { ChatModel, ChatModelInput, ChatModelOutput, EmbeddingModel, EmbeddingModelInput, EmbeddingModelOutput, ImageModel, ImageModelInput, ImageModelOutput, ModelProcessResult, VideoModel, VideoModelInput, VideoModelOutput } from "@aigne/model-base";
7
7
  import { BaseClientInvokeOptions } from "@aigne/model-base/transport/base-client";
8
8
  import * as _aigne_model_base_utils_type_utils0 from "@aigne/model-base/utils/type-utils";
9
9
 
@@ -11,8 +11,8 @@ import * as _aigne_model_base_utils_type_utils0 from "@aigne/model-base/utils/ty
11
11
  declare class AIGNEHubChatModel extends ChatModel {
12
12
  options: AIGNEHubChatModelOptions;
13
13
  static models(): Promise<{
14
- type: string;
15
14
  model: string;
15
+ type: string;
16
16
  provider: string;
17
17
  input_credits_per_token: string;
18
18
  output_credits_per_token: string;
@@ -23,8 +23,8 @@ declare class AIGNEHubChatModel extends ChatModel {
23
23
  modelMetadata?: Record<string, unknown> | null | undefined;
24
24
  }[]>;
25
25
  models(): Promise<{
26
- type: string;
27
26
  model: string;
27
+ type: string;
28
28
  provider: string;
29
29
  input_credits_per_token: string;
30
30
  output_credits_per_token: string;
@@ -46,8 +46,8 @@ declare class AIGNEHubChatModel extends ChatModel {
46
46
  declare class AIGNEHubImageModel extends ImageModel {
47
47
  options: AIGNEHubImageModelOptions;
48
48
  static models(): Promise<{
49
- type: string;
50
49
  model: string;
50
+ type: string;
51
51
  provider: string;
52
52
  input_credits_per_token: string;
53
53
  output_credits_per_token: string;
@@ -58,8 +58,8 @@ declare class AIGNEHubImageModel extends ImageModel {
58
58
  modelMetadata?: Record<string, unknown> | null | undefined;
59
59
  }[]>;
60
60
  models(): Promise<{
61
- type: string;
62
61
  model: string;
62
+ type: string;
63
63
  provider: string;
64
64
  input_credits_per_token: string;
65
65
  output_credits_per_token: string;
@@ -78,11 +78,46 @@ declare class AIGNEHubImageModel extends ImageModel {
78
78
  }>;
79
79
  process(input: ImageModelInput, options: BaseClientInvokeOptions): Promise<ModelProcessResult<ImageModelOutput>>;
80
80
  }
81
+ declare class AIGNEHubEmbeddingModel extends EmbeddingModel {
82
+ options: AIGNEHubEmbeddingModelOptions;
83
+ static models(): Promise<{
84
+ model: string;
85
+ type: string;
86
+ provider: string;
87
+ input_credits_per_token: string;
88
+ output_credits_per_token: string;
89
+ providerDisplayName: string;
90
+ status?: {
91
+ available: boolean;
92
+ } | null | undefined;
93
+ modelMetadata?: Record<string, unknown> | null | undefined;
94
+ }[]>;
95
+ models(): Promise<{
96
+ model: string;
97
+ type: string;
98
+ provider: string;
99
+ input_credits_per_token: string;
100
+ output_credits_per_token: string;
101
+ providerDisplayName: string;
102
+ status?: {
103
+ available: boolean;
104
+ } | null | undefined;
105
+ modelMetadata?: Record<string, unknown> | null | undefined;
106
+ }[]>;
107
+ constructor(options: AIGNEHubEmbeddingModelOptions);
108
+ protected client: EmbeddingModel;
109
+ get credential(): _aigne_model_base_utils_type_utils0.PromiseOrValue<{
110
+ url?: string;
111
+ apiKey?: string;
112
+ model?: string;
113
+ }>;
114
+ process(input: EmbeddingModelInput, options: BaseClientInvokeOptions): Promise<ModelProcessResult<EmbeddingModelOutput>>;
115
+ }
81
116
  declare class AIGNEHubVideoModel extends VideoModel {
82
117
  options: AIGNEHubVideoModelOptions;
83
118
  static models(): Promise<{
84
- type: string;
85
119
  model: string;
120
+ type: string;
86
121
  provider: string;
87
122
  input_credits_per_token: string;
88
123
  output_credits_per_token: string;
@@ -93,8 +128,8 @@ declare class AIGNEHubVideoModel extends VideoModel {
93
128
  modelMetadata?: Record<string, unknown> | null | undefined;
94
129
  }[]>;
95
130
  models(): Promise<{
96
- type: string;
97
131
  model: string;
132
+ type: string;
98
133
  provider: string;
99
134
  input_credits_per_token: string;
100
135
  output_credits_per_token: string;
@@ -114,5 +149,5 @@ declare class AIGNEHubVideoModel extends VideoModel {
114
149
  process(input: VideoModelInput, options: BaseClientInvokeOptions): Promise<ModelProcessResult<VideoModelOutput>>;
115
150
  }
116
151
  //#endregion
117
- export { AIGNEHubChatModel, AIGNEHubImageModel, AIGNEHubVideoModel, AIGNE_HUB_BLOCKLET_DID, AIGNE_HUB_DEFAULT_MODEL, AIGNE_HUB_IMAGE_MODEL, AIGNE_HUB_PROVIDER, AIGNE_HUB_URL, AIGNE_HUB_VIDEO_MODEL, AIProviderType, AI_PROVIDERS, LoadableImageModel, LoadableModel, LoadableVideoModel, PROVIDER_RANK, aigneHubBaseUrl, availableImageModels, availableModels, availableVideoModels, findImageModel, findModel, findVideoModel, getAIGNEHubMountPoint, getDefaultProviderForModel, getSupportedProviders, inferVendorFromModel, parseModel, resolveProviderModelId };
152
+ export { AIGNEHubChatModel, AIGNEHubEmbeddingModel, AIGNEHubImageModel, AIGNEHubVideoModel, AIGNE_HUB_BLOCKLET_DID, AIGNE_HUB_DEFAULT_MODEL, AIGNE_HUB_IMAGE_MODEL, AIGNE_HUB_PROVIDER, AIGNE_HUB_URL, AIGNE_HUB_VIDEO_MODEL, AIProviderType, AI_PROVIDERS, LoadableEmbeddingModel, LoadableImageModel, LoadableModel, LoadableVideoModel, PROVIDER_RANK, aigneHubBaseUrl, availableEmbeddingModels, availableImageModels, availableModels, availableVideoModels, findEmbeddingModel, findImageModel, findModel, findVideoModel, getAIGNEHubMountPoint, getDefaultProviderForModel, getSupportedProviders, inferVendorFromModel, parseModel, resolveProviderModelId };
118
153
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;;;;;cA2Ba,iBAAA,SAA0B,SAAA;EAST,OAAA,EAAS,wBAAA;EAAA,OARxB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;EAInB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;cAIsB,OAAA,EAAS,wBAAA;EAAA,UA6B3B,MAAA,EAAQ,SAAA;EAAA,IAEL,UAAA,CAAA,GAFc,mCAAA,CAEJ,cAAA;;;;;EAIR,OAAA,CACb,KAAA,EAAO,cAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,eAAA;AAAA;AAAA,cAKnB,kBAAA,SAA2B,UAAA;EASV,OAAA,EAAS,yBAAA;EAAA,OARxB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;EAInB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;cAIsB,OAAA,EAAS,yBAAA;EAAA,UA6B3B,MAAA,EAAQ,UAAA;EAAA,IAEL,UAAA,CAAA,GAFe,mCAAA,CAEL,cAAA;;;;;EAIR,OAAA,CACb,KAAA,EAAO,eAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,gBAAA;AAAA;AAAA,cAKnB,kBAAA,SAA2B,UAAA;EASV,OAAA,EAAS,yBAAA;EAAA,OARxB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;EAInB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;cAIsB,OAAA,EAAS,yBAAA;EAAA,UA6B3B,MAAA,EAAQ,UAAA;EAAA,IAEL,UAAA,CAAA,GAFe,mCAAA,CAEL,cAAA;;;;;EAIR,OAAA,CACb,KAAA,EAAO,eAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,gBAAA;AAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;;;;;cAqCa,iBAAA,SAA0B,SAAA;EAST,OAAA,EAAS,wBAAA;EAAA,OARxB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;EAInB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;cAIsB,OAAA,EAAS,wBAAA;EAAA,UA6B3B,MAAA,EAAQ,SAAA;EAAA,IAEL,UAAA,CAAA,GAFc,mCAAA,CAEJ,cAAA;;;;;EAIR,OAAA,CACb,KAAA,EAAO,cAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,eAAA;AAAA;AAAA,cAKnB,kBAAA,SAA2B,UAAA;EASV,OAAA,EAAS,yBAAA;EAAA,OARxB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;EAInB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;cAIsB,OAAA,EAAS,yBAAA;EAAA,UA6B3B,MAAA,EAAQ,UAAA;EAAA,IAEL,UAAA,CAAA,GAFe,mCAAA,CAEL,cAAA;;;;;EAIR,OAAA,CACb,KAAA,EAAO,eAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,gBAAA;AAAA;AAAA,cAKnB,sBAAA,SAA+B,cAAA;EASd,OAAA,EAAS,6BAAA;EAAA,OARxB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;EAInB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;cAIsB,OAAA,EAAS,6BAAA;EAAA,UA6B3B,MAAA,EAAQ,cAAA;EAAA,IAEL,UAAA,CAAA,GAFmB,mCAAA,CAET,cAAA;;;;;EAIR,OAAA,CACb,KAAA,EAAO,mBAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,oBAAA;AAAA;AAAA,cAKnB,kBAAA,SAA2B,UAAA;EASV,OAAA,EAAS,yBAAA;EAAA,OARxB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;EAInB,MAAA,CAAA,GAAM,OAAA;;;;;;;;;;;;cAIsB,OAAA,EAAS,yBAAA;EAAA,UA6B3B,MAAA,EAAQ,UAAA;EAAA,IAEL,UAAA,CAAA,GAFe,mCAAA,CAEL,cAAA;;;;;EAIR,OAAA,CACb,KAAA,EAAO,eAAA,EACP,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,kBAAA,CAAmB,gBAAA;AAAA"}
package/dist/index.mjs CHANGED
@@ -1,9 +1,9 @@
1
1
  import { getAIGNEHubMountPoint } from "./utils/blocklet.mjs";
2
2
  import { AIGNE_HUB_BLOCKLET_DID, AIGNE_HUB_DEFAULT_MODEL, AIGNE_HUB_IMAGE_MODEL, AIGNE_HUB_PROVIDER, AIGNE_HUB_URL, AIGNE_HUB_VIDEO_MODEL, AI_PROVIDERS, PROVIDER_RANK, aigneHubBaseUrl } from "./utils/constants.mjs";
3
3
  import { getModels } from "./utils/hub.mjs";
4
- import { availableImageModels, availableModels, availableVideoModels, findImageModel, findModel, findVideoModel, parseModel } from "./utils/model.mjs";
4
+ import { availableEmbeddingModels, availableImageModels, availableModels, availableVideoModels, findEmbeddingModel, findImageModel, findModel, findVideoModel, parseModel } from "./utils/model.mjs";
5
5
  import { getDefaultProviderForModel, getSupportedProviders, inferVendorFromModel, resolveProviderModelId } from "./utils/find-provider.mjs";
6
- import { ChatModel, ImageModel, VideoModel } from "@aigne/model-base";
6
+ import { ChatModel, EmbeddingModel, ImageModel, VideoModel } from "@aigne/model-base";
7
7
 
8
8
  //#region src/index.ts
9
9
  var AIGNEHubChatModel = class AIGNEHubChatModel extends ChatModel {
@@ -76,6 +76,41 @@ var AIGNEHubImageModel = class AIGNEHubImageModel extends ImageModel {
76
76
  return this.client.invoke(input, options);
77
77
  }
78
78
  };
79
+ var AIGNEHubEmbeddingModel = class AIGNEHubEmbeddingModel extends EmbeddingModel {
80
+ static async models() {
81
+ return getModels({ type: "embedding" });
82
+ }
83
+ models() {
84
+ return getModels({ type: "embedding" });
85
+ }
86
+ constructor(options) {
87
+ let provider = process.env.BLOCKLET_AIGNE_API_PROVIDER;
88
+ if (!provider && options.model) {
89
+ const parsed = parseModel(options.model);
90
+ if (parsed.provider && parsed.model) {
91
+ provider = parsed.provider;
92
+ options.model = parsed.model;
93
+ }
94
+ }
95
+ provider ||= AIGNEHubEmbeddingModel.name;
96
+ const { match, all } = findEmbeddingModel(provider);
97
+ if (!match) {
98
+ const available = all.map((m) => m.name).join(", ");
99
+ throw new Error(`Unsupported model provider: ${provider} ${process.env.BLOCKLET_AIGNE_API_MODEL}. Available providers: ${available}`);
100
+ }
101
+ const client = match.create(options);
102
+ super({ name: client.name });
103
+ this.options = options;
104
+ this.client = client;
105
+ }
106
+ client;
107
+ get credential() {
108
+ return this.client.credential;
109
+ }
110
+ async process(input, options) {
111
+ return this.client.invoke(input, options);
112
+ }
113
+ };
79
114
  var AIGNEHubVideoModel = class AIGNEHubVideoModel extends VideoModel {
80
115
  static async models() {
81
116
  return getModels({ type: "video" });
@@ -113,5 +148,5 @@ var AIGNEHubVideoModel = class AIGNEHubVideoModel extends VideoModel {
113
148
  };
114
149
 
115
150
  //#endregion
116
- export { AIGNEHubChatModel, AIGNEHubImageModel, AIGNEHubVideoModel, AIGNE_HUB_BLOCKLET_DID, AIGNE_HUB_DEFAULT_MODEL, AIGNE_HUB_IMAGE_MODEL, AIGNE_HUB_PROVIDER, AIGNE_HUB_URL, AIGNE_HUB_VIDEO_MODEL, AI_PROVIDERS, PROVIDER_RANK, aigneHubBaseUrl, availableImageModels, availableModels, availableVideoModels, findImageModel, findModel, findVideoModel, getAIGNEHubMountPoint, getDefaultProviderForModel, getSupportedProviders, inferVendorFromModel, parseModel, resolveProviderModelId };
151
+ export { AIGNEHubChatModel, AIGNEHubEmbeddingModel, AIGNEHubImageModel, AIGNEHubVideoModel, AIGNE_HUB_BLOCKLET_DID, AIGNE_HUB_DEFAULT_MODEL, AIGNE_HUB_IMAGE_MODEL, AIGNE_HUB_PROVIDER, AIGNE_HUB_URL, AIGNE_HUB_VIDEO_MODEL, AI_PROVIDERS, PROVIDER_RANK, aigneHubBaseUrl, availableEmbeddingModels, availableImageModels, availableModels, availableVideoModels, findEmbeddingModel, findImageModel, findModel, findVideoModel, getAIGNEHubMountPoint, getDefaultProviderForModel, getSupportedProviders, inferVendorFromModel, parseModel, resolveProviderModelId };
117
152
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import {\n ChatModel,\n type ChatModelInput,\n type ChatModelOutput,\n ImageModel,\n type ImageModelInput,\n type ImageModelOutput,\n type ModelProcessResult,\n VideoModel,\n type VideoModelInput,\n type VideoModelOutput,\n} from \"@aigne/model-base\";\nimport type { BaseClientInvokeOptions } from \"@aigne/model-base/transport/base-client\";\nimport { getModels } from \"./utils/hub.js\";\nimport { findImageModel, findModel, findVideoModel, parseModel } from \"./utils/model.js\";\n\nimport type {\n AIGNEHubChatModelOptions,\n AIGNEHubImageModelOptions,\n AIGNEHubVideoModelOptions,\n} from \"./utils/type.js\";\n\nexport * from \"./utils/blocklet.js\";\nexport * from \"./utils/constants.js\";\nexport * from \"./utils/find-provider.js\";\nexport * from \"./utils/model.js\";\n\nexport class AIGNEHubChatModel extends ChatModel {\n static async models() {\n return getModels({ type: \"chat\" });\n }\n\n models() {\n return getModels({ type: \"chat\" });\n }\n\n constructor(public override options: AIGNEHubChatModelOptions) {\n let provider = process.env.BLOCKLET_AIGNE_API_PROVIDER;\n\n if (!provider && options.model) {\n const parsed = parseModel(options.model);\n if (parsed.provider && parsed.model) {\n provider = parsed.provider;\n options.model = parsed.model;\n }\n }\n\n provider ||= AIGNEHubChatModel.name;\n\n const { match, all } = findModel(provider);\n\n if (!match) {\n const available = all.map((m) => m.name).join(\", \");\n throw new Error(\n `Unsupported model provider: ${provider} ${process.env.BLOCKLET_AIGNE_API_MODEL}. Available providers: ${available}`,\n );\n }\n\n const client = match.create(options);\n\n super({ name: client.name });\n\n this.client = client;\n }\n\n protected client: ChatModel;\n\n override get credential() {\n return this.client.credential;\n }\n\n override async process(\n input: ChatModelInput,\n options: BaseClientInvokeOptions,\n ): Promise<ModelProcessResult<ChatModelOutput>> {\n return this.client.invoke(input, options);\n }\n}\n\nexport class AIGNEHubImageModel extends ImageModel {\n static async models() {\n return getModels({ type: \"image\" });\n }\n\n models() {\n return getModels({ type: \"image\" });\n }\n\n constructor(public override options: AIGNEHubImageModelOptions) {\n let provider = process.env.BLOCKLET_AIGNE_API_PROVIDER;\n\n if (!provider && options.model) {\n const parsed = parseModel(options.model);\n if (parsed.provider && parsed.model) {\n provider = parsed.provider;\n options.model = parsed.model;\n }\n }\n\n provider ||= AIGNEHubImageModel.name;\n\n const { match, all } = findImageModel(provider);\n\n if (!match) {\n const available = all.map((m) => m.name).join(\", \");\n throw new Error(\n `Unsupported model provider: ${provider} ${process.env.BLOCKLET_AIGNE_API_MODEL}. Available providers: ${available}`,\n );\n }\n\n const client = match.create(options);\n\n super({ name: client.name });\n\n this.client = client;\n }\n\n protected client: ImageModel;\n\n override get credential() {\n return this.client.credential;\n }\n\n override async process(\n input: ImageModelInput,\n options: BaseClientInvokeOptions,\n ): Promise<ModelProcessResult<ImageModelOutput>> {\n return this.client.invoke(input, options);\n }\n}\n\nexport class AIGNEHubVideoModel extends VideoModel {\n static async models() {\n return getModels({ type: \"video\" });\n }\n\n models() {\n return getModels({ type: \"video\" });\n }\n\n constructor(public override options: AIGNEHubVideoModelOptions) {\n let provider = process.env.BLOCKLET_AIGNE_API_PROVIDER;\n\n if (!provider && options.model) {\n const parsed = parseModel(options.model);\n if (parsed.provider && parsed.model) {\n provider = parsed.provider;\n options.model = parsed.model;\n }\n }\n\n provider ||= AIGNEHubVideoModel.name;\n\n const { match, all } = findVideoModel(provider);\n\n if (!match) {\n const available = all.map((m) => m.name).join(\", \");\n throw new Error(\n `Unsupported model provider: ${provider} ${process.env.BLOCKLET_AIGNE_API_MODEL}. Available providers: ${available}`,\n );\n }\n\n const client = match.create(options);\n\n super({ name: client.name });\n\n this.client = client;\n }\n\n protected client: VideoModel;\n\n override get credential() {\n return this.client.credential;\n }\n\n override async process(\n input: VideoModelInput,\n options: BaseClientInvokeOptions,\n ): Promise<ModelProcessResult<VideoModelOutput>> {\n return this.client.invoke(input, options);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import {\n ChatModel,\n type ChatModelInput,\n type ChatModelOutput,\n EmbeddingModel,\n type EmbeddingModelInput,\n type EmbeddingModelOutput,\n ImageModel,\n type ImageModelInput,\n type ImageModelOutput,\n type ModelProcessResult,\n VideoModel,\n type VideoModelInput,\n type VideoModelOutput,\n} from \"@aigne/model-base\";\nimport type { BaseClientInvokeOptions } from \"@aigne/model-base/transport/base-client\";\nimport { getModels } from \"./utils/hub.js\";\nimport {\n findEmbeddingModel,\n findImageModel,\n findModel,\n findVideoModel,\n parseModel,\n} from \"./utils/model.js\";\n\nimport type {\n AIGNEHubChatModelOptions,\n AIGNEHubEmbeddingModelOptions,\n AIGNEHubImageModelOptions,\n AIGNEHubVideoModelOptions,\n} from \"./utils/type.js\";\n\nexport * from \"./utils/blocklet.js\";\nexport * from \"./utils/constants.js\";\nexport * from \"./utils/find-provider.js\";\nexport * from \"./utils/model.js\";\n\nexport class AIGNEHubChatModel extends ChatModel {\n static async models() {\n return getModels({ type: \"chat\" });\n }\n\n models() {\n return getModels({ type: \"chat\" });\n }\n\n constructor(public override options: AIGNEHubChatModelOptions) {\n let provider = process.env.BLOCKLET_AIGNE_API_PROVIDER;\n\n if (!provider && options.model) {\n const parsed = parseModel(options.model);\n if (parsed.provider && parsed.model) {\n provider = parsed.provider;\n options.model = parsed.model;\n }\n }\n\n provider ||= AIGNEHubChatModel.name;\n\n const { match, all } = findModel(provider);\n\n if (!match) {\n const available = all.map((m) => m.name).join(\", \");\n throw new Error(\n `Unsupported model provider: ${provider} ${process.env.BLOCKLET_AIGNE_API_MODEL}. Available providers: ${available}`,\n );\n }\n\n const client = match.create(options);\n\n super({ name: client.name });\n\n this.client = client;\n }\n\n protected client: ChatModel;\n\n override get credential() {\n return this.client.credential;\n }\n\n override async process(\n input: ChatModelInput,\n options: BaseClientInvokeOptions,\n ): Promise<ModelProcessResult<ChatModelOutput>> {\n return this.client.invoke(input, options);\n }\n}\n\nexport class AIGNEHubImageModel extends ImageModel {\n static async models() {\n return getModels({ type: \"image\" });\n }\n\n models() {\n return getModels({ type: \"image\" });\n }\n\n constructor(public override options: AIGNEHubImageModelOptions) {\n let provider = process.env.BLOCKLET_AIGNE_API_PROVIDER;\n\n if (!provider && options.model) {\n const parsed = parseModel(options.model);\n if (parsed.provider && parsed.model) {\n provider = parsed.provider;\n options.model = parsed.model;\n }\n }\n\n provider ||= AIGNEHubImageModel.name;\n\n const { match, all } = findImageModel(provider);\n\n if (!match) {\n const available = all.map((m) => m.name).join(\", \");\n throw new Error(\n `Unsupported model provider: ${provider} ${process.env.BLOCKLET_AIGNE_API_MODEL}. Available providers: ${available}`,\n );\n }\n\n const client = match.create(options);\n\n super({ name: client.name });\n\n this.client = client;\n }\n\n protected client: ImageModel;\n\n override get credential() {\n return this.client.credential;\n }\n\n override async process(\n input: ImageModelInput,\n options: BaseClientInvokeOptions,\n ): Promise<ModelProcessResult<ImageModelOutput>> {\n return this.client.invoke(input, options);\n }\n}\n\nexport class AIGNEHubEmbeddingModel extends EmbeddingModel {\n static async models() {\n return getModels({ type: \"embedding\" });\n }\n\n models() {\n return getModels({ type: \"embedding\" });\n }\n\n constructor(public override options: AIGNEHubEmbeddingModelOptions) {\n let provider = process.env.BLOCKLET_AIGNE_API_PROVIDER;\n\n if (!provider && options.model) {\n const parsed = parseModel(options.model);\n if (parsed.provider && parsed.model) {\n provider = parsed.provider;\n options.model = parsed.model;\n }\n }\n\n provider ||= AIGNEHubEmbeddingModel.name;\n\n const { match, all } = findEmbeddingModel(provider);\n\n if (!match) {\n const available = all.map((m) => m.name).join(\", \");\n throw new Error(\n `Unsupported model provider: ${provider} ${process.env.BLOCKLET_AIGNE_API_MODEL}. Available providers: ${available}`,\n );\n }\n\n const client = match.create(options);\n\n super({ name: client.name });\n\n this.client = client;\n }\n\n protected client: EmbeddingModel;\n\n override get credential() {\n return this.client.credential;\n }\n\n override async process(\n input: EmbeddingModelInput,\n options: BaseClientInvokeOptions,\n ): Promise<ModelProcessResult<EmbeddingModelOutput>> {\n return this.client.invoke(input, options);\n }\n}\n\nexport class AIGNEHubVideoModel extends VideoModel {\n static async models() {\n return getModels({ type: \"video\" });\n }\n\n models() {\n return getModels({ type: \"video\" });\n }\n\n constructor(public override options: AIGNEHubVideoModelOptions) {\n let provider = process.env.BLOCKLET_AIGNE_API_PROVIDER;\n\n if (!provider && options.model) {\n const parsed = parseModel(options.model);\n if (parsed.provider && parsed.model) {\n provider = parsed.provider;\n options.model = parsed.model;\n }\n }\n\n provider ||= AIGNEHubVideoModel.name;\n\n const { match, all } = findVideoModel(provider);\n\n if (!match) {\n const available = all.map((m) => m.name).join(\", \");\n throw new Error(\n `Unsupported model provider: ${provider} ${process.env.BLOCKLET_AIGNE_API_MODEL}. Available providers: ${available}`,\n );\n }\n\n const client = match.create(options);\n\n super({ name: client.name });\n\n this.client = client;\n }\n\n protected client: VideoModel;\n\n override get credential() {\n return this.client.credential;\n }\n\n override async process(\n input: VideoModelInput,\n options: BaseClientInvokeOptions,\n ): Promise<ModelProcessResult<VideoModelOutput>> {\n return this.client.invoke(input, options);\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  const require_constants = require('./constants.cjs');
2
2
  const require_aigne_hub_chat_model = require('../aigne-hub-chat-model.cjs');
3
+ const require_aigne_hub_embedding_model = require('../aigne-hub-embedding-model.cjs');
3
4
  const require_aigne_hub_image_model = require('../aigne-hub-image-model.cjs');
4
5
  const require_aigne_hub_video_model = require('../aigne-hub-video-model.cjs');
5
6
  let _aigne_anthropic = require("@aigne/anthropic");
@@ -236,6 +237,46 @@ function findVideoModel(provider) {
236
237
  })
237
238
  };
238
239
  }
240
+ function availableEmbeddingModels() {
241
+ const { clientOptions } = getClientOptions();
242
+ return [
243
+ {
244
+ name: _aigne_openai.OpenAIEmbeddingModel.name,
245
+ apiKeyEnvName: "OPENAI_API_KEY",
246
+ create: (params) => new _aigne_openai.OpenAIEmbeddingModel({
247
+ ...params,
248
+ clientOptions
249
+ })
250
+ },
251
+ {
252
+ name: [_aigne_gemini.GeminiEmbeddingModel.name, GOOGLE],
253
+ apiKeyEnvName: "GEMINI_API_KEY",
254
+ create: (params) => new _aigne_gemini.GeminiEmbeddingModel({
255
+ ...params,
256
+ clientOptions: { httpOptions: clientOptions.fetchOptions }
257
+ })
258
+ },
259
+ {
260
+ name: require_aigne_hub_embedding_model.AIGNEHubEmbeddingModel.name,
261
+ apiKeyEnvName: "AIGNE_HUB_API_KEY",
262
+ create: (params) => new require_aigne_hub_embedding_model.AIGNEHubEmbeddingModel({
263
+ ...params,
264
+ clientOptions
265
+ })
266
+ }
267
+ ];
268
+ }
269
+ function findEmbeddingModel(provider) {
270
+ provider = provider.toLowerCase().replace(/-/g, "");
271
+ const all = availableEmbeddingModels();
272
+ return {
273
+ all,
274
+ match: all.find((m) => {
275
+ if (typeof m.name === "string") return m.name.toLowerCase().includes(provider);
276
+ return m.name.some((n) => n.toLowerCase().includes(provider));
277
+ })
278
+ };
279
+ }
239
280
  const parseModel = (model) => {
240
281
  model = model.replace(/^([\w-]+):/, "$1/");
241
282
  let { provider, name } = model.match(/(?<provider>[^/]*)(\/(?<name>.*))?/)?.groups ?? {};
@@ -251,9 +292,11 @@ const parseModel = (model) => {
251
292
  };
252
293
 
253
294
  //#endregion
295
+ exports.availableEmbeddingModels = availableEmbeddingModels;
254
296
  exports.availableImageModels = availableImageModels;
255
297
  exports.availableModels = availableModels;
256
298
  exports.availableVideoModels = availableVideoModels;
299
+ exports.findEmbeddingModel = findEmbeddingModel;
257
300
  exports.findImageModel = findImageModel;
258
301
  exports.findModel = findModel;
259
302
  exports.findVideoModel = findVideoModel;
@@ -1,4 +1,4 @@
1
- import { ChatModel, ChatModelInputOptions, ImageModel, ImageModelInputOptions, VideoModel } from "@aigne/model-base";
1
+ import { ChatModel, ChatModelInputOptions, EmbeddingModel, EmbeddingModelInputOptions, ImageModel, ImageModelInputOptions, VideoModel } from "@aigne/model-base";
2
2
 
3
3
  //#region src/utils/model.d.ts
4
4
  interface LoadableModel {
@@ -48,10 +48,25 @@ declare function findVideoModel(provider: string): {
48
48
  all: LoadableVideoModel[];
49
49
  match: LoadableVideoModel | undefined;
50
50
  };
51
+ interface LoadableEmbeddingModel {
52
+ name: string | string[];
53
+ apiKeyEnvName: string;
54
+ create: (options: {
55
+ apiKey?: string;
56
+ baseURL?: string;
57
+ model?: string;
58
+ modelOptions?: EmbeddingModelInputOptions;
59
+ }) => EmbeddingModel;
60
+ }
61
+ declare function availableEmbeddingModels(): LoadableEmbeddingModel[];
62
+ declare function findEmbeddingModel(provider: string): {
63
+ all: LoadableEmbeddingModel[];
64
+ match: LoadableEmbeddingModel | undefined;
65
+ };
51
66
  declare const parseModel: (model: string) => {
52
67
  provider: string | undefined;
53
68
  model: string | undefined;
54
69
  };
55
70
  //#endregion
56
- export { LoadableImageModel, LoadableModel, LoadableVideoModel, availableImageModels, availableModels, availableVideoModels, findImageModel, findModel, findVideoModel, parseModel };
71
+ export { LoadableEmbeddingModel, LoadableImageModel, LoadableModel, LoadableVideoModel, availableEmbeddingModels, availableImageModels, availableModels, availableVideoModels, findEmbeddingModel, findImageModel, findModel, findVideoModel, parseModel };
57
72
  //# sourceMappingURL=model.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.cts","names":[],"sources":["../../src/utils/model.ts"],"mappings":";;;UAuDiB,aAAA;EACf,IAAA;EACA,aAAA;EACA,MAAA,GAAS,OAAA;IACP,KAAA;IACA,YAAA,GAAe,qBAAA;IACf,MAAA;IACA,OAAA;EAAA,MACI,SAAA;AAAA;AAAA,iBAGQ,eAAA,CAAA,GAAmB,aAAA;AAAA,UAyElB,kBAAA;EACf,IAAA;EACA,aAAA;EACA,MAAA,GAAS,OAAA;IACP,MAAA;IACA,OAAA;IACA,KAAA;IACA,YAAA,GAAe,sBAAA;EAAA,MACX,UAAA;AAAA;AAAA,UAGS,kBAAA;EACf,IAAA;EACA,aAAA;EACA,MAAA,GAAS,OAAA;IACP,MAAA;IACA,OAAA;IACA,KAAA;IACA,YAAA;MAAA,CAAkB,GAAA;IAAA;EAAA,MACd,UAAA;AAAA;AAAA,iBAGQ,oBAAA,CAAA,GAAwB,kBAAA;AAAA,iBAgCxB,oBAAA,CAAA,GAAwB,kBAAA;AAAA,iBAsBxB,SAAA,CAAU,QAAA;EACxB,GAAA,EAAK,aAAA;EACL,KAAA,EAAO,aAAA;AAAA;AAAA,iBAiBO,cAAA,CAAe,QAAA;EAC7B,GAAA,EAAK,kBAAA;EACL,KAAA,EAAO,kBAAA;AAAA;AAAA,iBAiBO,cAAA,CAAe,QAAA;EAC7B,GAAA,EAAK,kBAAA;EACL,KAAA,EAAO,kBAAA;AAAA;AAAA,cAiBI,UAAA,GAAc,KAAA"}
1
+ {"version":3,"file":"model.d.cts","names":[],"sources":["../../src/utils/model.ts"],"mappings":";;;UAgEiB,aAAA;EACf,IAAA;EACA,aAAA;EACA,MAAA,GAAS,OAAA;IACP,KAAA;IACA,YAAA,GAAe,qBAAA;IACf,MAAA;IACA,OAAA;EAAA,MACI,SAAA;AAAA;AAAA,iBAGQ,eAAA,CAAA,GAAmB,aAAA;AAAA,UAyElB,kBAAA;EACf,IAAA;EACA,aAAA;EACA,MAAA,GAAS,OAAA;IACP,MAAA;IACA,OAAA;IACA,KAAA;IACA,YAAA,GAAe,sBAAA;EAAA,MACX,UAAA;AAAA;AAAA,UAGS,kBAAA;EACf,IAAA;EACA,aAAA;EACA,MAAA,GAAS,OAAA;IACP,MAAA;IACA,OAAA;IACA,KAAA;IACA,YAAA;MAAA,CAAkB,GAAA;IAAA;EAAA,MACd,UAAA;AAAA;AAAA,iBAGQ,oBAAA,CAAA,GAAwB,kBAAA;AAAA,iBAgCxB,oBAAA,CAAA,GAAwB,kBAAA;AAAA,iBAsBxB,SAAA,CAAU,QAAA;EACxB,GAAA,EAAK,aAAA;EACL,KAAA,EAAO,aAAA;AAAA;AAAA,iBAiBO,cAAA,CAAe,QAAA;EAC7B,GAAA,EAAK,kBAAA;EACL,KAAA,EAAO,kBAAA;AAAA;AAAA,iBAiBO,cAAA,CAAe,QAAA;EAC7B,GAAA,EAAK,kBAAA;EACL,KAAA,EAAO,kBAAA;AAAA;AAAA,UAiBQ,sBAAA;EACf,IAAA;EACA,aAAA;EACA,MAAA,GAAS,OAAA;IACP,MAAA;IACA,OAAA;IACA,KAAA;IACA,YAAA,GAAe,0BAAA;EAAA,MACX,cAAA;AAAA;AAAA,iBAGQ,wBAAA,CAAA,GAA4B,sBAAA;AAAA,iBA0B5B,kBAAA,CAAmB,QAAA;EACjC,GAAA,EAAK,sBAAA;EACL,KAAA,EAAO,sBAAA;AAAA;AAAA,cAiBI,UAAA,GAAc,KAAA"}
@@ -1,4 +1,4 @@
1
- import { ChatModel, ChatModelInputOptions, ImageModel, ImageModelInputOptions, VideoModel } from "@aigne/model-base";
1
+ import { ChatModel, ChatModelInputOptions, EmbeddingModel, EmbeddingModelInputOptions, ImageModel, ImageModelInputOptions, VideoModel } from "@aigne/model-base";
2
2
 
3
3
  //#region src/utils/model.d.ts
4
4
  interface LoadableModel {
@@ -48,10 +48,25 @@ declare function findVideoModel(provider: string): {
48
48
  all: LoadableVideoModel[];
49
49
  match: LoadableVideoModel | undefined;
50
50
  };
51
+ interface LoadableEmbeddingModel {
52
+ name: string | string[];
53
+ apiKeyEnvName: string;
54
+ create: (options: {
55
+ apiKey?: string;
56
+ baseURL?: string;
57
+ model?: string;
58
+ modelOptions?: EmbeddingModelInputOptions;
59
+ }) => EmbeddingModel;
60
+ }
61
+ declare function availableEmbeddingModels(): LoadableEmbeddingModel[];
62
+ declare function findEmbeddingModel(provider: string): {
63
+ all: LoadableEmbeddingModel[];
64
+ match: LoadableEmbeddingModel | undefined;
65
+ };
51
66
  declare const parseModel: (model: string) => {
52
67
  provider: string | undefined;
53
68
  model: string | undefined;
54
69
  };
55
70
  //#endregion
56
- export { LoadableImageModel, LoadableModel, LoadableVideoModel, availableImageModels, availableModels, availableVideoModels, findImageModel, findModel, findVideoModel, parseModel };
71
+ export { LoadableEmbeddingModel, LoadableImageModel, LoadableModel, LoadableVideoModel, availableEmbeddingModels, availableImageModels, availableModels, availableVideoModels, findEmbeddingModel, findImageModel, findModel, findVideoModel, parseModel };
57
72
  //# sourceMappingURL=model.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.mts","names":[],"sources":["../../src/utils/model.ts"],"mappings":";;;UAuDiB,aAAA;EACf,IAAA;EACA,aAAA;EACA,MAAA,GAAS,OAAA;IACP,KAAA;IACA,YAAA,GAAe,qBAAA;IACf,MAAA;IACA,OAAA;EAAA,MACI,SAAA;AAAA;AAAA,iBAGQ,eAAA,CAAA,GAAmB,aAAA;AAAA,UAyElB,kBAAA;EACf,IAAA;EACA,aAAA;EACA,MAAA,GAAS,OAAA;IACP,MAAA;IACA,OAAA;IACA,KAAA;IACA,YAAA,GAAe,sBAAA;EAAA,MACX,UAAA;AAAA;AAAA,UAGS,kBAAA;EACf,IAAA;EACA,aAAA;EACA,MAAA,GAAS,OAAA;IACP,MAAA;IACA,OAAA;IACA,KAAA;IACA,YAAA;MAAA,CAAkB,GAAA;IAAA;EAAA,MACd,UAAA;AAAA;AAAA,iBAGQ,oBAAA,CAAA,GAAwB,kBAAA;AAAA,iBAgCxB,oBAAA,CAAA,GAAwB,kBAAA;AAAA,iBAsBxB,SAAA,CAAU,QAAA;EACxB,GAAA,EAAK,aAAA;EACL,KAAA,EAAO,aAAA;AAAA;AAAA,iBAiBO,cAAA,CAAe,QAAA;EAC7B,GAAA,EAAK,kBAAA;EACL,KAAA,EAAO,kBAAA;AAAA;AAAA,iBAiBO,cAAA,CAAe,QAAA;EAC7B,GAAA,EAAK,kBAAA;EACL,KAAA,EAAO,kBAAA;AAAA;AAAA,cAiBI,UAAA,GAAc,KAAA"}
1
+ {"version":3,"file":"model.d.mts","names":[],"sources":["../../src/utils/model.ts"],"mappings":";;;UAgEiB,aAAA;EACf,IAAA;EACA,aAAA;EACA,MAAA,GAAS,OAAA;IACP,KAAA;IACA,YAAA,GAAe,qBAAA;IACf,MAAA;IACA,OAAA;EAAA,MACI,SAAA;AAAA;AAAA,iBAGQ,eAAA,CAAA,GAAmB,aAAA;AAAA,UAyElB,kBAAA;EACf,IAAA;EACA,aAAA;EACA,MAAA,GAAS,OAAA;IACP,MAAA;IACA,OAAA;IACA,KAAA;IACA,YAAA,GAAe,sBAAA;EAAA,MACX,UAAA;AAAA;AAAA,UAGS,kBAAA;EACf,IAAA;EACA,aAAA;EACA,MAAA,GAAS,OAAA;IACP,MAAA;IACA,OAAA;IACA,KAAA;IACA,YAAA;MAAA,CAAkB,GAAA;IAAA;EAAA,MACd,UAAA;AAAA;AAAA,iBAGQ,oBAAA,CAAA,GAAwB,kBAAA;AAAA,iBAgCxB,oBAAA,CAAA,GAAwB,kBAAA;AAAA,iBAsBxB,SAAA,CAAU,QAAA;EACxB,GAAA,EAAK,aAAA;EACL,KAAA,EAAO,aAAA;AAAA;AAAA,iBAiBO,cAAA,CAAe,QAAA;EAC7B,GAAA,EAAK,kBAAA;EACL,KAAA,EAAO,kBAAA;AAAA;AAAA,iBAiBO,cAAA,CAAe,QAAA;EAC7B,GAAA,EAAK,kBAAA;EACL,KAAA,EAAO,kBAAA;AAAA;AAAA,UAiBQ,sBAAA;EACf,IAAA;EACA,aAAA;EACA,MAAA,GAAS,OAAA;IACP,MAAA;IACA,OAAA;IACA,KAAA;IACA,YAAA,GAAe,0BAAA;EAAA,MACX,cAAA;AAAA;AAAA,iBAGQ,wBAAA,CAAA,GAA4B,sBAAA;AAAA,iBA0B5B,kBAAA,CAAmB,QAAA;EACjC,GAAA,EAAK,sBAAA;EACL,KAAA,EAAO,sBAAA;AAAA;AAAA,cAiBI,UAAA,GAAc,KAAA"}
@@ -1,16 +1,17 @@
1
1
  import { AIGNE_HUB_PROVIDER } from "./constants.mjs";
2
2
  import { AIGNEHubChatModel } from "../aigne-hub-chat-model.mjs";
3
+ import { AIGNEHubEmbeddingModel } from "../aigne-hub-embedding-model.mjs";
3
4
  import { AIGNEHubImageModel } from "../aigne-hub-image-model.mjs";
4
5
  import { AIGNEHubVideoModel } from "../aigne-hub-video-model.mjs";
5
6
  import { AnthropicChatModel } from "@aigne/anthropic";
6
7
  import { BedrockChatModel } from "@aigne/bedrock";
7
8
  import { DeepSeekChatModel } from "@aigne/deepseek";
8
9
  import { DoubaoChatModel, DoubaoImageModel } from "@aigne/doubao";
9
- import { GeminiChatModel, GeminiImageModel, GeminiVideoModel } from "@aigne/gemini";
10
+ import { GeminiChatModel, GeminiEmbeddingModel, GeminiImageModel, GeminiVideoModel } from "@aigne/gemini";
10
11
  import { IdeogramImageModel } from "@aigne/ideogram";
11
12
  import { OllamaChatModel } from "@aigne/ollama";
12
13
  import { OpenRouterChatModel } from "@aigne/open-router";
13
- import { OpenAIChatModel, OpenAIImageModel, OpenAIVideoModel } from "@aigne/openai";
14
+ import { OpenAIChatModel, OpenAIEmbeddingModel, OpenAIImageModel, OpenAIVideoModel } from "@aigne/openai";
14
15
  import { PoeChatModel } from "@aigne/poe";
15
16
  import { XAIChatModel } from "@aigne/xai";
16
17
  import { NodeHttpHandler, streamCollector } from "@smithy/node-http-handler";
@@ -236,6 +237,46 @@ function findVideoModel(provider) {
236
237
  })
237
238
  };
238
239
  }
240
+ function availableEmbeddingModels() {
241
+ const { clientOptions } = getClientOptions();
242
+ return [
243
+ {
244
+ name: OpenAIEmbeddingModel.name,
245
+ apiKeyEnvName: "OPENAI_API_KEY",
246
+ create: (params) => new OpenAIEmbeddingModel({
247
+ ...params,
248
+ clientOptions
249
+ })
250
+ },
251
+ {
252
+ name: [GeminiEmbeddingModel.name, GOOGLE],
253
+ apiKeyEnvName: "GEMINI_API_KEY",
254
+ create: (params) => new GeminiEmbeddingModel({
255
+ ...params,
256
+ clientOptions: { httpOptions: clientOptions.fetchOptions }
257
+ })
258
+ },
259
+ {
260
+ name: AIGNEHubEmbeddingModel.name,
261
+ apiKeyEnvName: "AIGNE_HUB_API_KEY",
262
+ create: (params) => new AIGNEHubEmbeddingModel({
263
+ ...params,
264
+ clientOptions
265
+ })
266
+ }
267
+ ];
268
+ }
269
+ function findEmbeddingModel(provider) {
270
+ provider = provider.toLowerCase().replace(/-/g, "");
271
+ const all = availableEmbeddingModels();
272
+ return {
273
+ all,
274
+ match: all.find((m) => {
275
+ if (typeof m.name === "string") return m.name.toLowerCase().includes(provider);
276
+ return m.name.some((n) => n.toLowerCase().includes(provider));
277
+ })
278
+ };
279
+ }
239
280
  const parseModel = (model) => {
240
281
  model = model.replace(/^([\w-]+):/, "$1/");
241
282
  let { provider, name } = model.match(/(?<provider>[^/]*)(\/(?<name>.*))?/)?.groups ?? {};
@@ -251,5 +292,5 @@ const parseModel = (model) => {
251
292
  };
252
293
 
253
294
  //#endregion
254
- export { availableImageModels, availableModels, availableVideoModels, findImageModel, findModel, findVideoModel, parseModel };
295
+ export { availableEmbeddingModels, availableImageModels, availableModels, availableVideoModels, findEmbeddingModel, findImageModel, findModel, findVideoModel, parseModel };
255
296
  //# sourceMappingURL=model.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.mjs","names":[],"sources":["../../src/utils/model.ts"],"sourcesContent":["import type { Agent } from \"node:https\";\nimport { AnthropicChatModel } from \"@aigne/anthropic\";\nimport { BedrockChatModel } from \"@aigne/bedrock\";\nimport { DeepSeekChatModel } from \"@aigne/deepseek\";\nimport { DoubaoChatModel, DoubaoImageModel } from \"@aigne/doubao\";\nimport { GeminiChatModel, GeminiImageModel, GeminiVideoModel } from \"@aigne/gemini\";\nimport { IdeogramImageModel } from \"@aigne/ideogram\";\nimport type {\n ChatModel,\n ChatModelInputOptions,\n ImageModel,\n ImageModelInputOptions,\n VideoModel,\n} from \"@aigne/model-base\";\nimport { OllamaChatModel } from \"@aigne/ollama\";\nimport { OpenRouterChatModel } from \"@aigne/open-router\";\nimport {\n OpenAIChatModel,\n type OpenAIChatModelOptions,\n OpenAIImageModel,\n OpenAIVideoModel,\n} from \"@aigne/openai\";\nimport { PoeChatModel } from \"@aigne/poe\";\nimport { XAIChatModel } from \"@aigne/xai\";\nimport { NodeHttpHandler, streamCollector } from \"@smithy/node-http-handler\";\nimport { HttpsProxyAgent } from \"https-proxy-agent\";\nimport { AIGNEHubChatModel } from \"../aigne-hub-chat-model.js\";\nimport { AIGNEHubImageModel } from \"../aigne-hub-image-model.js\";\nimport { AIGNEHubVideoModel } from \"../aigne-hub-video-model.js\";\nimport { AIGNE_HUB_PROVIDER } from \"./constants.js\";\n\nconst getClientOptions = () => {\n const proxy = [\"HTTPS_PROXY\", \"https_proxy\", \"HTTP_PROXY\", \"http_proxy\", \"ALL_PROXY\", \"all_proxy\"]\n .map((i) => process.env[i])\n .filter(Boolean)[0];\n\n const httpAgent = proxy ? (new HttpsProxyAgent(proxy) as Agent) : undefined;\n const clientOptions: Pick<\n NonNullable<OpenAIChatModelOptions[\"clientOptions\"]>,\n \"fetchOptions\"\n > = {\n fetchOptions: {\n // @ts-ignore\n agent: httpAgent,\n },\n };\n\n return {\n clientOptions,\n httpAgent,\n };\n};\n\nconst GOOGLE = \"google\";\n\nexport interface LoadableModel {\n name: string | string[];\n apiKeyEnvName?: string | string[];\n create: (options: {\n model?: string;\n modelOptions?: ChatModelInputOptions;\n apiKey?: string;\n baseURL?: string;\n }) => ChatModel;\n}\n\nexport function availableModels(): LoadableModel[] {\n const { clientOptions, httpAgent } = getClientOptions();\n\n return [\n {\n name: OpenAIChatModel.name,\n apiKeyEnvName: \"OPENAI_API_KEY\",\n create: (params) => new OpenAIChatModel({ ...params, clientOptions }),\n },\n {\n name: AnthropicChatModel.name,\n apiKeyEnvName: \"ANTHROPIC_API_KEY\",\n create: (params) => new AnthropicChatModel({ ...params, clientOptions }),\n },\n {\n name: BedrockChatModel.name,\n apiKeyEnvName: \"AWS_ACCESS_KEY_ID\",\n create: (params) =>\n new BedrockChatModel({\n ...params,\n clientOptions: {\n requestHandler: NodeHttpHandler.create({ httpAgent, httpsAgent: httpAgent }),\n streamCollector,\n },\n }),\n },\n {\n name: DeepSeekChatModel.name,\n apiKeyEnvName: \"DEEPSEEK_API_KEY\",\n create: (params) => new DeepSeekChatModel({ ...params, clientOptions }),\n },\n {\n name: [GeminiChatModel.name, GOOGLE],\n apiKeyEnvName: [\"GEMINI_API_KEY\", \"GOOGLE_API_KEY\"],\n create: (params) =>\n new GeminiChatModel({\n ...params,\n clientOptions: { httpOptions: clientOptions.fetchOptions },\n }),\n },\n {\n name: OllamaChatModel.name,\n apiKeyEnvName: \"OLLAMA_API_KEY\",\n create: (params) => new OllamaChatModel({ ...params, clientOptions }),\n },\n {\n name: OpenRouterChatModel.name,\n apiKeyEnvName: \"OPEN_ROUTER_API_KEY\",\n create: (params) => new OpenRouterChatModel({ ...params, clientOptions }),\n },\n {\n name: XAIChatModel.name,\n apiKeyEnvName: \"XAI_API_KEY\",\n create: (params) => new XAIChatModel({ ...params, clientOptions }),\n },\n {\n name: DoubaoChatModel.name,\n apiKeyEnvName: \"DOUBAO_API_KEY\",\n create: (params) => new DoubaoChatModel({ ...params, clientOptions }),\n },\n {\n name: PoeChatModel.name,\n apiKeyEnvName: \"POE_API_KEY\",\n create: (params) => new PoeChatModel({ ...params, clientOptions }),\n },\n {\n name: AIGNEHubChatModel.name,\n apiKeyEnvName: \"AIGNE_HUB_API_KEY\",\n create: (params) => new AIGNEHubChatModel({ ...params, clientOptions }),\n },\n ];\n}\n\nexport interface LoadableImageModel {\n name: string | string[];\n apiKeyEnvName: string;\n create: (options: {\n apiKey?: string;\n baseURL?: string;\n model?: string;\n modelOptions?: ImageModelInputOptions;\n }) => ImageModel;\n}\n\nexport interface LoadableVideoModel {\n name: string | string[];\n apiKeyEnvName: string;\n create: (options: {\n apiKey?: string;\n baseURL?: string;\n model?: string;\n modelOptions?: { [key: string]: any };\n }) => VideoModel;\n}\n\nexport function availableImageModels(): LoadableImageModel[] {\n const { clientOptions } = getClientOptions();\n\n return [\n {\n name: OpenAIImageModel.name,\n apiKeyEnvName: \"OPENAI_API_KEY\",\n create: (params) => new OpenAIImageModel({ ...params, clientOptions }),\n },\n {\n name: [GeminiImageModel.name, GOOGLE],\n apiKeyEnvName: \"GEMINI_API_KEY\",\n create: (params) => new GeminiImageModel({ ...params, clientOptions }),\n },\n {\n name: IdeogramImageModel.name,\n apiKeyEnvName: \"IDEOGRAM_API_KEY\",\n create: (params) => new IdeogramImageModel({ ...params }),\n },\n {\n name: DoubaoImageModel.name,\n apiKeyEnvName: \"DOUBAO_API_KEY\",\n create: (params) => new DoubaoImageModel({ ...params, clientOptions }),\n },\n {\n name: AIGNEHubImageModel.name,\n apiKeyEnvName: \"AIGNE_HUB_API_KEY\",\n create: (params) => new AIGNEHubImageModel({ ...params, clientOptions }),\n },\n ];\n}\n\nexport function availableVideoModels(): LoadableVideoModel[] {\n const { clientOptions } = getClientOptions();\n\n return [\n {\n name: OpenAIVideoModel.name,\n apiKeyEnvName: \"OPENAI_API_KEY\",\n create: (params) => new OpenAIVideoModel({ ...params, clientOptions }) as VideoModel,\n },\n {\n name: [GeminiVideoModel.name, GOOGLE],\n apiKeyEnvName: \"GEMINI_API_KEY\",\n create: (params) => new GeminiVideoModel({ ...params, clientOptions }) as VideoModel,\n },\n {\n name: AIGNEHubVideoModel.name,\n apiKeyEnvName: \"AIGNE_HUB_API_KEY\",\n create: (params) => new AIGNEHubVideoModel({ ...params, clientOptions }) as VideoModel,\n },\n ];\n}\n\nexport function findModel(provider: string): {\n all: LoadableModel[];\n match: LoadableModel | undefined;\n} {\n provider = provider.toLowerCase().replace(/-/g, \"\");\n\n const all = availableModels();\n\n const match = all.find((m) => {\n if (typeof m.name === \"string\") {\n return m.name.toLowerCase().includes(provider);\n }\n\n return m.name.some((n) => n.toLowerCase().includes(provider));\n });\n\n return { all, match };\n}\n\nexport function findImageModel(provider: string): {\n all: LoadableImageModel[];\n match: LoadableImageModel | undefined;\n} {\n provider = provider.toLowerCase().replace(/-/g, \"\");\n\n const all = availableImageModels();\n\n const match = all.find((m) => {\n if (typeof m.name === \"string\") {\n return m.name.toLowerCase().includes(provider);\n }\n\n return m.name.some((n) => n.toLowerCase().includes(provider));\n });\n\n return { all, match };\n}\n\nexport function findVideoModel(provider: string): {\n all: LoadableVideoModel[];\n match: LoadableVideoModel | undefined;\n} {\n provider = provider.toLowerCase().replace(/-/g, \"\");\n\n const all = availableVideoModels();\n\n const match = all.find((m) => {\n if (typeof m.name === \"string\") {\n return m.name.toLowerCase().includes(provider);\n }\n\n return m.name.some((n) => n.toLowerCase().includes(provider));\n });\n\n return { all, match };\n}\n\nexport const parseModel = (model: string) => {\n // replace first ':' with '/' to compatible with `provider:model-name` format\n model = model.replace(/^([\\w-]+):/, \"$1/\");\n let { provider, name } = model.match(/(?<provider>[^/]*)(\\/(?<name>.*))?/)?.groups ?? {};\n provider = provider?.replace(/-/g, \"\");\n const match = provider ? findModel(provider)?.match : undefined;\n\n if (match) {\n return { provider, model: name };\n }\n\n return { provider: AIGNE_HUB_PROVIDER, model };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"model.mjs","names":[],"sources":["../../src/utils/model.ts"],"sourcesContent":["import type { Agent } from \"node:https\";\nimport { AnthropicChatModel } from \"@aigne/anthropic\";\nimport { BedrockChatModel } from \"@aigne/bedrock\";\nimport { DeepSeekChatModel } from \"@aigne/deepseek\";\nimport { DoubaoChatModel, DoubaoImageModel } from \"@aigne/doubao\";\nimport {\n GeminiChatModel,\n GeminiEmbeddingModel,\n GeminiImageModel,\n GeminiVideoModel,\n} from \"@aigne/gemini\";\nimport { IdeogramImageModel } from \"@aigne/ideogram\";\nimport type {\n ChatModel,\n ChatModelInputOptions,\n EmbeddingModel,\n EmbeddingModelInputOptions,\n ImageModel,\n ImageModelInputOptions,\n VideoModel,\n} from \"@aigne/model-base\";\nimport { OllamaChatModel } from \"@aigne/ollama\";\nimport { OpenRouterChatModel } from \"@aigne/open-router\";\nimport {\n OpenAIChatModel,\n type OpenAIChatModelOptions,\n OpenAIEmbeddingModel,\n OpenAIImageModel,\n OpenAIVideoModel,\n} from \"@aigne/openai\";\nimport { PoeChatModel } from \"@aigne/poe\";\nimport { XAIChatModel } from \"@aigne/xai\";\nimport { NodeHttpHandler, streamCollector } from \"@smithy/node-http-handler\";\nimport { HttpsProxyAgent } from \"https-proxy-agent\";\nimport { AIGNEHubChatModel } from \"../aigne-hub-chat-model.js\";\nimport { AIGNEHubEmbeddingModel } from \"../aigne-hub-embedding-model.js\";\nimport { AIGNEHubImageModel } from \"../aigne-hub-image-model.js\";\nimport { AIGNEHubVideoModel } from \"../aigne-hub-video-model.js\";\nimport { AIGNE_HUB_PROVIDER } from \"./constants.js\";\n\nconst getClientOptions = () => {\n const proxy = [\"HTTPS_PROXY\", \"https_proxy\", \"HTTP_PROXY\", \"http_proxy\", \"ALL_PROXY\", \"all_proxy\"]\n .map((i) => process.env[i])\n .filter(Boolean)[0];\n\n const httpAgent = proxy ? (new HttpsProxyAgent(proxy) as Agent) : undefined;\n const clientOptions: Pick<\n NonNullable<OpenAIChatModelOptions[\"clientOptions\"]>,\n \"fetchOptions\"\n > = {\n fetchOptions: {\n // @ts-ignore\n agent: httpAgent,\n },\n };\n\n return {\n clientOptions,\n httpAgent,\n };\n};\n\nconst GOOGLE = \"google\";\n\nexport interface LoadableModel {\n name: string | string[];\n apiKeyEnvName?: string | string[];\n create: (options: {\n model?: string;\n modelOptions?: ChatModelInputOptions;\n apiKey?: string;\n baseURL?: string;\n }) => ChatModel;\n}\n\nexport function availableModels(): LoadableModel[] {\n const { clientOptions, httpAgent } = getClientOptions();\n\n return [\n {\n name: OpenAIChatModel.name,\n apiKeyEnvName: \"OPENAI_API_KEY\",\n create: (params) => new OpenAIChatModel({ ...params, clientOptions }),\n },\n {\n name: AnthropicChatModel.name,\n apiKeyEnvName: \"ANTHROPIC_API_KEY\",\n create: (params) => new AnthropicChatModel({ ...params, clientOptions }),\n },\n {\n name: BedrockChatModel.name,\n apiKeyEnvName: \"AWS_ACCESS_KEY_ID\",\n create: (params) =>\n new BedrockChatModel({\n ...params,\n clientOptions: {\n requestHandler: NodeHttpHandler.create({ httpAgent, httpsAgent: httpAgent }),\n streamCollector,\n },\n }),\n },\n {\n name: DeepSeekChatModel.name,\n apiKeyEnvName: \"DEEPSEEK_API_KEY\",\n create: (params) => new DeepSeekChatModel({ ...params, clientOptions }),\n },\n {\n name: [GeminiChatModel.name, GOOGLE],\n apiKeyEnvName: [\"GEMINI_API_KEY\", \"GOOGLE_API_KEY\"],\n create: (params) =>\n new GeminiChatModel({\n ...params,\n clientOptions: { httpOptions: clientOptions.fetchOptions },\n }),\n },\n {\n name: OllamaChatModel.name,\n apiKeyEnvName: \"OLLAMA_API_KEY\",\n create: (params) => new OllamaChatModel({ ...params, clientOptions }),\n },\n {\n name: OpenRouterChatModel.name,\n apiKeyEnvName: \"OPEN_ROUTER_API_KEY\",\n create: (params) => new OpenRouterChatModel({ ...params, clientOptions }),\n },\n {\n name: XAIChatModel.name,\n apiKeyEnvName: \"XAI_API_KEY\",\n create: (params) => new XAIChatModel({ ...params, clientOptions }),\n },\n {\n name: DoubaoChatModel.name,\n apiKeyEnvName: \"DOUBAO_API_KEY\",\n create: (params) => new DoubaoChatModel({ ...params, clientOptions }),\n },\n {\n name: PoeChatModel.name,\n apiKeyEnvName: \"POE_API_KEY\",\n create: (params) => new PoeChatModel({ ...params, clientOptions }),\n },\n {\n name: AIGNEHubChatModel.name,\n apiKeyEnvName: \"AIGNE_HUB_API_KEY\",\n create: (params) => new AIGNEHubChatModel({ ...params, clientOptions }),\n },\n ];\n}\n\nexport interface LoadableImageModel {\n name: string | string[];\n apiKeyEnvName: string;\n create: (options: {\n apiKey?: string;\n baseURL?: string;\n model?: string;\n modelOptions?: ImageModelInputOptions;\n }) => ImageModel;\n}\n\nexport interface LoadableVideoModel {\n name: string | string[];\n apiKeyEnvName: string;\n create: (options: {\n apiKey?: string;\n baseURL?: string;\n model?: string;\n modelOptions?: { [key: string]: any };\n }) => VideoModel;\n}\n\nexport function availableImageModels(): LoadableImageModel[] {\n const { clientOptions } = getClientOptions();\n\n return [\n {\n name: OpenAIImageModel.name,\n apiKeyEnvName: \"OPENAI_API_KEY\",\n create: (params) => new OpenAIImageModel({ ...params, clientOptions }),\n },\n {\n name: [GeminiImageModel.name, GOOGLE],\n apiKeyEnvName: \"GEMINI_API_KEY\",\n create: (params) => new GeminiImageModel({ ...params, clientOptions }),\n },\n {\n name: IdeogramImageModel.name,\n apiKeyEnvName: \"IDEOGRAM_API_KEY\",\n create: (params) => new IdeogramImageModel({ ...params }),\n },\n {\n name: DoubaoImageModel.name,\n apiKeyEnvName: \"DOUBAO_API_KEY\",\n create: (params) => new DoubaoImageModel({ ...params, clientOptions }),\n },\n {\n name: AIGNEHubImageModel.name,\n apiKeyEnvName: \"AIGNE_HUB_API_KEY\",\n create: (params) => new AIGNEHubImageModel({ ...params, clientOptions }),\n },\n ];\n}\n\nexport function availableVideoModels(): LoadableVideoModel[] {\n const { clientOptions } = getClientOptions();\n\n return [\n {\n name: OpenAIVideoModel.name,\n apiKeyEnvName: \"OPENAI_API_KEY\",\n create: (params) => new OpenAIVideoModel({ ...params, clientOptions }) as VideoModel,\n },\n {\n name: [GeminiVideoModel.name, GOOGLE],\n apiKeyEnvName: \"GEMINI_API_KEY\",\n create: (params) => new GeminiVideoModel({ ...params, clientOptions }) as VideoModel,\n },\n {\n name: AIGNEHubVideoModel.name,\n apiKeyEnvName: \"AIGNE_HUB_API_KEY\",\n create: (params) => new AIGNEHubVideoModel({ ...params, clientOptions }) as VideoModel,\n },\n ];\n}\n\nexport function findModel(provider: string): {\n all: LoadableModel[];\n match: LoadableModel | undefined;\n} {\n provider = provider.toLowerCase().replace(/-/g, \"\");\n\n const all = availableModels();\n\n const match = all.find((m) => {\n if (typeof m.name === \"string\") {\n return m.name.toLowerCase().includes(provider);\n }\n\n return m.name.some((n) => n.toLowerCase().includes(provider));\n });\n\n return { all, match };\n}\n\nexport function findImageModel(provider: string): {\n all: LoadableImageModel[];\n match: LoadableImageModel | undefined;\n} {\n provider = provider.toLowerCase().replace(/-/g, \"\");\n\n const all = availableImageModels();\n\n const match = all.find((m) => {\n if (typeof m.name === \"string\") {\n return m.name.toLowerCase().includes(provider);\n }\n\n return m.name.some((n) => n.toLowerCase().includes(provider));\n });\n\n return { all, match };\n}\n\nexport function findVideoModel(provider: string): {\n all: LoadableVideoModel[];\n match: LoadableVideoModel | undefined;\n} {\n provider = provider.toLowerCase().replace(/-/g, \"\");\n\n const all = availableVideoModels();\n\n const match = all.find((m) => {\n if (typeof m.name === \"string\") {\n return m.name.toLowerCase().includes(provider);\n }\n\n return m.name.some((n) => n.toLowerCase().includes(provider));\n });\n\n return { all, match };\n}\n\nexport interface LoadableEmbeddingModel {\n name: string | string[];\n apiKeyEnvName: string;\n create: (options: {\n apiKey?: string;\n baseURL?: string;\n model?: string;\n modelOptions?: EmbeddingModelInputOptions;\n }) => EmbeddingModel;\n}\n\nexport function availableEmbeddingModels(): LoadableEmbeddingModel[] {\n const { clientOptions } = getClientOptions();\n\n return [\n {\n name: OpenAIEmbeddingModel.name,\n apiKeyEnvName: \"OPENAI_API_KEY\",\n create: (params) => new OpenAIEmbeddingModel({ ...params, clientOptions }),\n },\n {\n name: [GeminiEmbeddingModel.name, GOOGLE],\n apiKeyEnvName: \"GEMINI_API_KEY\",\n create: (params) =>\n new GeminiEmbeddingModel({\n ...params,\n clientOptions: { httpOptions: clientOptions.fetchOptions },\n }),\n },\n {\n name: AIGNEHubEmbeddingModel.name,\n apiKeyEnvName: \"AIGNE_HUB_API_KEY\",\n create: (params) => new AIGNEHubEmbeddingModel({ ...params, clientOptions }),\n },\n ];\n}\n\nexport function findEmbeddingModel(provider: string): {\n all: LoadableEmbeddingModel[];\n match: LoadableEmbeddingModel | undefined;\n} {\n provider = provider.toLowerCase().replace(/-/g, \"\");\n\n const all = availableEmbeddingModels();\n\n const match = all.find((m) => {\n if (typeof m.name === \"string\") {\n return m.name.toLowerCase().includes(provider);\n }\n\n return m.name.some((n) => n.toLowerCase().includes(provider));\n });\n\n return { all, match };\n}\n\nexport const parseModel = (model: string) => {\n // replace first ':' with '/' to compatible with `provider:model-name` format\n model = model.replace(/^([\\w-]+):/, \"$1/\");\n let { provider, name } = model.match(/(?<provider>[^/]*)(\\/(?<name>.*))?/)?.groups ?? {};\n provider = provider?.replace(/-/g, \"\");\n const match = provider ? findModel(provider)?.match : undefined;\n\n if (match) {\n return { provider, model: name };\n }\n\n return { provider: AIGNE_HUB_PROVIDER, model };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAwCA,MAAM,yBAAyB;CAC7B,MAAM,QAAQ;EAAC;EAAe;EAAe;EAAc;EAAc;EAAa;EAAY,CAC/F,KAAK,MAAM,QAAQ,IAAI,GAAG,CAC1B,OAAO,QAAQ,CAAC;CAEnB,MAAM,YAAY,QAAS,IAAI,gBAAgB,MAAM,GAAa;AAWlE,QAAO;EACL,eARE,EACF,cAAc,EAEZ,OAAO,WACR,EACF;EAIC;EACD;;AAGH,MAAM,SAAS;AAaf,SAAgB,kBAAmC;CACjD,MAAM,EAAE,eAAe,cAAc,kBAAkB;AAEvD,QAAO;EACL;GACE,MAAM,gBAAgB;GACtB,eAAe;GACf,SAAS,WAAW,IAAI,gBAAgB;IAAE,GAAG;IAAQ;IAAe,CAAC;GACtE;EACD;GACE,MAAM,mBAAmB;GACzB,eAAe;GACf,SAAS,WAAW,IAAI,mBAAmB;IAAE,GAAG;IAAQ;IAAe,CAAC;GACzE;EACD;GACE,MAAM,iBAAiB;GACvB,eAAe;GACf,SAAS,WACP,IAAI,iBAAiB;IACnB,GAAG;IACH,eAAe;KACb,gBAAgB,gBAAgB,OAAO;MAAE;MAAW,YAAY;MAAW,CAAC;KAC5E;KACD;IACF,CAAC;GACL;EACD;GACE,MAAM,kBAAkB;GACxB,eAAe;GACf,SAAS,WAAW,IAAI,kBAAkB;IAAE,GAAG;IAAQ;IAAe,CAAC;GACxE;EACD;GACE,MAAM,CAAC,gBAAgB,MAAM,OAAO;GACpC,eAAe,CAAC,kBAAkB,iBAAiB;GACnD,SAAS,WACP,IAAI,gBAAgB;IAClB,GAAG;IACH,eAAe,EAAE,aAAa,cAAc,cAAc;IAC3D,CAAC;GACL;EACD;GACE,MAAM,gBAAgB;GACtB,eAAe;GACf,SAAS,WAAW,IAAI,gBAAgB;IAAE,GAAG;IAAQ;IAAe,CAAC;GACtE;EACD;GACE,MAAM,oBAAoB;GAC1B,eAAe;GACf,SAAS,WAAW,IAAI,oBAAoB;IAAE,GAAG;IAAQ;IAAe,CAAC;GAC1E;EACD;GACE,MAAM,aAAa;GACnB,eAAe;GACf,SAAS,WAAW,IAAI,aAAa;IAAE,GAAG;IAAQ;IAAe,CAAC;GACnE;EACD;GACE,MAAM,gBAAgB;GACtB,eAAe;GACf,SAAS,WAAW,IAAI,gBAAgB;IAAE,GAAG;IAAQ;IAAe,CAAC;GACtE;EACD;GACE,MAAM,aAAa;GACnB,eAAe;GACf,SAAS,WAAW,IAAI,aAAa;IAAE,GAAG;IAAQ;IAAe,CAAC;GACnE;EACD;GACE,MAAM,kBAAkB;GACxB,eAAe;GACf,SAAS,WAAW,IAAI,kBAAkB;IAAE,GAAG;IAAQ;IAAe,CAAC;GACxE;EACF;;AAyBH,SAAgB,uBAA6C;CAC3D,MAAM,EAAE,kBAAkB,kBAAkB;AAE5C,QAAO;EACL;GACE,MAAM,iBAAiB;GACvB,eAAe;GACf,SAAS,WAAW,IAAI,iBAAiB;IAAE,GAAG;IAAQ;IAAe,CAAC;GACvE;EACD;GACE,MAAM,CAAC,iBAAiB,MAAM,OAAO;GACrC,eAAe;GACf,SAAS,WAAW,IAAI,iBAAiB;IAAE,GAAG;IAAQ;IAAe,CAAC;GACvE;EACD;GACE,MAAM,mBAAmB;GACzB,eAAe;GACf,SAAS,WAAW,IAAI,mBAAmB,EAAE,GAAG,QAAQ,CAAC;GAC1D;EACD;GACE,MAAM,iBAAiB;GACvB,eAAe;GACf,SAAS,WAAW,IAAI,iBAAiB;IAAE,GAAG;IAAQ;IAAe,CAAC;GACvE;EACD;GACE,MAAM,mBAAmB;GACzB,eAAe;GACf,SAAS,WAAW,IAAI,mBAAmB;IAAE,GAAG;IAAQ;IAAe,CAAC;GACzE;EACF;;AAGH,SAAgB,uBAA6C;CAC3D,MAAM,EAAE,kBAAkB,kBAAkB;AAE5C,QAAO;EACL;GACE,MAAM,iBAAiB;GACvB,eAAe;GACf,SAAS,WAAW,IAAI,iBAAiB;IAAE,GAAG;IAAQ;IAAe,CAAC;GACvE;EACD;GACE,MAAM,CAAC,iBAAiB,MAAM,OAAO;GACrC,eAAe;GACf,SAAS,WAAW,IAAI,iBAAiB;IAAE,GAAG;IAAQ;IAAe,CAAC;GACvE;EACD;GACE,MAAM,mBAAmB;GACzB,eAAe;GACf,SAAS,WAAW,IAAI,mBAAmB;IAAE,GAAG;IAAQ;IAAe,CAAC;GACzE;EACF;;AAGH,SAAgB,UAAU,UAGxB;AACA,YAAW,SAAS,aAAa,CAAC,QAAQ,MAAM,GAAG;CAEnD,MAAM,MAAM,iBAAiB;AAU7B,QAAO;EAAE;EAAK,OARA,IAAI,MAAM,MAAM;AAC5B,OAAI,OAAO,EAAE,SAAS,SACpB,QAAO,EAAE,KAAK,aAAa,CAAC,SAAS,SAAS;AAGhD,UAAO,EAAE,KAAK,MAAM,MAAM,EAAE,aAAa,CAAC,SAAS,SAAS,CAAC;IAC7D;EAEmB;;AAGvB,SAAgB,eAAe,UAG7B;AACA,YAAW,SAAS,aAAa,CAAC,QAAQ,MAAM,GAAG;CAEnD,MAAM,MAAM,sBAAsB;AAUlC,QAAO;EAAE;EAAK,OARA,IAAI,MAAM,MAAM;AAC5B,OAAI,OAAO,EAAE,SAAS,SACpB,QAAO,EAAE,KAAK,aAAa,CAAC,SAAS,SAAS;AAGhD,UAAO,EAAE,KAAK,MAAM,MAAM,EAAE,aAAa,CAAC,SAAS,SAAS,CAAC;IAC7D;EAEmB;;AAGvB,SAAgB,eAAe,UAG7B;AACA,YAAW,SAAS,aAAa,CAAC,QAAQ,MAAM,GAAG;CAEnD,MAAM,MAAM,sBAAsB;AAUlC,QAAO;EAAE;EAAK,OARA,IAAI,MAAM,MAAM;AAC5B,OAAI,OAAO,EAAE,SAAS,SACpB,QAAO,EAAE,KAAK,aAAa,CAAC,SAAS,SAAS;AAGhD,UAAO,EAAE,KAAK,MAAM,MAAM,EAAE,aAAa,CAAC,SAAS,SAAS,CAAC;IAC7D;EAEmB;;AAcvB,SAAgB,2BAAqD;CACnE,MAAM,EAAE,kBAAkB,kBAAkB;AAE5C,QAAO;EACL;GACE,MAAM,qBAAqB;GAC3B,eAAe;GACf,SAAS,WAAW,IAAI,qBAAqB;IAAE,GAAG;IAAQ;IAAe,CAAC;GAC3E;EACD;GACE,MAAM,CAAC,qBAAqB,MAAM,OAAO;GACzC,eAAe;GACf,SAAS,WACP,IAAI,qBAAqB;IACvB,GAAG;IACH,eAAe,EAAE,aAAa,cAAc,cAAc;IAC3D,CAAC;GACL;EACD;GACE,MAAM,uBAAuB;GAC7B,eAAe;GACf,SAAS,WAAW,IAAI,uBAAuB;IAAE,GAAG;IAAQ;IAAe,CAAC;GAC7E;EACF;;AAGH,SAAgB,mBAAmB,UAGjC;AACA,YAAW,SAAS,aAAa,CAAC,QAAQ,MAAM,GAAG;CAEnD,MAAM,MAAM,0BAA0B;AAUtC,QAAO;EAAE;EAAK,OARA,IAAI,MAAM,MAAM;AAC5B,OAAI,OAAO,EAAE,SAAS,SACpB,QAAO,EAAE,KAAK,aAAa,CAAC,SAAS,SAAS;AAGhD,UAAO,EAAE,KAAK,MAAM,MAAM,EAAE,aAAa,CAAC,SAAS,SAAS,CAAC;IAC7D;EAEmB;;AAGvB,MAAa,cAAc,UAAkB;AAE3C,SAAQ,MAAM,QAAQ,cAAc,MAAM;CAC1C,IAAI,EAAE,UAAU,SAAS,MAAM,MAAM,qCAAqC,EAAE,UAAU,EAAE;AACxF,YAAW,UAAU,QAAQ,MAAM,GAAG;AAGtC,KAFc,WAAW,UAAU,SAAS,EAAE,QAAQ,OAGpD,QAAO;EAAE;EAAU,OAAO;EAAM;AAGlC,QAAO;EAAE,UAAU;EAAoB;EAAO"}
@@ -1,4 +1,4 @@
1
- import { ChatModelOptions, ImageModelOptions, VideoModelOptions } from "@aigne/model-base";
1
+ import { ChatModelOptions, EmbeddingModelOptions, ImageModelOptions, VideoModelOptions } from "@aigne/model-base";
2
2
  import { OpenAIChatModelOptions } from "@aigne/openai";
3
3
 
4
4
  //#region src/utils/type.d.ts
@@ -23,6 +23,13 @@ interface AIGNEHubVideoModelOptions extends VideoModelOptions {
23
23
  clientId?: string;
24
24
  };
25
25
  }
26
+ interface AIGNEHubEmbeddingModelOptions extends EmbeddingModelOptions {
27
+ baseURL?: string;
28
+ apiKey?: string;
29
+ clientOptions?: OpenAIChatModelOptions["clientOptions"] & {
30
+ clientId?: string;
31
+ };
32
+ }
26
33
  //#endregion
27
- export { AIGNEHubChatModelOptions, AIGNEHubImageModelOptions, AIGNEHubVideoModelOptions };
34
+ export { AIGNEHubChatModelOptions, AIGNEHubEmbeddingModelOptions, AIGNEHubImageModelOptions, AIGNEHubVideoModelOptions };
28
35
  //# sourceMappingURL=type.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.cts","names":[],"sources":["../../src/utils/type.ts"],"mappings":";;;;UAqBiB,wBAAA,SAAiC,gBAAA;EAChD,OAAA;EACA,MAAA;EACA,aAAA,GAAgB,sBAAA;IAA4C,QAAA;EAAA;AAAA;AAAA,UAG7C,yBAAA,SAAkC,iBAAA;EACjD,OAAA;EACA,MAAA;EACA,aAAA,GAAgB,sBAAA;IAA4C,QAAA;EAAA;AAAA;AAAA,UAG7C,yBAAA,SAAkC,iBAAA;EACjD,OAAA;EACA,MAAA;EACA,aAAA,GAAgB,sBAAA;IAA4C,QAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"type.d.cts","names":[],"sources":["../../src/utils/type.ts"],"mappings":";;;;UA0BiB,wBAAA,SAAiC,gBAAA;EAChD,OAAA;EACA,MAAA;EACA,aAAA,GAAgB,sBAAA;IAA4C,QAAA;EAAA;AAAA;AAAA,UAG7C,yBAAA,SAAkC,iBAAA;EACjD,OAAA;EACA,MAAA;EACA,aAAA,GAAgB,sBAAA;IAA4C,QAAA;EAAA;AAAA;AAAA,UAG7C,yBAAA,SAAkC,iBAAA;EACjD,OAAA;EACA,MAAA;EACA,aAAA,GAAgB,sBAAA;IAA4C,QAAA;EAAA;AAAA;AAAA,UAG7C,6BAAA,SAAsC,qBAAA;EACrD,OAAA;EACA,MAAA;EACA,aAAA,GAAgB,sBAAA;IAA4C,QAAA;EAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- import { ChatModelOptions, ImageModelOptions, VideoModelOptions } from "@aigne/model-base";
1
+ import { ChatModelOptions, EmbeddingModelOptions, ImageModelOptions, VideoModelOptions } from "@aigne/model-base";
2
2
  import { z } from "zod";
3
3
  import { OpenAIChatModelOptions } from "@aigne/openai";
4
4
 
@@ -24,6 +24,13 @@ interface AIGNEHubVideoModelOptions extends VideoModelOptions {
24
24
  clientId?: string;
25
25
  };
26
26
  }
27
+ interface AIGNEHubEmbeddingModelOptions extends EmbeddingModelOptions {
28
+ baseURL?: string;
29
+ apiKey?: string;
30
+ clientOptions?: OpenAIChatModelOptions["clientOptions"] & {
31
+ clientId?: string;
32
+ };
33
+ }
27
34
  //#endregion
28
- export { AIGNEHubChatModelOptions, AIGNEHubImageModelOptions, AIGNEHubVideoModelOptions };
35
+ export { AIGNEHubChatModelOptions, AIGNEHubEmbeddingModelOptions, AIGNEHubImageModelOptions, AIGNEHubVideoModelOptions };
29
36
  //# sourceMappingURL=type.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.mts","names":[],"sources":["../../src/utils/type.ts"],"mappings":";;;;;UAqBiB,wBAAA,SAAiC,gBAAA;EAChD,OAAA;EACA,MAAA;EACA,aAAA,GAAgB,sBAAA;IAA4C,QAAA;EAAA;AAAA;AAAA,UAG7C,yBAAA,SAAkC,iBAAA;EACjD,OAAA;EACA,MAAA;EACA,aAAA,GAAgB,sBAAA;IAA4C,QAAA;EAAA;AAAA;AAAA,UAG7C,yBAAA,SAAkC,iBAAA;EACjD,OAAA;EACA,MAAA;EACA,aAAA,GAAgB,sBAAA;IAA4C,QAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"type.d.mts","names":[],"sources":["../../src/utils/type.ts"],"mappings":";;;;;UA0BiB,wBAAA,SAAiC,gBAAA;EAChD,OAAA;EACA,MAAA;EACA,aAAA,GAAgB,sBAAA;IAA4C,QAAA;EAAA;AAAA;AAAA,UAG7C,yBAAA,SAAkC,iBAAA;EACjD,OAAA;EACA,MAAA;EACA,aAAA,GAAgB,sBAAA;IAA4C,QAAA;EAAA;AAAA;AAAA,UAG7C,yBAAA,SAAkC,iBAAA;EACjD,OAAA;EACA,MAAA;EACA,aAAA,GAAgB,sBAAA;IAA4C,QAAA;EAAA;AAAA;AAAA,UAG7C,6BAAA,SAAsC,qBAAA;EACrD,OAAA;EACA,MAAA;EACA,aAAA,GAAgB,sBAAA;IAA4C,QAAA;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"type.mjs","names":[],"sources":["../../src/utils/type.ts"],"sourcesContent":["import type { ChatModelOptions, ImageModelOptions, VideoModelOptions } from \"@aigne/model-base\";\nimport type { OpenAIChatModelOptions } from \"@aigne/openai\";\nimport { z } from \"zod\";\n\nexport const aigneHubModelOptionsSchema = z.object({\n baseURL: z.string().optional(),\n apiKey: z.string().optional(),\n model: z.string().optional(),\n modelOptions: z\n .object({\n model: z.string().optional(),\n temperature: z.number().optional(),\n topP: z.number().optional(),\n frequencyPenalty: z.number().optional(),\n presencePenalty: z.number().optional(),\n parallelToolCalls: z.boolean().optional().default(true),\n })\n .optional(),\n clientOptions: z.object({}).optional(),\n});\n\nexport interface AIGNEHubChatModelOptions extends ChatModelOptions {\n baseURL?: string;\n apiKey?: string;\n clientOptions?: OpenAIChatModelOptions[\"clientOptions\"] & { clientId?: string };\n}\n\nexport interface AIGNEHubImageModelOptions extends ImageModelOptions {\n baseURL?: string;\n apiKey?: string;\n clientOptions?: OpenAIChatModelOptions[\"clientOptions\"] & { clientId?: string };\n}\n\nexport interface AIGNEHubVideoModelOptions extends VideoModelOptions {\n baseURL?: string;\n apiKey?: string;\n clientOptions?: OpenAIChatModelOptions[\"clientOptions\"] & { clientId?: string };\n}\n"],"mappings":";;;AAIA,MAAa,6BAA6B,EAAE,OAAO;CACjD,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC7B,OAAO,EAAE,QAAQ,CAAC,UAAU;CAC5B,cAAc,EACX,OAAO;EACN,OAAO,EAAE,QAAQ,CAAC,UAAU;EAC5B,aAAa,EAAE,QAAQ,CAAC,UAAU;EAClC,MAAM,EAAE,QAAQ,CAAC,UAAU;EAC3B,kBAAkB,EAAE,QAAQ,CAAC,UAAU;EACvC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;EACtC,mBAAmB,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,KAAK;EACxD,CAAC,CACD,UAAU;CACb,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC,UAAU;CACvC,CAAC"}
1
+ {"version":3,"file":"type.mjs","names":[],"sources":["../../src/utils/type.ts"],"sourcesContent":["import type {\n ChatModelOptions,\n EmbeddingModelOptions,\n ImageModelOptions,\n VideoModelOptions,\n} from \"@aigne/model-base\";\nimport type { OpenAIChatModelOptions } from \"@aigne/openai\";\nimport { z } from \"zod\";\n\nexport const aigneHubModelOptionsSchema = z.object({\n baseURL: z.string().optional(),\n apiKey: z.string().optional(),\n model: z.string().optional(),\n modelOptions: z\n .object({\n model: z.string().optional(),\n temperature: z.number().optional(),\n topP: z.number().optional(),\n frequencyPenalty: z.number().optional(),\n presencePenalty: z.number().optional(),\n parallelToolCalls: z.boolean().optional().default(true),\n })\n .optional(),\n clientOptions: z.object({}).optional(),\n});\n\nexport interface AIGNEHubChatModelOptions extends ChatModelOptions {\n baseURL?: string;\n apiKey?: string;\n clientOptions?: OpenAIChatModelOptions[\"clientOptions\"] & { clientId?: string };\n}\n\nexport interface AIGNEHubImageModelOptions extends ImageModelOptions {\n baseURL?: string;\n apiKey?: string;\n clientOptions?: OpenAIChatModelOptions[\"clientOptions\"] & { clientId?: string };\n}\n\nexport interface AIGNEHubVideoModelOptions extends VideoModelOptions {\n baseURL?: string;\n apiKey?: string;\n clientOptions?: OpenAIChatModelOptions[\"clientOptions\"] & { clientId?: string };\n}\n\nexport interface AIGNEHubEmbeddingModelOptions extends EmbeddingModelOptions {\n baseURL?: string;\n apiKey?: string;\n clientOptions?: OpenAIChatModelOptions[\"clientOptions\"] & { clientId?: string };\n}\n"],"mappings":";;;AASA,MAAa,6BAA6B,EAAE,OAAO;CACjD,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC7B,OAAO,EAAE,QAAQ,CAAC,UAAU;CAC5B,cAAc,EACX,OAAO;EACN,OAAO,EAAE,QAAQ,CAAC,UAAU;EAC5B,aAAa,EAAE,QAAQ,CAAC,UAAU;EAClC,MAAM,EAAE,QAAQ,CAAC,UAAU;EAC3B,kBAAkB,EAAE,QAAQ,CAAC,UAAU;EACvC,iBAAiB,EAAE,QAAQ,CAAC,UAAU;EACtC,mBAAmB,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,KAAK;EACxD,CAAC,CACD,UAAU;CACb,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC,UAAU;CACvC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aigne/aigne-hub",
3
- "version": "1.74.0-beta.8",
3
+ "version": "1.74.0-beta.9",
4
4
  "description": "AIGNE Hub SDK for integrating with Hub AI models",
5
5
  "license": "Elastic-2.0",
6
6
  "publishConfig": {
@@ -28,6 +28,10 @@
28
28
  "require": "./dist/aigne-hub-chat-model.cjs",
29
29
  "import": "./dist/aigne-hub-chat-model.mjs"
30
30
  },
31
+ "./aigne-hub-embedding-model": {
32
+ "require": "./dist/aigne-hub-embedding-model.cjs",
33
+ "import": "./dist/aigne-hub-embedding-model.mjs"
34
+ },
31
35
  "./aigne-hub-image-model": {
32
36
  "require": "./dist/aigne-hub-image-model.cjs",
33
37
  "import": "./dist/aigne-hub-image-model.mjs"
@@ -49,18 +53,18 @@
49
53
  "https-proxy-agent": "^7.0.6",
50
54
  "ufo": "^1.6.1",
51
55
  "zod": "^3.25.67",
52
- "@aigne/anthropic": "^1.74.0-beta.8",
53
- "@aigne/model-base": "^1.74.0-beta.8",
54
- "@aigne/bedrock": "^1.74.0-beta.8",
55
- "@aigne/doubao": "^1.74.0-beta.8",
56
- "@aigne/deepseek": "^1.74.0-beta.8",
57
- "@aigne/gemini": "^1.74.0-beta.8",
58
- "@aigne/ideogram": "^1.74.0-beta.8",
59
- "@aigne/ollama": "^1.74.0-beta.8",
60
- "@aigne/open-router": "^1.74.0-beta.8",
61
- "@aigne/openai": "^1.74.0-beta.8",
62
- "@aigne/poe": "^1.74.0-beta.8",
63
- "@aigne/xai": "^1.74.0-beta.8"
56
+ "@aigne/bedrock": "^1.74.0-beta.9",
57
+ "@aigne/anthropic": "^1.74.0-beta.9",
58
+ "@aigne/model-base": "^1.74.0-beta.9",
59
+ "@aigne/deepseek": "^1.74.0-beta.9",
60
+ "@aigne/doubao": "^1.74.0-beta.9",
61
+ "@aigne/ideogram": "^1.74.0-beta.9",
62
+ "@aigne/ollama": "^1.74.0-beta.9",
63
+ "@aigne/open-router": "^1.74.0-beta.9",
64
+ "@aigne/xai": "^1.74.0-beta.9",
65
+ "@aigne/openai": "^1.74.0-beta.9",
66
+ "@aigne/gemini": "^1.74.0-beta.9",
67
+ "@aigne/poe": "^1.74.0-beta.9"
64
68
  },
65
69
  "devDependencies": {
66
70
  "@types/bun": "^1.3.6",