@holokai/holo-provider-openai 0.1.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/LICENSE +21 -0
- package/README.md +771 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest.d.ts +3 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +163 -0
- package/dist/manifest.js.map +1 -0
- package/dist/openai.auditor.d.ts +15 -0
- package/dist/openai.auditor.d.ts.map +1 -0
- package/dist/openai.auditor.js +164 -0
- package/dist/openai.auditor.js.map +1 -0
- package/dist/openai.provider.d.ts +24 -0
- package/dist/openai.provider.d.ts.map +1 -0
- package/dist/openai.provider.js +111 -0
- package/dist/openai.provider.js.map +1 -0
- package/dist/openai.response.factory.d.ts +8 -0
- package/dist/openai.response.factory.d.ts.map +1 -0
- package/dist/openai.response.factory.js +15 -0
- package/dist/openai.response.factory.js.map +1 -0
- package/dist/openai.translator.d.ts +22 -0
- package/dist/openai.translator.d.ts.map +1 -0
- package/dist/openai.translator.js +74 -0
- package/dist/openai.translator.js.map +1 -0
- package/dist/openai.wire.adapter.d.ts +12 -0
- package/dist/openai.wire.adapter.d.ts.map +1 -0
- package/dist/openai.wire.adapter.js +17 -0
- package/dist/openai.wire.adapter.js.map +1 -0
- package/dist/plugin.d.ts +14 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +59 -0
- package/dist/plugin.js.map +1 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +2 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/openai.chatcompletions.service.d.ts +12 -0
- package/dist/services/openai.chatcompletions.service.d.ts.map +1 -0
- package/dist/services/openai.chatcompletions.service.js +66 -0
- package/dist/services/openai.chatcompletions.service.js.map +1 -0
- package/dist/translators/index.d.ts +10 -0
- package/dist/translators/index.d.ts.map +1 -0
- package/dist/translators/index.js +10 -0
- package/dist/translators/index.js.map +1 -0
- package/dist/translators/openai.chatcompletion.request.translators.d.ts +23 -0
- package/dist/translators/openai.chatcompletion.request.translators.d.ts.map +1 -0
- package/dist/translators/openai.chatcompletion.request.translators.js +201 -0
- package/dist/translators/openai.chatcompletion.request.translators.js.map +1 -0
- package/dist/translators/openai.chatcompletion.response.translators.d.ts +18 -0
- package/dist/translators/openai.chatcompletion.response.translators.d.ts.map +1 -0
- package/dist/translators/openai.chatcompletion.response.translators.js +117 -0
- package/dist/translators/openai.chatcompletion.response.translators.js.map +1 -0
- package/dist/translators/openai.content.translators.d.ts +28 -0
- package/dist/translators/openai.content.translators.d.ts.map +1 -0
- package/dist/translators/openai.content.translators.js +100 -0
- package/dist/translators/openai.content.translators.js.map +1 -0
- package/dist/translators/openai.message.translators.d.ts +15 -0
- package/dist/translators/openai.message.translators.d.ts.map +1 -0
- package/dist/translators/openai.message.translators.js +144 -0
- package/dist/translators/openai.message.translators.js.map +1 -0
- package/dist/translators/openai.response.message.translators.d.ts +12 -0
- package/dist/translators/openai.response.message.translators.d.ts.map +1 -0
- package/dist/translators/openai.response.message.translators.js +100 -0
- package/dist/translators/openai.response.message.translators.js.map +1 -0
- package/dist/translators/openai.responses.request.translators.d.ts +10 -0
- package/dist/translators/openai.responses.request.translators.d.ts.map +1 -0
- package/dist/translators/openai.responses.request.translators.js +172 -0
- package/dist/translators/openai.responses.request.translators.js.map +1 -0
- package/dist/translators/openai.tool.translators.d.ts +19 -0
- package/dist/translators/openai.tool.translators.d.ts.map +1 -0
- package/dist/translators/openai.tool.translators.js +80 -0
- package/dist/translators/openai.tool.translators.js.map +1 -0
- package/dist/translators/openai.usage.translators.d.ts +12 -0
- package/dist/translators/openai.usage.translators.d.ts.map +1 -0
- package/dist/translators/openai.usage.translators.js +42 -0
- package/dist/translators/openai.usage.translators.js.map +1 -0
- package/dist/translators/streaming/index.d.ts +6 -0
- package/dist/translators/streaming/index.d.ts.map +1 -0
- package/dist/translators/streaming/index.js +6 -0
- package/dist/translators/streaming/index.js.map +1 -0
- package/dist/translators/streaming/openai.content.delta.translator.d.ts +12 -0
- package/dist/translators/streaming/openai.content.delta.translator.d.ts.map +1 -0
- package/dist/translators/streaming/openai.content.delta.translator.js +82 -0
- package/dist/translators/streaming/openai.content.delta.translator.js.map +1 -0
- package/dist/translators/streaming/openai.message.delta.translator.d.ts +12 -0
- package/dist/translators/streaming/openai.message.delta.translator.d.ts.map +1 -0
- package/dist/translators/streaming/openai.message.delta.translator.js +152 -0
- package/dist/translators/streaming/openai.message.delta.translator.js.map +1 -0
- package/dist/translators/streaming/openai.message.start.translator.d.ts +12 -0
- package/dist/translators/streaming/openai.message.start.translator.d.ts.map +1 -0
- package/dist/translators/streaming/openai.message.start.translator.js +80 -0
- package/dist/translators/streaming/openai.message.start.translator.js.map +1 -0
- package/dist/translators/streaming/openai.message.stop.translator.d.ts +14 -0
- package/dist/translators/streaming/openai.message.stop.translator.d.ts.map +1 -0
- package/dist/translators/streaming/openai.message.stop.translator.js +112 -0
- package/dist/translators/streaming/openai.message.stop.translator.js.map +1 -0
- package/dist/translators/streaming/openai.stream.translator.d.ts +20 -0
- package/dist/translators/streaming/openai.stream.translator.d.ts.map +1 -0
- package/dist/translators/streaming/openai.stream.translator.js +86 -0
- package/dist/translators/streaming/openai.stream.translator.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var OpenAITranslator_1;
|
|
11
|
+
import 'reflect-metadata';
|
|
12
|
+
import { injectable } from "tsyringe";
|
|
13
|
+
import { OpenAIContentTranslator, OpenAIImageContentTranslator, OpenAIMessageTranslator, OpenAIRequestTranslator, OpenAIResponseMessageTranslator, OpenAIResponseTranslator, OpenAIStreamTranslator, OpenAITextContentTranslator, OpenAIToolChoiceTranslator, OpenAIToolTranslator, OpenAIUsageTranslator } from "./translators";
|
|
14
|
+
import { OpenAIContentDeltaTranslator, OpenAIMessageDeltaTranslator, OpenAIMessageStartTranslator, OpenAIMessageStopTranslator } from "./translators/streaming";
|
|
15
|
+
let OpenAITranslator = OpenAITranslator_1 = class OpenAITranslator {
|
|
16
|
+
responseTranslator;
|
|
17
|
+
requestTranslator;
|
|
18
|
+
messageTranslator;
|
|
19
|
+
streamTranslator;
|
|
20
|
+
constructor(responseTranslator, requestTranslator, messageTranslator, streamTranslator) {
|
|
21
|
+
this.responseTranslator = responseTranslator;
|
|
22
|
+
this.requestTranslator = requestTranslator;
|
|
23
|
+
this.messageTranslator = messageTranslator;
|
|
24
|
+
this.streamTranslator = streamTranslator;
|
|
25
|
+
}
|
|
26
|
+
static instance() {
|
|
27
|
+
const textContentTranslator = new OpenAITextContentTranslator();
|
|
28
|
+
const imageContentTranslator = new OpenAIImageContentTranslator();
|
|
29
|
+
const contentTranslator = new OpenAIContentTranslator(textContentTranslator, imageContentTranslator);
|
|
30
|
+
const messageTranslator = new OpenAIMessageTranslator(contentTranslator);
|
|
31
|
+
const toolTranslator = new OpenAIToolTranslator();
|
|
32
|
+
const toolChoiceTranslator = new OpenAIToolChoiceTranslator();
|
|
33
|
+
const requestTranslator = new OpenAIRequestTranslator(messageTranslator, toolTranslator, toolChoiceTranslator);
|
|
34
|
+
const usageTranslator = new OpenAIUsageTranslator();
|
|
35
|
+
const responseMessageTranslator = new OpenAIResponseMessageTranslator();
|
|
36
|
+
const responseTranslator = new OpenAIResponseTranslator(responseMessageTranslator, usageTranslator);
|
|
37
|
+
const messageStartTranslator = new OpenAIMessageStartTranslator();
|
|
38
|
+
const contentDeltaTranslator = new OpenAIContentDeltaTranslator();
|
|
39
|
+
const messageDeltaTranslator = new OpenAIMessageDeltaTranslator();
|
|
40
|
+
const messageStopTranslator = new OpenAIMessageStopTranslator();
|
|
41
|
+
const streamTranslator = new OpenAIStreamTranslator(messageStartTranslator, contentDeltaTranslator, messageDeltaTranslator, messageStopTranslator);
|
|
42
|
+
return new OpenAITranslator_1(responseTranslator, requestTranslator, messageTranslator, streamTranslator);
|
|
43
|
+
}
|
|
44
|
+
async fromHoloResponse(response) {
|
|
45
|
+
return this.responseTranslator.fromHolo(response);
|
|
46
|
+
}
|
|
47
|
+
async toHoloResponse(response) {
|
|
48
|
+
return this.responseTranslator.toHolo(response);
|
|
49
|
+
}
|
|
50
|
+
async fromHoloRequest(request) {
|
|
51
|
+
return this.requestTranslator.fromHolo(request);
|
|
52
|
+
}
|
|
53
|
+
async toHoloRequest(request) {
|
|
54
|
+
return this.requestTranslator.toHolo(request);
|
|
55
|
+
}
|
|
56
|
+
async fromHoloMessages(messages) {
|
|
57
|
+
return this.messageTranslator.fromHoloArray(messages);
|
|
58
|
+
}
|
|
59
|
+
async toHoloMessages(messages) {
|
|
60
|
+
return this.messageTranslator.toHoloArray(messages);
|
|
61
|
+
}
|
|
62
|
+
async fromHoloStreamChunks(chunks) {
|
|
63
|
+
return this.streamTranslator.fromHoloManyArray(chunks);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
OpenAITranslator = OpenAITranslator_1 = __decorate([
|
|
67
|
+
injectable(),
|
|
68
|
+
__metadata("design:paramtypes", [OpenAIResponseTranslator,
|
|
69
|
+
OpenAIRequestTranslator,
|
|
70
|
+
OpenAIMessageTranslator,
|
|
71
|
+
OpenAIStreamTranslator])
|
|
72
|
+
], OpenAITranslator);
|
|
73
|
+
export { OpenAITranslator };
|
|
74
|
+
//# sourceMappingURL=openai.translator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.translator.js","sourceRoot":"","sources":["../src/openai.translator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseWireAdapter, ProviderEvent, WireChunk } from "@holokai/sdk";
|
|
2
|
+
import { ResponseStreamEvent } from "openai/resources/responses/responses";
|
|
3
|
+
export declare class OpenAICompletionsWireAdapter extends BaseWireAdapter {
|
|
4
|
+
formatWire(data: string | any): string;
|
|
5
|
+
protected onDoneStreaming(ev: Extract<ProviderEvent, {
|
|
6
|
+
type: "done";
|
|
7
|
+
}>): WireChunk[];
|
|
8
|
+
}
|
|
9
|
+
export declare class OpenAIResponsesWireAdapter extends BaseWireAdapter {
|
|
10
|
+
formatWire(data: ResponseStreamEvent): string;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=openai.wire.adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.wire.adapter.d.ts","sourceRoot":"","sources":["../src/openai.wire.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,aAAa,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AACvE,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AAEzE,qBAAa,4BAA6B,SAAQ,eAAe;IAEtD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,MAAM;IAI7C,SAAS,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,EAAE;CAGvF;AAGD,qBAAa,0BAA2B,SAAQ,eAAe;IAC3D,UAAU,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM;CAKhD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseWireAdapter } from "@holokai/sdk";
|
|
2
|
+
export class OpenAICompletionsWireAdapter extends BaseWireAdapter {
|
|
3
|
+
formatWire(data) {
|
|
4
|
+
return `data: ${typeof data === 'string' ? data : JSON.stringify(data)}\n\n`;
|
|
5
|
+
}
|
|
6
|
+
onDoneStreaming(ev) {
|
|
7
|
+
return [this.chunkify('[DONE]', ev, true)];
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export class OpenAIResponsesWireAdapter extends BaseWireAdapter {
|
|
11
|
+
formatWire(data) {
|
|
12
|
+
const eventLine = `event: ${data.type}\n`;
|
|
13
|
+
const dataLine = `data: ${JSON.stringify(data)}\n\n`;
|
|
14
|
+
return eventLine + dataLine;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=openai.wire.adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.wire.adapter.js","sourceRoot":"","sources":["../src/openai.wire.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAA2B,MAAM,cAAc,CAAC;AAGvE,MAAM,OAAO,4BAA6B,SAAQ,eAAe;IAEtD,UAAU,CAAC,IAAkB;QAChC,OAAO,SAAS,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;IACjF,CAAC;IAES,eAAe,CAAC,EAA4C;QAClE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;CACJ;AAGD,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IAC3D,UAAU,CAAC,IAAyB;QAChC,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,IAAI,IAAI,CAAA;QACzC,MAAM,QAAQ,GAAG,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QACrD,OAAO,SAAS,GAAG,QAAQ,CAAC;IAChC,CAAC;CACJ"}
|
package/dist/plugin.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BasePlugin, IProviderPlugin, PluginContext } from '@holokai/sdk/plugin';
|
|
2
|
+
import { IProvider, IWireAdapter, ProviderCapabilities, WireAdapterParams } from "@holokai/sdk/provider";
|
|
3
|
+
import { RouteTree } from "@holokai/sdk";
|
|
4
|
+
export declare class OpenAIProviderPlugin extends BasePlugin implements IProviderPlugin {
|
|
5
|
+
manifest: import("@holokai/sdk").PluginManifest;
|
|
6
|
+
translator: import("@holokai/sdk").IProviderTranslator;
|
|
7
|
+
createProvider(config: any): Promise<IProvider>;
|
|
8
|
+
createWireAdapter(params: WireAdapterParams): IWireAdapter;
|
|
9
|
+
getCapabilities(): ProviderCapabilities;
|
|
10
|
+
getRoutes(): RouteTree;
|
|
11
|
+
protected onInitialize(_context: PluginContext): Promise<void>;
|
|
12
|
+
protected onDestroy(): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,eAAe,EAAE,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAC,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAEvG,OAAO,EAA4B,SAAS,EAAgB,MAAM,cAAc,CAAC;AAIjF,qBAAa,oBAAqB,SAAQ,UAAW,YAAW,eAAe;IAC3E,QAAQ,wCAAY;IACpB,UAAU,6CAA+B;IAEnC,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC;IASrD,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,YAAY;IAO1D,eAAe,IAAI,oBAAoB;IAUvC,SAAS,IAAI,SAAS;IAyBtB,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
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { BasePlugin } from '@holokai/sdk/plugin';
|
|
2
|
+
import { manifest } from "./manifest.js";
|
|
3
|
+
import { OpenAIProvider } from "./openai.provider";
|
|
4
|
+
import { RequestType, RouteHandler } from "@holokai/sdk";
|
|
5
|
+
import { OpenAITranslator } from "./openai.translator";
|
|
6
|
+
import { OpenAICompletionsWireAdapter, OpenAIResponsesWireAdapter } from "./openai.wire.adapter";
|
|
7
|
+
export class OpenAIProviderPlugin extends BasePlugin {
|
|
8
|
+
manifest = manifest;
|
|
9
|
+
translator = OpenAITranslator.instance();
|
|
10
|
+
async createProvider(config) {
|
|
11
|
+
return new OpenAIProvider(this.name, this.family, this.version, config);
|
|
12
|
+
}
|
|
13
|
+
createWireAdapter(params) {
|
|
14
|
+
const { requestId, isStreaming, requestType } = params;
|
|
15
|
+
return requestType === RequestType.RESPONSES
|
|
16
|
+
? new OpenAIResponsesWireAdapter(requestId, isStreaming)
|
|
17
|
+
: new OpenAICompletionsWireAdapter(requestId, isStreaming);
|
|
18
|
+
}
|
|
19
|
+
getCapabilities() {
|
|
20
|
+
return {
|
|
21
|
+
streaming: true,
|
|
22
|
+
tools: true,
|
|
23
|
+
vision: true,
|
|
24
|
+
functionCalling: true,
|
|
25
|
+
maxTokens: 128000
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
getRoutes() {
|
|
29
|
+
const routes = {
|
|
30
|
+
models: {
|
|
31
|
+
method: 'GET',
|
|
32
|
+
handler: RouteHandler.MODELS
|
|
33
|
+
},
|
|
34
|
+
chat: {
|
|
35
|
+
completions: {
|
|
36
|
+
method: 'POST',
|
|
37
|
+
requestType: RequestType.CHAT,
|
|
38
|
+
handler: RouteHandler.REQUEST
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
responses: {
|
|
42
|
+
method: 'POST',
|
|
43
|
+
requestType: RequestType.RESPONSES,
|
|
44
|
+
handler: RouteHandler.REQUEST
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
return {
|
|
48
|
+
...routes,
|
|
49
|
+
v1: routes
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
onInitialize(_context) {
|
|
53
|
+
return Promise.resolve();
|
|
54
|
+
}
|
|
55
|
+
onDestroy() {
|
|
56
|
+
return Promise.resolve();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAiC,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,WAAW,EAAE,YAAY,EAA2B,MAAM,cAAc,CAAC;AACjF,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAC,4BAA4B,EAAE,0BAA0B,EAAC,MAAM,uBAAuB,CAAC;AAE/F,MAAM,OAAO,oBAAqB,SAAQ,UAAU;IAChD,QAAQ,GAAG,QAAQ,CAAC;IACpB,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;IAEzC,KAAK,CAAC,cAAc,CAAC,MAAW;QAC5B,OAAO,IAAI,cAAc,CACrB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,MAAM,CACT,CAAC;IACN,CAAC;IAED,iBAAiB,CAAC,MAAyB;QACvC,MAAM,EAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAC,GAAG,MAAM,CAAC;QACrD,OAAO,WAAW,KAAK,WAAW,CAAC,SAAS;YACxC,CAAC,CAAC,IAAI,0BAA0B,CAAC,SAAS,EAAE,WAAW,CAAC;YACxD,CAAC,CAAC,IAAI,4BAA4B,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACnE,CAAC;IAED,eAAe;QACX,OAAO;YACH,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,MAAM;SACpB,CAAC;IACN,CAAC;IAED,SAAS;QACL,MAAM,MAAM,GAAkB;YAC1B,MAAM,EAAE;gBACJ,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,YAAY,CAAC,MAAM;aAC/B;YACD,IAAI,EAAE;gBACF,WAAW,EAAE;oBACT,MAAM,EAAE,MAAM;oBACd,WAAW,EAAE,WAAW,CAAC,IAAI;oBAC7B,OAAO,EAAE,YAAY,CAAC,OAAO;iBAChC;aACJ;YACD,SAAS,EAAE;gBACP,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,WAAW,CAAC,SAAS;gBAClC,OAAO,EAAE,YAAY,CAAC,OAAO;aAChC;SACJ,CAAC;QACF,OAAO;YACH,GAAG,MAAM;YACT,EAAE,EAAE,MAAM;SACb,CAAA;IACL,CAAC;IAES,YAAY,CAAC,QAAuB;QAC1C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAES,SAAS;QACf,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CAEJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import OpenAI from 'openai';
|
|
2
|
+
import { HoloWorkerResponse } from "@holokai/sdk";
|
|
3
|
+
import type { ChatCompletionCreateParamsBase } from "openai/resources/chat/completions";
|
|
4
|
+
export declare class OpenAIChatCompletionsService {
|
|
5
|
+
private readonly client;
|
|
6
|
+
private readonly createWorkerResponse;
|
|
7
|
+
private readonly onResponseChunk;
|
|
8
|
+
private readonly validateModel;
|
|
9
|
+
constructor(client: OpenAI, createWorkerResponse: (sourceId: string, requestId: string, providerType: any, payload: any, fullResponse?: string) => HoloWorkerResponse, onResponseChunk: (responseChunk: HoloWorkerResponse, auditEnabled?: boolean) => Promise<void>, validateModel: (model: string) => void);
|
|
10
|
+
execute(sourceId: string, requestId: string, chatRequest: ChatCompletionCreateParamsBase): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=openai.chatcompletions.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.chatcompletions.service.d.ts","sourceRoot":"","sources":["../../src/services/openai.chatcompletions.service.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAC,8BAA8B,EAAC,MAAM,mCAAmC,CAAC;AAEtF,qBAAa,4BAA4B;IAEjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAOrC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa;gBATb,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,CACnC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,GAAG,EACjB,OAAO,EAAE,GAAG,EACZ,YAAY,CAAC,EAAE,MAAM,KACpB,kBAAkB,EACN,eAAe,EAAE,CAAC,aAAa,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,EAC7F,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;IAIrD,OAAO,CACT,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,8BAA8B,GAC5C,OAAO,CAAC,IAAI,CAAC;CAyDnB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export class OpenAIChatCompletionsService {
|
|
2
|
+
client;
|
|
3
|
+
createWorkerResponse;
|
|
4
|
+
onResponseChunk;
|
|
5
|
+
validateModel;
|
|
6
|
+
constructor(client, createWorkerResponse, onResponseChunk, validateModel) {
|
|
7
|
+
this.client = client;
|
|
8
|
+
this.createWorkerResponse = createWorkerResponse;
|
|
9
|
+
this.onResponseChunk = onResponseChunk;
|
|
10
|
+
this.validateModel = validateModel;
|
|
11
|
+
}
|
|
12
|
+
async execute(sourceId, requestId, chatRequest) {
|
|
13
|
+
this.validateModel(chatRequest.model);
|
|
14
|
+
let fullResponse = '';
|
|
15
|
+
if (chatRequest.stream) {
|
|
16
|
+
chatRequest.stream_options = { include_usage: true };
|
|
17
|
+
}
|
|
18
|
+
const response = await this.client.chat.completions.create(chatRequest);
|
|
19
|
+
const startTime = Date.now();
|
|
20
|
+
let timeToFirst = 0;
|
|
21
|
+
if (chatRequest.stream) {
|
|
22
|
+
try {
|
|
23
|
+
// @ts-ignore
|
|
24
|
+
for await (const chunk of response) {
|
|
25
|
+
if (chunk?.usage) {
|
|
26
|
+
chunk.usage.timeToFirstToken = timeToFirst;
|
|
27
|
+
chunk.usage.totalProcessingTime = Date.now() - startTime;
|
|
28
|
+
const responseChunk = this.createWorkerResponse(sourceId, requestId, 'openai', chunk, fullResponse);
|
|
29
|
+
await this.onResponseChunk(responseChunk, true);
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
const choice = chunk.choices?.[0];
|
|
33
|
+
if (choice?.delta) {
|
|
34
|
+
if (choice.delta.content) {
|
|
35
|
+
if (timeToFirst == 0)
|
|
36
|
+
timeToFirst = Date.now() - startTime;
|
|
37
|
+
const token = choice.delta.content;
|
|
38
|
+
fullResponse += token;
|
|
39
|
+
}
|
|
40
|
+
const responseChunk = this.createWorkerResponse(sourceId, requestId, 'openai', chunk);
|
|
41
|
+
await this.onResponseChunk(responseChunk);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
const errorResponse = this.createWorkerResponse(sourceId, requestId, 'openai', error);
|
|
47
|
+
await this.onResponseChunk(errorResponse, false);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
try {
|
|
52
|
+
const message = response;
|
|
53
|
+
if (message.choices && message.choices.length > 0) {
|
|
54
|
+
fullResponse = message.choices[0].message?.content || '';
|
|
55
|
+
}
|
|
56
|
+
const responseChunk = this.createWorkerResponse(sourceId, requestId, 'openai', response, fullResponse);
|
|
57
|
+
await this.onResponseChunk(responseChunk, true);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
const errorResponse = this.createWorkerResponse(sourceId, requestId, 'openai', error);
|
|
61
|
+
await this.onResponseChunk(errorResponse, false);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=openai.chatcompletions.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.chatcompletions.service.js","sourceRoot":"","sources":["../../src/services/openai.chatcompletions.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './openai.chatcompletion.request.translators';
|
|
2
|
+
export * from './openai.chatcompletion.response.translators';
|
|
3
|
+
export * from './openai.content.translators';
|
|
4
|
+
export * from './openai.message.translators';
|
|
5
|
+
export * from './openai.response.message.translators';
|
|
6
|
+
export * from './openai.responses.request.translators';
|
|
7
|
+
export * from './openai.tool.translators';
|
|
8
|
+
export * from './openai.usage.translators';
|
|
9
|
+
export * from './streaming/openai.stream.translator';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translators/index.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './openai.chatcompletion.request.translators';
|
|
2
|
+
export * from './openai.chatcompletion.response.translators';
|
|
3
|
+
export * from './openai.content.translators';
|
|
4
|
+
export * from './openai.message.translators';
|
|
5
|
+
export * from './openai.response.message.translators';
|
|
6
|
+
export * from './openai.responses.request.translators';
|
|
7
|
+
export * from './openai.tool.translators';
|
|
8
|
+
export * from './openai.usage.translators';
|
|
9
|
+
export * from './streaming/openai.stream.translator';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/translators/index.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { OpenAIMessageTranslator } from "./openai.message.translators";
|
|
2
|
+
import { OpenAIToolChoiceTranslator, OpenAIToolTranslator } from "./openai.tool.translators";
|
|
3
|
+
import { BaseTranslator, HoloRequest } from "@holokai/sdk";
|
|
4
|
+
import { ChatCompletionCreateParamsBase } from "openai/resources/chat/completions";
|
|
5
|
+
/**
|
|
6
|
+
* OpenAI Request Translator
|
|
7
|
+
*
|
|
8
|
+
* Validator alignment requirements:
|
|
9
|
+
* - ChatCompletionCreateParamsBaseValidator should include max_completion_tokens? and safety_identifier?
|
|
10
|
+
* - Legacy max_tokens? and user? can be accepted for backward compatibility
|
|
11
|
+
* - HoloRequestValidator remains unchanged
|
|
12
|
+
*/
|
|
13
|
+
export declare class OpenAIRequestTranslator extends BaseTranslator<HoloRequest, ChatCompletionCreateParamsBase> {
|
|
14
|
+
private readonly messageTranslator;
|
|
15
|
+
private readonly toolTranslator;
|
|
16
|
+
private readonly toolChoiceTranslator;
|
|
17
|
+
protected holoDefaults: Partial<HoloRequest>;
|
|
18
|
+
protected providerDefaults: Partial<ChatCompletionCreateParamsBase>;
|
|
19
|
+
constructor(messageTranslator: OpenAIMessageTranslator, toolTranslator: OpenAIToolTranslator, toolChoiceTranslator: OpenAIToolChoiceTranslator);
|
|
20
|
+
protected fromHoloImpl(source: HoloRequest): Promise<Partial<ChatCompletionCreateParamsBase>>;
|
|
21
|
+
protected toHoloImpl(source: ChatCompletionCreateParamsBase): Promise<Partial<HoloRequest>>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=openai.chatcompletion.request.translators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.chatcompletion.request.translators.d.ts","sourceRoot":"","sources":["../../src/translators/openai.chatcompletion.request.translators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,0BAA0B,EAAE,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAE3F,OAAO,EACH,cAAc,EAEd,WAAW,EAKd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,8BAA8B,EAAC,MAAM,mCAAmC,CAAC;AAQjF;;;;;;;GAOG;AACH,qBACa,uBAAwB,SAAQ,cAAc,CAAC,WAAW,EAAE,8BAA8B,CAAC;IAKhG,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IANzC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAM;IAClD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAM;gBAGpD,iBAAiB,EAAE,uBAAuB,EAC1C,cAAc,EAAE,oBAAoB,EACpC,oBAAoB,EAAE,0BAA0B;cAKrD,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;cA0FnF,UAAU,CAAC,MAAM,EAAE,8BAA8B,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;CA2FpG"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { OpenAIMessageTranslator } from "./openai.message.translators";
|
|
11
|
+
import { OpenAIToolChoiceTranslator, OpenAIToolTranslator } from "./openai.tool.translators";
|
|
12
|
+
import { injectable } from 'tsyringe';
|
|
13
|
+
import { BaseTranslator, pickDefined } from "@holokai/sdk";
|
|
14
|
+
/**
|
|
15
|
+
* OpenAI Request Translator
|
|
16
|
+
*
|
|
17
|
+
* Validator alignment requirements:
|
|
18
|
+
* - ChatCompletionCreateParamsBaseValidator should include max_completion_tokens? and safety_identifier?
|
|
19
|
+
* - Legacy max_tokens? and user? can be accepted for backward compatibility
|
|
20
|
+
* - HoloRequestValidator remains unchanged
|
|
21
|
+
*/
|
|
22
|
+
let OpenAIRequestTranslator = class OpenAIRequestTranslator extends BaseTranslator {
|
|
23
|
+
messageTranslator;
|
|
24
|
+
toolTranslator;
|
|
25
|
+
toolChoiceTranslator;
|
|
26
|
+
holoDefaults = {};
|
|
27
|
+
providerDefaults = {};
|
|
28
|
+
constructor(messageTranslator, toolTranslator, toolChoiceTranslator) {
|
|
29
|
+
super();
|
|
30
|
+
this.messageTranslator = messageTranslator;
|
|
31
|
+
this.toolTranslator = toolTranslator;
|
|
32
|
+
this.toolChoiceTranslator = toolChoiceTranslator;
|
|
33
|
+
}
|
|
34
|
+
async fromHoloImpl(source) {
|
|
35
|
+
// Map service tier (only 'auto' | 'default' forwarded to OpenAI, 'standard_only' dropped)
|
|
36
|
+
const serviceTierMap = {
|
|
37
|
+
'auto': 'auto',
|
|
38
|
+
'default': 'default'
|
|
39
|
+
};
|
|
40
|
+
const mappedServiceTier = source.service_tier ? serviceTierMap[source.service_tier] : undefined;
|
|
41
|
+
// Handle response format
|
|
42
|
+
let response_format;
|
|
43
|
+
if (source.response_format) {
|
|
44
|
+
const format = source.response_format;
|
|
45
|
+
if (format.type === 'json_object') {
|
|
46
|
+
response_format = { type: 'json_object' };
|
|
47
|
+
}
|
|
48
|
+
else if (format.type === 'json_schema') {
|
|
49
|
+
response_format = {
|
|
50
|
+
type: 'json_schema',
|
|
51
|
+
json_schema: {
|
|
52
|
+
name: 'holo',
|
|
53
|
+
schema: format.schema,
|
|
54
|
+
...(format.strict !== undefined && { strict: format.strict })
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//deprecated max_tokens and user
|
|
60
|
+
const result = pickDefined({
|
|
61
|
+
model: source.model,
|
|
62
|
+
max_completion_tokens: source.max_tokens,
|
|
63
|
+
//max_tokens: source.max_tokens,
|
|
64
|
+
temperature: source.temperature,
|
|
65
|
+
top_p: source.top_p,
|
|
66
|
+
frequency_penalty: source.frequency_penalty,
|
|
67
|
+
presence_penalty: source.presence_penalty,
|
|
68
|
+
seed: source.seed,
|
|
69
|
+
stream: source.stream,
|
|
70
|
+
service_tier: mappedServiceTier,
|
|
71
|
+
safety_identifier: source.metadata?.user_id,
|
|
72
|
+
//user: source.metadata?.user_id,
|
|
73
|
+
stop: source.stop_sequences,
|
|
74
|
+
response_format
|
|
75
|
+
});
|
|
76
|
+
// Handle messages and system (build locally, then assign)
|
|
77
|
+
const messages = [];
|
|
78
|
+
if (source.system) {
|
|
79
|
+
messages.push({
|
|
80
|
+
role: 'system',
|
|
81
|
+
content: source.system
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
if (source.messages?.length) {
|
|
85
|
+
const openaiMessages = await Promise.all(source.messages.map(async (message) => await this.messageTranslator.fromHolo(message)));
|
|
86
|
+
const validMessages = openaiMessages.filter((msg) => Object.keys(msg).length > 0);
|
|
87
|
+
if (validMessages.length > 0) {
|
|
88
|
+
messages.push(...validMessages);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (messages.length) {
|
|
92
|
+
result.messages = messages;
|
|
93
|
+
}
|
|
94
|
+
// Handle tools
|
|
95
|
+
if (source.tools?.length) {
|
|
96
|
+
const mapped = await Promise.all(source.tools.map(tool => this.toolTranslator.fromHolo(tool)));
|
|
97
|
+
const validTools = mapped.filter((tool) => Object.keys(tool).length > 0);
|
|
98
|
+
if (validTools.length > 0) {
|
|
99
|
+
result.tools = validTools;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Handle tool choice
|
|
103
|
+
if (source.tool_choice) {
|
|
104
|
+
const toolChoice = await this.toolChoiceTranslator.fromHolo(source.tool_choice);
|
|
105
|
+
if (Object.keys(toolChoice).length > 0) {
|
|
106
|
+
result.tool_choice = toolChoice;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
async toHoloImpl(source) {
|
|
112
|
+
// Handle stop sequences
|
|
113
|
+
const stopSequences = source.stop ?
|
|
114
|
+
(Array.isArray(source.stop) ? source.stop : [source.stop]) :
|
|
115
|
+
undefined;
|
|
116
|
+
// Handle metadata: prefer safety_identifier, fallback to user
|
|
117
|
+
const metadata = source.safety_identifier
|
|
118
|
+
? { user_id: source.safety_identifier }
|
|
119
|
+
: (source.user ? { user_id: source.user } : undefined);
|
|
120
|
+
// Handle response format
|
|
121
|
+
let response_format;
|
|
122
|
+
if (source.response_format) {
|
|
123
|
+
const format = source.response_format;
|
|
124
|
+
if (format.type === 'json_object') {
|
|
125
|
+
response_format = { type: 'json_object' };
|
|
126
|
+
}
|
|
127
|
+
else if (format.type === 'json_schema' && format.json_schema.schema) {
|
|
128
|
+
response_format = {
|
|
129
|
+
type: 'json_schema',
|
|
130
|
+
schema: format.json_schema.schema,
|
|
131
|
+
...(typeof format.json_schema.strict === 'boolean' && { strict: format.json_schema.strict })
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const result = pickDefined({
|
|
136
|
+
model: source.model,
|
|
137
|
+
max_tokens: source.max_completion_tokens ?? source.max_tokens,
|
|
138
|
+
temperature: source.temperature,
|
|
139
|
+
top_p: source.top_p,
|
|
140
|
+
frequency_penalty: source.frequency_penalty,
|
|
141
|
+
presence_penalty: source.presence_penalty,
|
|
142
|
+
seed: source.seed,
|
|
143
|
+
stream: source.stream,
|
|
144
|
+
stop_sequences: stopSequences,
|
|
145
|
+
metadata,
|
|
146
|
+
response_format,
|
|
147
|
+
});
|
|
148
|
+
// Handle messages and system
|
|
149
|
+
if (source.messages?.length) {
|
|
150
|
+
let system;
|
|
151
|
+
const regular = [];
|
|
152
|
+
for (const message of source.messages) {
|
|
153
|
+
if (message.role === 'system' && system == null) {
|
|
154
|
+
if (typeof message.content === 'string') {
|
|
155
|
+
system = message.content;
|
|
156
|
+
}
|
|
157
|
+
else if (Array.isArray(message.content)) {
|
|
158
|
+
system = await this.messageTranslator.flattenText(message.content);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
regular.push(message);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (regular.length) {
|
|
166
|
+
const holoMessages = await Promise.all(regular.map(m => this.messageTranslator.toHolo(m)));
|
|
167
|
+
const validMessages = holoMessages.filter(m => Object.keys(m).length > 0);
|
|
168
|
+
if (validMessages.length) {
|
|
169
|
+
result.messages = validMessages;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (system) {
|
|
173
|
+
result.system = system;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Handle tools
|
|
177
|
+
if (source.tools?.length) {
|
|
178
|
+
const mapped = await Promise.all(source.tools.map(tool => this.toolTranslator.toHolo(tool)));
|
|
179
|
+
const validTools = mapped.filter(tool => Object.keys(tool).length > 0);
|
|
180
|
+
if (validTools.length) {
|
|
181
|
+
result.tools = validTools;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Handle tool choice
|
|
185
|
+
if (source.tool_choice) {
|
|
186
|
+
const toolChoice = await this.toolChoiceTranslator.toHolo(source.tool_choice);
|
|
187
|
+
if (Object.keys(toolChoice).length > 0) {
|
|
188
|
+
result.tool_choice = toolChoice;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return result;
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
OpenAIRequestTranslator = __decorate([
|
|
195
|
+
injectable(),
|
|
196
|
+
__metadata("design:paramtypes", [OpenAIMessageTranslator,
|
|
197
|
+
OpenAIToolTranslator,
|
|
198
|
+
OpenAIToolChoiceTranslator])
|
|
199
|
+
], OpenAIRequestTranslator);
|
|
200
|
+
export { OpenAIRequestTranslator };
|
|
201
|
+
//# sourceMappingURL=openai.chatcompletion.request.translators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.chatcompletion.request.translators.js","sourceRoot":"","sources":["../../src/translators/openai.chatcompletion.request.translators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { OpenAIResponseMessageTranslator } from "./openai.response.message.translators";
|
|
3
|
+
import { OpenAIUsageTranslator } from "./openai.usage.translators";
|
|
4
|
+
import { HoloResponse } from "@holokai/sdk";
|
|
5
|
+
import { BaseTranslator } from "@holokai/sdk/provider";
|
|
6
|
+
import { ChatCompletion, ChatCompletionChunk } from "openai/resources/chat/completions/completions";
|
|
7
|
+
export declare class OpenAIResponseTranslator extends BaseTranslator<HoloResponse, ChatCompletion | ChatCompletionChunk> {
|
|
8
|
+
private readonly responseMessageTranslator;
|
|
9
|
+
private readonly usageTranslator;
|
|
10
|
+
protected holoDefaults: Partial<HoloResponse>;
|
|
11
|
+
protected providerDefaults: Partial<ChatCompletion | ChatCompletionChunk>;
|
|
12
|
+
constructor(responseMessageTranslator: OpenAIResponseMessageTranslator, usageTranslator: OpenAIUsageTranslator);
|
|
13
|
+
protected fromHoloImpl(source: HoloResponse): Promise<Partial<ChatCompletion | ChatCompletionChunk>>;
|
|
14
|
+
protected toHoloImpl(source: ChatCompletion | ChatCompletionChunk): Promise<Partial<HoloResponse>>;
|
|
15
|
+
private mapFinishReasonFromHolo;
|
|
16
|
+
private mapFinishReasonToHolo;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=openai.chatcompletion.response.translators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.chatcompletion.response.translators.d.ts","sourceRoot":"","sources":["../../src/translators/openai.chatcompletion.response.translators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,+BAA+B,EAAC,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAgC,YAAY,EAAc,MAAM,cAAc,CAAC;AACtF,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,+CAA+C,CAAC;AAElG,qBACa,wBAAyB,SAAQ,cAAc,CAAC,YAAY,EAAE,cAAc,GAAG,mBAAmB,CAAC;IAKxG,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe;IALpC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,CAAM;IACnD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAM;gBAG1D,yBAAyB,EAAE,+BAA+B,EAC1D,eAAe,EAAE,qBAAqB;cAK3C,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAC;cAsC1F,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IA4BxG,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,qBAAqB;CAgBhC"}
|