@push.rocks/smartai 0.13.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_ts/00_commitinfo_data.js +3 -3
- package/dist_ts/index.d.ts +6 -11
- package/dist_ts/index.js +6 -12
- package/dist_ts/plugins.d.ts +10 -15
- package/dist_ts/plugins.js +13 -19
- package/dist_ts/smartai.classes.smartai.d.ts +7 -0
- package/dist_ts/smartai.classes.smartai.js +51 -0
- package/dist_ts/smartai.interfaces.d.ts +41 -0
- package/dist_ts/smartai.interfaces.js +2 -0
- package/dist_ts/smartai.middleware.anthropic.d.ts +7 -0
- package/dist_ts/smartai.middleware.anthropic.js +36 -0
- package/dist_ts/smartai.provider.ollama.d.ts +8 -0
- package/dist_ts/smartai.provider.ollama.js +378 -0
- package/dist_ts_audio/index.d.ts +9 -0
- package/dist_ts_audio/index.js +15 -0
- package/dist_ts_audio/plugins.d.ts +2 -0
- package/dist_ts_audio/plugins.js +3 -0
- package/dist_ts_document/index.d.ts +11 -0
- package/dist_ts_document/index.js +45 -0
- package/dist_ts_document/plugins.d.ts +3 -0
- package/dist_ts_document/plugins.js +4 -0
- package/dist_ts_image/index.d.ts +46 -0
- package/dist_ts_image/index.js +110 -0
- package/dist_ts_image/plugins.d.ts +3 -0
- package/dist_ts_image/plugins.js +4 -0
- package/dist_ts_research/index.d.ts +19 -0
- package/dist_ts_research/index.js +98 -0
- package/dist_ts_research/plugins.d.ts +2 -0
- package/dist_ts_research/plugins.js +3 -0
- package/dist_ts_vision/index.d.ts +8 -0
- package/dist_ts_vision/index.js +21 -0
- package/dist_ts_vision/plugins.d.ts +2 -0
- package/dist_ts_vision/plugins.js +3 -0
- package/package.json +50 -22
- package/readme.hints.md +34 -88
- package/readme.md +284 -547
- package/ts/00_commitinfo_data.ts +2 -2
- package/ts/index.ts +8 -11
- package/ts/plugins.ts +19 -35
- package/ts/smartai.classes.smartai.ts +51 -0
- package/ts/smartai.interfaces.ts +53 -0
- package/ts/smartai.middleware.anthropic.ts +38 -0
- package/ts/smartai.provider.ollama.ts +426 -0
- package/ts_audio/index.ts +24 -0
- package/ts_audio/plugins.ts +2 -0
- package/ts_document/index.ts +61 -0
- package/ts_document/plugins.ts +3 -0
- package/ts_image/index.ts +147 -0
- package/ts_image/plugins.ts +3 -0
- package/ts_research/index.ts +120 -0
- package/ts_research/plugins.ts +2 -0
- package/ts_vision/index.ts +29 -0
- package/ts_vision/plugins.ts +2 -0
- package/dist_ts/abstract.classes.multimodal.d.ts +0 -212
- package/dist_ts/abstract.classes.multimodal.js +0 -43
- package/dist_ts/classes.conversation.d.ts +0 -31
- package/dist_ts/classes.conversation.js +0 -150
- package/dist_ts/classes.smartai.d.ts +0 -59
- package/dist_ts/classes.smartai.js +0 -139
- package/dist_ts/classes.tts.d.ts +0 -6
- package/dist_ts/classes.tts.js +0 -10
- package/dist_ts/interfaces.d.ts +0 -1
- package/dist_ts/interfaces.js +0 -2
- package/dist_ts/paths.d.ts +0 -2
- package/dist_ts/paths.js +0 -4
- package/dist_ts/provider.anthropic.d.ts +0 -48
- package/dist_ts/provider.anthropic.js +0 -369
- package/dist_ts/provider.elevenlabs.d.ts +0 -43
- package/dist_ts/provider.elevenlabs.js +0 -64
- package/dist_ts/provider.exo.d.ts +0 -40
- package/dist_ts/provider.exo.js +0 -116
- package/dist_ts/provider.groq.d.ts +0 -39
- package/dist_ts/provider.groq.js +0 -178
- package/dist_ts/provider.mistral.d.ts +0 -61
- package/dist_ts/provider.mistral.js +0 -288
- package/dist_ts/provider.ollama.d.ts +0 -141
- package/dist_ts/provider.ollama.js +0 -529
- package/dist_ts/provider.openai.d.ts +0 -62
- package/dist_ts/provider.openai.js +0 -403
- package/dist_ts/provider.perplexity.d.ts +0 -37
- package/dist_ts/provider.perplexity.js +0 -215
- package/dist_ts/provider.xai.d.ts +0 -52
- package/dist_ts/provider.xai.js +0 -160
- package/ts/abstract.classes.multimodal.ts +0 -240
- package/ts/classes.conversation.ts +0 -176
- package/ts/classes.smartai.ts +0 -187
- package/ts/classes.tts.ts +0 -15
- package/ts/interfaces.ts +0 -0
- package/ts/paths.ts +0 -4
- package/ts/provider.anthropic.ts +0 -446
- package/ts/provider.elevenlabs.ts +0 -116
- package/ts/provider.exo.ts +0 -155
- package/ts/provider.groq.ts +0 -219
- package/ts/provider.mistral.ts +0 -352
- package/ts/provider.ollama.ts +0 -705
- package/ts/provider.openai.ts +0 -462
- package/ts/provider.perplexity.ts +0 -259
- package/ts/provider.xai.ts +0 -214
|
@@ -1,403 +0,0 @@
|
|
|
1
|
-
import * as plugins from './plugins.js';
|
|
2
|
-
import * as paths from './paths.js';
|
|
3
|
-
import { Readable } from 'stream';
|
|
4
|
-
import { toFile } from 'openai';
|
|
5
|
-
import { MultiModalModel } from './abstract.classes.multimodal.js';
|
|
6
|
-
export class OpenAiProvider extends MultiModalModel {
|
|
7
|
-
constructor(optionsArg) {
|
|
8
|
-
super();
|
|
9
|
-
this.options = optionsArg;
|
|
10
|
-
}
|
|
11
|
-
async start() {
|
|
12
|
-
await super.start();
|
|
13
|
-
this.openAiApiClient = new plugins.openai.default({
|
|
14
|
-
apiKey: this.options.openaiToken,
|
|
15
|
-
dangerouslyAllowBrowser: true,
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
async stop() {
|
|
19
|
-
await super.stop();
|
|
20
|
-
}
|
|
21
|
-
async chatStream(input) {
|
|
22
|
-
// Create a TextDecoder to handle incoming chunks
|
|
23
|
-
const decoder = new TextDecoder();
|
|
24
|
-
let buffer = '';
|
|
25
|
-
let currentMessage = null;
|
|
26
|
-
// Create a TransformStream to process the input
|
|
27
|
-
const transform = new TransformStream({
|
|
28
|
-
transform: async (chunk, controller) => {
|
|
29
|
-
buffer += decoder.decode(chunk, { stream: true });
|
|
30
|
-
// Try to parse complete JSON messages from the buffer
|
|
31
|
-
while (true) {
|
|
32
|
-
const newlineIndex = buffer.indexOf('\n');
|
|
33
|
-
if (newlineIndex === -1)
|
|
34
|
-
break;
|
|
35
|
-
const line = buffer.slice(0, newlineIndex);
|
|
36
|
-
buffer = buffer.slice(newlineIndex + 1);
|
|
37
|
-
if (line.trim()) {
|
|
38
|
-
try {
|
|
39
|
-
const message = JSON.parse(line);
|
|
40
|
-
currentMessage = {
|
|
41
|
-
role: (message.role || 'user'),
|
|
42
|
-
content: message.content || '',
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
catch (e) {
|
|
46
|
-
console.error('Failed to parse message:', e);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
// If we have a complete message, send it to OpenAI
|
|
51
|
-
if (currentMessage) {
|
|
52
|
-
const messageToSend = { role: "user", content: currentMessage.content };
|
|
53
|
-
const chatModel = this.options.chatModel ?? 'gpt-5-mini';
|
|
54
|
-
const requestParams = {
|
|
55
|
-
model: chatModel,
|
|
56
|
-
messages: [messageToSend],
|
|
57
|
-
stream: true,
|
|
58
|
-
};
|
|
59
|
-
// Temperature is omitted since the model does not support it.
|
|
60
|
-
const stream = await this.openAiApiClient.chat.completions.create(requestParams);
|
|
61
|
-
// Explicitly cast the stream as an async iterable to satisfy TypeScript.
|
|
62
|
-
const streamAsyncIterable = stream;
|
|
63
|
-
// Process each chunk from OpenAI
|
|
64
|
-
for await (const chunk of streamAsyncIterable) {
|
|
65
|
-
const content = chunk.choices[0]?.delta?.content;
|
|
66
|
-
if (content) {
|
|
67
|
-
controller.enqueue(content);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
currentMessage = null;
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
flush(controller) {
|
|
74
|
-
if (buffer) {
|
|
75
|
-
try {
|
|
76
|
-
const message = JSON.parse(buffer);
|
|
77
|
-
controller.enqueue(message.content || '');
|
|
78
|
-
}
|
|
79
|
-
catch (e) {
|
|
80
|
-
console.error('Failed to parse remaining buffer:', e);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
// Connect the input to our transform stream
|
|
86
|
-
return input.pipeThrough(transform);
|
|
87
|
-
}
|
|
88
|
-
// Implementing the synchronous chat interaction
|
|
89
|
-
async chat(optionsArg) {
|
|
90
|
-
const chatModel = this.options.chatModel ?? 'gpt-5-mini';
|
|
91
|
-
const requestParams = {
|
|
92
|
-
model: chatModel,
|
|
93
|
-
messages: [
|
|
94
|
-
{ role: 'system', content: optionsArg.systemMessage },
|
|
95
|
-
...optionsArg.messageHistory,
|
|
96
|
-
{ role: 'user', content: optionsArg.userMessage },
|
|
97
|
-
],
|
|
98
|
-
};
|
|
99
|
-
// Temperature parameter removed to avoid unsupported error.
|
|
100
|
-
const result = await this.openAiApiClient.chat.completions.create(requestParams);
|
|
101
|
-
return {
|
|
102
|
-
role: result.choices[0].message.role,
|
|
103
|
-
message: result.choices[0].message.content,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
async audio(optionsArg) {
|
|
107
|
-
const done = plugins.smartpromise.defer();
|
|
108
|
-
const result = await this.openAiApiClient.audio.speech.create({
|
|
109
|
-
model: this.options.audioModel ?? 'tts-1-hd',
|
|
110
|
-
input: optionsArg.message,
|
|
111
|
-
voice: 'nova',
|
|
112
|
-
response_format: 'mp3',
|
|
113
|
-
speed: 1,
|
|
114
|
-
});
|
|
115
|
-
const stream = result.body;
|
|
116
|
-
const nodeStream = Readable.fromWeb(stream);
|
|
117
|
-
done.resolve(nodeStream);
|
|
118
|
-
return done.promise;
|
|
119
|
-
}
|
|
120
|
-
async document(optionsArg) {
|
|
121
|
-
// Ensure SmartPdf is initialized before processing documents
|
|
122
|
-
await this.ensureSmartpdfReady();
|
|
123
|
-
let pdfDocumentImageBytesArray = [];
|
|
124
|
-
// Convert each PDF into one or more image byte arrays.
|
|
125
|
-
for (const pdfDocument of optionsArg.pdfDocuments) {
|
|
126
|
-
const documentImageArray = await this.smartpdfInstance.convertPDFToPngBytes(pdfDocument);
|
|
127
|
-
pdfDocumentImageBytesArray = pdfDocumentImageBytesArray.concat(documentImageArray);
|
|
128
|
-
}
|
|
129
|
-
console.log(`image smartfile array`);
|
|
130
|
-
console.log(pdfDocumentImageBytesArray.map((smartfile) => smartfile.length));
|
|
131
|
-
// Filter out any empty buffers to avoid sending invalid image URLs.
|
|
132
|
-
const validImageBytesArray = pdfDocumentImageBytesArray.filter(imageBytes => imageBytes && imageBytes.length > 0);
|
|
133
|
-
const imageAttachments = validImageBytesArray.map(imageBytes => ({
|
|
134
|
-
type: 'image_url',
|
|
135
|
-
image_url: {
|
|
136
|
-
url: 'data:image/png;base64,' + Buffer.from(imageBytes).toString('base64'),
|
|
137
|
-
},
|
|
138
|
-
}));
|
|
139
|
-
const chatModel = this.options.chatModel ?? 'gpt-5-mini';
|
|
140
|
-
const requestParams = {
|
|
141
|
-
model: chatModel,
|
|
142
|
-
messages: [
|
|
143
|
-
{ role: 'system', content: optionsArg.systemMessage },
|
|
144
|
-
...optionsArg.messageHistory,
|
|
145
|
-
{
|
|
146
|
-
role: 'user',
|
|
147
|
-
content: [
|
|
148
|
-
{ type: 'text', text: optionsArg.userMessage },
|
|
149
|
-
...imageAttachments,
|
|
150
|
-
],
|
|
151
|
-
},
|
|
152
|
-
],
|
|
153
|
-
};
|
|
154
|
-
// Temperature parameter removed.
|
|
155
|
-
const result = await this.openAiApiClient.chat.completions.create(requestParams);
|
|
156
|
-
return {
|
|
157
|
-
message: result.choices[0].message,
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
async vision(optionsArg) {
|
|
161
|
-
const visionModel = this.options.visionModel ?? '04-mini';
|
|
162
|
-
const requestParams = {
|
|
163
|
-
model: visionModel,
|
|
164
|
-
messages: [
|
|
165
|
-
{
|
|
166
|
-
role: 'user',
|
|
167
|
-
content: [
|
|
168
|
-
{ type: 'text', text: optionsArg.prompt },
|
|
169
|
-
{
|
|
170
|
-
type: 'image_url',
|
|
171
|
-
image_url: {
|
|
172
|
-
url: `data:image/jpeg;base64,${optionsArg.image.toString('base64')}`
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
]
|
|
176
|
-
}
|
|
177
|
-
],
|
|
178
|
-
max_tokens: 300
|
|
179
|
-
};
|
|
180
|
-
const result = await this.openAiApiClient.chat.completions.create(requestParams);
|
|
181
|
-
return result.choices[0].message.content || '';
|
|
182
|
-
}
|
|
183
|
-
async research(optionsArg) {
|
|
184
|
-
// Determine which model to use - Deep Research API requires specific models
|
|
185
|
-
let model;
|
|
186
|
-
if (optionsArg.searchDepth === 'deep') {
|
|
187
|
-
model = this.options.researchModel || 'o4-mini-deep-research-2025-06-26';
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
// For basic/advanced, still use deep research models if web search is needed
|
|
191
|
-
if (optionsArg.includeWebSearch) {
|
|
192
|
-
model = this.options.researchModel || 'o4-mini-deep-research-2025-06-26';
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
model = this.options.chatModel || 'gpt-5-mini';
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
const systemMessage = 'You are a research assistant. Provide comprehensive answers with citations and sources when available.';
|
|
199
|
-
// Prepare request parameters using Deep Research API format
|
|
200
|
-
const requestParams = {
|
|
201
|
-
model,
|
|
202
|
-
instructions: systemMessage,
|
|
203
|
-
input: optionsArg.query
|
|
204
|
-
};
|
|
205
|
-
// Add web search tool if requested
|
|
206
|
-
if (optionsArg.includeWebSearch || optionsArg.searchDepth === 'deep') {
|
|
207
|
-
requestParams.tools = [
|
|
208
|
-
{
|
|
209
|
-
type: 'web_search_preview',
|
|
210
|
-
search_context_size: optionsArg.searchDepth === 'deep' ? 'high' :
|
|
211
|
-
optionsArg.searchDepth === 'advanced' ? 'medium' : 'low'
|
|
212
|
-
}
|
|
213
|
-
];
|
|
214
|
-
}
|
|
215
|
-
// Add background flag for deep research
|
|
216
|
-
if (optionsArg.background && optionsArg.searchDepth === 'deep') {
|
|
217
|
-
requestParams.background = true;
|
|
218
|
-
}
|
|
219
|
-
try {
|
|
220
|
-
// Execute the research request using Deep Research API
|
|
221
|
-
const result = await this.openAiApiClient.responses.create(requestParams);
|
|
222
|
-
// Extract the answer from output items
|
|
223
|
-
let answer = '';
|
|
224
|
-
const sources = [];
|
|
225
|
-
const searchQueries = [];
|
|
226
|
-
// Process output items
|
|
227
|
-
for (const item of result.output || []) {
|
|
228
|
-
// Extract message content
|
|
229
|
-
if (item.type === 'message' && 'content' in item) {
|
|
230
|
-
const messageItem = item;
|
|
231
|
-
for (const contentItem of messageItem.content || []) {
|
|
232
|
-
if (contentItem.type === 'output_text' && 'text' in contentItem) {
|
|
233
|
-
answer += contentItem.text;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
// Extract web search queries
|
|
238
|
-
if (item.type === 'web_search_call' && 'action' in item) {
|
|
239
|
-
const searchItem = item;
|
|
240
|
-
if (searchItem.action && searchItem.action.type === 'search' && 'query' in searchItem.action) {
|
|
241
|
-
searchQueries.push(searchItem.action.query);
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
// Parse sources from markdown links in the answer
|
|
246
|
-
const urlRegex = /\[([^\]]+)\]\(([^)]+)\)/g;
|
|
247
|
-
let match;
|
|
248
|
-
while ((match = urlRegex.exec(answer)) !== null) {
|
|
249
|
-
sources.push({
|
|
250
|
-
title: match[1],
|
|
251
|
-
url: match[2],
|
|
252
|
-
snippet: ''
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
return {
|
|
256
|
-
answer,
|
|
257
|
-
sources,
|
|
258
|
-
searchQueries: searchQueries.length > 0 ? searchQueries : undefined,
|
|
259
|
-
metadata: {
|
|
260
|
-
model,
|
|
261
|
-
searchDepth: optionsArg.searchDepth || 'basic',
|
|
262
|
-
tokensUsed: result.usage?.total_tokens
|
|
263
|
-
}
|
|
264
|
-
};
|
|
265
|
-
}
|
|
266
|
-
catch (error) {
|
|
267
|
-
console.error('Research API error:', error);
|
|
268
|
-
throw new Error(`Failed to perform research: ${error.message}`);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
/**
|
|
272
|
-
* Image generation using OpenAI's gpt-image-1 or DALL-E models
|
|
273
|
-
*/
|
|
274
|
-
async imageGenerate(optionsArg) {
|
|
275
|
-
const model = optionsArg.model || this.options.imageModel || 'gpt-image-1';
|
|
276
|
-
try {
|
|
277
|
-
const requestParams = {
|
|
278
|
-
model,
|
|
279
|
-
prompt: optionsArg.prompt,
|
|
280
|
-
n: optionsArg.n || 1,
|
|
281
|
-
};
|
|
282
|
-
// Add gpt-image-1 specific parameters
|
|
283
|
-
if (model === 'gpt-image-1') {
|
|
284
|
-
if (optionsArg.quality)
|
|
285
|
-
requestParams.quality = optionsArg.quality;
|
|
286
|
-
if (optionsArg.size)
|
|
287
|
-
requestParams.size = optionsArg.size;
|
|
288
|
-
if (optionsArg.background)
|
|
289
|
-
requestParams.background = optionsArg.background;
|
|
290
|
-
if (optionsArg.outputFormat)
|
|
291
|
-
requestParams.output_format = optionsArg.outputFormat;
|
|
292
|
-
if (optionsArg.outputCompression !== undefined)
|
|
293
|
-
requestParams.output_compression = optionsArg.outputCompression;
|
|
294
|
-
if (optionsArg.moderation)
|
|
295
|
-
requestParams.moderation = optionsArg.moderation;
|
|
296
|
-
if (optionsArg.stream !== undefined)
|
|
297
|
-
requestParams.stream = optionsArg.stream;
|
|
298
|
-
if (optionsArg.partialImages !== undefined)
|
|
299
|
-
requestParams.partial_images = optionsArg.partialImages;
|
|
300
|
-
}
|
|
301
|
-
else if (model === 'dall-e-3') {
|
|
302
|
-
// DALL-E 3 specific parameters
|
|
303
|
-
if (optionsArg.quality)
|
|
304
|
-
requestParams.quality = optionsArg.quality;
|
|
305
|
-
if (optionsArg.size)
|
|
306
|
-
requestParams.size = optionsArg.size;
|
|
307
|
-
if (optionsArg.style)
|
|
308
|
-
requestParams.style = optionsArg.style;
|
|
309
|
-
requestParams.response_format = 'b64_json'; // Always use base64 for consistency
|
|
310
|
-
}
|
|
311
|
-
else if (model === 'dall-e-2') {
|
|
312
|
-
// DALL-E 2 specific parameters
|
|
313
|
-
if (optionsArg.size)
|
|
314
|
-
requestParams.size = optionsArg.size;
|
|
315
|
-
requestParams.response_format = 'b64_json';
|
|
316
|
-
}
|
|
317
|
-
const result = await this.openAiApiClient.images.generate(requestParams);
|
|
318
|
-
const images = (result.data || []).map(img => ({
|
|
319
|
-
b64_json: img.b64_json,
|
|
320
|
-
url: img.url,
|
|
321
|
-
revisedPrompt: img.revised_prompt
|
|
322
|
-
}));
|
|
323
|
-
return {
|
|
324
|
-
images,
|
|
325
|
-
metadata: {
|
|
326
|
-
model,
|
|
327
|
-
quality: result.quality,
|
|
328
|
-
size: result.size,
|
|
329
|
-
outputFormat: result.output_format,
|
|
330
|
-
tokensUsed: result.usage?.total_tokens
|
|
331
|
-
}
|
|
332
|
-
};
|
|
333
|
-
}
|
|
334
|
-
catch (error) {
|
|
335
|
-
console.error('Image generation error:', error);
|
|
336
|
-
throw new Error(`Failed to generate image: ${error.message}`);
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
/**
|
|
340
|
-
* Image editing using OpenAI's gpt-image-1 or DALL-E 2 models
|
|
341
|
-
*/
|
|
342
|
-
async imageEdit(optionsArg) {
|
|
343
|
-
const model = optionsArg.model || this.options.imageModel || 'gpt-image-1';
|
|
344
|
-
try {
|
|
345
|
-
// Convert Buffer to uploadable file format for OpenAI API
|
|
346
|
-
const imageFile = await toFile(optionsArg.image, 'image.png', { type: 'image/png' });
|
|
347
|
-
const requestParams = {
|
|
348
|
-
model,
|
|
349
|
-
image: imageFile,
|
|
350
|
-
prompt: optionsArg.prompt,
|
|
351
|
-
n: optionsArg.n || 1,
|
|
352
|
-
};
|
|
353
|
-
// Add mask if provided (also convert to file format)
|
|
354
|
-
if (optionsArg.mask) {
|
|
355
|
-
requestParams.mask = await toFile(optionsArg.mask, 'mask.png', { type: 'image/png' });
|
|
356
|
-
}
|
|
357
|
-
// Add gpt-image-1 specific parameters
|
|
358
|
-
if (model === 'gpt-image-1') {
|
|
359
|
-
if (optionsArg.quality)
|
|
360
|
-
requestParams.quality = optionsArg.quality;
|
|
361
|
-
if (optionsArg.size)
|
|
362
|
-
requestParams.size = optionsArg.size;
|
|
363
|
-
if (optionsArg.background)
|
|
364
|
-
requestParams.background = optionsArg.background;
|
|
365
|
-
if (optionsArg.outputFormat)
|
|
366
|
-
requestParams.output_format = optionsArg.outputFormat;
|
|
367
|
-
if (optionsArg.outputCompression !== undefined)
|
|
368
|
-
requestParams.output_compression = optionsArg.outputCompression;
|
|
369
|
-
if (optionsArg.stream !== undefined)
|
|
370
|
-
requestParams.stream = optionsArg.stream;
|
|
371
|
-
if (optionsArg.partialImages !== undefined)
|
|
372
|
-
requestParams.partial_images = optionsArg.partialImages;
|
|
373
|
-
}
|
|
374
|
-
else if (model === 'dall-e-2') {
|
|
375
|
-
// DALL-E 2 specific parameters
|
|
376
|
-
if (optionsArg.size)
|
|
377
|
-
requestParams.size = optionsArg.size;
|
|
378
|
-
requestParams.response_format = 'b64_json';
|
|
379
|
-
}
|
|
380
|
-
const result = await this.openAiApiClient.images.edit(requestParams);
|
|
381
|
-
const images = (result.data || []).map(img => ({
|
|
382
|
-
b64_json: img.b64_json,
|
|
383
|
-
url: img.url,
|
|
384
|
-
revisedPrompt: img.revised_prompt
|
|
385
|
-
}));
|
|
386
|
-
return {
|
|
387
|
-
images,
|
|
388
|
-
metadata: {
|
|
389
|
-
model,
|
|
390
|
-
quality: result.quality,
|
|
391
|
-
size: result.size,
|
|
392
|
-
outputFormat: result.output_format,
|
|
393
|
-
tokensUsed: result.usage?.total_tokens
|
|
394
|
-
}
|
|
395
|
-
};
|
|
396
|
-
}
|
|
397
|
-
catch (error) {
|
|
398
|
-
console.error('Image edit error:', error);
|
|
399
|
-
throw new Error(`Failed to edit image: ${error.message}`);
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIub3BlbmFpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvcHJvdmlkZXIub3BlbmFpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQVFoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFtQm5FLE1BQU0sT0FBTyxjQUFlLFNBQVEsZUFBZTtJQUlqRCxZQUFZLFVBQWtDO1FBQzVDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNoRCxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQ2hDLHVCQUF1QixFQUFFLElBQUk7U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJO1FBQ2YsTUFBTSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBaUM7UUFDdkQsaURBQWlEO1FBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksY0FBYyxHQUdQLElBQUksQ0FBQztRQUVoQixnREFBZ0Q7UUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQXFCO1lBQ3hELFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFO2dCQUNyQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFFbEQsc0RBQXNEO2dCQUN0RCxPQUFPLElBQUksRUFBRSxDQUFDO29CQUNaLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzFDLElBQUksWUFBWSxLQUFLLENBQUMsQ0FBQzt3QkFBRSxNQUFNO29CQUUvQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztvQkFDM0MsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUV4QyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO3dCQUNoQixJQUFJLENBQUM7NEJBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDakMsY0FBYyxHQUFHO2dDQUNmLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUF3RTtnQ0FDckcsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRTs2QkFDL0IsQ0FBQzt3QkFDSixDQUFDO3dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7NEJBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDL0MsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7Z0JBRUQsbURBQW1EO2dCQUNuRCxJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUNuQixNQUFNLGFBQWEsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFlLEVBQUUsT0FBTyxFQUFFLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDakYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksWUFBWSxDQUFDO29CQUN6RCxNQUFNLGFBQWEsR0FBUTt3QkFDekIsS0FBSyxFQUFFLFNBQVM7d0JBQ2hCLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQzt3QkFDekIsTUFBTSxFQUFFLElBQUk7cUJBQ2IsQ0FBQztvQkFDRiw4REFBOEQ7b0JBQzlELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDakYseUVBQXlFO29CQUN6RSxNQUFNLG1CQUFtQixHQUFHLE1BQStDLENBQUM7b0JBQzVFLGlDQUFpQztvQkFDakMsSUFBSSxLQUFLLEVBQUUsTUFBTSxLQUFLLElBQUksbUJBQW1CLEVBQUUsQ0FBQzt3QkFDOUMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO3dCQUNqRCxJQUFJLE9BQU8sRUFBRSxDQUFDOzRCQUNaLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQzlCLENBQUM7b0JBQ0gsQ0FBQztvQkFDRCxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixDQUFDO1lBQ0gsQ0FBQztZQUVELEtBQUssQ0FBQyxVQUFVO2dCQUNkLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1gsSUFBSSxDQUFDO3dCQUNILE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQ25DLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDNUMsQ0FBQztvQkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO3dCQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3hELENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7U0FDRixDQUFDLENBQUM7UUFFSCw0Q0FBNEM7UUFDNUMsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxnREFBZ0Q7SUFDekMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQU9qQjtRQUNDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLFlBQVksQ0FBQztRQUN6RCxNQUFNLGFBQWEsR0FBUTtZQUN6QixLQUFLLEVBQUUsU0FBUztZQUNoQixRQUFRLEVBQUU7Z0JBQ1IsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsYUFBYSxFQUFFO2dCQUNyRCxHQUFHLFVBQVUsQ0FBQyxjQUFjO2dCQUM1QixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxXQUFXLEVBQUU7YUFDbEQ7U0FDRixDQUFDO1FBQ0YsNERBQTREO1FBQzVELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRixPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQW1CO1lBQ25ELE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPO1NBQzNDLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUErQjtRQUNoRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBeUIsQ0FBQztRQUNqRSxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDNUQsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLFVBQVU7WUFDNUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxPQUFPO1lBQ3pCLEtBQUssRUFBRSxNQUFNO1lBQ2IsZUFBZSxFQUFFLEtBQUs7WUFDdEIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzNCLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBYSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFRckI7UUFDQyw2REFBNkQ7UUFDN0QsTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUVqQyxJQUFJLDBCQUEwQixHQUFpQixFQUFFLENBQUM7UUFFbEQsdURBQXVEO1FBQ3ZELEtBQUssTUFBTSxXQUFXLElBQUksVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xELE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWlCLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUYsMEJBQTBCLEdBQUcsMEJBQTBCLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckYsQ0FBQztRQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFN0Usb0VBQW9FO1FBQ3BFLE1BQU0sb0JBQW9CLEdBQUcsMEJBQTBCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEgsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELElBQUksRUFBRSxXQUFXO1lBQ2pCLFNBQVMsRUFBRTtnQkFDVCxHQUFHLEVBQUUsd0JBQXdCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO2FBQzNFO1NBQ0YsQ0FBQyxDQUFDLENBQUM7UUFFSixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxZQUFZLENBQUM7UUFDekQsTUFBTSxhQUFhLEdBQVE7WUFDekIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsUUFBUSxFQUFFO2dCQUNSLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLGFBQWEsRUFBRTtnQkFDckQsR0FBRyxVQUFVLENBQUMsY0FBYztnQkFDNUI7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osT0FBTyxFQUFFO3dCQUNQLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLFdBQVcsRUFBRTt3QkFDOUMsR0FBRyxnQkFBZ0I7cUJBQ3BCO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO1FBQ0YsaUNBQWlDO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRixPQUFPO1lBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztTQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBNkM7UUFDL0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDO1FBQzFELE1BQU0sYUFBYSxHQUFRO1lBQ3pCLEtBQUssRUFBRSxXQUFXO1lBQ2xCLFFBQVEsRUFBRTtnQkFDUjtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixPQUFPLEVBQUU7d0JBQ1AsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFO3dCQUN6Qzs0QkFDRSxJQUFJLEVBQUUsV0FBVzs0QkFDakIsU0FBUyxFQUFFO2dDQUNULEdBQUcsRUFBRSwwQkFBMEIsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7NkJBQ3JFO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxVQUFVLEVBQUUsR0FBRztTQUNoQixDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUEyQjtRQUMvQyw0RUFBNEU7UUFDNUUsSUFBSSxLQUFhLENBQUM7UUFDbEIsSUFBSSxVQUFVLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3RDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBSSxrQ0FBa0MsQ0FBQztRQUMzRSxDQUFDO2FBQU0sQ0FBQztZQUNOLDZFQUE2RTtZQUM3RSxJQUFJLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNoQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLElBQUksa0NBQWtDLENBQUM7WUFDM0UsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxZQUFZLENBQUM7WUFDakQsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyx3R0FBd0csQ0FBQztRQUUvSCw0REFBNEQ7UUFDNUQsTUFBTSxhQUFhLEdBQVE7WUFDekIsS0FBSztZQUNMLFlBQVksRUFBRSxhQUFhO1lBQzNCLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztTQUN4QixDQUFDO1FBRUYsbUNBQW1DO1FBQ25DLElBQUksVUFBVSxDQUFDLGdCQUFnQixJQUFJLFVBQVUsQ0FBQyxXQUFXLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDckUsYUFBYSxDQUFDLEtBQUssR0FBRztnQkFDcEI7b0JBQ0UsSUFBSSxFQUFFLG9CQUFvQjtvQkFDMUIsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLFdBQVcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUM3QyxVQUFVLENBQUMsV0FBVyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLO2lCQUM3RTthQUNGLENBQUM7UUFDSixDQUFDO1FBRUQsd0NBQXdDO1FBQ3hDLElBQUksVUFBVSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQy9ELGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDSCx1REFBdUQ7WUFDdkQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFMUUsdUNBQXVDO1lBQ3ZDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNoQixNQUFNLE9BQU8sR0FBMkQsRUFBRSxDQUFDO1lBQzNFLE1BQU0sYUFBYSxHQUFhLEVBQUUsQ0FBQztZQUVuQyx1QkFBdUI7WUFDdkIsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUN2QywwQkFBMEI7Z0JBQzFCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNqRCxNQUFNLFdBQVcsR0FBRyxJQUFXLENBQUM7b0JBQ2hDLEtBQUssTUFBTSxXQUFXLElBQUksV0FBVyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQzt3QkFDcEQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLGFBQWEsSUFBSSxNQUFNLElBQUksV0FBVyxFQUFFLENBQUM7NEJBQ2hFLE1BQU0sSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDO3dCQUM3QixDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCw2QkFBNkI7Z0JBQzdCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxpQkFBaUIsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ3hELE1BQU0sVUFBVSxHQUFHLElBQVcsQ0FBQztvQkFDL0IsSUFBSSxVQUFVLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUM3RixhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzlDLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxrREFBa0Q7WUFDbEQsTUFBTSxRQUFRLEdBQUcsMEJBQTBCLENBQUM7WUFDNUMsSUFBSSxLQUE2QixDQUFDO1lBRWxDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNoRCxPQUFPLENBQUMsSUFBSSxDQUFDO29CQUNYLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNmLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNiLE9BQU8sRUFBRSxFQUFFO2lCQUNaLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxPQUFPO2dCQUNMLE1BQU07Z0JBQ04sT0FBTztnQkFDUCxhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDbkUsUUFBUSxFQUFFO29CQUNSLEtBQUs7b0JBQ0wsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXLElBQUksT0FBTztvQkFDOUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsWUFBWTtpQkFDdkM7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQWdDO1FBQ3pELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksYUFBYSxDQUFDO1FBRTNFLElBQUksQ0FBQztZQUNILE1BQU0sYUFBYSxHQUFRO2dCQUN6QixLQUFLO2dCQUNMLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTTtnQkFDekIsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUNyQixDQUFDO1lBRUYsc0NBQXNDO1lBQ3RDLElBQUksS0FBSyxLQUFLLGFBQWEsRUFBRSxDQUFDO2dCQUM1QixJQUFJLFVBQVUsQ0FBQyxPQUFPO29CQUFFLGFBQWEsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDbkUsSUFBSSxVQUFVLENBQUMsSUFBSTtvQkFBRSxhQUFhLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQzFELElBQUksVUFBVSxDQUFDLFVBQVU7b0JBQUUsYUFBYSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDO2dCQUM1RSxJQUFJLFVBQVUsQ0FBQyxZQUFZO29CQUFFLGFBQWEsQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztnQkFDbkYsSUFBSSxVQUFVLENBQUMsaUJBQWlCLEtBQUssU0FBUztvQkFBRSxhQUFhLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDO2dCQUNoSCxJQUFJLFVBQVUsQ0FBQyxVQUFVO29CQUFFLGFBQWEsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQztnQkFDNUUsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLFNBQVM7b0JBQUUsYUFBYSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUM5RSxJQUFJLFVBQVUsQ0FBQyxhQUFhLEtBQUssU0FBUztvQkFBRSxhQUFhLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7WUFDdEcsQ0FBQztpQkFBTSxJQUFJLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsK0JBQStCO2dCQUMvQixJQUFJLFVBQVUsQ0FBQyxPQUFPO29CQUFFLGFBQWEsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDbkUsSUFBSSxVQUFVLENBQUMsSUFBSTtvQkFBRSxhQUFhLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQzFELElBQUksVUFBVSxDQUFDLEtBQUs7b0JBQUUsYUFBYSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO2dCQUM3RCxhQUFhLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxDQUFDLG9DQUFvQztZQUNsRixDQUFDO2lCQUFNLElBQUksS0FBSyxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNoQywrQkFBK0I7Z0JBQy9CLElBQUksVUFBVSxDQUFDLElBQUk7b0JBQUUsYUFBYSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUMxRCxhQUFhLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQztZQUM3QyxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFekUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzdDLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtnQkFDdEIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHO2dCQUNaLGFBQWEsRUFBRSxHQUFHLENBQUMsY0FBYzthQUNsQyxDQUFDLENBQUMsQ0FBQztZQUVKLE9BQU87Z0JBQ0wsTUFBTTtnQkFDTixRQUFRLEVBQUU7b0JBQ1IsS0FBSztvQkFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87b0JBQ3ZCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtvQkFDakIsWUFBWSxFQUFFLE1BQU0sQ0FBQyxhQUFhO29CQUNsQyxVQUFVLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZO2lCQUN2QzthQUNGLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBNEI7UUFDakQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxhQUFhLENBQUM7UUFFM0UsSUFBSSxDQUFDO1lBQ0gsMERBQTBEO1lBQzFELE1BQU0sU0FBUyxHQUFHLE1BQU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFFckYsTUFBTSxhQUFhLEdBQVE7Z0JBQ3pCLEtBQUs7Z0JBQ0wsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTTtnQkFDekIsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUNyQixDQUFDO1lBRUYscURBQXFEO1lBQ3JELElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNwQixhQUFhLENBQUMsSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDeEYsQ0FBQztZQUVELHNDQUFzQztZQUN0QyxJQUFJLEtBQUssS0FBSyxhQUFhLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxVQUFVLENBQUMsT0FBTztvQkFBRSxhQUFhLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQ25FLElBQUksVUFBVSxDQUFDLElBQUk7b0JBQUUsYUFBYSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUMxRCxJQUFJLFVBQVUsQ0FBQyxVQUFVO29CQUFFLGFBQWEsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQztnQkFDNUUsSUFBSSxVQUFVLENBQUMsWUFBWTtvQkFBRSxhQUFhLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7Z0JBQ25GLElBQUksVUFBVSxDQUFDLGlCQUFpQixLQUFLLFNBQVM7b0JBQUUsYUFBYSxDQUFDLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDaEgsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLFNBQVM7b0JBQUUsYUFBYSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUM5RSxJQUFJLFVBQVUsQ0FBQyxhQUFhLEtBQUssU0FBUztvQkFBRSxhQUFhLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7WUFDdEcsQ0FBQztpQkFBTSxJQUFJLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsK0JBQStCO2dCQUMvQixJQUFJLFVBQVUsQ0FBQyxJQUFJO29CQUFFLGFBQWEsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDMUQsYUFBYSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUM7WUFDN0MsQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRXJFLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM3QyxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7Z0JBQ3RCLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRztnQkFDWixhQUFhLEVBQUUsR0FBRyxDQUFDLGNBQWM7YUFDbEMsQ0FBQyxDQUFDLENBQUM7WUFFSixPQUFPO2dCQUNMLE1BQU07Z0JBQ04sUUFBUSxFQUFFO29CQUNSLEtBQUs7b0JBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO29CQUN2QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7b0JBQ2pCLFlBQVksRUFBRSxNQUFNLENBQUMsYUFBYTtvQkFDbEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsWUFBWTtpQkFDdkM7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzVELENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { MultiModalModel } from './abstract.classes.multimodal.js';
|
|
2
|
-
import type { ChatOptions, ChatResponse, ChatMessage, ResearchOptions, ResearchResponse, ImageGenerateOptions, ImageEditOptions, ImageResponse } from './abstract.classes.multimodal.js';
|
|
3
|
-
export interface IPerplexityProviderOptions {
|
|
4
|
-
perplexityToken: string;
|
|
5
|
-
}
|
|
6
|
-
export declare class PerplexityProvider extends MultiModalModel {
|
|
7
|
-
private options;
|
|
8
|
-
constructor(optionsArg: IPerplexityProviderOptions);
|
|
9
|
-
start(): Promise<void>;
|
|
10
|
-
stop(): Promise<void>;
|
|
11
|
-
chatStream(input: ReadableStream<Uint8Array>): Promise<ReadableStream<string>>;
|
|
12
|
-
chat(optionsArg: ChatOptions): Promise<ChatResponse>;
|
|
13
|
-
audio(optionsArg: {
|
|
14
|
-
message: string;
|
|
15
|
-
}): Promise<NodeJS.ReadableStream>;
|
|
16
|
-
vision(optionsArg: {
|
|
17
|
-
image: Buffer;
|
|
18
|
-
prompt: string;
|
|
19
|
-
}): Promise<string>;
|
|
20
|
-
document(optionsArg: {
|
|
21
|
-
systemMessage: string;
|
|
22
|
-
userMessage: string;
|
|
23
|
-
pdfDocuments: Uint8Array[];
|
|
24
|
-
messageHistory: ChatMessage[];
|
|
25
|
-
}): Promise<{
|
|
26
|
-
message: any;
|
|
27
|
-
}>;
|
|
28
|
-
research(optionsArg: ResearchOptions): Promise<ResearchResponse>;
|
|
29
|
-
/**
|
|
30
|
-
* Image generation is not supported by Perplexity
|
|
31
|
-
*/
|
|
32
|
-
imageGenerate(optionsArg: ImageGenerateOptions): Promise<ImageResponse>;
|
|
33
|
-
/**
|
|
34
|
-
* Image editing is not supported by Perplexity
|
|
35
|
-
*/
|
|
36
|
-
imageEdit(optionsArg: ImageEditOptions): Promise<ImageResponse>;
|
|
37
|
-
}
|