@push.rocks/smartai 0.6.1 → 0.7.1
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 +1 -1
- package/dist_ts/abstract.classes.multimodal.d.ts +65 -0
- package/dist_ts/abstract.classes.multimodal.js +1 -1
- package/dist_ts/provider.anthropic.d.ts +9 -1
- package/dist_ts/provider.anthropic.js +82 -50
- package/dist_ts/provider.exo.d.ts +9 -1
- package/dist_ts/provider.exo.js +13 -1
- package/dist_ts/provider.groq.d.ts +9 -1
- package/dist_ts/provider.groq.js +13 -1
- package/dist_ts/provider.ollama.d.ts +9 -1
- package/dist_ts/provider.ollama.js +13 -1
- package/dist_ts/provider.openai.d.ts +10 -1
- package/dist_ts/provider.openai.js +172 -55
- package/dist_ts/provider.perplexity.d.ts +9 -1
- package/dist_ts/provider.perplexity.js +13 -1
- package/dist_ts/provider.xai.d.ts +9 -1
- package/dist_ts/provider.xai.js +13 -1
- package/package.json +1 -1
- package/readme.md +138 -10
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/abstract.classes.multimodal.ts +70 -0
- package/ts/provider.anthropic.ts +96 -53
- package/ts/provider.exo.ts +24 -1
- package/ts/provider.groq.ts +24 -1
- package/ts/provider.ollama.ts +24 -1
- package/ts/provider.openai.ts +170 -56
- package/ts/provider.perplexity.ts +24 -1
- package/ts/provider.xai.ts +24 -1
- package/readme.research.md +0 -177
|
@@ -178,89 +178,77 @@ export class OpenAiProvider extends MultiModalModel {
|
|
|
178
178
|
return result.choices[0].message.content || '';
|
|
179
179
|
}
|
|
180
180
|
async research(optionsArg) {
|
|
181
|
-
// Determine which model to use
|
|
181
|
+
// Determine which model to use - Deep Research API requires specific models
|
|
182
182
|
let model;
|
|
183
183
|
if (optionsArg.searchDepth === 'deep') {
|
|
184
184
|
model = this.options.researchModel || 'o4-mini-deep-research-2025-06-26';
|
|
185
185
|
}
|
|
186
186
|
else {
|
|
187
|
-
|
|
187
|
+
// For basic/advanced, still use deep research models if web search is needed
|
|
188
|
+
if (optionsArg.includeWebSearch) {
|
|
189
|
+
model = this.options.researchModel || 'o4-mini-deep-research-2025-06-26';
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
model = this.options.chatModel || 'gpt-5-mini';
|
|
193
|
+
}
|
|
188
194
|
}
|
|
189
|
-
|
|
195
|
+
const systemMessage = 'You are a research assistant. Provide comprehensive answers with citations and sources when available.';
|
|
196
|
+
// Prepare request parameters using Deep Research API format
|
|
190
197
|
const requestParams = {
|
|
191
198
|
model,
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
role: 'system',
|
|
195
|
-
content: 'You are a research assistant. Provide comprehensive answers with citations and sources when available.'
|
|
196
|
-
},
|
|
197
|
-
{
|
|
198
|
-
role: 'user',
|
|
199
|
-
content: optionsArg.query
|
|
200
|
-
}
|
|
201
|
-
],
|
|
202
|
-
temperature: 0.7
|
|
199
|
+
instructions: systemMessage,
|
|
200
|
+
input: optionsArg.query
|
|
203
201
|
};
|
|
204
|
-
// Add web search
|
|
202
|
+
// Add web search tool if requested
|
|
205
203
|
if (optionsArg.includeWebSearch || optionsArg.searchDepth === 'deep') {
|
|
206
204
|
requestParams.tools = [
|
|
207
205
|
{
|
|
208
|
-
type: '
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
description: 'Search the web for information',
|
|
212
|
-
parameters: {
|
|
213
|
-
type: 'object',
|
|
214
|
-
properties: {
|
|
215
|
-
query: {
|
|
216
|
-
type: 'string',
|
|
217
|
-
description: 'The search query'
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
required: ['query']
|
|
221
|
-
}
|
|
222
|
-
}
|
|
206
|
+
type: 'web_search_preview',
|
|
207
|
+
search_context_size: optionsArg.searchDepth === 'deep' ? 'high' :
|
|
208
|
+
optionsArg.searchDepth === 'advanced' ? 'medium' : 'low'
|
|
223
209
|
}
|
|
224
210
|
];
|
|
225
|
-
requestParams.tool_choice = 'auto';
|
|
226
211
|
}
|
|
227
212
|
// Add background flag for deep research
|
|
228
213
|
if (optionsArg.background && optionsArg.searchDepth === 'deep') {
|
|
229
214
|
requestParams.background = true;
|
|
230
215
|
}
|
|
231
216
|
try {
|
|
232
|
-
// Execute the research request
|
|
233
|
-
const result = await this.openAiApiClient.
|
|
234
|
-
// Extract the answer
|
|
235
|
-
|
|
236
|
-
// Parse sources from the response (OpenAI often includes URLs in markdown format)
|
|
217
|
+
// Execute the research request using Deep Research API
|
|
218
|
+
const result = await this.openAiApiClient.responses.create(requestParams);
|
|
219
|
+
// Extract the answer from output items
|
|
220
|
+
let answer = '';
|
|
237
221
|
const sources = [];
|
|
222
|
+
const searchQueries = [];
|
|
223
|
+
// Process output items
|
|
224
|
+
for (const item of result.output || []) {
|
|
225
|
+
// Extract message content
|
|
226
|
+
if (item.type === 'message' && 'content' in item) {
|
|
227
|
+
const messageItem = item;
|
|
228
|
+
for (const contentItem of messageItem.content || []) {
|
|
229
|
+
if (contentItem.type === 'output_text' && 'text' in contentItem) {
|
|
230
|
+
answer += contentItem.text;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// Extract web search queries
|
|
235
|
+
if (item.type === 'web_search_call' && 'action' in item) {
|
|
236
|
+
const searchItem = item;
|
|
237
|
+
if (searchItem.action && searchItem.action.type === 'search' && 'query' in searchItem.action) {
|
|
238
|
+
searchQueries.push(searchItem.action.query);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
// Parse sources from markdown links in the answer
|
|
238
243
|
const urlRegex = /\[([^\]]+)\]\(([^)]+)\)/g;
|
|
239
244
|
let match;
|
|
240
245
|
while ((match = urlRegex.exec(answer)) !== null) {
|
|
241
246
|
sources.push({
|
|
242
247
|
title: match[1],
|
|
243
248
|
url: match[2],
|
|
244
|
-
snippet: ''
|
|
249
|
+
snippet: ''
|
|
245
250
|
});
|
|
246
251
|
}
|
|
247
|
-
// Extract search queries if tools were used
|
|
248
|
-
const searchQueries = [];
|
|
249
|
-
if (result.choices[0].message.tool_calls) {
|
|
250
|
-
for (const toolCall of result.choices[0].message.tool_calls) {
|
|
251
|
-
if ('function' in toolCall && toolCall.function.name === 'web_search') {
|
|
252
|
-
try {
|
|
253
|
-
const args = JSON.parse(toolCall.function.arguments);
|
|
254
|
-
if (args.query) {
|
|
255
|
-
searchQueries.push(args.query);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
catch (e) {
|
|
259
|
-
// Ignore parsing errors
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
252
|
return {
|
|
265
253
|
answer,
|
|
266
254
|
sources,
|
|
@@ -277,5 +265,134 @@ export class OpenAiProvider extends MultiModalModel {
|
|
|
277
265
|
throw new Error(`Failed to perform research: ${error.message}`);
|
|
278
266
|
}
|
|
279
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* Image generation using OpenAI's gpt-image-1 or DALL-E models
|
|
270
|
+
*/
|
|
271
|
+
async imageGenerate(optionsArg) {
|
|
272
|
+
const model = optionsArg.model || this.options.imageModel || 'gpt-image-1';
|
|
273
|
+
try {
|
|
274
|
+
const requestParams = {
|
|
275
|
+
model,
|
|
276
|
+
prompt: optionsArg.prompt,
|
|
277
|
+
n: optionsArg.n || 1,
|
|
278
|
+
};
|
|
279
|
+
// Add gpt-image-1 specific parameters
|
|
280
|
+
if (model === 'gpt-image-1') {
|
|
281
|
+
if (optionsArg.quality)
|
|
282
|
+
requestParams.quality = optionsArg.quality;
|
|
283
|
+
if (optionsArg.size)
|
|
284
|
+
requestParams.size = optionsArg.size;
|
|
285
|
+
if (optionsArg.background)
|
|
286
|
+
requestParams.background = optionsArg.background;
|
|
287
|
+
if (optionsArg.outputFormat)
|
|
288
|
+
requestParams.output_format = optionsArg.outputFormat;
|
|
289
|
+
if (optionsArg.outputCompression !== undefined)
|
|
290
|
+
requestParams.output_compression = optionsArg.outputCompression;
|
|
291
|
+
if (optionsArg.moderation)
|
|
292
|
+
requestParams.moderation = optionsArg.moderation;
|
|
293
|
+
if (optionsArg.stream !== undefined)
|
|
294
|
+
requestParams.stream = optionsArg.stream;
|
|
295
|
+
if (optionsArg.partialImages !== undefined)
|
|
296
|
+
requestParams.partial_images = optionsArg.partialImages;
|
|
297
|
+
}
|
|
298
|
+
else if (model === 'dall-e-3') {
|
|
299
|
+
// DALL-E 3 specific parameters
|
|
300
|
+
if (optionsArg.quality)
|
|
301
|
+
requestParams.quality = optionsArg.quality;
|
|
302
|
+
if (optionsArg.size)
|
|
303
|
+
requestParams.size = optionsArg.size;
|
|
304
|
+
if (optionsArg.style)
|
|
305
|
+
requestParams.style = optionsArg.style;
|
|
306
|
+
requestParams.response_format = 'b64_json'; // Always use base64 for consistency
|
|
307
|
+
}
|
|
308
|
+
else if (model === 'dall-e-2') {
|
|
309
|
+
// DALL-E 2 specific parameters
|
|
310
|
+
if (optionsArg.size)
|
|
311
|
+
requestParams.size = optionsArg.size;
|
|
312
|
+
requestParams.response_format = 'b64_json';
|
|
313
|
+
}
|
|
314
|
+
const result = await this.openAiApiClient.images.generate(requestParams);
|
|
315
|
+
const images = (result.data || []).map(img => ({
|
|
316
|
+
b64_json: img.b64_json,
|
|
317
|
+
url: img.url,
|
|
318
|
+
revisedPrompt: img.revised_prompt
|
|
319
|
+
}));
|
|
320
|
+
return {
|
|
321
|
+
images,
|
|
322
|
+
metadata: {
|
|
323
|
+
model,
|
|
324
|
+
quality: result.quality,
|
|
325
|
+
size: result.size,
|
|
326
|
+
outputFormat: result.output_format,
|
|
327
|
+
tokensUsed: result.usage?.total_tokens
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
catch (error) {
|
|
332
|
+
console.error('Image generation error:', error);
|
|
333
|
+
throw new Error(`Failed to generate image: ${error.message}`);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Image editing using OpenAI's gpt-image-1 or DALL-E 2 models
|
|
338
|
+
*/
|
|
339
|
+
async imageEdit(optionsArg) {
|
|
340
|
+
const model = optionsArg.model || this.options.imageModel || 'gpt-image-1';
|
|
341
|
+
try {
|
|
342
|
+
const requestParams = {
|
|
343
|
+
model,
|
|
344
|
+
image: optionsArg.image,
|
|
345
|
+
prompt: optionsArg.prompt,
|
|
346
|
+
n: optionsArg.n || 1,
|
|
347
|
+
};
|
|
348
|
+
// Add mask if provided
|
|
349
|
+
if (optionsArg.mask) {
|
|
350
|
+
requestParams.mask = optionsArg.mask;
|
|
351
|
+
}
|
|
352
|
+
// Add gpt-image-1 specific parameters
|
|
353
|
+
if (model === 'gpt-image-1') {
|
|
354
|
+
if (optionsArg.quality)
|
|
355
|
+
requestParams.quality = optionsArg.quality;
|
|
356
|
+
if (optionsArg.size)
|
|
357
|
+
requestParams.size = optionsArg.size;
|
|
358
|
+
if (optionsArg.background)
|
|
359
|
+
requestParams.background = optionsArg.background;
|
|
360
|
+
if (optionsArg.outputFormat)
|
|
361
|
+
requestParams.output_format = optionsArg.outputFormat;
|
|
362
|
+
if (optionsArg.outputCompression !== undefined)
|
|
363
|
+
requestParams.output_compression = optionsArg.outputCompression;
|
|
364
|
+
if (optionsArg.stream !== undefined)
|
|
365
|
+
requestParams.stream = optionsArg.stream;
|
|
366
|
+
if (optionsArg.partialImages !== undefined)
|
|
367
|
+
requestParams.partial_images = optionsArg.partialImages;
|
|
368
|
+
}
|
|
369
|
+
else if (model === 'dall-e-2') {
|
|
370
|
+
// DALL-E 2 specific parameters
|
|
371
|
+
if (optionsArg.size)
|
|
372
|
+
requestParams.size = optionsArg.size;
|
|
373
|
+
requestParams.response_format = 'b64_json';
|
|
374
|
+
}
|
|
375
|
+
const result = await this.openAiApiClient.images.edit(requestParams);
|
|
376
|
+
const images = (result.data || []).map(img => ({
|
|
377
|
+
b64_json: img.b64_json,
|
|
378
|
+
url: img.url,
|
|
379
|
+
revisedPrompt: img.revised_prompt
|
|
380
|
+
}));
|
|
381
|
+
return {
|
|
382
|
+
images,
|
|
383
|
+
metadata: {
|
|
384
|
+
model,
|
|
385
|
+
quality: result.quality,
|
|
386
|
+
size: result.size,
|
|
387
|
+
outputFormat: result.output_format,
|
|
388
|
+
tokensUsed: result.usage?.total_tokens
|
|
389
|
+
}
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
catch (error) {
|
|
393
|
+
console.error('Image edit error:', error);
|
|
394
|
+
throw new Error(`Failed to edit image: ${error.message}`);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
280
397
|
}
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIub3BlbmFpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvcHJvdmlkZXIub3BlbmFpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFRbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBWW5FLE1BQU0sT0FBTyxjQUFlLFNBQVEsZUFBZTtJQUlqRCxZQUFZLFVBQWtDO1FBQzVDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE1BQU0sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNoRCxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQ2hDLHVCQUF1QixFQUFFLElBQUk7U0FDOUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJO1FBQ2YsTUFBTSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBaUM7UUFDdkQsaURBQWlEO1FBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksY0FBYyxHQUdQLElBQUksQ0FBQztRQUVoQixnREFBZ0Q7UUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQXFCO1lBQ3hELFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUs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
|
|
398
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIub3BlbmFpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvcHJvdmlkZXIub3BlbmFpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFRbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBbUJuRSxNQUFNLE9BQU8sY0FBZSxTQUFRLGVBQWU7SUFJakQsWUFBWSxVQUFrQztRQUM1QyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO0lBQzVCLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSztRQUNoQixNQUFNLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDaEQsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVztZQUNoQyx1QkFBdUIsRUFBRSxJQUFJO1NBQzlCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSTtRQUNmLE1BQU0sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQWlDO1FBQ3ZELGlEQUFpRDtRQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLGNBQWMsR0FHUCxJQUFJLENBQUM7UUFFaEIsZ0RBQWdEO1FBQ2hELE1BQU0sU0FBUyxHQUFHLElBQUksZUFBZSxDQUFxQjtZQUN4RCxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFV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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MultiModalModel } from './abstract.classes.multimodal.js';
|
|
2
|
-
import type { ChatOptions, ChatResponse, ChatMessage, ResearchOptions, ResearchResponse } from './abstract.classes.multimodal.js';
|
|
2
|
+
import type { ChatOptions, ChatResponse, ChatMessage, ResearchOptions, ResearchResponse, ImageGenerateOptions, ImageEditOptions, ImageResponse } from './abstract.classes.multimodal.js';
|
|
3
3
|
export interface IPerplexityProviderOptions {
|
|
4
4
|
perplexityToken: string;
|
|
5
5
|
}
|
|
@@ -26,4 +26,12 @@ export declare class PerplexityProvider extends MultiModalModel {
|
|
|
26
26
|
message: any;
|
|
27
27
|
}>;
|
|
28
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>;
|
|
29
37
|
}
|
|
@@ -199,5 +199,17 @@ export class PerplexityProvider extends MultiModalModel {
|
|
|
199
199
|
throw new Error(`Failed to perform research: ${error.message}`);
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* Image generation is not supported by Perplexity
|
|
204
|
+
*/
|
|
205
|
+
async imageGenerate(optionsArg) {
|
|
206
|
+
throw new Error('Image generation is not supported by Perplexity. Please use OpenAI provider for image generation.');
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Image editing is not supported by Perplexity
|
|
210
|
+
*/
|
|
211
|
+
async imageEdit(optionsArg) {
|
|
212
|
+
throw new Error('Image editing is not supported by Perplexity. Please use OpenAI provider for image editing.');
|
|
213
|
+
}
|
|
202
214
|
}
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIucGVycGxleGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3Byb3ZpZGVyLnBlcnBsZXhpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBZ0JuRSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZUFBZTtJQUdyRCxZQUFZLFVBQXNDO1FBQ2hELEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLO1FBQ1QsZ0RBQWdEO0lBQ2xELENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxLQUFJLENBQUM7SUFFUixLQUFLLENBQUMsVUFBVSxDQUFDLEtBQWlDO1FBQ3ZELGlEQUFpRDtRQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLGNBQWMsR0FBOEMsSUFBSSxDQUFDO1FBRXJFLGdEQUFnRDtRQUNoRCxNQUFNLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBcUI7WUFDeEQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsVUFBVTtnQkFDL0IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBRWxELHNEQUFzRDtnQkFDdEQsT0FBTyxJQUFJLEVBQUUsQ0FBQztvQkFDWixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxQyxJQUFJLFlBQVksS0FBSyxDQUFDLENBQUM7d0JBQUUsTUFBTTtvQkFFL0Is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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as plugins from './plugins.js';
|
|
2
2
|
import { MultiModalModel } from './abstract.classes.multimodal.js';
|
|
3
|
-
import type { ResearchOptions, ResearchResponse } from './abstract.classes.multimodal.js';
|
|
3
|
+
import type { ResearchOptions, ResearchResponse, ImageGenerateOptions, ImageEditOptions, ImageResponse } from './abstract.classes.multimodal.js';
|
|
4
4
|
export interface IXAIProviderOptions {
|
|
5
5
|
xaiToken: string;
|
|
6
6
|
}
|
|
@@ -41,4 +41,12 @@ export declare class XAIProvider extends MultiModalModel {
|
|
|
41
41
|
message: any;
|
|
42
42
|
}>;
|
|
43
43
|
research(optionsArg: ResearchOptions): Promise<ResearchResponse>;
|
|
44
|
+
/**
|
|
45
|
+
* Image generation is not supported by xAI
|
|
46
|
+
*/
|
|
47
|
+
imageGenerate(optionsArg: ImageGenerateOptions): Promise<ImageResponse>;
|
|
48
|
+
/**
|
|
49
|
+
* Image editing is not supported by xAI
|
|
50
|
+
*/
|
|
51
|
+
imageEdit(optionsArg: ImageEditOptions): Promise<ImageResponse>;
|
|
44
52
|
}
|
package/dist_ts/provider.xai.js
CHANGED
|
@@ -142,5 +142,17 @@ export class XAIProvider extends MultiModalModel {
|
|
|
142
142
|
async research(optionsArg) {
|
|
143
143
|
throw new Error('Research capabilities are not yet supported by xAI provider.');
|
|
144
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Image generation is not supported by xAI
|
|
147
|
+
*/
|
|
148
|
+
async imageGenerate(optionsArg) {
|
|
149
|
+
throw new Error('Image generation is not supported by xAI. Please use OpenAI provider for image generation.');
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Image editing is not supported by xAI
|
|
153
|
+
*/
|
|
154
|
+
async imageEdit(optionsArg) {
|
|
155
|
+
throw new Error('Image editing is not supported by xAI. Please use OpenAI provider for image editing.');
|
|
156
|
+
}
|
|
145
157
|
}
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIueGFpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvcHJvdmlkZXIueGFpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQWlCbkUsTUFBTSxPQUFPLFdBQVksU0FBUSxlQUFlO0lBSTlDLFlBQVksVUFBK0I7UUFDekMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUM1QixDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUs7UUFDaEIsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ2hELE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFDN0IsT0FBTyxFQUFFLHFCQUFxQjtTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUk7UUFDZixNQUFNLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFpQztRQUN2RCxpREFBaUQ7UUFDakQsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxjQUFjLEdBQThDLElBQUksQ0FBQztRQUVyRSxnREFBZ0Q7UUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQXFCO1lBQ3hELEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVU7Z0JBQy9CLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@push.rocks/smartai",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "SmartAi is a versatile TypeScript library designed to facilitate integration and interaction with various AI models, offering functionalities for chat, audio generation, document processing, and vision tasks.",
|
|
6
6
|
"main": "dist_ts/index.js",
|
package/readme.md
CHANGED
|
@@ -45,15 +45,15 @@ const response = await ai.openaiProvider.chat({
|
|
|
45
45
|
|
|
46
46
|
Choose the right provider for your use case:
|
|
47
47
|
|
|
48
|
-
| Provider | Chat | Streaming | TTS | Vision | Documents | Highlights |
|
|
49
|
-
|
|
50
|
-
| **OpenAI** | ✅ | ✅ | ✅ | ✅ | ✅ | •
|
|
51
|
-
| **Anthropic** | ✅ | ✅ | ❌ | ✅ | ✅ | • Claude 3 Opus<br>• Superior reasoning<br>•
|
|
52
|
-
| **Ollama** | ✅ | ✅ | ❌ | ✅ | ✅ | • 100% local<br>• Privacy-first<br>• No API costs |
|
|
53
|
-
| **XAI** | ✅ | ✅ | ❌ | ❌ | ✅ | • Grok models<br>• Real-time data<br>• Uncensored |
|
|
54
|
-
| **Perplexity** | ✅ | ✅ | ❌ | ❌ | ❌ | • Web-aware<br>• Research-focused<br>•
|
|
55
|
-
| **Groq** | ✅ | ✅ | ❌ | ❌ | ❌ | • 10x faster<br>• LPU inference<br>• Low latency |
|
|
56
|
-
| **Exo** | ✅ | ✅ | ❌ | ❌ | ❌ | • Distributed<br>• P2P compute<br>• Decentralized |
|
|
48
|
+
| Provider | Chat | Streaming | TTS | Vision | Documents | Research | Images | Highlights |
|
|
49
|
+
|----------|:----:|:---------:|:---:|:------:|:---------:|:--------:|:------:|------------|
|
|
50
|
+
| **OpenAI** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | • gpt-image-1<br>• DALL-E 3<br>• Deep research API |
|
|
51
|
+
| **Anthropic** | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | • Claude 3 Opus<br>• Superior reasoning<br>• Web search API |
|
|
52
|
+
| **Ollama** | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | • 100% local<br>• Privacy-first<br>• No API costs |
|
|
53
|
+
| **XAI** | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | • Grok models<br>• Real-time data<br>• Uncensored |
|
|
54
|
+
| **Perplexity** | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | • Web-aware<br>• Research-focused<br>• Sonar Pro models |
|
|
55
|
+
| **Groq** | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | • 10x faster<br>• LPU inference<br>• Low latency |
|
|
56
|
+
| **Exo** | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | • Distributed<br>• P2P compute<br>• Decentralized |
|
|
57
57
|
|
|
58
58
|
## 🎮 Core Features
|
|
59
59
|
|
|
@@ -171,6 +171,132 @@ const taxAnalysis = await ai.anthropicProvider.document({
|
|
|
171
171
|
});
|
|
172
172
|
```
|
|
173
173
|
|
|
174
|
+
### 🔬 Research & Web Search
|
|
175
|
+
|
|
176
|
+
Perform deep research with web search capabilities across multiple providers:
|
|
177
|
+
|
|
178
|
+
```typescript
|
|
179
|
+
// OpenAI Deep Research - Comprehensive analysis
|
|
180
|
+
const deepResearch = await ai.openaiProvider.research({
|
|
181
|
+
query: 'What are the latest developments in quantum computing?',
|
|
182
|
+
searchDepth: 'deep',
|
|
183
|
+
includeWebSearch: true
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
console.log(deepResearch.answer);
|
|
187
|
+
console.log('Sources:', deepResearch.sources);
|
|
188
|
+
|
|
189
|
+
// Anthropic Web Search - Domain-filtered research
|
|
190
|
+
const anthropic = new AnthropicProvider({
|
|
191
|
+
anthropicToken: 'sk-ant-...',
|
|
192
|
+
enableWebSearch: true,
|
|
193
|
+
searchDomainAllowList: ['nature.com', 'science.org']
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
const scientificResearch = await anthropic.research({
|
|
197
|
+
query: 'Latest breakthroughs in CRISPR gene editing',
|
|
198
|
+
searchDepth: 'advanced'
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
// Perplexity - Research-focused with citations
|
|
202
|
+
const perplexityResearch = await ai.perplexityProvider.research({
|
|
203
|
+
query: 'Current state of autonomous vehicle technology',
|
|
204
|
+
searchDepth: 'deep' // Uses Sonar Pro model
|
|
205
|
+
});
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**Research Options:**
|
|
209
|
+
- `searchDepth`: 'basic' | 'advanced' | 'deep'
|
|
210
|
+
- `maxSources`: Number of sources to include
|
|
211
|
+
- `includeWebSearch`: Enable web search (OpenAI)
|
|
212
|
+
- `background`: Run as background task (OpenAI)
|
|
213
|
+
|
|
214
|
+
**Supported Providers:**
|
|
215
|
+
- **OpenAI**: Deep Research API with specialized models (`o3-deep-research-2025-06-26`, `o4-mini-deep-research-2025-06-26`)
|
|
216
|
+
- **Anthropic**: Web Search API with domain filtering
|
|
217
|
+
- **Perplexity**: Sonar and Sonar Pro models with built-in citations
|
|
218
|
+
|
|
219
|
+
### 🎨 Image Generation & Editing
|
|
220
|
+
|
|
221
|
+
Generate and edit images with OpenAI's cutting-edge models:
|
|
222
|
+
|
|
223
|
+
```typescript
|
|
224
|
+
// Basic image generation with gpt-image-1
|
|
225
|
+
const image = await ai.openaiProvider.imageGenerate({
|
|
226
|
+
prompt: 'A futuristic robot assistant in a modern office, digital art',
|
|
227
|
+
model: 'gpt-image-1',
|
|
228
|
+
quality: 'high',
|
|
229
|
+
size: '1024x1024'
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
// Save the generated image
|
|
233
|
+
const imageBuffer = Buffer.from(image.images[0].b64_json!, 'base64');
|
|
234
|
+
fs.writeFileSync('robot.png', imageBuffer);
|
|
235
|
+
|
|
236
|
+
// Advanced: Transparent background with custom format
|
|
237
|
+
const logo = await ai.openaiProvider.imageGenerate({
|
|
238
|
+
prompt: 'Minimalist mountain peak logo, geometric design',
|
|
239
|
+
model: 'gpt-image-1',
|
|
240
|
+
quality: 'high',
|
|
241
|
+
size: '1024x1024',
|
|
242
|
+
background: 'transparent',
|
|
243
|
+
outputFormat: 'png'
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
// WebP with compression for web use
|
|
247
|
+
const webImage = await ai.openaiProvider.imageGenerate({
|
|
248
|
+
prompt: 'Product showcase: sleek smartphone on marble surface',
|
|
249
|
+
model: 'gpt-image-1',
|
|
250
|
+
quality: 'high',
|
|
251
|
+
size: '1536x1024',
|
|
252
|
+
outputFormat: 'webp',
|
|
253
|
+
outputCompression: 85
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
// Superior text rendering (gpt-image-1's strength)
|
|
257
|
+
const signage = await ai.openaiProvider.imageGenerate({
|
|
258
|
+
prompt: 'Vintage cafe sign saying "COFFEE & CODE" in hand-lettered typography',
|
|
259
|
+
model: 'gpt-image-1',
|
|
260
|
+
quality: 'high',
|
|
261
|
+
size: '1024x1024'
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
// Generate multiple variations at once
|
|
265
|
+
const variations = await ai.openaiProvider.imageGenerate({
|
|
266
|
+
prompt: 'Abstract geometric pattern, colorful minimalist art',
|
|
267
|
+
model: 'gpt-image-1',
|
|
268
|
+
n: 3,
|
|
269
|
+
quality: 'medium',
|
|
270
|
+
size: '1024x1024'
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
// Edit an existing image
|
|
274
|
+
const editedImage = await ai.openaiProvider.imageEdit({
|
|
275
|
+
image: originalImageBuffer,
|
|
276
|
+
prompt: 'Add sunglasses and change the background to a beach sunset',
|
|
277
|
+
model: 'gpt-image-1',
|
|
278
|
+
quality: 'high'
|
|
279
|
+
});
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
**Image Generation Options:**
|
|
283
|
+
- `model`: 'gpt-image-1' | 'dall-e-3' | 'dall-e-2'
|
|
284
|
+
- `quality`: 'low' | 'medium' | 'high' | 'auto'
|
|
285
|
+
- `size`: Multiple aspect ratios up to 4096×4096
|
|
286
|
+
- `background`: 'transparent' | 'opaque' | 'auto'
|
|
287
|
+
- `outputFormat`: 'png' | 'jpeg' | 'webp'
|
|
288
|
+
- `outputCompression`: 0-100 for webp/jpeg
|
|
289
|
+
- `moderation`: 'low' | 'auto'
|
|
290
|
+
- `n`: Number of images (1-10)
|
|
291
|
+
|
|
292
|
+
**gpt-image-1 Advantages:**
|
|
293
|
+
- Superior text rendering in images
|
|
294
|
+
- Up to 4096×4096 resolution
|
|
295
|
+
- Transparent background support
|
|
296
|
+
- Advanced output formats (WebP with compression)
|
|
297
|
+
- Better prompt understanding
|
|
298
|
+
- Streaming support for progressive rendering
|
|
299
|
+
|
|
174
300
|
### 🔄 Persistent Conversations
|
|
175
301
|
|
|
176
302
|
Maintain context across interactions:
|
|
@@ -447,6 +573,7 @@ export PERPLEXITY_API_KEY=pplx-...
|
|
|
447
573
|
| **General Purpose** | OpenAI | Most features, stable, well-documented |
|
|
448
574
|
| **Complex Reasoning** | Anthropic | Superior logical thinking, safer outputs |
|
|
449
575
|
| **Research & Facts** | Perplexity | Web-aware, provides citations |
|
|
576
|
+
| **Deep Research** | OpenAI | Deep Research API with comprehensive analysis |
|
|
450
577
|
| **Speed Critical** | Groq | 10x faster inference, sub-second responses |
|
|
451
578
|
| **Privacy Critical** | Ollama | 100% local, no data leaves your servers |
|
|
452
579
|
| **Real-time Data** | XAI | Access to current information |
|
|
@@ -454,8 +581,9 @@ export PERPLEXITY_API_KEY=pplx-...
|
|
|
454
581
|
|
|
455
582
|
## 📈 Roadmap
|
|
456
583
|
|
|
584
|
+
- [x] Research & Web Search API
|
|
585
|
+
- [x] Image generation support (gpt-image-1, DALL-E 3, DALL-E 2)
|
|
457
586
|
- [ ] Streaming function calls
|
|
458
|
-
- [ ] Image generation support
|
|
459
587
|
- [ ] Voice input processing
|
|
460
588
|
- [ ] Fine-tuning integration
|
|
461
589
|
- [ ] Embedding support
|