@llumiverse/drivers 0.21.0 → 0.22.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/lib/cjs/azure/azure_foundry.js +9 -0
- package/lib/cjs/azure/azure_foundry.js.map +1 -1
- package/lib/cjs/bedrock/index.js +35 -22
- package/lib/cjs/bedrock/index.js.map +1 -1
- package/lib/cjs/vertexai/index.js +26 -18
- package/lib/cjs/vertexai/index.js.map +1 -1
- package/lib/cjs/vertexai/models/gemini.js +39 -12
- package/lib/cjs/vertexai/models/gemini.js.map +1 -1
- package/lib/esm/azure/azure_foundry.js +9 -0
- package/lib/esm/azure/azure_foundry.js.map +1 -1
- package/lib/esm/bedrock/index.js +35 -22
- package/lib/esm/bedrock/index.js.map +1 -1
- package/lib/esm/vertexai/index.js +26 -18
- package/lib/esm/vertexai/index.js.map +1 -1
- package/lib/esm/vertexai/models/gemini.js +39 -12
- package/lib/esm/vertexai/models/gemini.js.map +1 -1
- package/lib/types/azure/azure_foundry.d.ts.map +1 -1
- package/lib/types/bedrock/index.d.ts +2 -2
- package/lib/types/bedrock/index.d.ts.map +1 -1
- package/lib/types/vertexai/index.d.ts.map +1 -1
- package/lib/types/vertexai/models/gemini.d.ts +3 -2
- package/lib/types/vertexai/models/gemini.d.ts.map +1 -1
- package/package.json +14 -14
- package/src/azure/azure_foundry.ts +9 -1
- package/src/bedrock/index.ts +36 -23
- package/src/vertexai/index.ts +29 -22
- package/src/vertexai/models/gemini.ts +50 -12
- package/lib/cjs/openai/azure.js +0 -31
- package/lib/cjs/openai/azure.js.map +0 -1
- package/lib/esm/openai/azure.js +0 -27
- package/lib/esm/openai/azure.js.map +0 -1
- package/lib/esm/src/adobe/firefly.js +0 -115
- package/lib/esm/src/adobe/firefly.js.map +0 -1
- package/lib/esm/src/bedrock/converse.js +0 -278
- package/lib/esm/src/bedrock/converse.js.map +0 -1
- package/lib/esm/src/bedrock/index.js +0 -797
- package/lib/esm/src/bedrock/index.js.map +0 -1
- package/lib/esm/src/bedrock/nova-image-payload.js +0 -203
- package/lib/esm/src/bedrock/nova-image-payload.js.map +0 -1
- package/lib/esm/src/bedrock/payloads.js +0 -2
- package/lib/esm/src/bedrock/payloads.js.map +0 -1
- package/lib/esm/src/bedrock/s3.js +0 -99
- package/lib/esm/src/bedrock/s3.js.map +0 -1
- package/lib/esm/src/groq/index.js +0 -130
- package/lib/esm/src/groq/index.js.map +0 -1
- package/lib/esm/src/huggingface_ie.js +0 -196
- package/lib/esm/src/huggingface_ie.js.map +0 -1
- package/lib/esm/src/index.js +0 -13
- package/lib/esm/src/index.js.map +0 -1
- package/lib/esm/src/mistral/index.js +0 -167
- package/lib/esm/src/mistral/index.js.map +0 -1
- package/lib/esm/src/mistral/types.js +0 -80
- package/lib/esm/src/mistral/types.js.map +0 -1
- package/lib/esm/src/openai/azure.js +0 -27
- package/lib/esm/src/openai/azure.js.map +0 -1
- package/lib/esm/src/openai/index.js +0 -463
- package/lib/esm/src/openai/index.js.map +0 -1
- package/lib/esm/src/openai/openai.js +0 -14
- package/lib/esm/src/openai/openai.js.map +0 -1
- package/lib/esm/src/replicate.js +0 -268
- package/lib/esm/src/replicate.js.map +0 -1
- package/lib/esm/src/test/TestErrorCompletionStream.js +0 -16
- package/lib/esm/src/test/TestErrorCompletionStream.js.map +0 -1
- package/lib/esm/src/test/TestValidationErrorCompletionStream.js +0 -20
- package/lib/esm/src/test/TestValidationErrorCompletionStream.js.map +0 -1
- package/lib/esm/src/test/index.js +0 -91
- package/lib/esm/src/test/index.js.map +0 -1
- package/lib/esm/src/test/utils.js +0 -25
- package/lib/esm/src/test/utils.js.map +0 -1
- package/lib/esm/src/togetherai/index.js +0 -122
- package/lib/esm/src/togetherai/index.js.map +0 -1
- package/lib/esm/src/togetherai/interfaces.js +0 -2
- package/lib/esm/src/togetherai/interfaces.js.map +0 -1
- package/lib/esm/src/vertexai/debug.js +0 -6
- package/lib/esm/src/vertexai/debug.js.map +0 -1
- package/lib/esm/src/vertexai/embeddings/embeddings-image.js +0 -24
- package/lib/esm/src/vertexai/embeddings/embeddings-image.js.map +0 -1
- package/lib/esm/src/vertexai/embeddings/embeddings-text.js +0 -20
- package/lib/esm/src/vertexai/embeddings/embeddings-text.js.map +0 -1
- package/lib/esm/src/vertexai/index.js +0 -270
- package/lib/esm/src/vertexai/index.js.map +0 -1
- package/lib/esm/src/vertexai/models/claude.js +0 -370
- package/lib/esm/src/vertexai/models/claude.js.map +0 -1
- package/lib/esm/src/vertexai/models/gemini.js +0 -700
- package/lib/esm/src/vertexai/models/gemini.js.map +0 -1
- package/lib/esm/src/vertexai/models/imagen.js +0 -310
- package/lib/esm/src/vertexai/models/imagen.js.map +0 -1
- package/lib/esm/src/vertexai/models/llama.js +0 -178
- package/lib/esm/src/vertexai/models/llama.js.map +0 -1
- package/lib/esm/src/vertexai/models.js +0 -21
- package/lib/esm/src/vertexai/models.js.map +0 -1
- package/lib/esm/src/watsonx/index.js +0 -157
- package/lib/esm/src/watsonx/index.js.map +0 -1
- package/lib/esm/src/watsonx/interfaces.js +0 -2
- package/lib/esm/src/watsonx/interfaces.js.map +0 -1
- package/lib/esm/src/xai/index.js +0 -64
- package/lib/esm/src/xai/index.js.map +0 -1
- package/lib/esm/tsconfig.tsbuildinfo +0 -1
- package/lib/types/openai/azure.d.ts +0 -20
- package/lib/types/openai/azure.d.ts.map +0 -1
- package/lib/types/src/adobe/firefly.d.ts +0 -29
- package/lib/types/src/bedrock/converse.d.ts +0 -8
- package/lib/types/src/bedrock/index.d.ts +0 -57
- package/lib/types/src/bedrock/nova-image-payload.d.ts +0 -73
- package/lib/types/src/bedrock/payloads.d.ts +0 -11
- package/lib/types/src/bedrock/s3.d.ts +0 -22
- package/lib/types/src/groq/index.d.ts +0 -23
- package/lib/types/src/huggingface_ie.d.ts +0 -31
- package/lib/types/src/index.d.ts +0 -12
- package/lib/types/src/mistral/index.d.ts +0 -24
- package/lib/types/src/mistral/types.d.ts +0 -131
- package/lib/types/src/openai/azure.d.ts +0 -19
- package/lib/types/src/openai/index.d.ts +0 -25
- package/lib/types/src/openai/openai.d.ts +0 -14
- package/lib/types/src/replicate.d.ts +0 -44
- package/lib/types/src/test/TestErrorCompletionStream.d.ts +0 -8
- package/lib/types/src/test/TestValidationErrorCompletionStream.d.ts +0 -8
- package/lib/types/src/test/index.d.ts +0 -23
- package/lib/types/src/test/utils.d.ts +0 -4
- package/lib/types/src/togetherai/index.d.ts +0 -22
- package/lib/types/src/togetherai/interfaces.d.ts +0 -95
- package/lib/types/src/vertexai/debug.d.ts +0 -1
- package/lib/types/src/vertexai/embeddings/embeddings-image.d.ts +0 -10
- package/lib/types/src/vertexai/embeddings/embeddings-text.d.ts +0 -9
- package/lib/types/src/vertexai/index.d.ts +0 -49
- package/lib/types/src/vertexai/models/claude.d.ts +0 -17
- package/lib/types/src/vertexai/models/gemini.d.ts +0 -16
- package/lib/types/src/vertexai/models/imagen.d.ts +0 -74
- package/lib/types/src/vertexai/models/llama.d.ts +0 -19
- package/lib/types/src/vertexai/models.d.ts +0 -14
- package/lib/types/src/watsonx/index.d.ts +0 -26
- package/lib/types/src/watsonx/interfaces.d.ts +0 -64
- package/lib/types/src/xai/index.d.ts +0 -18
|
@@ -1,463 +0,0 @@
|
|
|
1
|
-
import { AbstractDriver, ModelType, TrainingJobStatus, getModelCapabilities, modelModalitiesToArray, supportsToolUse, } from "@llumiverse/core";
|
|
2
|
-
import { asyncMap } from "@llumiverse/core/async";
|
|
3
|
-
import { formatOpenAILikeMultimodalPrompt } from "@llumiverse/core/formatters";
|
|
4
|
-
//TODO: Do we need a list?, replace with if statements and modernise?
|
|
5
|
-
const supportFineTunning = new Set([
|
|
6
|
-
"gpt-3.5-turbo-1106",
|
|
7
|
-
"gpt-3.5-turbo-0613",
|
|
8
|
-
"babbage-002",
|
|
9
|
-
"davinci-002",
|
|
10
|
-
"gpt-4-0613"
|
|
11
|
-
]);
|
|
12
|
-
export class BaseOpenAIDriver extends AbstractDriver {
|
|
13
|
-
constructor(opts) {
|
|
14
|
-
super(opts);
|
|
15
|
-
this.formatPrompt = formatOpenAILikeMultimodalPrompt;
|
|
16
|
-
//TODO: better type, we send back OpenAI.Chat.Completions.ChatCompletionMessageParam[] but just not compatible with Function call that we don't use here
|
|
17
|
-
}
|
|
18
|
-
extractDataFromResponse(_options, result) {
|
|
19
|
-
const tokenInfo = {
|
|
20
|
-
prompt: result.usage?.prompt_tokens,
|
|
21
|
-
result: result.usage?.completion_tokens,
|
|
22
|
-
total: result.usage?.total_tokens,
|
|
23
|
-
};
|
|
24
|
-
const choice = result.choices[0];
|
|
25
|
-
const tools = collectTools(choice.message.tool_calls);
|
|
26
|
-
const data = choice.message.content ?? undefined;
|
|
27
|
-
if (!data && !tools) {
|
|
28
|
-
this.logger?.error("[OpenAI] Response is not valid", result);
|
|
29
|
-
throw new Error("Response is not valid: no data");
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
result: data,
|
|
33
|
-
token_usage: tokenInfo,
|
|
34
|
-
finish_reason: openAiFinishReason(choice.finish_reason),
|
|
35
|
-
tool_use: tools,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
async requestTextCompletionStream(prompt, options) {
|
|
39
|
-
if (options.model_options?._option_id !== "openai-text" && options.model_options?._option_id !== "openai-thinking") {
|
|
40
|
-
this.logger.warn("Invalid model options", { options: options.model_options });
|
|
41
|
-
}
|
|
42
|
-
const toolDefs = getToolDefinitions(options.tools);
|
|
43
|
-
const useTools = toolDefs ? supportsToolUse(options.model, "openai", true) : false;
|
|
44
|
-
const mapFn = (chunk) => {
|
|
45
|
-
let result = undefined;
|
|
46
|
-
if (useTools && this.provider !== "xai" && options.result_schema) {
|
|
47
|
-
result = chunk.choices[0]?.delta?.tool_calls?.[0].function?.arguments ?? "";
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
result = chunk.choices[0]?.delta.content ?? "";
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
53
|
-
result: result,
|
|
54
|
-
finish_reason: openAiFinishReason(chunk.choices[0]?.finish_reason ?? undefined), //Uses expected "stop" , "length" format
|
|
55
|
-
token_usage: {
|
|
56
|
-
prompt: chunk.usage?.prompt_tokens,
|
|
57
|
-
result: chunk.usage?.completion_tokens,
|
|
58
|
-
total: (chunk.usage?.prompt_tokens ?? 0) + (chunk.usage?.completion_tokens ?? 0),
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
};
|
|
62
|
-
convertRoles(prompt, options.model);
|
|
63
|
-
const model_options = options.model_options;
|
|
64
|
-
insert_image_detail(prompt, model_options?.image_detail ?? "auto");
|
|
65
|
-
let parsedSchema = undefined;
|
|
66
|
-
let strictMode = false;
|
|
67
|
-
if (options.result_schema && supportsSchema(options.model)) {
|
|
68
|
-
try {
|
|
69
|
-
parsedSchema = openAISchemaFormat(options.result_schema);
|
|
70
|
-
strictMode = true;
|
|
71
|
-
}
|
|
72
|
-
catch (e) {
|
|
73
|
-
parsedSchema = limitedSchemaFormat(options.result_schema);
|
|
74
|
-
strictMode = false;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
const stream = await this.service.chat.completions.create({
|
|
78
|
-
stream: true,
|
|
79
|
-
stream_options: { include_usage: true },
|
|
80
|
-
model: options.model,
|
|
81
|
-
messages: prompt,
|
|
82
|
-
reasoning_effort: model_options?.reasoning_effort,
|
|
83
|
-
temperature: model_options?.temperature,
|
|
84
|
-
top_p: model_options?.top_p,
|
|
85
|
-
//top_logprobs: options.top_logprobs, //Logprobs output currently not supported
|
|
86
|
-
//logprobs: options.top_logprobs ? true : false,
|
|
87
|
-
presence_penalty: model_options?.presence_penalty,
|
|
88
|
-
frequency_penalty: model_options?.frequency_penalty,
|
|
89
|
-
n: 1,
|
|
90
|
-
max_completion_tokens: model_options?.max_tokens, //TODO: use max_tokens for older models, currently relying on OpenAI to handle it
|
|
91
|
-
tools: useTools ? toolDefs : undefined,
|
|
92
|
-
stop: model_options?.stop_sequence,
|
|
93
|
-
response_format: parsedSchema ? {
|
|
94
|
-
type: "json_schema",
|
|
95
|
-
json_schema: {
|
|
96
|
-
name: "format_output",
|
|
97
|
-
schema: parsedSchema,
|
|
98
|
-
strict: strictMode,
|
|
99
|
-
}
|
|
100
|
-
} : undefined,
|
|
101
|
-
});
|
|
102
|
-
return asyncMap(stream, mapFn);
|
|
103
|
-
}
|
|
104
|
-
async requestTextCompletion(prompt, options) {
|
|
105
|
-
if (options.model_options?._option_id !== "openai-text" && options.model_options?._option_id !== "openai-thinking") {
|
|
106
|
-
this.logger.warn("Invalid model options", { options: options.model_options });
|
|
107
|
-
}
|
|
108
|
-
convertRoles(prompt, options.model);
|
|
109
|
-
const model_options = options.model_options;
|
|
110
|
-
insert_image_detail(prompt, model_options?.image_detail ?? "auto");
|
|
111
|
-
const toolDefs = getToolDefinitions(options.tools);
|
|
112
|
-
const useTools = toolDefs ? supportsToolUse(options.model, "openai") : false;
|
|
113
|
-
let conversation = updateConversation(options.conversation, prompt);
|
|
114
|
-
let parsedSchema = undefined;
|
|
115
|
-
let strictMode = false;
|
|
116
|
-
if (options.result_schema && supportsSchema(options.model)) {
|
|
117
|
-
try {
|
|
118
|
-
parsedSchema = openAISchemaFormat(options.result_schema);
|
|
119
|
-
strictMode = true;
|
|
120
|
-
}
|
|
121
|
-
catch (e) {
|
|
122
|
-
parsedSchema = limitedSchemaFormat(options.result_schema);
|
|
123
|
-
strictMode = false;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
const res = await this.service.chat.completions.create({
|
|
127
|
-
stream: false,
|
|
128
|
-
model: options.model,
|
|
129
|
-
messages: conversation,
|
|
130
|
-
reasoning_effort: model_options?.reasoning_effort,
|
|
131
|
-
temperature: model_options?.temperature,
|
|
132
|
-
top_p: model_options?.top_p,
|
|
133
|
-
//top_logprobs: options.top_logprobs, //Logprobs output currently not supported
|
|
134
|
-
//logprobs: options.top_logprobs ? true : false,
|
|
135
|
-
presence_penalty: model_options?.presence_penalty,
|
|
136
|
-
frequency_penalty: model_options?.frequency_penalty,
|
|
137
|
-
n: 1,
|
|
138
|
-
max_completion_tokens: model_options?.max_tokens, //TODO: use max_tokens for older models, currently relying on OpenAI to handle it
|
|
139
|
-
tools: useTools ? toolDefs : undefined,
|
|
140
|
-
stop: model_options?.stop_sequence,
|
|
141
|
-
response_format: parsedSchema ? {
|
|
142
|
-
type: "json_schema",
|
|
143
|
-
json_schema: {
|
|
144
|
-
name: "format_output",
|
|
145
|
-
schema: parsedSchema,
|
|
146
|
-
strict: strictMode,
|
|
147
|
-
}
|
|
148
|
-
} : undefined,
|
|
149
|
-
});
|
|
150
|
-
const completion = this.extractDataFromResponse(options, res);
|
|
151
|
-
if (options.include_original_response) {
|
|
152
|
-
completion.original_response = res;
|
|
153
|
-
}
|
|
154
|
-
conversation = updateConversation(conversation, createPromptFromResponse(res.choices[0].message));
|
|
155
|
-
completion.conversation = conversation;
|
|
156
|
-
return completion;
|
|
157
|
-
}
|
|
158
|
-
canStream(_options) {
|
|
159
|
-
if (_options.model.includes("o1")
|
|
160
|
-
&& !(_options.model.includes("mini") || _options.model.includes("preview"))) {
|
|
161
|
-
//o1 full does not support streaming
|
|
162
|
-
//TODO: Update when OpenAI adds support for streaming, last check 16/02/2025
|
|
163
|
-
return Promise.resolve(false);
|
|
164
|
-
}
|
|
165
|
-
return Promise.resolve(true);
|
|
166
|
-
}
|
|
167
|
-
createTrainingPrompt(options) {
|
|
168
|
-
if (options.model.includes("gpt")) {
|
|
169
|
-
return super.createTrainingPrompt(options);
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
// babbage, davinci not yet implemented
|
|
173
|
-
throw new Error("Unsupported model for training: " + options.model);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
async startTraining(dataset, options) {
|
|
177
|
-
const url = await dataset.getURL();
|
|
178
|
-
const file = await this.service.files.create({
|
|
179
|
-
file: await fetch(url),
|
|
180
|
-
purpose: "fine-tune",
|
|
181
|
-
});
|
|
182
|
-
const job = await this.service.fineTuning.jobs.create({
|
|
183
|
-
training_file: file.id,
|
|
184
|
-
model: options.model,
|
|
185
|
-
hyperparameters: options.params
|
|
186
|
-
});
|
|
187
|
-
return jobInfo(job);
|
|
188
|
-
}
|
|
189
|
-
async cancelTraining(jobId) {
|
|
190
|
-
const job = await this.service.fineTuning.jobs.cancel(jobId);
|
|
191
|
-
return jobInfo(job);
|
|
192
|
-
}
|
|
193
|
-
async getTrainingJob(jobId) {
|
|
194
|
-
const job = await this.service.fineTuning.jobs.retrieve(jobId);
|
|
195
|
-
return jobInfo(job);
|
|
196
|
-
}
|
|
197
|
-
// ========= management API =============
|
|
198
|
-
async validateConnection() {
|
|
199
|
-
try {
|
|
200
|
-
await this.service.models.list();
|
|
201
|
-
return true;
|
|
202
|
-
}
|
|
203
|
-
catch (error) {
|
|
204
|
-
return false;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
listTrainableModels() {
|
|
208
|
-
return this._listModels((m) => supportFineTunning.has(m.id));
|
|
209
|
-
}
|
|
210
|
-
async listModels() {
|
|
211
|
-
return this._listModels();
|
|
212
|
-
}
|
|
213
|
-
async _listModels(filter) {
|
|
214
|
-
let result = (await this.service.models.list()).data;
|
|
215
|
-
//Some of these use the completions API instead of the chat completions API.
|
|
216
|
-
//Others are for non-text input modalities. Therefore common to both.
|
|
217
|
-
const wordBlacklist = ["embed", "whisper", "transcribe", "audio", "moderation", "tts",
|
|
218
|
-
"realtime", "dall-e", "babbage", "davinci", "codex", "o1-pro"];
|
|
219
|
-
if (this.provider === "azure_openai") {
|
|
220
|
-
//Azure OpenAI has additional information about the models
|
|
221
|
-
result = result.filter((m) => {
|
|
222
|
-
return !m?.capabilities?.embeddings;
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
//OpenAI has very little information, filtering based on name.
|
|
226
|
-
result = result.filter((m) => {
|
|
227
|
-
return !wordBlacklist.some((word) => m.id.includes(word));
|
|
228
|
-
});
|
|
229
|
-
const models = filter ? result.filter(filter) : result;
|
|
230
|
-
const aiModels = models.map((m) => {
|
|
231
|
-
const modelCapability = getModelCapabilities(m.id, "openai");
|
|
232
|
-
return {
|
|
233
|
-
id: m.id,
|
|
234
|
-
name: m.id,
|
|
235
|
-
provider: this.provider,
|
|
236
|
-
owner: m.owned_by,
|
|
237
|
-
type: m.object === "model" ? ModelType.Text : ModelType.Unknown,
|
|
238
|
-
can_stream: true,
|
|
239
|
-
is_multimodal: m.id.includes("gpt-4"),
|
|
240
|
-
input_modalities: modelModalitiesToArray(modelCapability.input),
|
|
241
|
-
output_modalities: modelModalitiesToArray(modelCapability.output),
|
|
242
|
-
tool_support: modelCapability.tool_support,
|
|
243
|
-
};
|
|
244
|
-
}).sort((a, b) => a.id.localeCompare(b.id));
|
|
245
|
-
return aiModels;
|
|
246
|
-
}
|
|
247
|
-
async generateEmbeddings({ text, image, model = "text-embedding-3-small" }) {
|
|
248
|
-
if (image) {
|
|
249
|
-
throw new Error("Image embeddings not supported by OpenAI");
|
|
250
|
-
}
|
|
251
|
-
if (!text) {
|
|
252
|
-
throw new Error("No text provided");
|
|
253
|
-
}
|
|
254
|
-
const res = await this.service.embeddings.create({
|
|
255
|
-
input: text,
|
|
256
|
-
model: model,
|
|
257
|
-
});
|
|
258
|
-
const embeddings = res.data[0].embedding;
|
|
259
|
-
if (!embeddings || embeddings.length === 0) {
|
|
260
|
-
throw new Error("No embedding found");
|
|
261
|
-
}
|
|
262
|
-
return { values: embeddings, model };
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
function jobInfo(job) {
|
|
266
|
-
//validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`.
|
|
267
|
-
const jobStatus = job.status;
|
|
268
|
-
let status = TrainingJobStatus.running;
|
|
269
|
-
let details;
|
|
270
|
-
if (jobStatus === 'succeeded') {
|
|
271
|
-
status = TrainingJobStatus.succeeded;
|
|
272
|
-
}
|
|
273
|
-
else if (jobStatus === 'failed') {
|
|
274
|
-
status = TrainingJobStatus.failed;
|
|
275
|
-
details = job.error ? `${job.error.code} - ${job.error.message} ${job.error.param ? " [" + job.error.param + "]" : ""}` : "error";
|
|
276
|
-
}
|
|
277
|
-
else if (jobStatus === 'cancelled') {
|
|
278
|
-
status = TrainingJobStatus.cancelled;
|
|
279
|
-
}
|
|
280
|
-
else {
|
|
281
|
-
status = TrainingJobStatus.running;
|
|
282
|
-
details = jobStatus;
|
|
283
|
-
}
|
|
284
|
-
return {
|
|
285
|
-
id: job.id,
|
|
286
|
-
model: job.fine_tuned_model || undefined,
|
|
287
|
-
status,
|
|
288
|
-
details
|
|
289
|
-
};
|
|
290
|
-
}
|
|
291
|
-
function insert_image_detail(messages, detail_level) {
|
|
292
|
-
if (detail_level == "auto" || detail_level == "low" || detail_level == "high") {
|
|
293
|
-
for (const message of messages) {
|
|
294
|
-
if (message.role !== 'assistant' && message.content) {
|
|
295
|
-
for (const part of message.content) {
|
|
296
|
-
if (typeof part === "string") {
|
|
297
|
-
continue;
|
|
298
|
-
}
|
|
299
|
-
if (part.type === 'image_url') {
|
|
300
|
-
part.image_url = { ...part.image_url, detail: detail_level };
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
return messages;
|
|
307
|
-
}
|
|
308
|
-
function convertRoles(messages, model) {
|
|
309
|
-
//New openai models use developer role instead of system
|
|
310
|
-
if (model.includes("o1") || model.includes("o3")) {
|
|
311
|
-
if (model.includes("o1-mini") || model.includes("o1-preview")) {
|
|
312
|
-
//o1-mini and o1-preview support neither system nor developer
|
|
313
|
-
for (const message of messages) {
|
|
314
|
-
if (message.role === 'system') {
|
|
315
|
-
message.role = 'user';
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
else {
|
|
320
|
-
//Models newer than o1 use developer role
|
|
321
|
-
for (const message of messages) {
|
|
322
|
-
if (message.role === 'system') {
|
|
323
|
-
message.role = 'developer';
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
return messages;
|
|
329
|
-
}
|
|
330
|
-
//Structured output support is typically aligned with tool use support
|
|
331
|
-
//Not true for realtime models, which do not support structured output, but do support tool use.
|
|
332
|
-
function supportsSchema(model) {
|
|
333
|
-
const realtimeModel = model.includes("realtime");
|
|
334
|
-
if (realtimeModel) {
|
|
335
|
-
return false;
|
|
336
|
-
}
|
|
337
|
-
return supportsToolUse(model, "openai");
|
|
338
|
-
}
|
|
339
|
-
function getToolDefinitions(tools) {
|
|
340
|
-
return tools ? tools.map(getToolDefinition) : undefined;
|
|
341
|
-
}
|
|
342
|
-
function getToolDefinition(toolDef) {
|
|
343
|
-
let parsedSchema = undefined;
|
|
344
|
-
let strictMode = false;
|
|
345
|
-
if (toolDef.input_schema) {
|
|
346
|
-
try {
|
|
347
|
-
parsedSchema = openAISchemaFormat(toolDef.input_schema);
|
|
348
|
-
strictMode = true;
|
|
349
|
-
}
|
|
350
|
-
catch (e) {
|
|
351
|
-
parsedSchema = limitedSchemaFormat(toolDef.input_schema);
|
|
352
|
-
strictMode = false;
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
return {
|
|
356
|
-
type: "function",
|
|
357
|
-
function: {
|
|
358
|
-
name: toolDef.name,
|
|
359
|
-
description: toolDef.description,
|
|
360
|
-
parameters: parsedSchema,
|
|
361
|
-
strict: strictMode,
|
|
362
|
-
},
|
|
363
|
-
};
|
|
364
|
-
}
|
|
365
|
-
function openAiFinishReason(finish_reason) {
|
|
366
|
-
if (finish_reason === "tool_calls") {
|
|
367
|
-
return "tool_use";
|
|
368
|
-
}
|
|
369
|
-
return finish_reason;
|
|
370
|
-
}
|
|
371
|
-
function updateConversation(conversation, message) {
|
|
372
|
-
if (!message) {
|
|
373
|
-
return conversation;
|
|
374
|
-
}
|
|
375
|
-
if (!conversation) {
|
|
376
|
-
return message;
|
|
377
|
-
}
|
|
378
|
-
return [...conversation, ...message];
|
|
379
|
-
}
|
|
380
|
-
export function collectTools(toolCalls) {
|
|
381
|
-
if (!toolCalls) {
|
|
382
|
-
return undefined;
|
|
383
|
-
}
|
|
384
|
-
const tools = [];
|
|
385
|
-
for (const call of toolCalls) {
|
|
386
|
-
tools.push({
|
|
387
|
-
id: call.id,
|
|
388
|
-
tool_name: call.function.name,
|
|
389
|
-
tool_input: JSON.parse(call.function.arguments),
|
|
390
|
-
});
|
|
391
|
-
}
|
|
392
|
-
return tools.length > 0 ? tools : undefined;
|
|
393
|
-
}
|
|
394
|
-
function createPromptFromResponse(response) {
|
|
395
|
-
const messages = [];
|
|
396
|
-
if (response) {
|
|
397
|
-
messages.push({
|
|
398
|
-
role: response.role,
|
|
399
|
-
content: response.content,
|
|
400
|
-
tool_calls: response.tool_calls,
|
|
401
|
-
});
|
|
402
|
-
}
|
|
403
|
-
return messages;
|
|
404
|
-
}
|
|
405
|
-
//For strict mode false
|
|
406
|
-
function limitedSchemaFormat(schema) {
|
|
407
|
-
const formattedSchema = { ...schema };
|
|
408
|
-
// Defaults not supported
|
|
409
|
-
delete formattedSchema.default;
|
|
410
|
-
if (formattedSchema?.properties) {
|
|
411
|
-
// Process each property recursively
|
|
412
|
-
for (const propName of Object.keys(formattedSchema.properties)) {
|
|
413
|
-
const property = formattedSchema.properties[propName];
|
|
414
|
-
// Recursively process properties
|
|
415
|
-
formattedSchema.properties[propName] = limitedSchemaFormat(property);
|
|
416
|
-
// Process arrays with items of type object
|
|
417
|
-
if (property?.type === 'array' && property.items && property.items?.type === 'object') {
|
|
418
|
-
formattedSchema.properties[propName] = {
|
|
419
|
-
...property,
|
|
420
|
-
items: limitedSchemaFormat(property.items),
|
|
421
|
-
};
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
return formattedSchema;
|
|
426
|
-
}
|
|
427
|
-
//For strict mode true
|
|
428
|
-
function openAISchemaFormat(schema, nesting = 0) {
|
|
429
|
-
if (nesting > 5) {
|
|
430
|
-
throw new Error("OpenAI schema nesting too deep");
|
|
431
|
-
}
|
|
432
|
-
const formattedSchema = { ...schema };
|
|
433
|
-
// Defaults not supported
|
|
434
|
-
delete formattedSchema.default;
|
|
435
|
-
// Additional properties not supported, required to be set.
|
|
436
|
-
if (formattedSchema?.type === "object") {
|
|
437
|
-
formattedSchema.additionalProperties = false;
|
|
438
|
-
}
|
|
439
|
-
if (formattedSchema?.properties) {
|
|
440
|
-
// Set all properties as required
|
|
441
|
-
formattedSchema.required = Object.keys(formattedSchema.properties);
|
|
442
|
-
// Process each property recursively
|
|
443
|
-
for (const propName of Object.keys(formattedSchema.properties)) {
|
|
444
|
-
const property = formattedSchema.properties[propName];
|
|
445
|
-
// Recursively process properties
|
|
446
|
-
formattedSchema.properties[propName] = openAISchemaFormat(property, nesting + 1);
|
|
447
|
-
// Process arrays with items of type object
|
|
448
|
-
if (property?.type === 'array' && property.items && property.items?.type === 'object') {
|
|
449
|
-
formattedSchema.properties[propName] = {
|
|
450
|
-
...property,
|
|
451
|
-
items: openAISchemaFormat(property.items, nesting + 1),
|
|
452
|
-
};
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
if (formattedSchema?.type === 'object' && (!formattedSchema?.properties || Object.keys(formattedSchema?.properties ?? {}).length == 0)) {
|
|
457
|
-
//If no properties are defined, then additionalProperties: true was set or the object would be empty.
|
|
458
|
-
//OpenAI does not support this on structured output/ strict mode.
|
|
459
|
-
throw new Error("OpenAI does not support empty objects or objects with additionalProperties set to true");
|
|
460
|
-
}
|
|
461
|
-
return formattedSchema;
|
|
462
|
-
}
|
|
463
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/openai/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import OpenAI from "openai";
|
|
2
|
-
import { BaseOpenAIDriver } from "./index.js";
|
|
3
|
-
export class OpenAIDriver extends BaseOpenAIDriver {
|
|
4
|
-
service;
|
|
5
|
-
provider;
|
|
6
|
-
constructor(opts) {
|
|
7
|
-
super(opts);
|
|
8
|
-
this.service = new OpenAI({
|
|
9
|
-
apiKey: opts.apiKey
|
|
10
|
-
});
|
|
11
|
-
this.provider = "openai";
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=openai.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../../src/openai/openai.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAc9C,MAAM,OAAO,YAAa,SAAQ,gBAAgB;IAE9C,OAAO,CAAS;IAChB,QAAQ,CAAW;IAEnB,YAAY,IAAyB;QACjC,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CAGJ"}
|