@llumiverse/drivers 0.23.0 → 0.24.0-dev.20260203.164053Z

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