@llumiverse/drivers 0.24.0 → 1.0.0-dev.20260202.145450Z

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 (227) hide show
  1. package/package.json +3 -3
  2. package/src/bedrock/index.ts +109 -2
  3. package/src/vertexai/index.ts +37 -18
  4. package/src/vertexai/models/claude.ts +146 -2
  5. package/lib/cjs/adobe/firefly.js +0 -120
  6. package/lib/cjs/adobe/firefly.js.map +0 -1
  7. package/lib/cjs/azure/azure_foundry.js +0 -432
  8. package/lib/cjs/azure/azure_foundry.js.map +0 -1
  9. package/lib/cjs/bedrock/converse.js +0 -285
  10. package/lib/cjs/bedrock/converse.js.map +0 -1
  11. package/lib/cjs/bedrock/index.js +0 -1091
  12. package/lib/cjs/bedrock/index.js.map +0 -1
  13. package/lib/cjs/bedrock/nova-image-payload.js +0 -207
  14. package/lib/cjs/bedrock/nova-image-payload.js.map +0 -1
  15. package/lib/cjs/bedrock/payloads.js +0 -3
  16. package/lib/cjs/bedrock/payloads.js.map +0 -1
  17. package/lib/cjs/bedrock/s3.js +0 -107
  18. package/lib/cjs/bedrock/s3.js.map +0 -1
  19. package/lib/cjs/bedrock/twelvelabs.js +0 -87
  20. package/lib/cjs/bedrock/twelvelabs.js.map +0 -1
  21. package/lib/cjs/groq/index.js +0 -323
  22. package/lib/cjs/groq/index.js.map +0 -1
  23. package/lib/cjs/huggingface_ie.js +0 -201
  24. package/lib/cjs/huggingface_ie.js.map +0 -1
  25. package/lib/cjs/index.js +0 -31
  26. package/lib/cjs/index.js.map +0 -1
  27. package/lib/cjs/mistral/index.js +0 -173
  28. package/lib/cjs/mistral/index.js.map +0 -1
  29. package/lib/cjs/mistral/types.js +0 -83
  30. package/lib/cjs/mistral/types.js.map +0 -1
  31. package/lib/cjs/openai/azure_openai.js +0 -72
  32. package/lib/cjs/openai/azure_openai.js.map +0 -1
  33. package/lib/cjs/openai/index.js +0 -665
  34. package/lib/cjs/openai/index.js.map +0 -1
  35. package/lib/cjs/openai/openai.js +0 -21
  36. package/lib/cjs/openai/openai.js.map +0 -1
  37. package/lib/cjs/openai/openai_compatible.js +0 -62
  38. package/lib/cjs/openai/openai_compatible.js.map +0 -1
  39. package/lib/cjs/openai/openai_format.js +0 -131
  40. package/lib/cjs/openai/openai_format.js.map +0 -1
  41. package/lib/cjs/package.json +0 -3
  42. package/lib/cjs/replicate.js +0 -275
  43. package/lib/cjs/replicate.js.map +0 -1
  44. package/lib/cjs/test-driver/TestErrorCompletionStream.js +0 -20
  45. package/lib/cjs/test-driver/TestErrorCompletionStream.js.map +0 -1
  46. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js +0 -24
  47. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  48. package/lib/cjs/test-driver/index.js +0 -109
  49. package/lib/cjs/test-driver/index.js.map +0 -1
  50. package/lib/cjs/test-driver/utils.js +0 -30
  51. package/lib/cjs/test-driver/utils.js.map +0 -1
  52. package/lib/cjs/togetherai/index.js +0 -126
  53. package/lib/cjs/togetherai/index.js.map +0 -1
  54. package/lib/cjs/togetherai/interfaces.js +0 -3
  55. package/lib/cjs/togetherai/interfaces.js.map +0 -1
  56. package/lib/cjs/vertexai/debug.js +0 -12
  57. package/lib/cjs/vertexai/debug.js.map +0 -1
  58. package/lib/cjs/vertexai/embeddings/embeddings-image.js +0 -27
  59. package/lib/cjs/vertexai/embeddings/embeddings-image.js.map +0 -1
  60. package/lib/cjs/vertexai/embeddings/embeddings-text.js +0 -23
  61. package/lib/cjs/vertexai/embeddings/embeddings-text.js.map +0 -1
  62. package/lib/cjs/vertexai/index.js +0 -576
  63. package/lib/cjs/vertexai/index.js.map +0 -1
  64. package/lib/cjs/vertexai/models/claude.js +0 -485
  65. package/lib/cjs/vertexai/models/claude.js.map +0 -1
  66. package/lib/cjs/vertexai/models/gemini.js +0 -871
  67. package/lib/cjs/vertexai/models/gemini.js.map +0 -1
  68. package/lib/cjs/vertexai/models/imagen.js +0 -303
  69. package/lib/cjs/vertexai/models/imagen.js.map +0 -1
  70. package/lib/cjs/vertexai/models/llama.js +0 -183
  71. package/lib/cjs/vertexai/models/llama.js.map +0 -1
  72. package/lib/cjs/vertexai/models.js +0 -35
  73. package/lib/cjs/vertexai/models.js.map +0 -1
  74. package/lib/cjs/watsonx/index.js +0 -161
  75. package/lib/cjs/watsonx/index.js.map +0 -1
  76. package/lib/cjs/watsonx/interfaces.js +0 -3
  77. package/lib/cjs/watsonx/interfaces.js.map +0 -1
  78. package/lib/cjs/xai/index.js +0 -65
  79. package/lib/cjs/xai/index.js.map +0 -1
  80. package/lib/esm/adobe/firefly.js +0 -116
  81. package/lib/esm/adobe/firefly.js.map +0 -1
  82. package/lib/esm/azure/azure_foundry.js +0 -426
  83. package/lib/esm/azure/azure_foundry.js.map +0 -1
  84. package/lib/esm/bedrock/converse.js +0 -278
  85. package/lib/esm/bedrock/converse.js.map +0 -1
  86. package/lib/esm/bedrock/index.js +0 -1087
  87. package/lib/esm/bedrock/index.js.map +0 -1
  88. package/lib/esm/bedrock/nova-image-payload.js +0 -203
  89. package/lib/esm/bedrock/nova-image-payload.js.map +0 -1
  90. package/lib/esm/bedrock/payloads.js +0 -2
  91. package/lib/esm/bedrock/payloads.js.map +0 -1
  92. package/lib/esm/bedrock/s3.js +0 -99
  93. package/lib/esm/bedrock/s3.js.map +0 -1
  94. package/lib/esm/bedrock/twelvelabs.js +0 -84
  95. package/lib/esm/bedrock/twelvelabs.js.map +0 -1
  96. package/lib/esm/groq/index.js +0 -316
  97. package/lib/esm/groq/index.js.map +0 -1
  98. package/lib/esm/huggingface_ie.js +0 -197
  99. package/lib/esm/huggingface_ie.js.map +0 -1
  100. package/lib/esm/index.js +0 -15
  101. package/lib/esm/index.js.map +0 -1
  102. package/lib/esm/mistral/index.js +0 -169
  103. package/lib/esm/mistral/index.js.map +0 -1
  104. package/lib/esm/mistral/types.js +0 -80
  105. package/lib/esm/mistral/types.js.map +0 -1
  106. package/lib/esm/openai/azure_openai.js +0 -68
  107. package/lib/esm/openai/azure_openai.js.map +0 -1
  108. package/lib/esm/openai/index.js +0 -660
  109. package/lib/esm/openai/index.js.map +0 -1
  110. package/lib/esm/openai/openai.js +0 -14
  111. package/lib/esm/openai/openai.js.map +0 -1
  112. package/lib/esm/openai/openai_compatible.js +0 -55
  113. package/lib/esm/openai/openai_compatible.js.map +0 -1
  114. package/lib/esm/openai/openai_format.js +0 -127
  115. package/lib/esm/openai/openai_format.js.map +0 -1
  116. package/lib/esm/replicate.js +0 -268
  117. package/lib/esm/replicate.js.map +0 -1
  118. package/lib/esm/test-driver/TestErrorCompletionStream.js +0 -16
  119. package/lib/esm/test-driver/TestErrorCompletionStream.js.map +0 -1
  120. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js +0 -20
  121. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  122. package/lib/esm/test-driver/index.js +0 -91
  123. package/lib/esm/test-driver/index.js.map +0 -1
  124. package/lib/esm/test-driver/utils.js +0 -25
  125. package/lib/esm/test-driver/utils.js.map +0 -1
  126. package/lib/esm/togetherai/index.js +0 -122
  127. package/lib/esm/togetherai/index.js.map +0 -1
  128. package/lib/esm/togetherai/interfaces.js +0 -2
  129. package/lib/esm/togetherai/interfaces.js.map +0 -1
  130. package/lib/esm/vertexai/debug.js +0 -6
  131. package/lib/esm/vertexai/debug.js.map +0 -1
  132. package/lib/esm/vertexai/embeddings/embeddings-image.js +0 -24
  133. package/lib/esm/vertexai/embeddings/embeddings-image.js.map +0 -1
  134. package/lib/esm/vertexai/embeddings/embeddings-text.js +0 -20
  135. package/lib/esm/vertexai/embeddings/embeddings-text.js.map +0 -1
  136. package/lib/esm/vertexai/index.js +0 -571
  137. package/lib/esm/vertexai/index.js.map +0 -1
  138. package/lib/esm/vertexai/models/claude.js +0 -479
  139. package/lib/esm/vertexai/models/claude.js.map +0 -1
  140. package/lib/esm/vertexai/models/gemini.js +0 -866
  141. package/lib/esm/vertexai/models/gemini.js.map +0 -1
  142. package/lib/esm/vertexai/models/imagen.js +0 -299
  143. package/lib/esm/vertexai/models/imagen.js.map +0 -1
  144. package/lib/esm/vertexai/models/llama.js +0 -179
  145. package/lib/esm/vertexai/models/llama.js.map +0 -1
  146. package/lib/esm/vertexai/models.js +0 -32
  147. package/lib/esm/vertexai/models.js.map +0 -1
  148. package/lib/esm/watsonx/index.js +0 -157
  149. package/lib/esm/watsonx/index.js.map +0 -1
  150. package/lib/esm/watsonx/interfaces.js +0 -2
  151. package/lib/esm/watsonx/interfaces.js.map +0 -1
  152. package/lib/esm/xai/index.js +0 -58
  153. package/lib/esm/xai/index.js.map +0 -1
  154. package/lib/types/adobe/firefly.d.ts +0 -30
  155. package/lib/types/adobe/firefly.d.ts.map +0 -1
  156. package/lib/types/azure/azure_foundry.d.ts +0 -52
  157. package/lib/types/azure/azure_foundry.d.ts.map +0 -1
  158. package/lib/types/bedrock/converse.d.ts +0 -9
  159. package/lib/types/bedrock/converse.d.ts.map +0 -1
  160. package/lib/types/bedrock/index.d.ts +0 -68
  161. package/lib/types/bedrock/index.d.ts.map +0 -1
  162. package/lib/types/bedrock/nova-image-payload.d.ts +0 -74
  163. package/lib/types/bedrock/nova-image-payload.d.ts.map +0 -1
  164. package/lib/types/bedrock/payloads.d.ts +0 -12
  165. package/lib/types/bedrock/payloads.d.ts.map +0 -1
  166. package/lib/types/bedrock/s3.d.ts +0 -23
  167. package/lib/types/bedrock/s3.d.ts.map +0 -1
  168. package/lib/types/bedrock/twelvelabs.d.ts +0 -50
  169. package/lib/types/bedrock/twelvelabs.d.ts.map +0 -1
  170. package/lib/types/groq/index.d.ts +0 -27
  171. package/lib/types/groq/index.d.ts.map +0 -1
  172. package/lib/types/huggingface_ie.d.ts +0 -35
  173. package/lib/types/huggingface_ie.d.ts.map +0 -1
  174. package/lib/types/index.d.ts +0 -15
  175. package/lib/types/index.d.ts.map +0 -1
  176. package/lib/types/mistral/index.d.ts +0 -25
  177. package/lib/types/mistral/index.d.ts.map +0 -1
  178. package/lib/types/mistral/types.d.ts +0 -132
  179. package/lib/types/mistral/types.d.ts.map +0 -1
  180. package/lib/types/openai/azure_openai.d.ts +0 -25
  181. package/lib/types/openai/azure_openai.d.ts.map +0 -1
  182. package/lib/types/openai/index.d.ts +0 -31
  183. package/lib/types/openai/index.d.ts.map +0 -1
  184. package/lib/types/openai/openai.d.ts +0 -15
  185. package/lib/types/openai/openai.d.ts.map +0 -1
  186. package/lib/types/openai/openai_compatible.d.ts +0 -26
  187. package/lib/types/openai/openai_compatible.d.ts.map +0 -1
  188. package/lib/types/openai/openai_format.d.ts +0 -21
  189. package/lib/types/openai/openai_format.d.ts.map +0 -1
  190. package/lib/types/replicate.d.ts +0 -48
  191. package/lib/types/replicate.d.ts.map +0 -1
  192. package/lib/types/test-driver/TestErrorCompletionStream.d.ts +0 -9
  193. package/lib/types/test-driver/TestErrorCompletionStream.d.ts.map +0 -1
  194. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts +0 -9
  195. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts.map +0 -1
  196. package/lib/types/test-driver/index.d.ts +0 -24
  197. package/lib/types/test-driver/index.d.ts.map +0 -1
  198. package/lib/types/test-driver/utils.d.ts +0 -5
  199. package/lib/types/test-driver/utils.d.ts.map +0 -1
  200. package/lib/types/togetherai/index.d.ts +0 -23
  201. package/lib/types/togetherai/index.d.ts.map +0 -1
  202. package/lib/types/togetherai/interfaces.d.ts +0 -96
  203. package/lib/types/togetherai/interfaces.d.ts.map +0 -1
  204. package/lib/types/vertexai/debug.d.ts +0 -2
  205. package/lib/types/vertexai/debug.d.ts.map +0 -1
  206. package/lib/types/vertexai/embeddings/embeddings-image.d.ts +0 -11
  207. package/lib/types/vertexai/embeddings/embeddings-image.d.ts.map +0 -1
  208. package/lib/types/vertexai/embeddings/embeddings-text.d.ts +0 -10
  209. package/lib/types/vertexai/embeddings/embeddings-text.d.ts.map +0 -1
  210. package/lib/types/vertexai/index.d.ts +0 -65
  211. package/lib/types/vertexai/index.d.ts.map +0 -1
  212. package/lib/types/vertexai/models/claude.d.ts +0 -28
  213. package/lib/types/vertexai/models/claude.d.ts.map +0 -1
  214. package/lib/types/vertexai/models/gemini.d.ts +0 -18
  215. package/lib/types/vertexai/models/gemini.d.ts.map +0 -1
  216. package/lib/types/vertexai/models/imagen.d.ts +0 -75
  217. package/lib/types/vertexai/models/imagen.d.ts.map +0 -1
  218. package/lib/types/vertexai/models/llama.d.ts +0 -20
  219. package/lib/types/vertexai/models/llama.d.ts.map +0 -1
  220. package/lib/types/vertexai/models.d.ts +0 -15
  221. package/lib/types/vertexai/models.d.ts.map +0 -1
  222. package/lib/types/watsonx/index.d.ts +0 -27
  223. package/lib/types/watsonx/index.d.ts.map +0 -1
  224. package/lib/types/watsonx/interfaces.d.ts +0 -65
  225. package/lib/types/watsonx/interfaces.d.ts.map +0 -1
  226. package/lib/types/xai/index.d.ts +0 -18
  227. package/lib/types/xai/index.d.ts.map +0 -1
@@ -1,316 +0,0 @@
1
- import { AbstractDriver } from "@llumiverse/core";
2
- import { transformAsyncIterator } from "@llumiverse/core/async";
3
- import { formatOpenAILikeMultimodalPrompt } from "../openai/openai_format.js";
4
- import Groq from "groq-sdk";
5
- export class GroqDriver extends AbstractDriver {
6
- static PROVIDER = "groq";
7
- provider = GroqDriver.PROVIDER;
8
- apiKey;
9
- client;
10
- endpointUrl;
11
- constructor(options) {
12
- super(options);
13
- this.apiKey = options.apiKey;
14
- this.client = new Groq({
15
- apiKey: options.apiKey,
16
- baseURL: options.endpoint_url
17
- });
18
- }
19
- // protected canStream(options: ExecutionOptions): Promise<boolean> {
20
- // if (options.result_schema) {
21
- // // not yet streaming json responses
22
- // return Promise.resolve(false);
23
- // } else {
24
- // return Promise.resolve(true);
25
- // }
26
- // }
27
- getResponseFormat(_options) {
28
- //TODO: when forcing json_object type the streaming is not supported.
29
- // either implement canStream as above or comment the code below:
30
- // const responseFormatJson: Groq.Chat.Completions.CompletionCreateParams.ResponseFormat = {
31
- // type: "json_object",
32
- // }
33
- // return _options.result_schema ? responseFormatJson : undefined;
34
- return undefined;
35
- }
36
- async formatPrompt(segments, opts) {
37
- // Use OpenAI's multimodal formatter as base then convert to Groq types
38
- const responseItems = await formatOpenAILikeMultimodalPrompt(segments, {
39
- ...opts,
40
- multimodal: true,
41
- });
42
- // Convert ResponseInputItem[] to Groq ChatCompletionMessageParam[]
43
- return convertResponseItemsToGroqMessages(responseItems);
44
- }
45
- getToolDefinitions(tools) {
46
- if (!tools || tools.length === 0) {
47
- return undefined;
48
- }
49
- return tools.map(tool => ({
50
- type: 'function',
51
- function: {
52
- name: tool.name,
53
- description: tool.description,
54
- parameters: tool.input_schema,
55
- }
56
- }));
57
- }
58
- extractToolUse(message) {
59
- if (!message.tool_calls || message.tool_calls.length === 0) {
60
- return undefined;
61
- }
62
- return message.tool_calls.map((toolCall) => ({
63
- id: toolCall.id,
64
- tool_name: toolCall.function.name,
65
- tool_input: JSON.parse(toolCall.function.arguments || '{}'),
66
- }));
67
- }
68
- sanitizeMessagesForGroq(messages) {
69
- return messages.map(message => {
70
- // Remove any reasoning field from message objects
71
- const { reasoning, ...sanitizedMessage } = message;
72
- // If message has content array, filter out reasoning content types
73
- if (Array.isArray(sanitizedMessage.content)) {
74
- sanitizedMessage.content = sanitizedMessage.content.filter((part) => {
75
- // Filter out any reasoning-related content parts
76
- return part.type !== 'reasoning' && !('reasoning' in part);
77
- });
78
- }
79
- return sanitizedMessage;
80
- });
81
- }
82
- async requestTextCompletion(messages, options) {
83
- if (options.model_options?._option_id !== "text-fallback" && options.model_options?._option_id !== "groq-deepseek-thinking") {
84
- this.logger.warn({ options: options.model_options }, "Invalid model options");
85
- }
86
- options.model_options = options.model_options;
87
- // Update conversation with current messages
88
- let conversation = updateConversation(options.conversation, messages);
89
- // Filter out any reasoning content that Groq doesn't support
90
- conversation = this.sanitizeMessagesForGroq(conversation);
91
- const tools = this.getToolDefinitions(options.tools);
92
- const res = await this.client.chat.completions.create({
93
- model: options.model,
94
- messages: conversation,
95
- max_completion_tokens: options.model_options?.max_tokens,
96
- temperature: options.model_options?.temperature,
97
- top_p: options.model_options?.top_p,
98
- //top_logprobs: options.top_logprobs, //Logprobs output currently not supported
99
- //logprobs: options.top_logprobs ? true : false,
100
- presence_penalty: options.model_options?.presence_penalty,
101
- frequency_penalty: options.model_options?.frequency_penalty,
102
- response_format: this.getResponseFormat(options),
103
- tools: tools,
104
- });
105
- const choice = res.choices[0];
106
- const result = choice.message.content;
107
- // Extract tool use from the response
108
- const tool_use = this.extractToolUse(choice.message);
109
- // Update conversation with the response
110
- conversation = updateConversation(conversation, [choice.message]);
111
- let finish_reason = choice.finish_reason;
112
- if (tool_use && tool_use.length > 0) {
113
- finish_reason = "tool_calls";
114
- }
115
- return {
116
- result: result ? [{ type: "text", value: result }] : [],
117
- token_usage: {
118
- prompt: res.usage?.prompt_tokens,
119
- result: res.usage?.completion_tokens,
120
- total: res.usage?.total_tokens,
121
- },
122
- finish_reason: finish_reason,
123
- original_response: options.include_original_response ? res : undefined,
124
- conversation,
125
- tool_use,
126
- };
127
- }
128
- async requestTextCompletionStream(messages, options) {
129
- if (options.model_options?._option_id !== "text-fallback") {
130
- this.logger.warn({ options: options.model_options }, "Invalid model options");
131
- }
132
- options.model_options = options.model_options;
133
- // Update conversation with current messages
134
- let conversation = updateConversation(options.conversation, messages);
135
- // Filter out any reasoning content that Groq doesn't support
136
- conversation = this.sanitizeMessagesForGroq(conversation);
137
- const tools = this.getToolDefinitions(options.tools);
138
- const res = await this.client.chat.completions.create({
139
- model: options.model,
140
- messages: conversation,
141
- max_completion_tokens: options.model_options?.max_tokens,
142
- temperature: options.model_options?.temperature,
143
- top_p: options.model_options?.top_p,
144
- //top_logprobs: options.top_logprobs, //Logprobs output currently not supported
145
- //logprobs: options.top_logprobs ? true : false,
146
- presence_penalty: options.model_options?.presence_penalty,
147
- frequency_penalty: options.model_options?.frequency_penalty,
148
- stream: true,
149
- tools: tools,
150
- });
151
- return transformAsyncIterator(res, (chunk) => {
152
- const choice = chunk.choices[0];
153
- let finish_reason = choice.finish_reason;
154
- // Check for tool calls in the delta
155
- if (choice.delta.tool_calls && choice.delta.tool_calls.length > 0) {
156
- finish_reason = "tool_calls";
157
- }
158
- return {
159
- result: choice.delta.content ? [{ type: "text", value: choice.delta.content }] : [],
160
- finish_reason: finish_reason ?? undefined,
161
- token_usage: {
162
- prompt: chunk.x_groq?.usage?.prompt_tokens,
163
- result: chunk.x_groq?.usage?.completion_tokens,
164
- total: chunk.x_groq?.usage?.total_tokens,
165
- },
166
- };
167
- });
168
- }
169
- async listModels() {
170
- const models = await this.client.models.list();
171
- if (!models.data) {
172
- throw new Error("No models found");
173
- }
174
- const aiModels = models.data?.map(m => {
175
- if (!m.id) {
176
- throw new Error("Model id is missing");
177
- }
178
- return {
179
- id: m.id,
180
- name: m.id,
181
- description: undefined,
182
- provider: this.provider,
183
- owner: m.owned_by || '',
184
- };
185
- });
186
- return aiModels;
187
- }
188
- validateConnection() {
189
- throw new Error("Method not implemented.");
190
- }
191
- async generateEmbeddings({}) {
192
- throw new Error("Method not implemented.");
193
- }
194
- }
195
- /**
196
- * Update the conversation messages by combining existing conversation with new messages
197
- * @param conversation Existing conversation messages
198
- * @param messages New messages to add
199
- * @returns Combined conversation
200
- */
201
- function updateConversation(conversation, messages) {
202
- return (conversation || []).concat(messages);
203
- }
204
- /**
205
- * Convert ResponseInputItem[] to Groq ChatCompletionMessageParam[]
206
- */
207
- function convertResponseItemsToGroqMessages(items) {
208
- const messages = [];
209
- for (const item of items) {
210
- // Handle EasyInputMessage (has role and content)
211
- if ('role' in item && 'content' in item) {
212
- const msg = item;
213
- const role = msg.role;
214
- // Handle system/developer messages
215
- if (role === 'system' || role === 'developer') {
216
- let content;
217
- if (typeof msg.content === 'string') {
218
- content = msg.content;
219
- }
220
- else if (Array.isArray(msg.content)) {
221
- content = msg.content
222
- .filter((part) => part.type === 'input_text')
223
- .map(part => part.text)
224
- .join('\n');
225
- }
226
- else {
227
- content = '';
228
- }
229
- messages.push({ role: 'system', content });
230
- continue;
231
- }
232
- // Handle user messages
233
- if (role === 'user') {
234
- let content;
235
- if (typeof msg.content === 'string') {
236
- content = msg.content;
237
- }
238
- else if (Array.isArray(msg.content)) {
239
- const parts = [];
240
- for (const part of msg.content) {
241
- if (part.type === 'input_text') {
242
- parts.push({ type: 'text', text: part.text });
243
- }
244
- else if (part.type === 'input_image') {
245
- const imgPart = part;
246
- if (imgPart.image_url) {
247
- parts.push({
248
- type: 'image_url',
249
- image_url: {
250
- url: imgPart.image_url,
251
- ...(imgPart.detail && { detail: imgPart.detail })
252
- }
253
- });
254
- }
255
- }
256
- }
257
- content = parts.length > 0 ? parts : '';
258
- }
259
- else {
260
- content = '';
261
- }
262
- messages.push({ role: 'user', content });
263
- continue;
264
- }
265
- // Handle assistant messages
266
- if (role === 'assistant') {
267
- let content;
268
- if (typeof msg.content === 'string') {
269
- content = msg.content;
270
- }
271
- else if (Array.isArray(msg.content)) {
272
- content = msg.content
273
- .filter((part) => part.type === 'input_text')
274
- .map(part => part.text)
275
- .join('\n') || null;
276
- }
277
- else {
278
- content = null;
279
- }
280
- messages.push({ role: 'assistant', content });
281
- continue;
282
- }
283
- }
284
- // Handle function_call_output (tool response)
285
- if ('type' in item && item.type === 'function_call_output') {
286
- const output = item;
287
- messages.push({
288
- role: 'tool',
289
- tool_call_id: output.call_id,
290
- content: typeof output.output === 'string' ? output.output : JSON.stringify(output.output),
291
- });
292
- continue;
293
- }
294
- // Handle function_call (assistant tool call)
295
- if ('type' in item && item.type === 'function_call') {
296
- const call = item;
297
- // Groq expects tool_calls in assistant message, but we handle them separately
298
- // This is a simplification - in practice tool_calls come from model responses
299
- messages.push({
300
- role: 'assistant',
301
- content: null,
302
- tool_calls: [{
303
- id: call.call_id,
304
- type: 'function',
305
- function: {
306
- name: call.name,
307
- arguments: call.arguments,
308
- }
309
- }]
310
- });
311
- continue;
312
- }
313
- }
314
- return messages;
315
- }
316
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/groq/index.ts"],"names":[],"mappings":"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"}
@@ -1,197 +0,0 @@
1
- import { InferenceClient, } from "@huggingface/inference";
2
- import { AIModelStatus, AbstractDriver, } from "@llumiverse/core";
3
- import { transformAsyncIterator } from "@llumiverse/core/async";
4
- import { FetchClient } from "@vertesia/api-fetch-client";
5
- export class HuggingFaceIEDriver extends AbstractDriver {
6
- static PROVIDER = "huggingface_ie";
7
- provider = HuggingFaceIEDriver.PROVIDER;
8
- service;
9
- _executor;
10
- constructor(options) {
11
- super(options);
12
- if (!options.endpoint_url) {
13
- throw new Error(`Endpoint URL is required for ${this.provider}`);
14
- }
15
- this.service = new FetchClient(this.options.endpoint_url);
16
- this.service.headers["Authorization"] = `Bearer ${this.options.apiKey}`;
17
- }
18
- async getModelURLEndpoint(modelId) {
19
- const res = (await this.service.get(`/${modelId}`));
20
- return {
21
- url: res.status.url,
22
- status: getStatus(res),
23
- };
24
- }
25
- async getExecutor(model) {
26
- if (!this._executor) {
27
- const endpoint = await this.getModelURLEndpoint(model);
28
- if (!endpoint.url)
29
- throw new Error(`Endpoint URL not found for model ${model}`);
30
- if (endpoint.status !== AIModelStatus.Available)
31
- throw new Error(`Endpoint ${model} is not running - current status: ${endpoint.status}`);
32
- // Use the new InferenceClient and bind it to the endpoint URL
33
- this._executor = new InferenceClient(this.options.apiKey).endpoint(endpoint.url);
34
- }
35
- return this._executor;
36
- }
37
- async requestTextCompletionStream(prompt, options) {
38
- if (options.model_options?._option_id !== "text-fallback") {
39
- this.logger.warn({ options: options.model_options }, "Invalid model options");
40
- }
41
- options.model_options = options.model_options;
42
- const executor = await this.getExecutor(options.model);
43
- const req = executor.textGenerationStream({
44
- inputs: prompt,
45
- parameters: {
46
- temperature: options.model_options?.temperature,
47
- max_new_tokens: options.model_options?.max_tokens,
48
- },
49
- });
50
- return transformAsyncIterator(req, (val) => {
51
- //special like <s> are not part of the result
52
- if (val.token.special)
53
- return { result: [] };
54
- let finish_reason = val.details?.finish_reason;
55
- if (finish_reason === "eos_token") {
56
- finish_reason = "stop";
57
- }
58
- return {
59
- result: val.token.text ? [{ type: "text", value: val.token.text }] : [],
60
- finish_reason: finish_reason,
61
- token_usage: {
62
- result: val.details?.generated_tokens ?? 0,
63
- }
64
- };
65
- });
66
- }
67
- async requestTextCompletion(prompt, options) {
68
- if (options.model_options?._option_id !== "text-fallback") {
69
- this.logger.warn({ options: options.model_options }, "Invalid model options");
70
- }
71
- options.model_options = options.model_options;
72
- const executor = await this.getExecutor(options.model);
73
- const res = await executor.textGeneration({
74
- inputs: prompt,
75
- parameters: {
76
- temperature: options.model_options?.temperature,
77
- max_new_tokens: options.model_options?.max_tokens,
78
- },
79
- });
80
- let finish_reason = res.details?.finish_reason;
81
- if (finish_reason === "eos_token") {
82
- finish_reason = "stop";
83
- }
84
- return {
85
- result: [{ type: "text", value: res.generated_text }],
86
- finish_reason: finish_reason,
87
- token_usage: {
88
- result: res.details?.generated_tokens
89
- },
90
- original_response: options.include_original_response ? res : undefined,
91
- };
92
- }
93
- // ============== management API ==============
94
- async listModels() {
95
- const res = await this.service.get("/");
96
- const hfModels = res.items;
97
- if (!hfModels || !hfModels.length)
98
- return [];
99
- const models = hfModels.map((model) => ({
100
- id: model.name,
101
- name: `${model.name} [${model.model.repository}:${model.model.task}]`,
102
- provider: this.provider,
103
- tags: [model.model.task],
104
- status: getStatus(model),
105
- }));
106
- return models;
107
- }
108
- async validateConnection() {
109
- try {
110
- await this.service.get("/models");
111
- return true;
112
- }
113
- catch (error) {
114
- return false;
115
- }
116
- }
117
- async generateEmbeddings() {
118
- throw new Error("Method not implemented.");
119
- }
120
- }
121
- //get status from HF status
122
- function getStatus(hfModel) {
123
- //[ pending, initializing, updating, updateFailed, running, paused, failed, scaledToZero ]
124
- switch (hfModel.status.state) {
125
- case "running":
126
- return AIModelStatus.Available;
127
- case "initializing":
128
- return AIModelStatus.Pending;
129
- case "updating":
130
- return AIModelStatus.Pending;
131
- case "updateFailed":
132
- return AIModelStatus.Unavailable;
133
- case "paused":
134
- return AIModelStatus.Stopped;
135
- case "failed":
136
- return AIModelStatus.Unavailable;
137
- case "scaledToZero":
138
- return AIModelStatus.Available;
139
- default:
140
- return AIModelStatus.Unknown;
141
- }
142
- }
143
- /*
144
- Example of model returned by the API
145
- {
146
- "items": [
147
- {
148
- "accountId": "string",
149
- "compute": {
150
- "accelerator": "cpu",
151
- "instanceSize": "large",
152
- "instanceType": "c6i",
153
- "scaling": {
154
- "maxReplica": 8,
155
- "minReplica": 2
156
- }
157
- },
158
- "model": {
159
- "framework": "custom",
160
- "image": {
161
- "huggingface": {}
162
- },
163
- "repository": "gpt2",
164
- "revision": "6c0e6080953db56375760c0471a8c5f2929baf11",
165
- "task": "text-classification"
166
- },
167
- "name": "my-endpoint",
168
- "provider": {
169
- "region": "us-east-1",
170
- "vendor": "aws"
171
- },
172
- "status": {
173
- "createdAt": "2023-10-19T05:04:17.305Z",
174
- "createdBy": {
175
- "id": "string",
176
- "name": "string"
177
- },
178
- "message": "Endpoint is ready",
179
- "private": {
180
- "serviceName": "string"
181
- },
182
- "readyReplica": 2,
183
- "state": "pending",
184
- "targetReplica": 4,
185
- "updatedAt": "2023-10-19T05:04:17.305Z",
186
- "updatedBy": {
187
- "id": "string",
188
- "name": "string"
189
- },
190
- "url": "https://endpoint-id.region.vendor.endpoints.huggingface.cloud"
191
- },
192
- "type": "public"
193
- }
194
- ]
195
- }
196
- */
197
- //# sourceMappingURL=huggingface_ie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"huggingface_ie.js","sourceRoot":"","sources":["../../src/huggingface_ie.ts"],"names":[],"mappings":"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"}
package/lib/esm/index.js DELETED
@@ -1,15 +0,0 @@
1
- export * from "./azure/azure_foundry.js";
2
- export * from "./bedrock/index.js";
3
- export * from "./groq/index.js";
4
- export * from "./huggingface_ie.js";
5
- export * from "./mistral/index.js";
6
- export * from "./openai/azure_openai.js";
7
- export * from "./openai/openai.js";
8
- export * from "./openai/openai_compatible.js";
9
- export * from "./replicate.js";
10
- export * from "./test-driver/index.js";
11
- export * from "./togetherai/index.js";
12
- export * from "./vertexai/index.js";
13
- export * from "./watsonx/index.js";
14
- export * from "./xai/index.js";
15
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC"}