@aigne/aigne-hub 0.10.17-beta.1 → 1.74.0-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -11
- package/dist/aigne-hub-image-model.cjs +91 -0
- package/dist/aigne-hub-image-model.mjs +92 -0
- package/dist/aigne-hub-image-model.mjs.map +1 -0
- package/dist/aigne-hub-model.cjs +80 -0
- package/dist/aigne-hub-model.mjs +81 -0
- package/dist/aigne-hub-model.mjs.map +1 -0
- package/dist/aigne-hub-video-model.cjs +95 -0
- package/dist/aigne-hub-video-model.mjs +96 -0
- package/dist/aigne-hub-video-model.mjs.map +1 -0
- package/dist/index.cjs +139 -0
- package/dist/index.d.cts +118 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +118 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +117 -0
- package/dist/index.mjs.map +1 -0
- package/dist/utils/blocklet.cjs +13 -0
- package/dist/utils/blocklet.d.cts +5 -0
- package/dist/utils/blocklet.d.cts.map +1 -0
- package/dist/utils/blocklet.d.mts +5 -0
- package/dist/utils/blocklet.d.mts.map +1 -0
- package/dist/utils/blocklet.mjs +14 -0
- package/dist/utils/blocklet.mjs.map +1 -0
- package/dist/utils/constants.cjs +46 -0
- package/dist/utils/constants.d.cts +26 -0
- package/dist/utils/constants.d.cts.map +1 -0
- package/dist/utils/constants.d.mts +26 -0
- package/dist/utils/constants.d.mts.map +1 -0
- package/dist/utils/constants.mjs +38 -0
- package/dist/utils/constants.mjs.map +1 -0
- package/dist/utils/find-provider.cjs +161 -0
- package/{lib/cjs/utils/find-provider.d.ts → dist/utils/find-provider.d.cts} +10 -5
- package/dist/utils/find-provider.d.cts.map +1 -0
- package/{lib/esm/utils/find-provider.d.ts → dist/utils/find-provider.d.mts} +10 -5
- package/dist/utils/find-provider.d.mts.map +1 -0
- package/dist/utils/find-provider.mjs +159 -0
- package/dist/utils/find-provider.mjs.map +1 -0
- package/dist/utils/hub.cjs +24 -0
- package/dist/utils/hub.mjs +25 -0
- package/dist/utils/hub.mjs.map +1 -0
- package/dist/utils/model.cjs +260 -0
- package/dist/utils/model.d.cts +57 -0
- package/dist/utils/model.d.cts.map +1 -0
- package/dist/utils/model.d.mts +57 -0
- package/dist/utils/model.d.mts.map +1 -0
- package/dist/utils/model.mjs +255 -0
- package/dist/utils/model.mjs.map +1 -0
- package/dist/utils/type.cjs +20 -0
- package/dist/utils/type.d.cts +28 -0
- package/dist/utils/type.d.cts.map +1 -0
- package/dist/utils/type.d.mts +29 -0
- package/dist/utils/type.d.mts.map +1 -0
- package/dist/utils/type.mjs +21 -0
- package/dist/utils/type.mjs.map +1 -0
- package/package.json +40 -41
- package/CHANGELOG.md +0 -4238
- package/lib/cjs/aigne-hub-image-model.d.ts +0 -28
- package/lib/cjs/aigne-hub-image-model.js +0 -90
- package/lib/cjs/aigne-hub-model.d.ts +0 -28
- package/lib/cjs/aigne-hub-model.js +0 -80
- package/lib/cjs/aigne-hub-video-model.d.ts +0 -28
- package/lib/cjs/aigne-hub-video-model.js +0 -89
- package/lib/cjs/index.d.ts +0 -112
- package/lib/cjs/index.js +0 -135
- package/lib/cjs/package.json +0 -3
- package/lib/cjs/utils/blocklet.d.ts +0 -1
- package/lib/cjs/utils/blocklet.js +0 -15
- package/lib/cjs/utils/constants.d.ts +0 -22
- package/lib/cjs/utils/constants.js +0 -37
- package/lib/cjs/utils/find-provider.js +0 -121
- package/lib/cjs/utils/hub.d.ts +0 -16
- package/lib/cjs/utils/hub.js +0 -30
- package/lib/cjs/utils/model.d.ts +0 -52
- package/lib/cjs/utils/model.js +0 -207
- package/lib/cjs/utils/type.d.ts +0 -78
- package/lib/cjs/utils/type.js +0 -20
- package/lib/dts/aigne-hub-image-model.d.ts +0 -28
- package/lib/dts/aigne-hub-model.d.ts +0 -28
- package/lib/dts/aigne-hub-video-model.d.ts +0 -28
- package/lib/dts/index.d.ts +0 -112
- package/lib/dts/utils/blocklet.d.ts +0 -1
- package/lib/dts/utils/constants.d.ts +0 -22
- package/lib/dts/utils/find-provider.d.ts +0 -17
- package/lib/dts/utils/hub.d.ts +0 -16
- package/lib/dts/utils/model.d.ts +0 -52
- package/lib/dts/utils/type.d.ts +0 -78
- package/lib/esm/aigne-hub-image-model.d.ts +0 -28
- package/lib/esm/aigne-hub-image-model.js +0 -86
- package/lib/esm/aigne-hub-model.d.ts +0 -28
- package/lib/esm/aigne-hub-model.js +0 -76
- package/lib/esm/aigne-hub-video-model.d.ts +0 -28
- package/lib/esm/aigne-hub-video-model.js +0 -85
- package/lib/esm/index.d.ts +0 -112
- package/lib/esm/index.js +0 -115
- package/lib/esm/package.json +0 -3
- package/lib/esm/utils/blocklet.d.ts +0 -1
- package/lib/esm/utils/blocklet.js +0 -12
- package/lib/esm/utils/constants.d.ts +0 -22
- package/lib/esm/utils/constants.js +0 -33
- package/lib/esm/utils/find-provider.js +0 -115
- package/lib/esm/utils/hub.d.ts +0 -16
- package/lib/esm/utils/hub.js +0 -27
- package/lib/esm/utils/model.d.ts +0 -52
- package/lib/esm/utils/model.js +0 -197
- package/lib/esm/utils/type.d.ts +0 -78
- package/lib/esm/utils/type.js +0 -17
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
const require_constants = require('./constants.cjs');
|
|
2
|
+
const require_aigne_hub_image_model = require('../aigne-hub-image-model.cjs');
|
|
3
|
+
const require_aigne_hub_model = require('../aigne-hub-model.cjs');
|
|
4
|
+
const require_aigne_hub_video_model = require('../aigne-hub-video-model.cjs');
|
|
5
|
+
let _aigne_anthropic = require("@aigne/anthropic");
|
|
6
|
+
let _aigne_bedrock = require("@aigne/bedrock");
|
|
7
|
+
let _aigne_deepseek = require("@aigne/deepseek");
|
|
8
|
+
let _aigne_doubao = require("@aigne/doubao");
|
|
9
|
+
let _aigne_gemini = require("@aigne/gemini");
|
|
10
|
+
let _aigne_ideogram = require("@aigne/ideogram");
|
|
11
|
+
let _aigne_ollama = require("@aigne/ollama");
|
|
12
|
+
let _aigne_open_router = require("@aigne/open-router");
|
|
13
|
+
let _aigne_openai = require("@aigne/openai");
|
|
14
|
+
let _aigne_poe = require("@aigne/poe");
|
|
15
|
+
let _aigne_xai = require("@aigne/xai");
|
|
16
|
+
let _smithy_node_http_handler = require("@smithy/node-http-handler");
|
|
17
|
+
let https_proxy_agent = require("https-proxy-agent");
|
|
18
|
+
|
|
19
|
+
//#region src/utils/model.ts
|
|
20
|
+
const getClientOptions = () => {
|
|
21
|
+
const proxy = [
|
|
22
|
+
"HTTPS_PROXY",
|
|
23
|
+
"https_proxy",
|
|
24
|
+
"HTTP_PROXY",
|
|
25
|
+
"http_proxy",
|
|
26
|
+
"ALL_PROXY",
|
|
27
|
+
"all_proxy"
|
|
28
|
+
].map((i) => process.env[i]).filter(Boolean)[0];
|
|
29
|
+
const httpAgent = proxy ? new https_proxy_agent.HttpsProxyAgent(proxy) : void 0;
|
|
30
|
+
return {
|
|
31
|
+
clientOptions: { fetchOptions: { agent: httpAgent } },
|
|
32
|
+
httpAgent
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
const GOOGLE = "google";
|
|
36
|
+
function availableModels() {
|
|
37
|
+
const { clientOptions, httpAgent } = getClientOptions();
|
|
38
|
+
return [
|
|
39
|
+
{
|
|
40
|
+
name: _aigne_openai.OpenAIChatModel.name,
|
|
41
|
+
apiKeyEnvName: "OPENAI_API_KEY",
|
|
42
|
+
create: (params) => new _aigne_openai.OpenAIChatModel({
|
|
43
|
+
...params,
|
|
44
|
+
clientOptions
|
|
45
|
+
})
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: _aigne_anthropic.AnthropicChatModel.name,
|
|
49
|
+
apiKeyEnvName: "ANTHROPIC_API_KEY",
|
|
50
|
+
create: (params) => new _aigne_anthropic.AnthropicChatModel({
|
|
51
|
+
...params,
|
|
52
|
+
clientOptions
|
|
53
|
+
})
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: _aigne_bedrock.BedrockChatModel.name,
|
|
57
|
+
apiKeyEnvName: "AWS_ACCESS_KEY_ID",
|
|
58
|
+
create: (params) => new _aigne_bedrock.BedrockChatModel({
|
|
59
|
+
...params,
|
|
60
|
+
clientOptions: {
|
|
61
|
+
requestHandler: _smithy_node_http_handler.NodeHttpHandler.create({
|
|
62
|
+
httpAgent,
|
|
63
|
+
httpsAgent: httpAgent
|
|
64
|
+
}),
|
|
65
|
+
streamCollector: _smithy_node_http_handler.streamCollector
|
|
66
|
+
}
|
|
67
|
+
})
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: _aigne_deepseek.DeepSeekChatModel.name,
|
|
71
|
+
apiKeyEnvName: "DEEPSEEK_API_KEY",
|
|
72
|
+
create: (params) => new _aigne_deepseek.DeepSeekChatModel({
|
|
73
|
+
...params,
|
|
74
|
+
clientOptions
|
|
75
|
+
})
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: [_aigne_gemini.GeminiChatModel.name, GOOGLE],
|
|
79
|
+
apiKeyEnvName: ["GEMINI_API_KEY", "GOOGLE_API_KEY"],
|
|
80
|
+
create: (params) => new _aigne_gemini.GeminiChatModel({
|
|
81
|
+
...params,
|
|
82
|
+
clientOptions: { httpOptions: clientOptions.fetchOptions }
|
|
83
|
+
})
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: _aigne_ollama.OllamaChatModel.name,
|
|
87
|
+
apiKeyEnvName: "OLLAMA_API_KEY",
|
|
88
|
+
create: (params) => new _aigne_ollama.OllamaChatModel({
|
|
89
|
+
...params,
|
|
90
|
+
clientOptions
|
|
91
|
+
})
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: _aigne_open_router.OpenRouterChatModel.name,
|
|
95
|
+
apiKeyEnvName: "OPEN_ROUTER_API_KEY",
|
|
96
|
+
create: (params) => new _aigne_open_router.OpenRouterChatModel({
|
|
97
|
+
...params,
|
|
98
|
+
clientOptions
|
|
99
|
+
})
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: _aigne_xai.XAIChatModel.name,
|
|
103
|
+
apiKeyEnvName: "XAI_API_KEY",
|
|
104
|
+
create: (params) => new _aigne_xai.XAIChatModel({
|
|
105
|
+
...params,
|
|
106
|
+
clientOptions
|
|
107
|
+
})
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
name: _aigne_doubao.DoubaoChatModel.name,
|
|
111
|
+
apiKeyEnvName: "DOUBAO_API_KEY",
|
|
112
|
+
create: (params) => new _aigne_doubao.DoubaoChatModel({
|
|
113
|
+
...params,
|
|
114
|
+
clientOptions
|
|
115
|
+
})
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
name: _aigne_poe.PoeChatModel.name,
|
|
119
|
+
apiKeyEnvName: "POE_API_KEY",
|
|
120
|
+
create: (params) => new _aigne_poe.PoeChatModel({
|
|
121
|
+
...params,
|
|
122
|
+
clientOptions
|
|
123
|
+
})
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: require_aigne_hub_model.AIGNEHubChatModel.name,
|
|
127
|
+
apiKeyEnvName: "AIGNE_HUB_API_KEY",
|
|
128
|
+
create: (params) => new require_aigne_hub_model.AIGNEHubChatModel({
|
|
129
|
+
...params,
|
|
130
|
+
clientOptions
|
|
131
|
+
})
|
|
132
|
+
}
|
|
133
|
+
];
|
|
134
|
+
}
|
|
135
|
+
function availableImageModels() {
|
|
136
|
+
const { clientOptions } = getClientOptions();
|
|
137
|
+
return [
|
|
138
|
+
{
|
|
139
|
+
name: _aigne_openai.OpenAIImageModel.name,
|
|
140
|
+
apiKeyEnvName: "OPENAI_API_KEY",
|
|
141
|
+
create: (params) => new _aigne_openai.OpenAIImageModel({
|
|
142
|
+
...params,
|
|
143
|
+
clientOptions
|
|
144
|
+
})
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: [_aigne_gemini.GeminiImageModel.name, GOOGLE],
|
|
148
|
+
apiKeyEnvName: "GEMINI_API_KEY",
|
|
149
|
+
create: (params) => new _aigne_gemini.GeminiImageModel({
|
|
150
|
+
...params,
|
|
151
|
+
clientOptions
|
|
152
|
+
})
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: _aigne_ideogram.IdeogramImageModel.name,
|
|
156
|
+
apiKeyEnvName: "IDEOGRAM_API_KEY",
|
|
157
|
+
create: (params) => new _aigne_ideogram.IdeogramImageModel({ ...params })
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
name: _aigne_doubao.DoubaoImageModel.name,
|
|
161
|
+
apiKeyEnvName: "DOUBAO_API_KEY",
|
|
162
|
+
create: (params) => new _aigne_doubao.DoubaoImageModel({
|
|
163
|
+
...params,
|
|
164
|
+
clientOptions
|
|
165
|
+
})
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
name: require_aigne_hub_image_model.AIGNEHubImageModel.name,
|
|
169
|
+
apiKeyEnvName: "AIGNE_HUB_API_KEY",
|
|
170
|
+
create: (params) => new require_aigne_hub_image_model.AIGNEHubImageModel({
|
|
171
|
+
...params,
|
|
172
|
+
clientOptions
|
|
173
|
+
})
|
|
174
|
+
}
|
|
175
|
+
];
|
|
176
|
+
}
|
|
177
|
+
function availableVideoModels() {
|
|
178
|
+
const { clientOptions } = getClientOptions();
|
|
179
|
+
return [
|
|
180
|
+
{
|
|
181
|
+
name: _aigne_openai.OpenAIVideoModel.name,
|
|
182
|
+
apiKeyEnvName: "OPENAI_API_KEY",
|
|
183
|
+
create: (params) => new _aigne_openai.OpenAIVideoModel({
|
|
184
|
+
...params,
|
|
185
|
+
clientOptions
|
|
186
|
+
})
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
name: [_aigne_gemini.GeminiVideoModel.name, GOOGLE],
|
|
190
|
+
apiKeyEnvName: "GEMINI_API_KEY",
|
|
191
|
+
create: (params) => new _aigne_gemini.GeminiVideoModel({
|
|
192
|
+
...params,
|
|
193
|
+
clientOptions
|
|
194
|
+
})
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
name: require_aigne_hub_video_model.AIGNEHubVideoModel.name,
|
|
198
|
+
apiKeyEnvName: "AIGNE_HUB_API_KEY",
|
|
199
|
+
create: (params) => new require_aigne_hub_video_model.AIGNEHubVideoModel({
|
|
200
|
+
...params,
|
|
201
|
+
clientOptions
|
|
202
|
+
})
|
|
203
|
+
}
|
|
204
|
+
];
|
|
205
|
+
}
|
|
206
|
+
function findModel(provider) {
|
|
207
|
+
provider = provider.toLowerCase().replace(/-/g, "");
|
|
208
|
+
const all = availableModels();
|
|
209
|
+
return {
|
|
210
|
+
all,
|
|
211
|
+
match: all.find((m) => {
|
|
212
|
+
if (typeof m.name === "string") return m.name.toLowerCase().includes(provider);
|
|
213
|
+
return m.name.some((n) => n.toLowerCase().includes(provider));
|
|
214
|
+
})
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
function findImageModel(provider) {
|
|
218
|
+
provider = provider.toLowerCase().replace(/-/g, "");
|
|
219
|
+
const all = availableImageModels();
|
|
220
|
+
return {
|
|
221
|
+
all,
|
|
222
|
+
match: all.find((m) => {
|
|
223
|
+
if (typeof m.name === "string") return m.name.toLowerCase().includes(provider);
|
|
224
|
+
return m.name.some((n) => n.toLowerCase().includes(provider));
|
|
225
|
+
})
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
function findVideoModel(provider) {
|
|
229
|
+
provider = provider.toLowerCase().replace(/-/g, "");
|
|
230
|
+
const all = availableVideoModels();
|
|
231
|
+
return {
|
|
232
|
+
all,
|
|
233
|
+
match: all.find((m) => {
|
|
234
|
+
if (typeof m.name === "string") return m.name.toLowerCase().includes(provider);
|
|
235
|
+
return m.name.some((n) => n.toLowerCase().includes(provider));
|
|
236
|
+
})
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
const parseModel = (model) => {
|
|
240
|
+
model = model.replace(/^([\w-]+):/, "$1/");
|
|
241
|
+
let { provider, name } = model.match(/(?<provider>[^/]*)(\/(?<name>.*))?/)?.groups ?? {};
|
|
242
|
+
provider = provider?.replace(/-/g, "");
|
|
243
|
+
if (provider ? findModel(provider)?.match : void 0) return {
|
|
244
|
+
provider,
|
|
245
|
+
model: name
|
|
246
|
+
};
|
|
247
|
+
return {
|
|
248
|
+
provider: require_constants.AIGNE_HUB_PROVIDER,
|
|
249
|
+
model
|
|
250
|
+
};
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
//#endregion
|
|
254
|
+
exports.availableImageModels = availableImageModels;
|
|
255
|
+
exports.availableModels = availableModels;
|
|
256
|
+
exports.availableVideoModels = availableVideoModels;
|
|
257
|
+
exports.findImageModel = findImageModel;
|
|
258
|
+
exports.findModel = findModel;
|
|
259
|
+
exports.findVideoModel = findVideoModel;
|
|
260
|
+
exports.parseModel = parseModel;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { ChatModel, ChatModelInputOptionsWithGetter, ImageModel, ImageModelInputOptionsWithGetter, VideoModel } from "@aigne/core";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/model.d.ts
|
|
4
|
+
interface LoadableModel {
|
|
5
|
+
name: string | string[];
|
|
6
|
+
apiKeyEnvName?: string | string[];
|
|
7
|
+
create: (options: {
|
|
8
|
+
model?: string;
|
|
9
|
+
modelOptions?: ChatModelInputOptionsWithGetter;
|
|
10
|
+
apiKey?: string;
|
|
11
|
+
baseURL?: string;
|
|
12
|
+
}) => ChatModel;
|
|
13
|
+
}
|
|
14
|
+
declare function availableModels(): LoadableModel[];
|
|
15
|
+
interface LoadableImageModel {
|
|
16
|
+
name: string | string[];
|
|
17
|
+
apiKeyEnvName: string;
|
|
18
|
+
create: (options: {
|
|
19
|
+
apiKey?: string;
|
|
20
|
+
baseURL?: string;
|
|
21
|
+
model?: string;
|
|
22
|
+
modelOptions?: ImageModelInputOptionsWithGetter;
|
|
23
|
+
}) => ImageModel;
|
|
24
|
+
}
|
|
25
|
+
interface LoadableVideoModel {
|
|
26
|
+
name: string | string[];
|
|
27
|
+
apiKeyEnvName: string;
|
|
28
|
+
create: (options: {
|
|
29
|
+
apiKey?: string;
|
|
30
|
+
baseURL?: string;
|
|
31
|
+
model?: string;
|
|
32
|
+
modelOptions?: {
|
|
33
|
+
[key: string]: any;
|
|
34
|
+
};
|
|
35
|
+
}) => VideoModel;
|
|
36
|
+
}
|
|
37
|
+
declare function availableImageModels(): LoadableImageModel[];
|
|
38
|
+
declare function availableVideoModels(): LoadableVideoModel[];
|
|
39
|
+
declare function findModel(provider: string): {
|
|
40
|
+
all: LoadableModel[];
|
|
41
|
+
match: LoadableModel | undefined;
|
|
42
|
+
};
|
|
43
|
+
declare function findImageModel(provider: string): {
|
|
44
|
+
all: LoadableImageModel[];
|
|
45
|
+
match: LoadableImageModel | undefined;
|
|
46
|
+
};
|
|
47
|
+
declare function findVideoModel(provider: string): {
|
|
48
|
+
all: LoadableVideoModel[];
|
|
49
|
+
match: LoadableVideoModel | undefined;
|
|
50
|
+
};
|
|
51
|
+
declare const parseModel: (model: string) => {
|
|
52
|
+
provider: string | undefined;
|
|
53
|
+
model: string | undefined;
|
|
54
|
+
};
|
|
55
|
+
//#endregion
|
|
56
|
+
export { LoadableImageModel, LoadableModel, LoadableVideoModel, availableImageModels, availableModels, availableVideoModels, findImageModel, findModel, findVideoModel, parseModel };
|
|
57
|
+
//# sourceMappingURL=model.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.cts","names":[],"sources":["../../src/utils/model.ts"],"mappings":";;;UAuDiB,aAAA;EAAA,IAAA;EAAA,aAAA;EAAA,MAAA,GAAA,OAAA;IAAA,KAAA;IAAA,YAAA,GAKE,+BAAA;IAAA,MAAA;IAAA,OAAA;EAAA,MAGX,SAAA;AAAA;AAAA,iBAGQ,eAAA,CAAA,GAAmB,aAAA;AAAA,UAyElB,kBAAA;EAAA,IAAA;EAAA,aAAA;EAAA,MAAA,GAAA,OAAA;IAAA,MAAA;IAAA,OAAA;IAAA,KAAA;IAAA,YAAA,GAOE,gCAAA;EAAA,MACX,UAAA;AAAA;AAAA,UAGS,kBAAA;EAAA,IAAA;EAAA,aAAA;EAAA,MAAA,GAAA,OAAA;IAAA,MAAA;IAAA,OAAA;IAAA,KAAA;IAAA,YAAA;MAAA,CAAA,GAAA;IAAA;EAAA,MAQT,UAAA;AAAA;AAAA,iBAGQ,oBAAA,CAAA,GAAwB,kBAAA;AAAA,iBAgCxB,oBAAA,CAAA,GAAwB,kBAAA;AAAA,iBAsBxB,SAAA,CAAA,QAAA;EAAA,GAAA,EACT,aAAA;EAAA,KAAA,EACE,aAAA;AAAA;AAAA,iBAiBO,cAAA,CAAA,QAAA;EAAA,GAAA,EACT,kBAAA;EAAA,KAAA,EACE,kBAAA;AAAA;AAAA,iBAiBO,cAAA,CAAA,QAAA;EAAA,GAAA,EACT,kBAAA;EAAA,KAAA,EACE,kBAAA;AAAA;AAAA,cAiBI,UAAA,GAAA,KAAA;EAAA,QAAA;EAAA,KAAA;AAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { ChatModel, ChatModelInputOptionsWithGetter, ImageModel, ImageModelInputOptionsWithGetter, VideoModel } from "@aigne/core";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/model.d.ts
|
|
4
|
+
interface LoadableModel {
|
|
5
|
+
name: string | string[];
|
|
6
|
+
apiKeyEnvName?: string | string[];
|
|
7
|
+
create: (options: {
|
|
8
|
+
model?: string;
|
|
9
|
+
modelOptions?: ChatModelInputOptionsWithGetter;
|
|
10
|
+
apiKey?: string;
|
|
11
|
+
baseURL?: string;
|
|
12
|
+
}) => ChatModel;
|
|
13
|
+
}
|
|
14
|
+
declare function availableModels(): LoadableModel[];
|
|
15
|
+
interface LoadableImageModel {
|
|
16
|
+
name: string | string[];
|
|
17
|
+
apiKeyEnvName: string;
|
|
18
|
+
create: (options: {
|
|
19
|
+
apiKey?: string;
|
|
20
|
+
baseURL?: string;
|
|
21
|
+
model?: string;
|
|
22
|
+
modelOptions?: ImageModelInputOptionsWithGetter;
|
|
23
|
+
}) => ImageModel;
|
|
24
|
+
}
|
|
25
|
+
interface LoadableVideoModel {
|
|
26
|
+
name: string | string[];
|
|
27
|
+
apiKeyEnvName: string;
|
|
28
|
+
create: (options: {
|
|
29
|
+
apiKey?: string;
|
|
30
|
+
baseURL?: string;
|
|
31
|
+
model?: string;
|
|
32
|
+
modelOptions?: {
|
|
33
|
+
[key: string]: any;
|
|
34
|
+
};
|
|
35
|
+
}) => VideoModel;
|
|
36
|
+
}
|
|
37
|
+
declare function availableImageModels(): LoadableImageModel[];
|
|
38
|
+
declare function availableVideoModels(): LoadableVideoModel[];
|
|
39
|
+
declare function findModel(provider: string): {
|
|
40
|
+
all: LoadableModel[];
|
|
41
|
+
match: LoadableModel | undefined;
|
|
42
|
+
};
|
|
43
|
+
declare function findImageModel(provider: string): {
|
|
44
|
+
all: LoadableImageModel[];
|
|
45
|
+
match: LoadableImageModel | undefined;
|
|
46
|
+
};
|
|
47
|
+
declare function findVideoModel(provider: string): {
|
|
48
|
+
all: LoadableVideoModel[];
|
|
49
|
+
match: LoadableVideoModel | undefined;
|
|
50
|
+
};
|
|
51
|
+
declare const parseModel: (model: string) => {
|
|
52
|
+
provider: string | undefined;
|
|
53
|
+
model: string | undefined;
|
|
54
|
+
};
|
|
55
|
+
//#endregion
|
|
56
|
+
export { LoadableImageModel, LoadableModel, LoadableVideoModel, availableImageModels, availableModels, availableVideoModels, findImageModel, findModel, findVideoModel, parseModel };
|
|
57
|
+
//# sourceMappingURL=model.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.mts","names":[],"sources":["../../src/utils/model.ts"],"mappings":";;;UAuDiB,aAAA;EAAA,IAAA;EAAA,aAAA;EAAA,MAAA,GAAA,OAAA;IAAA,KAAA;IAAA,YAAA,GAKE,+BAAA;IAAA,MAAA;IAAA,OAAA;EAAA,MAGX,SAAA;AAAA;AAAA,iBAGQ,eAAA,CAAA,GAAmB,aAAA;AAAA,UAyElB,kBAAA;EAAA,IAAA;EAAA,aAAA;EAAA,MAAA,GAAA,OAAA;IAAA,MAAA;IAAA,OAAA;IAAA,KAAA;IAAA,YAAA,GAOE,gCAAA;EAAA,MACX,UAAA;AAAA;AAAA,UAGS,kBAAA;EAAA,IAAA;EAAA,aAAA;EAAA,MAAA,GAAA,OAAA;IAAA,MAAA;IAAA,OAAA;IAAA,KAAA;IAAA,YAAA;MAAA,CAAA,GAAA;IAAA;EAAA,MAQT,UAAA;AAAA;AAAA,iBAGQ,oBAAA,CAAA,GAAwB,kBAAA;AAAA,iBAgCxB,oBAAA,CAAA,GAAwB,kBAAA;AAAA,iBAsBxB,SAAA,CAAA,QAAA;EAAA,GAAA,EACT,aAAA;EAAA,KAAA,EACE,aAAA;AAAA;AAAA,iBAiBO,cAAA,CAAA,QAAA;EAAA,GAAA,EACT,kBAAA;EAAA,KAAA,EACE,kBAAA;AAAA;AAAA,iBAiBO,cAAA,CAAA,QAAA;EAAA,GAAA,EACT,kBAAA;EAAA,KAAA,EACE,kBAAA;AAAA;AAAA,cAiBI,UAAA,GAAA,KAAA;EAAA,QAAA;EAAA,KAAA;AAAA"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { AIGNE_HUB_PROVIDER } from "./constants.mjs";
|
|
2
|
+
import { AIGNEHubImageModel } from "../aigne-hub-image-model.mjs";
|
|
3
|
+
import { AIGNEHubChatModel } from "../aigne-hub-model.mjs";
|
|
4
|
+
import { AIGNEHubVideoModel } from "../aigne-hub-video-model.mjs";
|
|
5
|
+
import { AnthropicChatModel } from "@aigne/anthropic";
|
|
6
|
+
import { BedrockChatModel } from "@aigne/bedrock";
|
|
7
|
+
import { DeepSeekChatModel } from "@aigne/deepseek";
|
|
8
|
+
import { DoubaoChatModel, DoubaoImageModel } from "@aigne/doubao";
|
|
9
|
+
import { GeminiChatModel, GeminiImageModel, GeminiVideoModel } from "@aigne/gemini";
|
|
10
|
+
import { IdeogramImageModel } from "@aigne/ideogram";
|
|
11
|
+
import { OllamaChatModel } from "@aigne/ollama";
|
|
12
|
+
import { OpenRouterChatModel } from "@aigne/open-router";
|
|
13
|
+
import { OpenAIChatModel, OpenAIImageModel, OpenAIVideoModel } from "@aigne/openai";
|
|
14
|
+
import { PoeChatModel } from "@aigne/poe";
|
|
15
|
+
import { XAIChatModel } from "@aigne/xai";
|
|
16
|
+
import { NodeHttpHandler, streamCollector } from "@smithy/node-http-handler";
|
|
17
|
+
import { HttpsProxyAgent } from "https-proxy-agent";
|
|
18
|
+
|
|
19
|
+
//#region src/utils/model.ts
|
|
20
|
+
const getClientOptions = () => {
|
|
21
|
+
const proxy = [
|
|
22
|
+
"HTTPS_PROXY",
|
|
23
|
+
"https_proxy",
|
|
24
|
+
"HTTP_PROXY",
|
|
25
|
+
"http_proxy",
|
|
26
|
+
"ALL_PROXY",
|
|
27
|
+
"all_proxy"
|
|
28
|
+
].map((i) => process.env[i]).filter(Boolean)[0];
|
|
29
|
+
const httpAgent = proxy ? new HttpsProxyAgent(proxy) : void 0;
|
|
30
|
+
return {
|
|
31
|
+
clientOptions: { fetchOptions: { agent: httpAgent } },
|
|
32
|
+
httpAgent
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
const GOOGLE = "google";
|
|
36
|
+
function availableModels() {
|
|
37
|
+
const { clientOptions, httpAgent } = getClientOptions();
|
|
38
|
+
return [
|
|
39
|
+
{
|
|
40
|
+
name: OpenAIChatModel.name,
|
|
41
|
+
apiKeyEnvName: "OPENAI_API_KEY",
|
|
42
|
+
create: (params) => new OpenAIChatModel({
|
|
43
|
+
...params,
|
|
44
|
+
clientOptions
|
|
45
|
+
})
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: AnthropicChatModel.name,
|
|
49
|
+
apiKeyEnvName: "ANTHROPIC_API_KEY",
|
|
50
|
+
create: (params) => new AnthropicChatModel({
|
|
51
|
+
...params,
|
|
52
|
+
clientOptions
|
|
53
|
+
})
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: BedrockChatModel.name,
|
|
57
|
+
apiKeyEnvName: "AWS_ACCESS_KEY_ID",
|
|
58
|
+
create: (params) => new BedrockChatModel({
|
|
59
|
+
...params,
|
|
60
|
+
clientOptions: {
|
|
61
|
+
requestHandler: NodeHttpHandler.create({
|
|
62
|
+
httpAgent,
|
|
63
|
+
httpsAgent: httpAgent
|
|
64
|
+
}),
|
|
65
|
+
streamCollector
|
|
66
|
+
}
|
|
67
|
+
})
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: DeepSeekChatModel.name,
|
|
71
|
+
apiKeyEnvName: "DEEPSEEK_API_KEY",
|
|
72
|
+
create: (params) => new DeepSeekChatModel({
|
|
73
|
+
...params,
|
|
74
|
+
clientOptions
|
|
75
|
+
})
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: [GeminiChatModel.name, GOOGLE],
|
|
79
|
+
apiKeyEnvName: ["GEMINI_API_KEY", "GOOGLE_API_KEY"],
|
|
80
|
+
create: (params) => new GeminiChatModel({
|
|
81
|
+
...params,
|
|
82
|
+
clientOptions: { httpOptions: clientOptions.fetchOptions }
|
|
83
|
+
})
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: OllamaChatModel.name,
|
|
87
|
+
apiKeyEnvName: "OLLAMA_API_KEY",
|
|
88
|
+
create: (params) => new OllamaChatModel({
|
|
89
|
+
...params,
|
|
90
|
+
clientOptions
|
|
91
|
+
})
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: OpenRouterChatModel.name,
|
|
95
|
+
apiKeyEnvName: "OPEN_ROUTER_API_KEY",
|
|
96
|
+
create: (params) => new OpenRouterChatModel({
|
|
97
|
+
...params,
|
|
98
|
+
clientOptions
|
|
99
|
+
})
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: XAIChatModel.name,
|
|
103
|
+
apiKeyEnvName: "XAI_API_KEY",
|
|
104
|
+
create: (params) => new XAIChatModel({
|
|
105
|
+
...params,
|
|
106
|
+
clientOptions
|
|
107
|
+
})
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
name: DoubaoChatModel.name,
|
|
111
|
+
apiKeyEnvName: "DOUBAO_API_KEY",
|
|
112
|
+
create: (params) => new DoubaoChatModel({
|
|
113
|
+
...params,
|
|
114
|
+
clientOptions
|
|
115
|
+
})
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
name: PoeChatModel.name,
|
|
119
|
+
apiKeyEnvName: "POE_API_KEY",
|
|
120
|
+
create: (params) => new PoeChatModel({
|
|
121
|
+
...params,
|
|
122
|
+
clientOptions
|
|
123
|
+
})
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: AIGNEHubChatModel.name,
|
|
127
|
+
apiKeyEnvName: "AIGNE_HUB_API_KEY",
|
|
128
|
+
create: (params) => new AIGNEHubChatModel({
|
|
129
|
+
...params,
|
|
130
|
+
clientOptions
|
|
131
|
+
})
|
|
132
|
+
}
|
|
133
|
+
];
|
|
134
|
+
}
|
|
135
|
+
function availableImageModels() {
|
|
136
|
+
const { clientOptions } = getClientOptions();
|
|
137
|
+
return [
|
|
138
|
+
{
|
|
139
|
+
name: OpenAIImageModel.name,
|
|
140
|
+
apiKeyEnvName: "OPENAI_API_KEY",
|
|
141
|
+
create: (params) => new OpenAIImageModel({
|
|
142
|
+
...params,
|
|
143
|
+
clientOptions
|
|
144
|
+
})
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: [GeminiImageModel.name, GOOGLE],
|
|
148
|
+
apiKeyEnvName: "GEMINI_API_KEY",
|
|
149
|
+
create: (params) => new GeminiImageModel({
|
|
150
|
+
...params,
|
|
151
|
+
clientOptions
|
|
152
|
+
})
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: IdeogramImageModel.name,
|
|
156
|
+
apiKeyEnvName: "IDEOGRAM_API_KEY",
|
|
157
|
+
create: (params) => new IdeogramImageModel({ ...params })
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
name: DoubaoImageModel.name,
|
|
161
|
+
apiKeyEnvName: "DOUBAO_API_KEY",
|
|
162
|
+
create: (params) => new DoubaoImageModel({
|
|
163
|
+
...params,
|
|
164
|
+
clientOptions
|
|
165
|
+
})
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
name: AIGNEHubImageModel.name,
|
|
169
|
+
apiKeyEnvName: "AIGNE_HUB_API_KEY",
|
|
170
|
+
create: (params) => new AIGNEHubImageModel({
|
|
171
|
+
...params,
|
|
172
|
+
clientOptions
|
|
173
|
+
})
|
|
174
|
+
}
|
|
175
|
+
];
|
|
176
|
+
}
|
|
177
|
+
function availableVideoModels() {
|
|
178
|
+
const { clientOptions } = getClientOptions();
|
|
179
|
+
return [
|
|
180
|
+
{
|
|
181
|
+
name: OpenAIVideoModel.name,
|
|
182
|
+
apiKeyEnvName: "OPENAI_API_KEY",
|
|
183
|
+
create: (params) => new OpenAIVideoModel({
|
|
184
|
+
...params,
|
|
185
|
+
clientOptions
|
|
186
|
+
})
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
name: [GeminiVideoModel.name, GOOGLE],
|
|
190
|
+
apiKeyEnvName: "GEMINI_API_KEY",
|
|
191
|
+
create: (params) => new GeminiVideoModel({
|
|
192
|
+
...params,
|
|
193
|
+
clientOptions
|
|
194
|
+
})
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
name: AIGNEHubVideoModel.name,
|
|
198
|
+
apiKeyEnvName: "AIGNE_HUB_API_KEY",
|
|
199
|
+
create: (params) => new AIGNEHubVideoModel({
|
|
200
|
+
...params,
|
|
201
|
+
clientOptions
|
|
202
|
+
})
|
|
203
|
+
}
|
|
204
|
+
];
|
|
205
|
+
}
|
|
206
|
+
function findModel(provider) {
|
|
207
|
+
provider = provider.toLowerCase().replace(/-/g, "");
|
|
208
|
+
const all = availableModels();
|
|
209
|
+
return {
|
|
210
|
+
all,
|
|
211
|
+
match: all.find((m) => {
|
|
212
|
+
if (typeof m.name === "string") return m.name.toLowerCase().includes(provider);
|
|
213
|
+
return m.name.some((n) => n.toLowerCase().includes(provider));
|
|
214
|
+
})
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
function findImageModel(provider) {
|
|
218
|
+
provider = provider.toLowerCase().replace(/-/g, "");
|
|
219
|
+
const all = availableImageModels();
|
|
220
|
+
return {
|
|
221
|
+
all,
|
|
222
|
+
match: all.find((m) => {
|
|
223
|
+
if (typeof m.name === "string") return m.name.toLowerCase().includes(provider);
|
|
224
|
+
return m.name.some((n) => n.toLowerCase().includes(provider));
|
|
225
|
+
})
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
function findVideoModel(provider) {
|
|
229
|
+
provider = provider.toLowerCase().replace(/-/g, "");
|
|
230
|
+
const all = availableVideoModels();
|
|
231
|
+
return {
|
|
232
|
+
all,
|
|
233
|
+
match: all.find((m) => {
|
|
234
|
+
if (typeof m.name === "string") return m.name.toLowerCase().includes(provider);
|
|
235
|
+
return m.name.some((n) => n.toLowerCase().includes(provider));
|
|
236
|
+
})
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
const parseModel = (model) => {
|
|
240
|
+
model = model.replace(/^([\w-]+):/, "$1/");
|
|
241
|
+
let { provider, name } = model.match(/(?<provider>[^/]*)(\/(?<name>.*))?/)?.groups ?? {};
|
|
242
|
+
provider = provider?.replace(/-/g, "");
|
|
243
|
+
if (provider ? findModel(provider)?.match : void 0) return {
|
|
244
|
+
provider,
|
|
245
|
+
model: name
|
|
246
|
+
};
|
|
247
|
+
return {
|
|
248
|
+
provider: AIGNE_HUB_PROVIDER,
|
|
249
|
+
model
|
|
250
|
+
};
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
//#endregion
|
|
254
|
+
export { availableImageModels, availableModels, availableVideoModels, findImageModel, findModel, findVideoModel, parseModel };
|
|
255
|
+
//# sourceMappingURL=model.mjs.map
|
|
@@ -0,0 +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 type {\n ChatModel,\n ChatModelInputOptionsWithGetter,\n ImageModel,\n ImageModelInputOptionsWithGetter,\n VideoModel,\n} from \"@aigne/core\";\nimport { DeepSeekChatModel } from \"@aigne/deepseek\";\nimport { DoubaoChatModel, DoubaoImageModel } from \"@aigne/doubao\";\nimport { GeminiChatModel, GeminiImageModel, GeminiVideoModel } from \"@aigne/gemini\";\nimport { IdeogramImageModel } from \"@aigne/ideogram\";\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 { AIGNEHubImageModel } from \"../aigne-hub-image-model.js\";\nimport { AIGNEHubChatModel } from \"../aigne-hub-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?: ChatModelInputOptionsWithGetter;\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?: ImageModelInputOptionsWithGetter;\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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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
let zod = require("zod");
|
|
2
|
+
|
|
3
|
+
//#region src/utils/type.ts
|
|
4
|
+
const aigneHubModelOptionsSchema = zod.z.object({
|
|
5
|
+
baseURL: zod.z.string().optional(),
|
|
6
|
+
apiKey: zod.z.string().optional(),
|
|
7
|
+
model: zod.z.string().optional(),
|
|
8
|
+
modelOptions: zod.z.object({
|
|
9
|
+
model: zod.z.string().optional(),
|
|
10
|
+
temperature: zod.z.number().optional(),
|
|
11
|
+
topP: zod.z.number().optional(),
|
|
12
|
+
frequencyPenalty: zod.z.number().optional(),
|
|
13
|
+
presencePenalty: zod.z.number().optional(),
|
|
14
|
+
parallelToolCalls: zod.z.boolean().optional().default(true)
|
|
15
|
+
}).optional(),
|
|
16
|
+
clientOptions: zod.z.object({}).optional()
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
exports.aigneHubModelOptionsSchema = aigneHubModelOptionsSchema;
|