@holokai/holo-provider-ollama 1.2.2 → 1.3.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/README.md +121 -70
- package/dist/ollama.auditor.d.ts +7 -26
- package/dist/ollama.auditor.d.ts.map +1 -1
- package/dist/ollama.auditor.js +58 -81
- package/dist/ollama.auditor.js.map +1 -1
- package/dist/ollama.provider.d.ts +5 -5
- package/dist/ollama.provider.d.ts.map +1 -1
- package/dist/ollama.provider.js +15 -35
- package/dist/ollama.provider.js.map +1 -1
- package/dist/ollama.translator.d.ts.map +1 -1
- package/dist/ollama.translator.js +0 -4
- package/dist/ollama.translator.js.map +1 -1
- package/dist/plugin.d.ts +3 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +5 -1
- package/dist/plugin.js.map +1 -1
- package/dist/translators/ollama.chat.response.translator.js +4 -4
- package/dist/translators/ollama.chat.response.translator.js.map +1 -1
- package/dist/translators/ollama.generate.response.translator.js +2 -2
- package/dist/translators/ollama.generate.response.translator.js.map +1 -1
- package/dist/translators/ollama.message.translators.d.ts.map +1 -1
- package/dist/translators/ollama.message.translators.js +4 -1
- package/dist/translators/ollama.message.translators.js.map +1 -1
- package/package.json +7 -8
package/README.md
CHANGED
|
@@ -74,15 +74,15 @@ Add a provider configuration to your Holo deployment:
|
|
|
74
74
|
### Usage in Code
|
|
75
75
|
|
|
76
76
|
```typescript
|
|
77
|
-
import {
|
|
77
|
+
import {HoloRequest, HoloResponse} from '@holokai/sdk';
|
|
78
78
|
|
|
79
79
|
const request: HoloRequest = {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
80
|
+
model: 'llama2',
|
|
81
|
+
messages: [
|
|
82
|
+
{role: 'user', content: 'Explain quantum entanglement briefly.'}
|
|
83
|
+
],
|
|
84
|
+
max_tokens: 500,
|
|
85
|
+
temperature: 0.7
|
|
86
86
|
};
|
|
87
87
|
|
|
88
88
|
// Plugin handles translation automatically
|
|
@@ -296,13 +296,23 @@ This plugin implements the official Holo format mappings as documented in the SD
|
|
|
296
296
|
|
|
297
297
|
```typescript
|
|
298
298
|
// Holo
|
|
299
|
-
{
|
|
299
|
+
{
|
|
300
|
+
type: 'text', text
|
|
301
|
+
:
|
|
302
|
+
'Hello'
|
|
303
|
+
}
|
|
300
304
|
|
|
301
305
|
// Ollama Chat (flattened)
|
|
302
|
-
{
|
|
306
|
+
{
|
|
307
|
+
role: 'user', content
|
|
308
|
+
:
|
|
309
|
+
'Hello'
|
|
310
|
+
}
|
|
303
311
|
|
|
304
312
|
// Ollama Generate (string)
|
|
305
|
-
{
|
|
313
|
+
{
|
|
314
|
+
prompt: 'Hello'
|
|
315
|
+
}
|
|
306
316
|
```
|
|
307
317
|
|
|
308
318
|
#### Image Content
|
|
@@ -310,18 +320,24 @@ This plugin implements the official Holo format mappings as documented in the SD
|
|
|
310
320
|
```typescript
|
|
311
321
|
// Holo
|
|
312
322
|
{
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
323
|
+
role: 'user',
|
|
324
|
+
content
|
|
325
|
+
:
|
|
326
|
+
[
|
|
327
|
+
{type: 'text', text: 'What is in this image?'},
|
|
328
|
+
{type: 'image', url: 'https://example.com/image.png'}
|
|
329
|
+
]
|
|
318
330
|
}
|
|
319
331
|
|
|
320
332
|
// Ollama Chat (extracted to images array)
|
|
321
333
|
{
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
334
|
+
role: 'user',
|
|
335
|
+
content
|
|
336
|
+
:
|
|
337
|
+
'What is in this image?',
|
|
338
|
+
images
|
|
339
|
+
:
|
|
340
|
+
['https://example.com/image.png']
|
|
325
341
|
}
|
|
326
342
|
|
|
327
343
|
// Ollama Generate (NOT SUPPORTED)
|
|
@@ -426,31 +442,66 @@ Ollama uses a simpler frame-based streaming model compared to Claude's event-bas
|
|
|
426
442
|
```typescript
|
|
427
443
|
// Frame 1: First content
|
|
428
444
|
{
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
445
|
+
model: 'llama2',
|
|
446
|
+
created_at
|
|
447
|
+
:
|
|
448
|
+
'2024-01-01T12:00:00Z',
|
|
449
|
+
message
|
|
450
|
+
:
|
|
451
|
+
{
|
|
452
|
+
role: 'assistant', content
|
|
453
|
+
:
|
|
454
|
+
'Hello'
|
|
455
|
+
}
|
|
456
|
+
, // Chat mode
|
|
457
|
+
// response: 'Hello', // Generate mode
|
|
458
|
+
done: false
|
|
434
459
|
}
|
|
435
460
|
|
|
436
461
|
// Frame 2: More content
|
|
437
462
|
{
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
463
|
+
model: 'llama2',
|
|
464
|
+
created_at
|
|
465
|
+
:
|
|
466
|
+
'2024-01-01T12:00:01Z',
|
|
467
|
+
message
|
|
468
|
+
:
|
|
469
|
+
{
|
|
470
|
+
role: 'assistant', content
|
|
471
|
+
:
|
|
472
|
+
' there'
|
|
473
|
+
}
|
|
474
|
+
,
|
|
475
|
+
done: false
|
|
442
476
|
}
|
|
443
477
|
|
|
444
478
|
// Frame 3: Final frame with usage
|
|
445
479
|
{
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
480
|
+
model: 'llama2',
|
|
481
|
+
created_at
|
|
482
|
+
:
|
|
483
|
+
'2024-01-01T12:00:02Z',
|
|
484
|
+
message
|
|
485
|
+
:
|
|
486
|
+
{
|
|
487
|
+
role: 'assistant', content
|
|
488
|
+
:
|
|
489
|
+
'!'
|
|
490
|
+
}
|
|
491
|
+
,
|
|
492
|
+
done: true,
|
|
493
|
+
done_reason
|
|
494
|
+
:
|
|
495
|
+
'stop',
|
|
496
|
+
prompt_eval_count
|
|
497
|
+
:
|
|
498
|
+
10,
|
|
499
|
+
eval_count
|
|
500
|
+
:
|
|
501
|
+
3,
|
|
502
|
+
total_duration
|
|
503
|
+
:
|
|
504
|
+
1500000000 // nanoseconds
|
|
454
505
|
}
|
|
455
506
|
```
|
|
456
507
|
|
|
@@ -499,12 +550,12 @@ Control how long models stay in memory:
|
|
|
499
550
|
|
|
500
551
|
```typescript
|
|
501
552
|
const request: HoloRequest = {
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
553
|
+
model: 'llama2',
|
|
554
|
+
messages: [{role: 'user', content: 'Hello'}],
|
|
555
|
+
provider_config: {
|
|
556
|
+
keep_alive: '5m' // Keep model loaded for 5 minutes
|
|
557
|
+
// or: keep_alive: 300 // 300 seconds
|
|
558
|
+
}
|
|
508
559
|
};
|
|
509
560
|
```
|
|
510
561
|
|
|
@@ -514,15 +565,15 @@ Configure GPU and NUMA settings:
|
|
|
514
565
|
|
|
515
566
|
```typescript
|
|
516
567
|
const request: HoloRequest = {
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
568
|
+
model: 'llama2',
|
|
569
|
+
messages: [{role: 'user', content: 'Hello'}],
|
|
570
|
+
provider_config: {
|
|
571
|
+
options: {
|
|
572
|
+
num_gpu: 1, // Number of GPUs to use
|
|
573
|
+
main_gpu: 0, // Primary GPU index
|
|
574
|
+
numa: true // Enable NUMA optimization
|
|
575
|
+
}
|
|
524
576
|
}
|
|
525
|
-
}
|
|
526
577
|
};
|
|
527
578
|
```
|
|
528
579
|
|
|
@@ -532,13 +583,13 @@ Override model's default context size:
|
|
|
532
583
|
|
|
533
584
|
```typescript
|
|
534
585
|
const request: HoloRequest = {
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
586
|
+
model: 'llama2',
|
|
587
|
+
messages: [{role: 'user', content: 'Hello'}],
|
|
588
|
+
provider_config: {
|
|
589
|
+
options: {
|
|
590
|
+
num_ctx: 4096 // Override context window
|
|
591
|
+
}
|
|
540
592
|
}
|
|
541
|
-
}
|
|
542
593
|
};
|
|
543
594
|
```
|
|
544
595
|
|
|
@@ -548,12 +599,12 @@ Skip prompt formatting in Generate mode:
|
|
|
548
599
|
|
|
549
600
|
```typescript
|
|
550
601
|
const request: HoloRequest = {
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
602
|
+
model: 'llama2',
|
|
603
|
+
messages: [{role: 'user', content: 'Raw prompt text'}],
|
|
604
|
+
provider_config: {
|
|
605
|
+
mode: 'generate',
|
|
606
|
+
raw: true // Skip Ollama's prompt template
|
|
607
|
+
}
|
|
557
608
|
};
|
|
558
609
|
```
|
|
559
610
|
|
|
@@ -593,10 +644,10 @@ interface HoloTool {
|
|
|
593
644
|
**After** (Plugin SDK):
|
|
594
645
|
|
|
595
646
|
```typescript
|
|
596
|
-
import type {
|
|
647
|
+
import type {HoloTool, HoloJsonSchema} from '@holokai/sdk';
|
|
597
648
|
|
|
598
649
|
interface HoloTool {
|
|
599
|
-
|
|
650
|
+
parameters?: HoloJsonSchema; // ✅ Strict JSON Schema Draft 7
|
|
600
651
|
}
|
|
601
652
|
```
|
|
602
653
|
|
|
@@ -612,13 +663,13 @@ The plugin exposes a JSON Schema for configuration validation:
|
|
|
612
663
|
|
|
613
664
|
```typescript
|
|
614
665
|
{
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
666
|
+
baseUrl ? : string; // Ollama endpoint (default: http://localhost:11434)
|
|
667
|
+
defaultModel ? : string; // Fallback model (e.g., "llama2")
|
|
668
|
+
allowedModels ? : string[]; // Model allowlist
|
|
669
|
+
timeoutMs ? : number; // Request timeout (default: 60000)
|
|
670
|
+
maxRetries ? : number; // Retry attempts (default: 2)
|
|
671
|
+
defaultKeepAlive ? : string; // Default keep_alive ("5m", 300)
|
|
672
|
+
logRequests ? : boolean; // Observability (default: false)
|
|
622
673
|
}
|
|
623
674
|
```
|
|
624
675
|
|
package/dist/ollama.auditor.d.ts
CHANGED
|
@@ -1,32 +1,13 @@
|
|
|
1
1
|
import { BaseAuditor } from "@holokai/sdk/provider";
|
|
2
2
|
import type { HoloWorkerRequest, WorkerResponseEnvelope } from "@holokai/types/worker";
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import {
|
|
3
|
+
import type { ProviderDoneEvent, ProviderEvent } from "@holokai/types/provider";
|
|
4
|
+
import type { ProviderEnvelope, ProviderResponseMetrics } from "@holokai/types/entities";
|
|
5
|
+
import { FinishReason } from "@holokai/types/entities";
|
|
6
6
|
export declare class OllamaAuditor extends BaseAuditor {
|
|
7
7
|
readonly provider = "ollama";
|
|
8
|
-
protected
|
|
9
|
-
protected
|
|
10
|
-
protected
|
|
11
|
-
|
|
12
|
-
}>, envelope: WorkerResponseEnvelope): Promise<Partial<{
|
|
13
|
-
usage_raw: any;
|
|
14
|
-
input_tokens: any;
|
|
15
|
-
output_tokens: any;
|
|
16
|
-
time_to_first_token: any;
|
|
17
|
-
total_processing_time: any;
|
|
18
|
-
}>>;
|
|
19
|
-
protected createProviderEnvelope(payload: GenerateRequest | ChatRequest): Promise<ProviderEnvelope>;
|
|
20
|
-
protected extractExtraTokens(_metrics: Record<string, any>, base: Record<string, number>): Record<string, number>;
|
|
21
|
-
private extractUserPromptFromMessages;
|
|
22
|
-
private extractSystemPromptFromMessages;
|
|
23
|
-
/**
|
|
24
|
-
* Calculate time to first token using Ollama's timing data
|
|
25
|
-
* Time to first token = load_duration + prompt_eval_duration
|
|
26
|
-
* This represents the time spent loading the model and evaluating the prompt before generating the first token
|
|
27
|
-
* @param payload - Ollama response payload with timing information
|
|
28
|
-
* @returns Time to first token in milliseconds, or undefined if timing data is unavailable
|
|
29
|
-
*/
|
|
30
|
-
private calculateTimeToFirstToken;
|
|
8
|
+
protected extractRequestOptions(workerRequest: HoloWorkerRequest): Promise<Record<string, any>>;
|
|
9
|
+
protected mapProviderResponseMetrics(providerEvent: ProviderDoneEvent): Promise<Partial<ProviderResponseMetrics>>;
|
|
10
|
+
protected extractFinishReason(providerEvent: ProviderEvent, _envelope: WorkerResponseEnvelope): Promise<FinishReason | undefined>;
|
|
11
|
+
protected createProviderEnvelope(workerRequest: HoloWorkerRequest): Promise<ProviderEnvelope>;
|
|
31
12
|
}
|
|
32
13
|
//# sourceMappingURL=ollama.auditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.auditor.d.ts","sourceRoot":"","sources":["../src/ollama.auditor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"ollama.auditor.d.ts","sourceRoot":"","sources":["../src/ollama.auditor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAyD,MAAM,uBAAuB,CAAC;AAE1G,OAAO,KAAK,EAAC,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AACrF,OAAO,KAAK,EAAC,iBAAiB,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAC,gBAAgB,EAAE,uBAAuB,EAAC,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AAIrD,qBACa,aAAc,SAAQ,WAAW;IAC1C,QAAQ,CAAC,QAAQ,YAAY;cAEb,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;cAMrF,0BAA0B,CAAC,aAAa,EAAE,iBAAiB;cAyB3D,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;cAiBvH,sBAAsB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAgCtG"}
|
package/dist/ollama.auditor.js
CHANGED
|
@@ -5,98 +5,75 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { injectable } from 'tsyringe';
|
|
8
|
-
import { BaseAuditor } from "@holokai/sdk/provider";
|
|
9
|
-
import { pickDefined } from "@holokai/sdk";
|
|
8
|
+
import { BaseAuditor, extractPromptByRole, extractTextContent, normalizeText } from "@holokai/sdk/provider";
|
|
9
|
+
import { nsToMs, pickDefined } from "@holokai/sdk";
|
|
10
|
+
import { FinishReason } from "@holokai/types/entities";
|
|
10
11
|
import { OllamaProtocols } from "./plugin";
|
|
11
12
|
let OllamaAuditor = class OllamaAuditor extends BaseAuditor {
|
|
12
13
|
provider = 'ollama';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (workerRequest.protocol.name === OllamaProtocols.CHAT) {
|
|
17
|
-
const chatPayload = payload;
|
|
18
|
-
const userPrompt = this.extractUserPromptFromMessages(chatPayload.messages);
|
|
19
|
-
const systemPrompt = this.extractSystemPromptFromMessages(chatPayload.messages);
|
|
20
|
-
if (userPrompt !== undefined) {
|
|
21
|
-
llmRequest.metadata.user_prompt = userPrompt;
|
|
22
|
-
}
|
|
23
|
-
if (systemPrompt !== undefined) {
|
|
24
|
-
llmRequest.metadata.system_prompt = systemPrompt;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
else if (workerRequest.protocol.name === OllamaProtocols.GENERATE) {
|
|
28
|
-
const generatePayload = payload;
|
|
29
|
-
if (generatePayload.prompt !== undefined) {
|
|
30
|
-
llmRequest.metadata.user_prompt = generatePayload.prompt;
|
|
31
|
-
}
|
|
32
|
-
if (generatePayload.system !== undefined) {
|
|
33
|
-
llmRequest.metadata.system_prompt = generatePayload.system;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
mapProviderPayload(workerRequest, llmRequest) {
|
|
38
|
-
const payload = workerRequest.payload;
|
|
39
|
-
if (payload.options !== undefined) {
|
|
40
|
-
llmRequest.metadata.options = payload.options;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
async mapResponseMetrics(providerEvent, envelope) {
|
|
44
|
-
const metrics = await super.mapResponseMetrics(providerEvent, envelope);
|
|
45
|
-
if (providerEvent.type === 'error') {
|
|
46
|
-
return metrics;
|
|
47
|
-
}
|
|
48
|
-
const payload = providerEvent.message;
|
|
49
|
-
const usage = {
|
|
50
|
-
input_tokens: payload.prompt_eval_count || metrics.input_tokens,
|
|
51
|
-
output_tokens: payload.eval_count || metrics.output_tokens,
|
|
52
|
-
time_to_first_token: this.calculateTimeToFirstToken(payload) || metrics.time_to_first_token,
|
|
53
|
-
total_processing_time: payload.total_duration ? Math.round(payload.total_duration / 1000000) : metrics.total_processing_time
|
|
14
|
+
async extractRequestOptions(workerRequest) {
|
|
15
|
+
return {
|
|
16
|
+
...workerRequest.payload.options
|
|
54
17
|
};
|
|
55
|
-
return pickDefined({
|
|
56
|
-
usage_raw: usage,
|
|
57
|
-
...usage
|
|
58
|
-
});
|
|
59
18
|
}
|
|
60
|
-
async
|
|
19
|
+
async mapProviderResponseMetrics(providerEvent) {
|
|
20
|
+
const payload = providerEvent.message;
|
|
21
|
+
const { load_duration, eval_count, prompt_eval_count, prompt_eval_duration, total_duration } = payload;
|
|
61
22
|
return pickDefined({
|
|
62
|
-
|
|
23
|
+
input_tokens: prompt_eval_count,
|
|
24
|
+
output_tokens: eval_count,
|
|
25
|
+
total_tokens: eval_count + prompt_eval_count,
|
|
26
|
+
time_to_first_token: load_duration != null && prompt_eval_duration != null ? Math.round(nsToMs(load_duration + prompt_eval_duration)) : undefined,
|
|
27
|
+
total_processing_time: total_duration != null ? Math.round(nsToMs(total_duration)) : undefined,
|
|
28
|
+
usage_raw: {
|
|
29
|
+
load_duration,
|
|
30
|
+
prompt_eval_duration,
|
|
31
|
+
total_duration,
|
|
32
|
+
eval_count,
|
|
33
|
+
prompt_eval_count
|
|
34
|
+
},
|
|
35
|
+
metadata: {
|
|
36
|
+
load_duration,
|
|
37
|
+
prompt_eval_duration
|
|
38
|
+
}
|
|
63
39
|
});
|
|
64
40
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
if (!messages || !Array.isArray(messages))
|
|
70
|
-
return undefined;
|
|
71
|
-
const userMessages = messages.filter(msg => msg.role === 'user');
|
|
72
|
-
if (userMessages.length === 0)
|
|
73
|
-
return undefined;
|
|
74
|
-
// Return the last user message content
|
|
75
|
-
const lastUserMessage = userMessages[userMessages.length - 1];
|
|
76
|
-
return typeof lastUserMessage.content === 'string' ? lastUserMessage.content : undefined;
|
|
77
|
-
}
|
|
78
|
-
extractSystemPromptFromMessages(messages) {
|
|
79
|
-
if (!messages || !Array.isArray(messages))
|
|
41
|
+
async extractFinishReason(providerEvent, _envelope) {
|
|
42
|
+
if (providerEvent.type === 'error')
|
|
43
|
+
return FinishReason.ERROR;
|
|
44
|
+
if (providerEvent.type !== 'done')
|
|
80
45
|
return undefined;
|
|
81
|
-
const
|
|
82
|
-
|
|
46
|
+
const doneReason = providerEvent.message?.done_reason;
|
|
47
|
+
switch (doneReason) {
|
|
48
|
+
case 'stop':
|
|
49
|
+
return FinishReason.STOP;
|
|
50
|
+
case 'load':
|
|
51
|
+
return FinishReason.ERROR;
|
|
52
|
+
case 'length':
|
|
53
|
+
return FinishReason.LENGTH;
|
|
54
|
+
default:
|
|
55
|
+
return FinishReason.STOP;
|
|
56
|
+
}
|
|
83
57
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const loadDuration = payload.load_duration;
|
|
93
|
-
const promptEvalDuration = payload.prompt_eval_duration;
|
|
94
|
-
if (loadDuration !== undefined && promptEvalDuration !== undefined) {
|
|
95
|
-
// Convert nanoseconds to milliseconds and sum the durations
|
|
96
|
-
const timeToFirstTokenNs = loadDuration + promptEvalDuration;
|
|
97
|
-
return Math.round(timeToFirstTokenNs / 1000000);
|
|
58
|
+
async createProviderEnvelope(workerRequest) {
|
|
59
|
+
const payload = workerRequest.payload;
|
|
60
|
+
let last_user_prompt;
|
|
61
|
+
let system_prompt;
|
|
62
|
+
if (workerRequest.protocol.name === OllamaProtocols.GENERATE) {
|
|
63
|
+
const generatePayload = payload;
|
|
64
|
+
last_user_prompt = normalizeText(generatePayload.prompt);
|
|
65
|
+
system_prompt = generatePayload.system ? normalizeText(generatePayload.system) : generatePayload.system;
|
|
98
66
|
}
|
|
99
|
-
|
|
67
|
+
else {
|
|
68
|
+
const chatPayload = payload;
|
|
69
|
+
last_user_prompt = extractPromptByRole(chatPayload.messages, "user", "last", (msg) => extractTextContent(msg.content));
|
|
70
|
+
system_prompt = extractPromptByRole(chatPayload.messages, "system", "first", (msg) => extractTextContent(msg.content));
|
|
71
|
+
}
|
|
72
|
+
return pickDefined({
|
|
73
|
+
access_model: payload.model,
|
|
74
|
+
last_user_prompt,
|
|
75
|
+
system_prompt
|
|
76
|
+
});
|
|
100
77
|
}
|
|
101
78
|
};
|
|
102
79
|
OllamaAuditor = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.auditor.js","sourceRoot":"","sources":["../src/ollama.auditor.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ollama.auditor.js","sourceRoot":"","sources":["../src/ollama.auditor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { ChatRequest, EmbedRequest, ErrorResponse, GenerateRequest, ListResponse, Ollama } from 'ollama';
|
|
2
2
|
import { BaseProvider } from '@holokai/sdk/provider';
|
|
3
3
|
import type { IAuditor, IProviderTranslator, IResponseFactory, ProviderContext, RunHandle } from '@holokai/types/provider';
|
|
4
|
-
export declare class OllamaProvider extends BaseProvider<Ollama, GenerateRequest | ChatRequest> {
|
|
5
|
-
getModelNameFromRequest(payload: GenerateRequest | ChatRequest): Promise<string>;
|
|
4
|
+
export declare class OllamaProvider extends BaseProvider<Ollama, EmbedRequest | GenerateRequest | ChatRequest> {
|
|
5
|
+
getModelNameFromRequest(payload: EmbedRequest | GenerateRequest | ChatRequest): Promise<string>;
|
|
6
6
|
getModels(allowedModels: string[] | true): Promise<ListResponse>;
|
|
7
|
-
ollamaEmbed(payload: EmbedRequest
|
|
8
|
-
|
|
7
|
+
ollamaEmbed(payload: EmbedRequest): Promise<{
|
|
8
|
+
start: () => Promise<import("ollama").EmbedResponse>;
|
|
9
9
|
}>;
|
|
10
10
|
protected createAuditor(): IAuditor;
|
|
11
11
|
protected createClient(): Ollama;
|
|
12
12
|
protected createTranslator(): IProviderTranslator;
|
|
13
13
|
protected createResponseFactory(): IResponseFactory;
|
|
14
14
|
protected handleError(error: Error): Promise<ErrorResponse>;
|
|
15
|
-
protected
|
|
15
|
+
protected createRequestRunner(payload: GenerateRequest | ChatRequest | EmbedRequest, ctx: ProviderContext): Promise<RunHandle<any>>;
|
|
16
16
|
private ollamaGenerate;
|
|
17
17
|
private ollamaChat;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.provider.d.ts","sourceRoot":"","sources":["../src/ollama.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAC,MAAM,QAAQ,CAAC;AACvG,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EACR,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,SAAS,EACZ,MAAM,yBAAyB,CAAC;AAMjC,qBAAa,cAAe,SAAQ,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ollama.provider.d.ts","sourceRoot":"","sources":["../src/ollama.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAC,MAAM,QAAQ,CAAC;AACvG,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EACR,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,SAAS,EACZ,MAAM,yBAAyB,CAAC;AAMjC,qBAAa,cAAe,SAAQ,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,GAAG,WAAW,CAAC;IAE5F,uBAAuB,CAAC,OAAO,EAAE,YAAY,GAAG,eAAe,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/F,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;IAchE,WAAW,CAAC,OAAO,EAAE,YAAY;;;IAQvC,SAAS,CAAC,aAAa,IAAI,QAAQ;IAInC,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAIjD,SAAS,CAAC,qBAAqB,IAAI,gBAAgB;cAInC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC;cAIjD,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,WAAW,GAAG,YAAY,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAY3H,cAAc;YA4Bd,UAAU;CA4B3B"}
|
package/dist/ollama.provider.js
CHANGED
|
@@ -19,16 +19,10 @@ export class OllamaProvider extends BaseProvider {
|
|
|
19
19
|
models
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
-
async ollamaEmbed(payload
|
|
22
|
+
async ollamaEmbed(payload) {
|
|
23
23
|
return {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return await this.client.embed(payload);
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
this.log.error(`Ollama embed error: ${error instanceof Error ? error.message : String(error)}`);
|
|
30
|
-
throw error;
|
|
31
|
-
}
|
|
24
|
+
start: async () => {
|
|
25
|
+
return await this.client.embed(payload);
|
|
32
26
|
}
|
|
33
27
|
};
|
|
34
28
|
}
|
|
@@ -47,36 +41,29 @@ export class OllamaProvider extends BaseProvider {
|
|
|
47
41
|
async handleError(error) {
|
|
48
42
|
return { error: error.message };
|
|
49
43
|
}
|
|
50
|
-
async
|
|
44
|
+
async createRequestRunner(payload, ctx) {
|
|
51
45
|
switch (ctx.protocol.name) {
|
|
52
46
|
case OllamaProtocols.GENERATE:
|
|
53
47
|
return this.ollamaGenerate(payload, ctx);
|
|
54
48
|
case OllamaProtocols.CHAT:
|
|
55
49
|
return this.ollamaChat(payload, ctx);
|
|
56
50
|
case OllamaProtocols.EMBED:
|
|
57
|
-
return this.ollamaEmbed(payload
|
|
51
|
+
return this.ollamaEmbed(payload);
|
|
58
52
|
}
|
|
59
53
|
throw new Error(`Unsupported requestType: ${JSON.stringify(ctx)}`);
|
|
60
54
|
}
|
|
61
55
|
async ollamaGenerate(request, ctx) {
|
|
62
56
|
if (!request.stream) {
|
|
63
57
|
return {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
catch (error) {
|
|
69
|
-
this.log.error(`Ollama generate error: ${error instanceof Error ? error.message : String(error)}`, {
|
|
70
|
-
config: JSON.stringify(this._config),
|
|
71
|
-
request: JSON.stringify(request)
|
|
72
|
-
});
|
|
73
|
-
throw error;
|
|
74
|
-
}
|
|
58
|
+
start: async () => {
|
|
59
|
+
const result = await this.client.generate({ ...request, stream: false /* ensure */ });
|
|
60
|
+
ctx.emitTextDelta(result.response);
|
|
61
|
+
return result;
|
|
75
62
|
},
|
|
76
63
|
};
|
|
77
64
|
}
|
|
78
65
|
return {
|
|
79
|
-
|
|
66
|
+
start: async () => {
|
|
80
67
|
const streamResp = await this.client.generate({ ...request, stream: true });
|
|
81
68
|
for await (const chunk of streamResp) {
|
|
82
69
|
if (chunk.done)
|
|
@@ -93,22 +80,15 @@ export class OllamaProvider extends BaseProvider {
|
|
|
93
80
|
async ollamaChat(request, ctx) {
|
|
94
81
|
if (!request.stream) {
|
|
95
82
|
return {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
catch (error) {
|
|
101
|
-
this.log.error(`Ollama chat error: ${error instanceof Error ? error.message : String(error)}`, {
|
|
102
|
-
config: JSON.stringify(this._config),
|
|
103
|
-
request: JSON.stringify(request)
|
|
104
|
-
});
|
|
105
|
-
throw error;
|
|
106
|
-
}
|
|
83
|
+
start: async () => {
|
|
84
|
+
const result = await this.client.chat({ ...request, stream: false });
|
|
85
|
+
ctx.emitTextDelta(result.message.content);
|
|
86
|
+
return result;
|
|
107
87
|
},
|
|
108
88
|
};
|
|
109
89
|
}
|
|
110
90
|
return {
|
|
111
|
-
|
|
91
|
+
start: async () => {
|
|
112
92
|
const streamResp = await this.client.chat({ ...request, stream: true });
|
|
113
93
|
for await (const chunk of streamResp) {
|
|
114
94
|
if (chunk.done)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.provider.js","sourceRoot":"","sources":["../src/ollama.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0E,MAAM,EAAC,MAAM,QAAQ,CAAC;AACvG,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAQnD,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAC,eAAe,EAAC,MAAM,UAAU,CAAC;AAEzC,MAAM,OAAO,cAAe,SAAQ,
|
|
1
|
+
{"version":3,"file":"ollama.provider.js","sourceRoot":"","sources":["../src/ollama.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.translator.d.ts","sourceRoot":"","sources":["../src/ollama.translator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"ollama.translator.d.ts","sourceRoot":"","sources":["../src/ollama.translator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EACH,2BAA2B,EAC3B,4BAA4B,EAE5B,+BAA+B,EAC/B,gCAAgC,EAGhC,uBAAuB,EAEvB,sBAAsB,EAEzB,MAAM,eAAe,CAAC;AACvB,OAAO,EAGH,iBAAiB,EAEjB,qBAAqB,EAErB,aAAa,EACb,cAAc,EACjB,MAAM,SAAS,CAAC;AAEjB,qBACa,gBAAiB,YAAW,mBAAmB;IAEpD,OAAO,CAAC,+BAA+B;IACvC,OAAO,CAAC,2BAA2B;IACnC,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,4BAA4B;IACpC,OAAO,CAAC,gCAAgC;IACxC,OAAO,CAAC,sBAAsB;gBALtB,+BAA+B,EAAE,+BAA+B,EAChE,2BAA2B,EAAE,2BAA2B,EACxD,uBAAuB,EAAE,uBAAuB,EAChD,4BAA4B,EAAE,4BAA4B,EAC1D,gCAAgC,EAAE,gCAAgC,EAClE,sBAAsB,EAAE,sBAAsB;IAK1D,MAAM,CAAC,QAAQ,IAAI,mBAAmB;IA+BhC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAK1E,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IASxE,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAI1E,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAOhG,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;IAI5E,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;IAI1E,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAG1E"}
|
|
@@ -10,7 +10,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var OllamaTranslator_1;
|
|
11
11
|
import 'reflect-metadata';
|
|
12
12
|
import { injectable } from "tsyringe";
|
|
13
|
-
import { RequestType } from "@holokai/types/holo";
|
|
14
13
|
import { OllamaChatRequestTranslator, OllamaChatResponseTranslator, OllamaContentDeltaTranslator, OllamaGenerateRequestTranslator, OllamaGenerateResponseTranslator, OllamaMessageDeltaTranslator, OllamaMessageStopTranslator, OllamaMessageTranslator, OllamaOptionsTranslator, OllamaStreamTranslator, OllamaToolTranslator } from "./translators";
|
|
15
14
|
import { isGenerateRequest, isGenerateResponse } from "./types";
|
|
16
15
|
let OllamaTranslator = OllamaTranslator_1 = class OllamaTranslator {
|
|
@@ -56,9 +55,6 @@ let OllamaTranslator = OllamaTranslator_1 = class OllamaTranslator {
|
|
|
56
55
|
}
|
|
57
56
|
}
|
|
58
57
|
async fromHoloRequest(request) {
|
|
59
|
-
if (request.request_type === RequestType.GENERATE) {
|
|
60
|
-
return this.ollamaGenerateRequestTranslator.fromHolo(request);
|
|
61
|
-
}
|
|
62
58
|
return this.ollamaChatRequestTranslator.fromHolo(request);
|
|
63
59
|
}
|
|
64
60
|
async toHoloRequest(request) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.translator.js","sourceRoot":"","sources":["../src/ollama.translator.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ollama.translator.js","sourceRoot":"","sources":["../src/ollama.translator.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { BasePlugin } from '@holokai/sdk/plugin';
|
|
|
7
7
|
import type { IProviderPlugin, PluginContext, PluginPricingSheet } from '@holokai/types/plugin';
|
|
8
8
|
import type { IProvider, IWireAdapter, ProviderCapabilities, WireAdapterParams } from "@holokai/types/provider";
|
|
9
9
|
import type { RouteDefinition } from "@holokai/types/routing";
|
|
10
|
+
import { ProtocolCapability } from "@holokai/types/entities";
|
|
10
11
|
export declare const OllamaProtocols: {
|
|
11
12
|
readonly EMBED: "ollama.embed";
|
|
12
13
|
readonly CHAT: "ollama.chat";
|
|
@@ -24,9 +25,10 @@ export declare class OllamaProviderPlugin extends BasePlugin implements IProvide
|
|
|
24
25
|
readonly GENERATE: "ollama.generate";
|
|
25
26
|
readonly MODELS: "ollama.models";
|
|
26
27
|
};
|
|
27
|
-
defaultProtocol: "ollama.
|
|
28
|
+
defaultProtocol: "ollama.chat";
|
|
28
29
|
createProvider(id: string, name: string, config: any): Promise<IProvider>;
|
|
29
30
|
createWireAdapter(params: WireAdapterParams): Promise<IWireAdapter>;
|
|
31
|
+
getProtocolByCapability(capability: ProtocolCapability): string | undefined;
|
|
30
32
|
getCapabilities(): ProviderCapabilities;
|
|
31
33
|
getRoutes(): RouteDefinition[];
|
|
32
34
|
getPricingSheets(): Map<string, PluginPricingSheet>;
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAAC,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AAE9F,OAAO,KAAK,EAAC,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAG9G,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAAC,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AAE9F,OAAO,KAAK,EAAC,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAG9G,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAE3D,eAAO,MAAM,eAAe;;;;;CAKlB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAGnF,qBAAa,oBAAqB,SAAQ,UAAW,YAAW,eAAe;IAC3E,QAAQ,iDAAY;IACpB,UAAU,wDAA+B;IACzC,mBAAmB,gBAA4B;IAC/C,SAAS;;;;;MAAmB;IAC5B,eAAe,gBAAwB;IAEjC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IASzE,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzE,uBAAuB,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS;IAK3E,eAAe,IAAI,oBAAoB;IAUvC,SAAS,IAAI,eAAe,EAAE;IA0C9B,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAKnD,iBAAiB,IAAI,kBAAkB;IA8BvC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG;;;;IAI5E,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAIvC"}
|
package/dist/plugin.js
CHANGED
|
@@ -21,13 +21,17 @@ export class OllamaProviderPlugin extends BasePlugin {
|
|
|
21
21
|
translator = OllamaTranslator.instance();
|
|
22
22
|
defaultRouteHandler = RouteHandler.PASSTHROUGH;
|
|
23
23
|
protocols = OllamaProtocols;
|
|
24
|
-
defaultProtocol = OllamaProtocols.
|
|
24
|
+
defaultProtocol = OllamaProtocols.CHAT;
|
|
25
25
|
async createProvider(id, name, config) {
|
|
26
26
|
return new OllamaProvider(id, name, this, config);
|
|
27
27
|
}
|
|
28
28
|
async createWireAdapter(params) {
|
|
29
29
|
return new OllamaWireAdapter(params.requestId, params.isStreaming);
|
|
30
30
|
}
|
|
31
|
+
getProtocolByCapability(capability) {
|
|
32
|
+
const route = this.getRoutes().find(r => r.protocol.capability === capability);
|
|
33
|
+
return route?.protocol.name;
|
|
34
|
+
}
|
|
31
35
|
getCapabilities() {
|
|
32
36
|
return {
|
|
33
37
|
streaming: true,
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAC,YAAY,EAAC,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAE3D,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,eAAe;CACjB,CAAC;AAKX,MAAM,OAAO,oBAAqB,SAAQ,UAAU;IAChD,QAAQ,GAAG,QAAQ,CAAC;IACpB,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;IACzC,mBAAmB,GAAG,YAAY,CAAC,WAAW,CAAC;IAC/C,SAAS,GAAG,eAAe,CAAC;IAC5B,eAAe,GAAG,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ let OllamaChatResponseTranslator = class OllamaChatResponseTranslator extends Ba
|
|
|
27
27
|
// ---------- Implementations ----------
|
|
28
28
|
async fromHoloImpl(source) {
|
|
29
29
|
// Build a single assistant message from the last assistant message in Holo (or synthesize empty)
|
|
30
|
-
const holoMsgs = source.
|
|
30
|
+
const holoMsgs = source.output ?? [];
|
|
31
31
|
const lastAssistant = [...holoMsgs].reverse().find(m => m.role === 'assistant');
|
|
32
32
|
// Reuse your message translator rather than duplicating content/image/tool parsing
|
|
33
33
|
const message = lastAssistant
|
|
@@ -47,14 +47,14 @@ let OllamaChatResponseTranslator = class OllamaChatResponseTranslator extends Ba
|
|
|
47
47
|
// Convert provider message back to Holo via your message translator
|
|
48
48
|
const holoAssistant = await this.messageTranslator.toHolo(source.message);
|
|
49
49
|
// Ensure we produce a Holo message array; omit empty content when possible
|
|
50
|
-
const
|
|
50
|
+
const output = [];
|
|
51
51
|
if (Object.keys(holoAssistant).length) {
|
|
52
|
-
|
|
52
|
+
output.push(holoAssistant);
|
|
53
53
|
}
|
|
54
54
|
const usage = this.mapUsageToHolo(source);
|
|
55
55
|
return pickDefined({
|
|
56
56
|
model: source.model,
|
|
57
|
-
|
|
57
|
+
output: output.length ? output : undefined,
|
|
58
58
|
created: source.created_at ? new Date(source.created_at).getTime() : undefined,
|
|
59
59
|
finish_reason: this.mapFinishReasonToHolo(source.done_reason),
|
|
60
60
|
usage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.chat.response.translator.js","sourceRoot":"","sources":["../../src/translators/ollama.chat.response.translator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAGzC;;;GAGG;AAEI,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,cAAgD;IAIjE;IAHnB,YAAY,GAA0B,EAAE,CAAC;IACzC,gBAAgB,GAAgC,EAAE,CAAC;IAE7D,YAA6B,iBAA0C;QACnE,KAAK,EAAE,CAAC;QADiB,sBAAiB,GAAjB,iBAAiB,CAAyB;IAEvE,CAAC;IAED,wCAAwC;IAC9B,KAAK,CAAC,YAAY,CAAC,MAAoB;QAC7C,iGAAiG;QACjG,MAAM,QAAQ,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"ollama.chat.response.translator.js","sourceRoot":"","sources":["../../src/translators/ollama.chat.response.translator.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ let OllamaGenerateResponseTranslator = class OllamaGenerateResponseTranslator ex
|
|
|
22
22
|
super();
|
|
23
23
|
}
|
|
24
24
|
async fromHoloImpl(source) {
|
|
25
|
-
const firstMessage = source.
|
|
25
|
+
const firstMessage = source.output?.[0];
|
|
26
26
|
const responseText = typeof firstMessage?.content === 'string'
|
|
27
27
|
? firstMessage.content
|
|
28
28
|
: Array.isArray(firstMessage?.content)
|
|
@@ -47,7 +47,7 @@ let OllamaGenerateResponseTranslator = class OllamaGenerateResponseTranslator ex
|
|
|
47
47
|
return pickDefined({
|
|
48
48
|
model: source.model,
|
|
49
49
|
created: source.created_at,
|
|
50
|
-
|
|
50
|
+
output: [message],
|
|
51
51
|
finish_reason: this.mapFinishReasonToHolo(source.done_reason),
|
|
52
52
|
usage
|
|
53
53
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.generate.response.translator.js","sourceRoot":"","sources":["../../src/translators/ollama.generate.response.translator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAGrD;;;GAGG;AAEI,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,cAAoD;IAC5F,YAAY,GAA0B,EAAE,CAAC;IACzC,gBAAgB,GAAoC,EAAE,CAAC;IAEjE;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,MAAoB;QAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"ollama.generate.response.translator.js","sourceRoot":"","sources":["../../src/translators/ollama.generate.response.translator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.message.translators.d.ts","sourceRoot":"","sources":["../../src/translators/ollama.message.translators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAErD,OAAO,KAAK,EAAc,WAAW,EAAC,MAAM,qBAAqB,CAAC;AAElE,qBACa,uBAAwB,SAAQ,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC;IACnF,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAM;IAClD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAM;;cAMxC,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;cAsBlE,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IA4BhF,OAAO,CAAC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"ollama.message.translators.d.ts","sourceRoot":"","sources":["../../src/translators/ollama.message.translators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAErD,OAAO,KAAK,EAAc,WAAW,EAAC,MAAM,qBAAqB,CAAC;AAElE,qBACa,uBAAwB,SAAQ,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC;IACnF,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAM;IAClD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAM;;cAMxC,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;cAsBlE,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IA4BhF,OAAO,CAAC,uBAAuB;IA6B/B,OAAO,CAAC,gBAAgB;CAuB3B"}
|
|
@@ -78,7 +78,10 @@ let OllamaMessageTranslator = class OllamaMessageTranslator extends BaseTranslat
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
else if (part.type === "image") {
|
|
81
|
-
|
|
81
|
+
if (part.url)
|
|
82
|
+
images.push(part.url);
|
|
83
|
+
else if (part.data)
|
|
84
|
+
images.push(part.data);
|
|
82
85
|
}
|
|
83
86
|
}
|
|
84
87
|
return pickDefined({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.message.translators.js","sourceRoot":"","sources":["../../src/translators/ollama.message.translators.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAC,MAAM,cAAc,CAAC;AAIhE,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,cAA0C;IACzE,YAAY,GAAyB,EAAE,CAAC;IACxC,gBAAgB,GAA2B,EAAE,CAAC;IAExD;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,MAAmB;QAC5C,MAAM,EAAC,OAAO,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE;YAC/C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC/B,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC;oBACJ,QAAQ,EAAE;wBACN,IAAI;wBACJ,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE;qBACzC;iBACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;YACf,IAAI,EAAE,MAAM,CAAC,IAA6B;YAC1C,OAAO;YACP,MAAM;YACN,UAAU;SACb,CAA2B,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,MAAqB;QAC5C,MAAM,IAAI,GACN,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;YAC3E,CAAC,CAAC,MAAM,CAAC,IAAI;YACb,CAAC,CAAC,MAAM,CAAC;QAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAErE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE;YACtD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC/B,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC;oBACJ,EAAE,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE;oBACpB,IAAI,EAAE,UAAmB;oBACzB,QAAQ,EAAE;wBACN,IAAI;wBACJ,SAAS,EAAG,EAAE,CAAC,QAAQ,EAAE,SAAqC,IAAI,EAAE;qBACvE;iBACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;YACf,IAAI;YACJ,OAAO;YACP,UAAU;SACb,CAAyB,CAAC;IAC/B,CAAC;IAEO,uBAAuB,CAAC,OAA+B;QAC3D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC3B,IAAI,CAAC,EAAE,CAAC;oBACJ,OAAO,GAAG,IAAI,CAAC;oBACf,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ollama.message.translators.js","sourceRoot":"","sources":["../../src/translators/ollama.message.translators.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@holokai/holo-provider-ollama",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Ollama provider plugin for Holo LLM Gateway",
|
|
6
6
|
"author": "Holokai",
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
},
|
|
16
16
|
"repository": {
|
|
17
17
|
"type": "git",
|
|
18
|
-
"url": "git+https://github.com/
|
|
18
|
+
"url": "git+https://github.com/holok-ai/holo-provider-ollama.git"
|
|
19
19
|
},
|
|
20
20
|
"bugs": {
|
|
21
|
-
"url": "https://github.com/
|
|
21
|
+
"url": "https://github.com/holok-ai/holo-provider-ollama/issues"
|
|
22
22
|
},
|
|
23
|
-
"homepage": "https://github.com/
|
|
23
|
+
"homepage": "https://github.com/holok-ai/holo-provider-ollama#readme",
|
|
24
24
|
"keywords": [
|
|
25
25
|
"holokai",
|
|
26
26
|
"holo",
|
|
@@ -52,18 +52,17 @@
|
|
|
52
52
|
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
53
53
|
"type-check": "tsc --noEmit",
|
|
54
54
|
"lint": "eslint src",
|
|
55
|
-
"test": "
|
|
56
|
-
"test:watch": "jest --watch",
|
|
57
|
-
"test:integration": "jest tests/integration",
|
|
55
|
+
"test": "vitest run",
|
|
58
56
|
"prepublishOnly": "npm run clean && npm run build"
|
|
59
57
|
},
|
|
60
58
|
"peerDependencies": {
|
|
61
|
-
"@holokai/sdk": "^1.
|
|
59
|
+
"@holokai/sdk": "^1.2.2"
|
|
62
60
|
},
|
|
63
61
|
"dependencies": {
|
|
64
62
|
"ollama": "^0.6.3"
|
|
65
63
|
},
|
|
66
64
|
"devDependencies": {
|
|
65
|
+
"@holokai/test-utils": "*",
|
|
67
66
|
"@types/node": "^24.0.11",
|
|
68
67
|
"typescript": "^5.8.3"
|
|
69
68
|
}
|