@push.rocks/smartai 0.13.2 → 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 -519
- 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 -695
- package/ts/provider.openai.ts +0 -462
- package/ts/provider.perplexity.ts +0 -259
- package/ts/provider.xai.ts +0 -214
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert AI SDK V3 prompt messages to Ollama's message format.
|
|
3
|
+
*/
|
|
4
|
+
function convertPromptToOllamaMessages(prompt) {
|
|
5
|
+
const messages = [];
|
|
6
|
+
for (const msg of prompt) {
|
|
7
|
+
if (msg.role === 'system') {
|
|
8
|
+
// System message content is a plain string in V3
|
|
9
|
+
messages.push({ role: 'system', content: msg.content });
|
|
10
|
+
}
|
|
11
|
+
else if (msg.role === 'user') {
|
|
12
|
+
let text = '';
|
|
13
|
+
const images = [];
|
|
14
|
+
for (const part of msg.content) {
|
|
15
|
+
if (part.type === 'text') {
|
|
16
|
+
text += part.text;
|
|
17
|
+
}
|
|
18
|
+
else if (part.type === 'file' && part.mediaType?.startsWith('image/')) {
|
|
19
|
+
// Handle image files — Ollama expects base64 images
|
|
20
|
+
if (typeof part.data === 'string') {
|
|
21
|
+
images.push(part.data);
|
|
22
|
+
}
|
|
23
|
+
else if (part.data instanceof Uint8Array) {
|
|
24
|
+
images.push(Buffer.from(part.data).toString('base64'));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const m = { role: 'user', content: text };
|
|
29
|
+
if (images.length > 0)
|
|
30
|
+
m.images = images;
|
|
31
|
+
messages.push(m);
|
|
32
|
+
}
|
|
33
|
+
else if (msg.role === 'assistant') {
|
|
34
|
+
let text = '';
|
|
35
|
+
let thinking = '';
|
|
36
|
+
const toolCalls = [];
|
|
37
|
+
for (const part of msg.content) {
|
|
38
|
+
if (part.type === 'text') {
|
|
39
|
+
text += part.text;
|
|
40
|
+
}
|
|
41
|
+
else if (part.type === 'reasoning') {
|
|
42
|
+
thinking += part.text;
|
|
43
|
+
}
|
|
44
|
+
else if (part.type === 'tool-call') {
|
|
45
|
+
const args = typeof part.input === 'string'
|
|
46
|
+
? JSON.parse(part.input)
|
|
47
|
+
: part.input;
|
|
48
|
+
toolCalls.push({
|
|
49
|
+
function: {
|
|
50
|
+
name: part.toolName,
|
|
51
|
+
arguments: args,
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const m = { role: 'assistant', content: text };
|
|
57
|
+
if (toolCalls.length > 0)
|
|
58
|
+
m.tool_calls = toolCalls;
|
|
59
|
+
if (thinking)
|
|
60
|
+
m.thinking = thinking;
|
|
61
|
+
messages.push(m);
|
|
62
|
+
}
|
|
63
|
+
else if (msg.role === 'tool') {
|
|
64
|
+
for (const part of msg.content) {
|
|
65
|
+
if (part.type === 'tool-result') {
|
|
66
|
+
let resultContent = '';
|
|
67
|
+
if (part.output) {
|
|
68
|
+
if (part.output.type === 'text') {
|
|
69
|
+
resultContent = part.output.value;
|
|
70
|
+
}
|
|
71
|
+
else if (part.output.type === 'json') {
|
|
72
|
+
resultContent = JSON.stringify(part.output.value);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
messages.push({ role: 'tool', content: resultContent });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return messages;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Convert AI SDK V3 tools to Ollama's tool format.
|
|
84
|
+
*/
|
|
85
|
+
function convertToolsToOllamaTools(tools) {
|
|
86
|
+
if (!tools || tools.length === 0)
|
|
87
|
+
return undefined;
|
|
88
|
+
return tools
|
|
89
|
+
.filter((t) => t.type === 'function')
|
|
90
|
+
.map(t => ({
|
|
91
|
+
type: 'function',
|
|
92
|
+
function: {
|
|
93
|
+
name: t.name,
|
|
94
|
+
description: t.description ?? '',
|
|
95
|
+
parameters: t.inputSchema,
|
|
96
|
+
},
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
function makeUsage(promptTokens, completionTokens) {
|
|
100
|
+
return {
|
|
101
|
+
inputTokens: {
|
|
102
|
+
total: promptTokens,
|
|
103
|
+
noCache: undefined,
|
|
104
|
+
cacheRead: undefined,
|
|
105
|
+
cacheWrite: undefined,
|
|
106
|
+
},
|
|
107
|
+
outputTokens: {
|
|
108
|
+
total: completionTokens,
|
|
109
|
+
text: completionTokens,
|
|
110
|
+
reasoning: undefined,
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function makeFinishReason(reason) {
|
|
115
|
+
if (reason === 'tool_calls' || reason === 'tool-calls') {
|
|
116
|
+
return { unified: 'tool-calls', raw: reason };
|
|
117
|
+
}
|
|
118
|
+
return { unified: 'stop', raw: reason ?? 'stop' };
|
|
119
|
+
}
|
|
120
|
+
let idCounter = 0;
|
|
121
|
+
function generateId() {
|
|
122
|
+
return `ollama-${Date.now()}-${idCounter++}`;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Custom LanguageModelV3 implementation for Ollama.
|
|
126
|
+
* Calls Ollama's native /api/chat endpoint directly to support
|
|
127
|
+
* think, num_ctx, temperature, and other model options.
|
|
128
|
+
*/
|
|
129
|
+
export function createOllamaModel(options) {
|
|
130
|
+
const baseUrl = options.baseUrl ?? 'http://localhost:11434';
|
|
131
|
+
const modelId = options.model;
|
|
132
|
+
const ollamaOpts = { ...options.ollamaOptions };
|
|
133
|
+
// Apply default temperature of 0.55 for Qwen models
|
|
134
|
+
if (modelId.toLowerCase().includes('qwen') && ollamaOpts.temperature === undefined) {
|
|
135
|
+
ollamaOpts.temperature = 0.55;
|
|
136
|
+
}
|
|
137
|
+
const model = {
|
|
138
|
+
specificationVersion: 'v3',
|
|
139
|
+
provider: 'ollama',
|
|
140
|
+
modelId,
|
|
141
|
+
supportedUrls: {},
|
|
142
|
+
async doGenerate(callOptions) {
|
|
143
|
+
const messages = convertPromptToOllamaMessages(callOptions.prompt);
|
|
144
|
+
const tools = convertToolsToOllamaTools(callOptions.tools);
|
|
145
|
+
const ollamaModelOptions = { ...ollamaOpts };
|
|
146
|
+
// Override with call-level options if provided
|
|
147
|
+
if (callOptions.temperature !== undefined)
|
|
148
|
+
ollamaModelOptions.temperature = callOptions.temperature;
|
|
149
|
+
if (callOptions.topP !== undefined)
|
|
150
|
+
ollamaModelOptions.top_p = callOptions.topP;
|
|
151
|
+
if (callOptions.topK !== undefined)
|
|
152
|
+
ollamaModelOptions.top_k = callOptions.topK;
|
|
153
|
+
if (callOptions.maxOutputTokens !== undefined)
|
|
154
|
+
ollamaModelOptions.num_predict = callOptions.maxOutputTokens;
|
|
155
|
+
if (callOptions.seed !== undefined)
|
|
156
|
+
ollamaModelOptions.seed = callOptions.seed;
|
|
157
|
+
if (callOptions.stopSequences)
|
|
158
|
+
ollamaModelOptions.stop = callOptions.stopSequences;
|
|
159
|
+
// Remove think from options — it goes at the top level
|
|
160
|
+
const { think, ...modelOpts } = ollamaModelOptions;
|
|
161
|
+
const requestBody = {
|
|
162
|
+
model: modelId,
|
|
163
|
+
messages,
|
|
164
|
+
stream: false,
|
|
165
|
+
options: modelOpts,
|
|
166
|
+
};
|
|
167
|
+
// Add think parameter at the top level (Ollama API requirement)
|
|
168
|
+
if (ollamaOpts.think !== undefined) {
|
|
169
|
+
requestBody.think = ollamaOpts.think;
|
|
170
|
+
}
|
|
171
|
+
if (tools)
|
|
172
|
+
requestBody.tools = tools;
|
|
173
|
+
const response = await fetch(`${baseUrl}/api/chat`, {
|
|
174
|
+
method: 'POST',
|
|
175
|
+
headers: { 'Content-Type': 'application/json' },
|
|
176
|
+
body: JSON.stringify(requestBody),
|
|
177
|
+
signal: callOptions.abortSignal,
|
|
178
|
+
});
|
|
179
|
+
if (!response.ok) {
|
|
180
|
+
const body = await response.text();
|
|
181
|
+
throw new Error(`Ollama API error ${response.status}: ${body}`);
|
|
182
|
+
}
|
|
183
|
+
const result = await response.json();
|
|
184
|
+
const message = result.message;
|
|
185
|
+
// Build content array
|
|
186
|
+
const content = [];
|
|
187
|
+
// Add reasoning if present
|
|
188
|
+
if (message.thinking && typeof message.thinking === 'string') {
|
|
189
|
+
content.push({ type: 'reasoning', text: message.thinking });
|
|
190
|
+
}
|
|
191
|
+
// Add text content
|
|
192
|
+
if (message.content && typeof message.content === 'string') {
|
|
193
|
+
content.push({ type: 'text', text: message.content });
|
|
194
|
+
}
|
|
195
|
+
// Add tool calls if present
|
|
196
|
+
if (Array.isArray(message.tool_calls)) {
|
|
197
|
+
for (const tc of message.tool_calls) {
|
|
198
|
+
const fn = tc.function;
|
|
199
|
+
content.push({
|
|
200
|
+
type: 'tool-call',
|
|
201
|
+
toolCallId: generateId(),
|
|
202
|
+
toolName: fn.name,
|
|
203
|
+
input: JSON.stringify(fn.arguments),
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
const finishReason = Array.isArray(message.tool_calls) && message.tool_calls.length > 0
|
|
208
|
+
? makeFinishReason('tool_calls')
|
|
209
|
+
: makeFinishReason('stop');
|
|
210
|
+
return {
|
|
211
|
+
content,
|
|
212
|
+
finishReason,
|
|
213
|
+
usage: makeUsage(result.prompt_eval_count ?? undefined, result.eval_count ?? undefined),
|
|
214
|
+
warnings: [],
|
|
215
|
+
request: { body: requestBody },
|
|
216
|
+
};
|
|
217
|
+
},
|
|
218
|
+
async doStream(callOptions) {
|
|
219
|
+
const messages = convertPromptToOllamaMessages(callOptions.prompt);
|
|
220
|
+
const tools = convertToolsToOllamaTools(callOptions.tools);
|
|
221
|
+
const ollamaModelOptions = { ...ollamaOpts };
|
|
222
|
+
if (callOptions.temperature !== undefined)
|
|
223
|
+
ollamaModelOptions.temperature = callOptions.temperature;
|
|
224
|
+
if (callOptions.topP !== undefined)
|
|
225
|
+
ollamaModelOptions.top_p = callOptions.topP;
|
|
226
|
+
if (callOptions.topK !== undefined)
|
|
227
|
+
ollamaModelOptions.top_k = callOptions.topK;
|
|
228
|
+
if (callOptions.maxOutputTokens !== undefined)
|
|
229
|
+
ollamaModelOptions.num_predict = callOptions.maxOutputTokens;
|
|
230
|
+
if (callOptions.seed !== undefined)
|
|
231
|
+
ollamaModelOptions.seed = callOptions.seed;
|
|
232
|
+
if (callOptions.stopSequences)
|
|
233
|
+
ollamaModelOptions.stop = callOptions.stopSequences;
|
|
234
|
+
const { think, ...modelOpts } = ollamaModelOptions;
|
|
235
|
+
const requestBody = {
|
|
236
|
+
model: modelId,
|
|
237
|
+
messages,
|
|
238
|
+
stream: true,
|
|
239
|
+
options: modelOpts,
|
|
240
|
+
};
|
|
241
|
+
if (ollamaOpts.think !== undefined) {
|
|
242
|
+
requestBody.think = ollamaOpts.think;
|
|
243
|
+
}
|
|
244
|
+
if (tools)
|
|
245
|
+
requestBody.tools = tools;
|
|
246
|
+
const response = await fetch(`${baseUrl}/api/chat`, {
|
|
247
|
+
method: 'POST',
|
|
248
|
+
headers: { 'Content-Type': 'application/json' },
|
|
249
|
+
body: JSON.stringify(requestBody),
|
|
250
|
+
signal: callOptions.abortSignal,
|
|
251
|
+
});
|
|
252
|
+
if (!response.ok) {
|
|
253
|
+
const body = await response.text();
|
|
254
|
+
throw new Error(`Ollama API error ${response.status}: ${body}`);
|
|
255
|
+
}
|
|
256
|
+
const reader = response.body.getReader();
|
|
257
|
+
const decoder = new TextDecoder();
|
|
258
|
+
const textId = generateId();
|
|
259
|
+
const reasoningId = generateId();
|
|
260
|
+
let textStarted = false;
|
|
261
|
+
let reasoningStarted = false;
|
|
262
|
+
let hasToolCalls = false;
|
|
263
|
+
let closed = false;
|
|
264
|
+
const stream = new ReadableStream({
|
|
265
|
+
async pull(controller) {
|
|
266
|
+
if (closed)
|
|
267
|
+
return;
|
|
268
|
+
const processLine = (line) => {
|
|
269
|
+
if (!line.trim())
|
|
270
|
+
return;
|
|
271
|
+
let json;
|
|
272
|
+
try {
|
|
273
|
+
json = JSON.parse(line);
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
const msg = json.message;
|
|
279
|
+
// Handle thinking/reasoning content
|
|
280
|
+
if (msg?.thinking && typeof msg.thinking === 'string') {
|
|
281
|
+
if (!reasoningStarted) {
|
|
282
|
+
reasoningStarted = true;
|
|
283
|
+
controller.enqueue({ type: 'reasoning-start', id: reasoningId });
|
|
284
|
+
}
|
|
285
|
+
controller.enqueue({ type: 'reasoning-delta', id: reasoningId, delta: msg.thinking });
|
|
286
|
+
}
|
|
287
|
+
// Handle text content
|
|
288
|
+
if (msg?.content && typeof msg.content === 'string') {
|
|
289
|
+
if (reasoningStarted && !textStarted) {
|
|
290
|
+
controller.enqueue({ type: 'reasoning-end', id: reasoningId });
|
|
291
|
+
}
|
|
292
|
+
if (!textStarted) {
|
|
293
|
+
textStarted = true;
|
|
294
|
+
controller.enqueue({ type: 'text-start', id: textId });
|
|
295
|
+
}
|
|
296
|
+
controller.enqueue({ type: 'text-delta', id: textId, delta: msg.content });
|
|
297
|
+
}
|
|
298
|
+
// Handle tool calls
|
|
299
|
+
if (Array.isArray(msg?.tool_calls)) {
|
|
300
|
+
hasToolCalls = true;
|
|
301
|
+
for (const tc of msg.tool_calls) {
|
|
302
|
+
const fn = tc.function;
|
|
303
|
+
const callId = generateId();
|
|
304
|
+
controller.enqueue({
|
|
305
|
+
type: 'tool-call',
|
|
306
|
+
toolCallId: callId,
|
|
307
|
+
toolName: fn.name,
|
|
308
|
+
input: JSON.stringify(fn.arguments),
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
// Handle done
|
|
313
|
+
if (json.done) {
|
|
314
|
+
if (reasoningStarted && !textStarted) {
|
|
315
|
+
controller.enqueue({ type: 'reasoning-end', id: reasoningId });
|
|
316
|
+
}
|
|
317
|
+
if (textStarted) {
|
|
318
|
+
controller.enqueue({ type: 'text-end', id: textId });
|
|
319
|
+
}
|
|
320
|
+
controller.enqueue({
|
|
321
|
+
type: 'finish',
|
|
322
|
+
finishReason: hasToolCalls
|
|
323
|
+
? makeFinishReason('tool_calls')
|
|
324
|
+
: makeFinishReason('stop'),
|
|
325
|
+
usage: makeUsage(json.prompt_eval_count ?? undefined, json.eval_count ?? undefined),
|
|
326
|
+
});
|
|
327
|
+
closed = true;
|
|
328
|
+
controller.close();
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
try {
|
|
332
|
+
let buffer = '';
|
|
333
|
+
while (true) {
|
|
334
|
+
const { done, value } = await reader.read();
|
|
335
|
+
if (done) {
|
|
336
|
+
if (buffer.trim())
|
|
337
|
+
processLine(buffer);
|
|
338
|
+
if (!closed) {
|
|
339
|
+
controller.enqueue({
|
|
340
|
+
type: 'finish',
|
|
341
|
+
finishReason: makeFinishReason('stop'),
|
|
342
|
+
usage: makeUsage(undefined, undefined),
|
|
343
|
+
});
|
|
344
|
+
closed = true;
|
|
345
|
+
controller.close();
|
|
346
|
+
}
|
|
347
|
+
return;
|
|
348
|
+
}
|
|
349
|
+
buffer += decoder.decode(value, { stream: true });
|
|
350
|
+
const lines = buffer.split('\n');
|
|
351
|
+
buffer = lines.pop() || '';
|
|
352
|
+
for (const line of lines) {
|
|
353
|
+
processLine(line);
|
|
354
|
+
if (closed)
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
catch (error) {
|
|
360
|
+
if (!closed) {
|
|
361
|
+
controller.error(error);
|
|
362
|
+
closed = true;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
finally {
|
|
366
|
+
reader.releaseLock();
|
|
367
|
+
}
|
|
368
|
+
},
|
|
369
|
+
});
|
|
370
|
+
return {
|
|
371
|
+
stream,
|
|
372
|
+
request: { body: requestBody },
|
|
373
|
+
};
|
|
374
|
+
},
|
|
375
|
+
};
|
|
376
|
+
return model;
|
|
377
|
+
}
|
|
378
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhaS5wcm92aWRlci5vbGxhbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGFpLnByb3ZpZGVyLm9sbGFtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQ0E7O0dBRUc7QUFDSCxTQUFTLDZCQUE2QixDQUFDLE1BQTZCO0lBQ2xFLE1BQU0sUUFBUSxHQUFxQixFQUFFLENBQUM7SUFFdEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUN6QixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUIsaURBQWlEO1lBQ2pELFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMxRCxDQUFDO2FBQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQy9CLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNkLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztZQUM1QixLQUFLLE1BQU0sSUFBSSxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUN6QixJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDcEIsQ0FBQztxQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ3hFLG9EQUFvRDtvQkFDcEQsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7d0JBQ2xDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN6QixDQUFDO3lCQUFNLElBQUksSUFBSSxD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
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface IOpenAiTtsOptions {
|
|
2
|
+
apiKey: string;
|
|
3
|
+
text: string;
|
|
4
|
+
voice?: 'alloy' | 'echo' | 'fable' | 'onyx' | 'nova' | 'shimmer';
|
|
5
|
+
model?: 'tts-1' | 'tts-1-hd';
|
|
6
|
+
responseFormat?: 'mp3' | 'opus' | 'aac' | 'flac';
|
|
7
|
+
speed?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function textToSpeech(options: IOpenAiTtsOptions): Promise<NodeJS.ReadableStream>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import { Readable } from 'stream';
|
|
3
|
+
export async function textToSpeech(options) {
|
|
4
|
+
const client = new plugins.OpenAI({ apiKey: options.apiKey });
|
|
5
|
+
const result = await client.audio.speech.create({
|
|
6
|
+
model: options.model ?? 'tts-1',
|
|
7
|
+
voice: options.voice ?? 'alloy',
|
|
8
|
+
input: options.text,
|
|
9
|
+
response_format: options.responseFormat ?? 'mp3',
|
|
10
|
+
speed: options.speed ?? 1,
|
|
11
|
+
});
|
|
12
|
+
const stream = result.body;
|
|
13
|
+
return Readable.fromWeb(stream);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19hdWRpby9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBV2xDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsWUFBWSxDQUFDLE9BQTBCO0lBQzNELE1BQU0sTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM5RCxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM5QyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPO1FBQy9CLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU87UUFDL0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ25CLGVBQWUsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLEtBQUs7UUFDaEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQztLQUMxQixDQUFDLENBQUM7SUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQzNCLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFhLENBQUMsQ0FBQztBQUN6QyxDQUFDIn0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import OpenAI from 'openai';
|
|
2
|
+
export { OpenAI };
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX2F1ZGlvL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyJ9
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LanguageModelV3 } from '@ai-sdk/provider';
|
|
2
|
+
import type { ModelMessage } from 'ai';
|
|
3
|
+
export interface IDocumentOptions {
|
|
4
|
+
model: LanguageModelV3;
|
|
5
|
+
systemMessage?: string;
|
|
6
|
+
userMessage: string;
|
|
7
|
+
pdfDocuments: Uint8Array[];
|
|
8
|
+
messageHistory?: ModelMessage[];
|
|
9
|
+
}
|
|
10
|
+
export declare function analyzeDocuments(options: IDocumentOptions): Promise<string>;
|
|
11
|
+
export declare function stopSmartpdf(): Promise<void>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
let smartpdfInstance = null;
|
|
3
|
+
async function ensureSmartpdf() {
|
|
4
|
+
if (!smartpdfInstance) {
|
|
5
|
+
smartpdfInstance = new plugins.smartpdf.SmartPdf();
|
|
6
|
+
await smartpdfInstance.start();
|
|
7
|
+
}
|
|
8
|
+
return smartpdfInstance;
|
|
9
|
+
}
|
|
10
|
+
export async function analyzeDocuments(options) {
|
|
11
|
+
const pdf = await ensureSmartpdf();
|
|
12
|
+
const imagePages = [];
|
|
13
|
+
for (const doc of options.pdfDocuments) {
|
|
14
|
+
const pages = await pdf.convertPDFToPngBytes(doc);
|
|
15
|
+
imagePages.push(...pages);
|
|
16
|
+
}
|
|
17
|
+
// Filter out empty buffers
|
|
18
|
+
const validPages = imagePages.filter(page => page && page.length > 0);
|
|
19
|
+
const result = await plugins.generateText({
|
|
20
|
+
model: options.model,
|
|
21
|
+
system: options.systemMessage,
|
|
22
|
+
messages: [
|
|
23
|
+
...(options.messageHistory ?? []),
|
|
24
|
+
{
|
|
25
|
+
role: 'user',
|
|
26
|
+
content: [
|
|
27
|
+
{ type: 'text', text: options.userMessage },
|
|
28
|
+
...validPages.map(page => ({
|
|
29
|
+
type: 'image',
|
|
30
|
+
image: page,
|
|
31
|
+
mimeType: 'image/png',
|
|
32
|
+
})),
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
});
|
|
37
|
+
return result.text;
|
|
38
|
+
}
|
|
39
|
+
export async function stopSmartpdf() {
|
|
40
|
+
if (smartpdfInstance) {
|
|
41
|
+
await smartpdfInstance.stop();
|
|
42
|
+
smartpdfInstance = null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19kb2N1bWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUl4QyxJQUFJLGdCQUFnQixHQUEwRCxJQUFJLENBQUM7QUFFbkYsS0FBSyxVQUFVLGNBQWM7SUFDM0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDdEIsZ0JBQWdCLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELE1BQU0sZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNELE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQztBQVVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsT0FBeUI7SUFDOUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxjQUFjLEVBQUUsQ0FBQztJQUVuQyxNQUFNLFVBQVUsR0FBaUIsRUFBRSxDQUFDO0lBQ3BDLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLE1BQU0sR0FBRyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsMkJBQTJCO0lBQzNCLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUV0RSxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDeEMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLENBQUMsYUFBYTtRQUM3QixRQUFRLEVBQUU7WUFDUixHQUFHLENBQUMsT0FBTyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7WUFDakM7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osT0FBTyxFQUFFO29CQUNQLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRTtvQkFDM0MsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDekIsSUFBSSxFQUFFLE9BQWdCO3dCQUN0QixLQUFLLEVBQUUsSUFBSTt3QkFDWCxRQUFRLEVBQUUsV0FBb0I7cUJBQy9CLENBQUMsQ0FBQztpQkFDSjthQUNGO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFDSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDckIsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsWUFBWTtJQUNoQyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDckIsTUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5QixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { generateText } from 'ai';
|
|
2
|
+
import * as smartpdf from '@push.rocks/smartpdf';
|
|
3
|
+
export { generateText, smartpdf };
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX2RvY3VtZW50L3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLElBQUksQ0FBQztBQUNsQyxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLENBQUMifQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export interface IImageGenerateOptions {
|
|
2
|
+
apiKey: string;
|
|
3
|
+
prompt: string;
|
|
4
|
+
model?: 'gpt-image-1' | 'dall-e-3' | 'dall-e-2';
|
|
5
|
+
quality?: 'low' | 'medium' | 'high' | 'standard' | 'hd' | 'auto';
|
|
6
|
+
size?: '256x256' | '512x512' | '1024x1024' | '1536x1024' | '1024x1536' | '1792x1024' | '1024x1792' | 'auto';
|
|
7
|
+
style?: 'vivid' | 'natural';
|
|
8
|
+
background?: 'transparent' | 'opaque' | 'auto';
|
|
9
|
+
outputFormat?: 'png' | 'jpeg' | 'webp';
|
|
10
|
+
outputCompression?: number;
|
|
11
|
+
moderation?: 'low' | 'auto';
|
|
12
|
+
n?: number;
|
|
13
|
+
stream?: boolean;
|
|
14
|
+
partialImages?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface IImageEditOptions {
|
|
17
|
+
apiKey: string;
|
|
18
|
+
image: Buffer;
|
|
19
|
+
prompt: string;
|
|
20
|
+
mask?: Buffer;
|
|
21
|
+
model?: 'gpt-image-1' | 'dall-e-2';
|
|
22
|
+
quality?: 'low' | 'medium' | 'high' | 'standard' | 'auto';
|
|
23
|
+
size?: '256x256' | '512x512' | '1024x1024' | '1536x1024' | '1024x1536' | 'auto';
|
|
24
|
+
background?: 'transparent' | 'opaque' | 'auto';
|
|
25
|
+
outputFormat?: 'png' | 'jpeg' | 'webp';
|
|
26
|
+
outputCompression?: number;
|
|
27
|
+
n?: number;
|
|
28
|
+
stream?: boolean;
|
|
29
|
+
partialImages?: number;
|
|
30
|
+
}
|
|
31
|
+
export interface IImageResponse {
|
|
32
|
+
images: Array<{
|
|
33
|
+
b64_json?: string;
|
|
34
|
+
url?: string;
|
|
35
|
+
revisedPrompt?: string;
|
|
36
|
+
}>;
|
|
37
|
+
metadata?: {
|
|
38
|
+
model: string;
|
|
39
|
+
quality?: string;
|
|
40
|
+
size?: string;
|
|
41
|
+
outputFormat?: string;
|
|
42
|
+
tokensUsed?: number;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export declare function generateImage(options: IImageGenerateOptions): Promise<IImageResponse>;
|
|
46
|
+
export declare function editImage(options: IImageEditOptions): Promise<IImageResponse>;
|