@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,293 +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.GroqDriver = void 0;
7
- const core_1 = require("@llumiverse/core");
8
- const async_1 = require("@llumiverse/core/async");
9
- const openai_format_js_1 = require("../openai/openai_format.js");
10
- const groq_sdk_1 = __importDefault(require("groq-sdk"));
11
- class GroqDriver extends core_1.AbstractDriver {
12
- static PROVIDER = "groq";
13
- provider = GroqDriver.PROVIDER;
14
- apiKey;
15
- client;
16
- endpointUrl;
17
- constructor(options) {
18
- super(options);
19
- this.apiKey = options.apiKey;
20
- this.client = new groq_sdk_1.default({
21
- apiKey: options.apiKey,
22
- baseURL: options.endpoint_url
23
- });
24
- }
25
- // protected canStream(options: ExecutionOptions): Promise<boolean> {
26
- // if (options.result_schema) {
27
- // // not yet streaming json responses
28
- // return Promise.resolve(false);
29
- // } else {
30
- // return Promise.resolve(true);
31
- // }
32
- // }
33
- getResponseFormat(_options) {
34
- //TODO: when forcing json_object type the streaming is not supported.
35
- // either implement canStream as above or comment the code below:
36
- // const responseFormatJson: Groq.Chat.Completions.CompletionCreateParams.ResponseFormat = {
37
- // type: "json_object",
38
- // }
39
- // return _options.result_schema ? responseFormatJson : undefined;
40
- return undefined;
41
- }
42
- async formatPrompt(segments, opts) {
43
- // Use OpenAI's multimodal formatter as base then convert to Groq types
44
- const openaiMessages = await (0, openai_format_js_1.formatOpenAILikeMultimodalPrompt)(segments, {
45
- ...opts,
46
- multimodal: true,
47
- });
48
- // Convert OpenAI ChatCompletionMessageParam[] to Groq ChatCompletionMessageParam[]
49
- // Handle differences between OpenAI and Groq SDK types
50
- const groqMessages = openaiMessages.map(msg => {
51
- // Handle OpenAI developer messages - convert to system messages for Groq
52
- if (msg.role === 'developer' || msg.role === 'system') {
53
- const systemMsg = {
54
- role: 'system',
55
- content: Array.isArray(msg.content)
56
- ? msg.content.map(part => part.text).join('\n')
57
- : msg.content,
58
- // Preserve name if present
59
- ...(msg.name && { name: msg.name })
60
- };
61
- return systemMsg;
62
- }
63
- // Handle user messages - filter content parts to only supported types
64
- if (msg.role === 'user') {
65
- let content = undefined;
66
- if (typeof msg.content === 'string') {
67
- content = msg.content;
68
- }
69
- else if (Array.isArray(msg.content)) {
70
- // Filter to only text and image_url parts that Groq supports
71
- const supportedParts = msg.content.filter(part => part.type === 'text' || part.type === 'image_url').map(part => {
72
- if (part.type === 'text') {
73
- return { type: 'text', text: part.text };
74
- }
75
- else if (part.type === 'image_url') {
76
- return {
77
- type: 'image_url',
78
- image_url: {
79
- url: part.image_url.url,
80
- ...(part.image_url.detail && { detail: part.image_url.detail })
81
- }
82
- };
83
- }
84
- return null;
85
- }).filter(Boolean);
86
- content = supportedParts.length > 0 ? supportedParts : 'Content not supported';
87
- }
88
- const userMsg = {
89
- role: 'user',
90
- content: content ?? "",
91
- // Preserve name if present
92
- ...(msg.name && { name: msg.name })
93
- };
94
- return userMsg;
95
- }
96
- // Handle assistant messages - handle content arrays if needed
97
- if (msg.role === 'assistant') {
98
- const assistantMsg = {
99
- role: 'assistant',
100
- content: Array.isArray(msg.content)
101
- ? msg.content.map(part => 'text' in part ? part.text : '').filter(Boolean).join('\n') || null
102
- : msg.content,
103
- // Preserve other assistant message properties
104
- ...(msg.tool_calls && { tool_calls: msg.tool_calls }),
105
- ...(msg.name && { name: msg.name })
106
- };
107
- return assistantMsg;
108
- }
109
- // For tool and function messages, they should be compatible
110
- if (msg.role === 'tool') {
111
- const toolMsg = {
112
- role: 'tool',
113
- tool_call_id: msg.tool_call_id,
114
- content: Array.isArray(msg.content)
115
- ? msg.content.map(part => part.text).join('\n')
116
- : msg.content
117
- };
118
- return toolMsg;
119
- }
120
- if (msg.role === 'function') {
121
- const functionMsg = {
122
- role: 'function',
123
- name: msg.name,
124
- content: msg.content
125
- };
126
- return functionMsg;
127
- }
128
- // Fallback - should not reach here but provides type safety
129
- throw new Error(`Unsupported message role: ${msg.role}`);
130
- });
131
- return groqMessages;
132
- }
133
- getToolDefinitions(tools) {
134
- if (!tools || tools.length === 0) {
135
- return undefined;
136
- }
137
- return tools.map(tool => ({
138
- type: 'function',
139
- function: {
140
- name: tool.name,
141
- description: tool.description,
142
- parameters: tool.input_schema,
143
- }
144
- }));
145
- }
146
- extractToolUse(message) {
147
- if (!message.tool_calls || message.tool_calls.length === 0) {
148
- return undefined;
149
- }
150
- return message.tool_calls.map((toolCall) => ({
151
- id: toolCall.id,
152
- tool_name: toolCall.function.name,
153
- tool_input: JSON.parse(toolCall.function.arguments || '{}'),
154
- }));
155
- }
156
- sanitizeMessagesForGroq(messages) {
157
- return messages.map(message => {
158
- // Remove any reasoning field from message objects
159
- const { reasoning, ...sanitizedMessage } = message;
160
- // If message has content array, filter out reasoning content types
161
- if (Array.isArray(sanitizedMessage.content)) {
162
- sanitizedMessage.content = sanitizedMessage.content.filter((part) => {
163
- // Filter out any reasoning-related content parts
164
- return part.type !== 'reasoning' && !('reasoning' in part);
165
- });
166
- }
167
- return sanitizedMessage;
168
- });
169
- }
170
- async requestTextCompletion(messages, options) {
171
- if (options.model_options?._option_id !== "text-fallback" && options.model_options?._option_id !== "groq-deepseek-thinking") {
172
- this.logger.warn({ options: options.model_options }, "Invalid model options");
173
- }
174
- options.model_options = options.model_options;
175
- // Update conversation with current messages
176
- let conversation = updateConversation(options.conversation, messages);
177
- // Filter out any reasoning content that Groq doesn't support
178
- conversation = this.sanitizeMessagesForGroq(conversation);
179
- const tools = this.getToolDefinitions(options.tools);
180
- const res = await this.client.chat.completions.create({
181
- model: options.model,
182
- messages: conversation,
183
- max_completion_tokens: options.model_options?.max_tokens,
184
- temperature: options.model_options?.temperature,
185
- top_p: options.model_options?.top_p,
186
- //top_logprobs: options.top_logprobs, //Logprobs output currently not supported
187
- //logprobs: options.top_logprobs ? true : false,
188
- presence_penalty: options.model_options?.presence_penalty,
189
- frequency_penalty: options.model_options?.frequency_penalty,
190
- response_format: this.getResponseFormat(options),
191
- tools: tools,
192
- });
193
- const choice = res.choices[0];
194
- const result = choice.message.content;
195
- // Extract tool use from the response
196
- const tool_use = this.extractToolUse(choice.message);
197
- // Update conversation with the response
198
- conversation = updateConversation(conversation, [choice.message]);
199
- let finish_reason = choice.finish_reason;
200
- if (tool_use && tool_use.length > 0) {
201
- finish_reason = "tool_calls";
202
- }
203
- return {
204
- result: result ? [{ type: "text", value: result }] : [],
205
- token_usage: {
206
- prompt: res.usage?.prompt_tokens,
207
- result: res.usage?.completion_tokens,
208
- total: res.usage?.total_tokens,
209
- },
210
- finish_reason: finish_reason,
211
- original_response: options.include_original_response ? res : undefined,
212
- conversation,
213
- tool_use,
214
- };
215
- }
216
- async requestTextCompletionStream(messages, options) {
217
- if (options.model_options?._option_id !== "text-fallback") {
218
- this.logger.warn({ options: options.model_options }, "Invalid model options");
219
- }
220
- options.model_options = options.model_options;
221
- // Update conversation with current messages
222
- let conversation = updateConversation(options.conversation, messages);
223
- // Filter out any reasoning content that Groq doesn't support
224
- conversation = this.sanitizeMessagesForGroq(conversation);
225
- const tools = this.getToolDefinitions(options.tools);
226
- const res = await this.client.chat.completions.create({
227
- model: options.model,
228
- messages: conversation,
229
- max_completion_tokens: options.model_options?.max_tokens,
230
- temperature: options.model_options?.temperature,
231
- top_p: options.model_options?.top_p,
232
- //top_logprobs: options.top_logprobs, //Logprobs output currently not supported
233
- //logprobs: options.top_logprobs ? true : false,
234
- presence_penalty: options.model_options?.presence_penalty,
235
- frequency_penalty: options.model_options?.frequency_penalty,
236
- stream: true,
237
- tools: tools,
238
- });
239
- return (0, async_1.transformAsyncIterator)(res, (chunk) => {
240
- const choice = chunk.choices[0];
241
- let finish_reason = choice.finish_reason;
242
- // Check for tool calls in the delta
243
- if (choice.delta.tool_calls && choice.delta.tool_calls.length > 0) {
244
- finish_reason = "tool_calls";
245
- }
246
- return {
247
- result: choice.delta.content ? [{ type: "text", value: choice.delta.content }] : [],
248
- finish_reason: finish_reason ?? undefined,
249
- token_usage: {
250
- prompt: chunk.x_groq?.usage?.prompt_tokens,
251
- result: chunk.x_groq?.usage?.completion_tokens,
252
- total: chunk.x_groq?.usage?.total_tokens,
253
- },
254
- };
255
- });
256
- }
257
- async listModels() {
258
- const models = await this.client.models.list();
259
- if (!models.data) {
260
- throw new Error("No models found");
261
- }
262
- const aiModels = models.data?.map(m => {
263
- if (!m.id) {
264
- throw new Error("Model id is missing");
265
- }
266
- return {
267
- id: m.id,
268
- name: m.id,
269
- description: undefined,
270
- provider: this.provider,
271
- owner: m.owned_by || '',
272
- };
273
- });
274
- return aiModels;
275
- }
276
- validateConnection() {
277
- throw new Error("Method not implemented.");
278
- }
279
- async generateEmbeddings({}) {
280
- throw new Error("Method not implemented.");
281
- }
282
- }
283
- exports.GroqDriver = GroqDriver;
284
- /**
285
- * Update the conversation messages by combining existing conversation with new messages
286
- * @param conversation Existing conversation messages
287
- * @param messages New messages to add
288
- * @returns Combined conversation
289
- */
290
- function updateConversation(conversation, messages) {
291
- return (conversation || []).concat(messages);
292
- }
293
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/groq/index.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAiO;AACjO,kDAAgE;AAChE,iEAA8E;AAE9E,wDAA4B;AAS5B,MAAa,UAAW,SAAQ,qBAA+D;IAC3F,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC;IACzB,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;IAC/B,MAAM,CAAS;IACf,MAAM,CAAO;IACb,WAAW,CAAU;IAErB,YAAY,OAA0B;QAClC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAI,CAAC;YACnB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,YAAY;SAChC,CAAC,CAAC;IACP,CAAC;IAED,qEAAqE;IACrE,mCAAmC;IACnC,8CAA8C;IAC9C,yCAAyC;IACzC,eAAe;IACf,wCAAwC;IACxC,QAAQ;IACR,IAAI;IAEJ,iBAAiB,CAAC,QAA0B;QACxC,qEAAqE;QACrE,iEAAiE;QACjE,4FAA4F;QAC5F,2BAA2B;QAC3B,IAAI;QAEJ,kEAAkE;QAClE,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,QAAyB,EAAE,IAAsB;QAC1E,uEAAuE;QACvE,MAAM,cAAc,GAAG,MAAM,IAAA,mDAAgC,EAAC,QAAQ,EAAE;YACpE,GAAG,IAAI;YACP,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,mFAAmF;QACnF,uDAAuD;QACvD,MAAM,YAAY,GAAiC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACxE,yEAAyE;YACzE,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,SAAS,GAA+B;oBAC1C,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;wBAC/B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC/C,CAAC,CAAC,GAAG,CAAC,OAAO;oBACjB,2BAA2B;oBAC3B,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;iBACtC,CAAC;gBACF,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,sEAAsE;YACtE,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtB,IAAI,OAAO,GAAqJ,SAAS,CAAC;gBAE1K,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAClC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;gBAC1B,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpC,6DAA6D;oBAC7D,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC7C,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CACpD,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBACT,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BACvB,OAAO,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;wBACtD,CAAC;6BAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;4BACnC,OAAO;gCACH,IAAI,EAAE,WAAoB;gCAC1B,SAAS,EAAE;oCACP,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG;oCACvB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;iCAClE;6BACJ,CAAC;wBACN,CAAC;wBACD,OAAO,IAAI,CAAC;oBAChB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAgI,CAAC;oBAElJ,OAAO,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAAC;gBACnF,CAAC;gBAED,MAAM,OAAO,GAA+B;oBACxC,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,OAAO,IAAI,EAAE;oBACtB,2BAA2B;oBAC3B,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;iBACtC,CAAC;gBACF,OAAO,OAAO,CAAC;YACnB,CAAC;YAED,8DAA8D;YAC9D,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC3B,MAAM,YAAY,GAA+B;oBAC7C,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;wBAC/B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI;wBAC7F,CAAC,CAAC,GAAG,CAAC,OAAO;oBACjB,8CAA8C;oBAC9C,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;oBACrD,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;iBACtC,CAAC;gBACF,OAAO,YAAY,CAAC;YACxB,CAAC;YAED,4DAA4D;YAC5D,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,OAAO,GAA+B;oBACxC,IAAI,EAAE,MAAM;oBACZ,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;wBAC/B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBAC/C,CAAC,CAAC,GAAG,CAAC,OAAO;iBACpB,CAAC;gBACF,OAAO,OAAO,CAAC;YACnB,CAAC;YAED,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC1B,MAAM,WAAW,GAA+B;oBAC5C,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EAAE,GAAG,CAAC,OAAO;iBACvB,CAAC;gBACF,OAAO,WAAW,CAAC;YACvB,CAAC;YAED,4DAA4D;YAC5D,MAAM,IAAI,KAAK,CAAC,6BAA8B,GAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACxB,CAAC;IAEO,kBAAkB,CAAC,KAAmC;QAC1D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,IAAI,EAAE,UAAmB;YACzB,QAAQ,EAAE;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,YAAyC;aAC7D;SACJ,CAAC,CAAC,CAAC;IACR,CAAC;IAEO,cAAc,CAAC,OAAY;QAC/B,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAa,EAAE,EAAE,CAAC,CAAC;YAC9C,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;YACjC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC;SAC9D,CAAC,CAAC,CAAC;IACR,CAAC;IAEO,uBAAuB,CAAC,QAAsC;QAClE,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC1B,kDAAkD;YAClD,MAAM,EAAE,SAAS,EAAE,GAAG,gBAAgB,EAAE,GAAG,OAAc,CAAC;YAE1D,mEAAmE;YACnE,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,gBAAgB,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE;oBACrE,iDAAiD;oBACjD,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;YACP,CAAC;YAED,OAAO,gBAA8C,CAAC;QAC1D,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,QAAsC,EAAE,OAAyB;QACzF,IAAI,OAAO,CAAC,aAAa,EAAE,UAAU,KAAK,eAAe,IAAI,OAAO,CAAC,aAAa,EAAE,UAAU,KAAK,wBAAwB,EAAE,CAAC;YAC1H,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAoC,CAAC;QAErE,4CAA4C;QAC5C,IAAI,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,YAA4C,EAAE,QAAQ,CAAC,CAAC;QAEtG,6DAA6D;QAC7D,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAE1D,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAErD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAClD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,YAAY;YACtB,qBAAqB,EAAE,OAAO,CAAC,aAAa,EAAE,UAAU;YACxD,WAAW,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW;YAC/C,KAAK,EAAE,OAAO,CAAC,aAAa,EAAE,KAAK;YACnC,qFAAqF;YACrF,gDAAgD;YAChD,gBAAgB,EAAE,OAAO,CAAC,aAAa,EAAE,gBAAgB;YACzD,iBAAiB,EAAE,OAAO,CAAC,aAAa,EAAE,iBAAiB;YAC3D,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAChD,KAAK,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAEtC,qCAAqC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAErD,wCAAwC;QACxC,YAAY,GAAG,kBAAkB,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAElE,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QACzC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,aAAa,GAAG,YAAY,CAAC;QACjC,CAAC;QAED,OAAO;YACH,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;YACvD,WAAW,EAAE;gBACT,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,aAAa;gBAChC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,iBAAiB;gBACpC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,YAAY;aACjC;YACD,aAAa,EAAE,aAAa;YAC5B,iBAAiB,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YACtE,YAAY;YACZ,QAAQ;SACX,CAAC;IACN,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,QAAsC,EAAE,OAAyB;QAC/F,IAAI,OAAO,CAAC,aAAa,EAAE,UAAU,KAAK,eAAe,EAAE,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAoC,CAAC;QAErE,4CAA4C;QAC5C,IAAI,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,YAA4C,EAAE,QAAQ,CAAC,CAAC;QAEtG,6DAA6D;QAC7D,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAE1D,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAErD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAClD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,YAAY;YACtB,qBAAqB,EAAE,OAAO,CAAC,aAAa,EAAE,UAAU;YACxD,WAAW,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW;YAC/C,KAAK,EAAE,OAAO,CAAC,aAAa,EAAE,KAAK;YACnC,qFAAqF;YACrF,gDAAgD;YAChD,gBAAgB,EAAE,OAAO,CAAC,aAAa,EAAE,gBAAgB;YACzD,iBAAiB,EAAE,OAAO,CAAC,aAAa,EAAE,iBAAiB;YAC3D,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,OAAO,IAAA,8BAAsB,EAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;YACzC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;YAEzC,oCAAoC;YACpC,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChE,aAAa,GAAG,YAAY,CAAC;YACjC,CAAC;YAED,OAAO;gBACH,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;gBACnF,aAAa,EAAE,aAAa,IAAI,SAAS;gBACzC,WAAW,EAAE;oBACT,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa;oBAC1C,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB;oBAC9C,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY;iBAC3C;aAC4B,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAE/C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;YAClC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO;gBACH,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,EAAE;gBACV,WAAW,EAAE,SAAS;gBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;aAC1B,CAAA;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,kBAAkB;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EAAsB;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;;AA5TL,gCA8TC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CACvB,YAAsD,EACtD,QAAsC;IAEtC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC"}
@@ -1,201 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HuggingFaceIEDriver = void 0;
4
- const inference_1 = require("@huggingface/inference");
5
- const core_1 = require("@llumiverse/core");
6
- const async_1 = require("@llumiverse/core/async");
7
- const api_fetch_client_1 = require("@vertesia/api-fetch-client");
8
- class HuggingFaceIEDriver extends core_1.AbstractDriver {
9
- static PROVIDER = "huggingface_ie";
10
- provider = HuggingFaceIEDriver.PROVIDER;
11
- service;
12
- _executor;
13
- constructor(options) {
14
- super(options);
15
- if (!options.endpoint_url) {
16
- throw new Error(`Endpoint URL is required for ${this.provider}`);
17
- }
18
- this.service = new api_fetch_client_1.FetchClient(this.options.endpoint_url);
19
- this.service.headers["Authorization"] = `Bearer ${this.options.apiKey}`;
20
- }
21
- async getModelURLEndpoint(modelId) {
22
- const res = (await this.service.get(`/${modelId}`));
23
- return {
24
- url: res.status.url,
25
- status: getStatus(res),
26
- };
27
- }
28
- async getExecutor(model) {
29
- if (!this._executor) {
30
- const endpoint = await this.getModelURLEndpoint(model);
31
- if (!endpoint.url)
32
- throw new Error(`Endpoint URL not found for model ${model}`);
33
- if (endpoint.status !== core_1.AIModelStatus.Available)
34
- throw new Error(`Endpoint ${model} is not running - current status: ${endpoint.status}`);
35
- // Use the new InferenceClient and bind it to the endpoint URL
36
- this._executor = new inference_1.InferenceClient(this.options.apiKey).endpoint(endpoint.url);
37
- }
38
- return this._executor;
39
- }
40
- async requestTextCompletionStream(prompt, options) {
41
- if (options.model_options?._option_id !== "text-fallback") {
42
- this.logger.warn({ options: options.model_options }, "Invalid model options");
43
- }
44
- options.model_options = options.model_options;
45
- const executor = await this.getExecutor(options.model);
46
- const req = executor.textGenerationStream({
47
- inputs: prompt,
48
- parameters: {
49
- temperature: options.model_options?.temperature,
50
- max_new_tokens: options.model_options?.max_tokens,
51
- },
52
- });
53
- return (0, async_1.transformAsyncIterator)(req, (val) => {
54
- //special like <s> are not part of the result
55
- if (val.token.special)
56
- return { result: [] };
57
- let finish_reason = val.details?.finish_reason;
58
- if (finish_reason === "eos_token") {
59
- finish_reason = "stop";
60
- }
61
- return {
62
- result: val.token.text ? [{ type: "text", value: val.token.text }] : [],
63
- finish_reason: finish_reason,
64
- token_usage: {
65
- result: val.details?.generated_tokens ?? 0,
66
- }
67
- };
68
- });
69
- }
70
- async requestTextCompletion(prompt, options) {
71
- if (options.model_options?._option_id !== "text-fallback") {
72
- this.logger.warn({ options: options.model_options }, "Invalid model options");
73
- }
74
- options.model_options = options.model_options;
75
- const executor = await this.getExecutor(options.model);
76
- const res = await executor.textGeneration({
77
- inputs: prompt,
78
- parameters: {
79
- temperature: options.model_options?.temperature,
80
- max_new_tokens: options.model_options?.max_tokens,
81
- },
82
- });
83
- let finish_reason = res.details?.finish_reason;
84
- if (finish_reason === "eos_token") {
85
- finish_reason = "stop";
86
- }
87
- return {
88
- result: [{ type: "text", value: res.generated_text }],
89
- finish_reason: finish_reason,
90
- token_usage: {
91
- result: res.details?.generated_tokens
92
- },
93
- original_response: options.include_original_response ? res : undefined,
94
- };
95
- }
96
- // ============== management API ==============
97
- async listModels() {
98
- const res = await this.service.get("/");
99
- const hfModels = res.items;
100
- if (!hfModels || !hfModels.length)
101
- return [];
102
- const models = hfModels.map((model) => ({
103
- id: model.name,
104
- name: `${model.name} [${model.model.repository}:${model.model.task}]`,
105
- provider: this.provider,
106
- tags: [model.model.task],
107
- status: getStatus(model),
108
- }));
109
- return models;
110
- }
111
- async validateConnection() {
112
- try {
113
- await this.service.get("/models");
114
- return true;
115
- }
116
- catch (error) {
117
- return false;
118
- }
119
- }
120
- async generateEmbeddings() {
121
- throw new Error("Method not implemented.");
122
- }
123
- }
124
- exports.HuggingFaceIEDriver = HuggingFaceIEDriver;
125
- //get status from HF status
126
- function getStatus(hfModel) {
127
- //[ pending, initializing, updating, updateFailed, running, paused, failed, scaledToZero ]
128
- switch (hfModel.status.state) {
129
- case "running":
130
- return core_1.AIModelStatus.Available;
131
- case "initializing":
132
- return core_1.AIModelStatus.Pending;
133
- case "updating":
134
- return core_1.AIModelStatus.Pending;
135
- case "updateFailed":
136
- return core_1.AIModelStatus.Unavailable;
137
- case "paused":
138
- return core_1.AIModelStatus.Stopped;
139
- case "failed":
140
- return core_1.AIModelStatus.Unavailable;
141
- case "scaledToZero":
142
- return core_1.AIModelStatus.Available;
143
- default:
144
- return core_1.AIModelStatus.Unknown;
145
- }
146
- }
147
- /*
148
- Example of model returned by the API
149
- {
150
- "items": [
151
- {
152
- "accountId": "string",
153
- "compute": {
154
- "accelerator": "cpu",
155
- "instanceSize": "large",
156
- "instanceType": "c6i",
157
- "scaling": {
158
- "maxReplica": 8,
159
- "minReplica": 2
160
- }
161
- },
162
- "model": {
163
- "framework": "custom",
164
- "image": {
165
- "huggingface": {}
166
- },
167
- "repository": "gpt2",
168
- "revision": "6c0e6080953db56375760c0471a8c5f2929baf11",
169
- "task": "text-classification"
170
- },
171
- "name": "my-endpoint",
172
- "provider": {
173
- "region": "us-east-1",
174
- "vendor": "aws"
175
- },
176
- "status": {
177
- "createdAt": "2023-10-19T05:04:17.305Z",
178
- "createdBy": {
179
- "id": "string",
180
- "name": "string"
181
- },
182
- "message": "Endpoint is ready",
183
- "private": {
184
- "serviceName": "string"
185
- },
186
- "readyReplica": 2,
187
- "state": "pending",
188
- "targetReplica": 4,
189
- "updatedAt": "2023-10-19T05:04:17.305Z",
190
- "updatedBy": {
191
- "id": "string",
192
- "name": "string"
193
- },
194
- "url": "https://endpoint-id.region.vendor.endpoints.huggingface.cloud"
195
- },
196
- "type": "public"
197
- }
198
- ]
199
- }
200
- */
201
- //# 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/cjs/index.js DELETED
@@ -1,30 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./azure/azure_foundry.js"), exports);
18
- __exportStar(require("./bedrock/index.js"), exports);
19
- __exportStar(require("./groq/index.js"), exports);
20
- __exportStar(require("./huggingface_ie.js"), exports);
21
- __exportStar(require("./mistral/index.js"), exports);
22
- __exportStar(require("./openai/azure_openai.js"), exports);
23
- __exportStar(require("./openai/openai.js"), exports);
24
- __exportStar(require("./replicate.js"), exports);
25
- __exportStar(require("./test-driver/index.js"), exports);
26
- __exportStar(require("./togetherai/index.js"), exports);
27
- __exportStar(require("./vertexai/index.js"), exports);
28
- __exportStar(require("./watsonx/index.js"), exports);
29
- __exportStar(require("./xai/index.js"), exports);
30
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,qDAAmC;AACnC,kDAAgC;AAChC,sDAAoC;AACpC,qDAAmC;AACnC,2DAAyC;AACzC,qDAAmC;AACnC,iDAA+B;AAC/B,yDAAuC;AACvC,wDAAsC;AACtC,sDAAoC;AACpC,qDAAmC;AACnC,iDAA+B"}