@llumiverse/drivers 0.22.2 → 0.22.3

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 (225) hide show
  1. package/lib/cjs/adobe/firefly.js +2 -2
  2. package/lib/cjs/adobe/firefly.js.map +1 -1
  3. package/lib/cjs/azure/azure_foundry.js +11 -11
  4. package/lib/cjs/azure/azure_foundry.js.map +1 -1
  5. package/lib/cjs/bedrock/index.js +7 -7
  6. package/lib/cjs/bedrock/index.js.map +1 -1
  7. package/lib/cjs/groq/index.js +2 -2
  8. package/lib/cjs/groq/index.js.map +1 -1
  9. package/lib/cjs/huggingface_ie.js +3 -4
  10. package/lib/cjs/huggingface_ie.js.map +1 -1
  11. package/lib/cjs/index.js +2 -2
  12. package/lib/cjs/index.js.map +1 -1
  13. package/lib/cjs/mistral/index.js +2 -2
  14. package/lib/cjs/mistral/index.js.map +1 -1
  15. package/lib/cjs/openai/azure_openai.js +1 -1
  16. package/lib/cjs/openai/azure_openai.js.map +1 -1
  17. package/lib/cjs/openai/index.js +3 -3
  18. package/lib/cjs/openai/index.js.map +1 -1
  19. package/lib/cjs/replicate.js +4 -4
  20. package/lib/cjs/replicate.js.map +1 -1
  21. package/lib/cjs/togetherai/index.js +2 -2
  22. package/lib/cjs/togetherai/index.js.map +1 -1
  23. package/lib/cjs/vertexai/index.js +82 -40
  24. package/lib/cjs/vertexai/index.js.map +1 -1
  25. package/lib/cjs/vertexai/models/claude.js +4 -4
  26. package/lib/cjs/vertexai/models/claude.js.map +1 -1
  27. package/lib/cjs/vertexai/models/gemini.js +15 -5
  28. package/lib/cjs/vertexai/models/gemini.js.map +1 -1
  29. package/lib/cjs/vertexai/models/imagen.js +2 -5
  30. package/lib/cjs/vertexai/models/imagen.js.map +1 -1
  31. package/lib/cjs/watsonx/index.js +3 -3
  32. package/lib/cjs/watsonx/index.js.map +1 -1
  33. package/lib/esm/adobe/firefly.js +2 -2
  34. package/lib/esm/adobe/firefly.js.map +1 -1
  35. package/lib/esm/azure/azure_foundry.js +11 -11
  36. package/lib/esm/azure/azure_foundry.js.map +1 -1
  37. package/lib/esm/bedrock/index.js +8 -8
  38. package/lib/esm/bedrock/index.js.map +1 -1
  39. package/lib/esm/groq/index.js +2 -2
  40. package/lib/esm/groq/index.js.map +1 -1
  41. package/lib/esm/huggingface_ie.js +4 -5
  42. package/lib/esm/huggingface_ie.js.map +1 -1
  43. package/lib/esm/index.js +2 -2
  44. package/lib/esm/index.js.map +1 -1
  45. package/lib/esm/mistral/index.js +2 -2
  46. package/lib/esm/mistral/index.js.map +1 -1
  47. package/lib/esm/openai/azure_openai.js +1 -1
  48. package/lib/esm/openai/azure_openai.js.map +1 -1
  49. package/lib/esm/openai/index.js +3 -3
  50. package/lib/esm/openai/index.js.map +1 -1
  51. package/lib/esm/replicate.js +4 -4
  52. package/lib/esm/replicate.js.map +1 -1
  53. package/lib/esm/togetherai/index.js +2 -2
  54. package/lib/esm/togetherai/index.js.map +1 -1
  55. package/lib/esm/vertexai/index.js +83 -41
  56. package/lib/esm/vertexai/index.js.map +1 -1
  57. package/lib/esm/vertexai/models/claude.js +4 -4
  58. package/lib/esm/vertexai/models/claude.js.map +1 -1
  59. package/lib/esm/vertexai/models/gemini.js +15 -5
  60. package/lib/esm/vertexai/models/gemini.js.map +1 -1
  61. package/lib/esm/vertexai/models/imagen.js +3 -6
  62. package/lib/esm/vertexai/models/imagen.js.map +1 -1
  63. package/lib/esm/watsonx/index.js +3 -3
  64. package/lib/esm/watsonx/index.js.map +1 -1
  65. package/lib/types/bedrock/index.d.ts +1 -0
  66. package/lib/types/bedrock/index.d.ts.map +1 -1
  67. package/lib/types/huggingface_ie.d.ts +3 -3
  68. package/lib/types/huggingface_ie.d.ts.map +1 -1
  69. package/lib/types/index.d.ts +2 -2
  70. package/lib/types/index.d.ts.map +1 -1
  71. package/lib/types/replicate.d.ts.map +1 -1
  72. package/lib/types/vertexai/index.d.ts +12 -11
  73. package/lib/types/vertexai/index.d.ts.map +1 -1
  74. package/lib/types/vertexai/models/gemini.d.ts.map +1 -1
  75. package/lib/types/vertexai/models/imagen.d.ts.map +1 -1
  76. package/package.json +3 -3
  77. package/src/bedrock/index.ts +5 -4
  78. package/src/vertexai/index.ts +53 -6
  79. package/src/vertexai/models/gemini.ts +18 -6
  80. package/src/vertexai/models/imagen.ts +3 -7
  81. package/lib/cjs/test-driver/TestErrorCompletionStream.js +0 -20
  82. package/lib/cjs/test-driver/TestErrorCompletionStream.js.map +0 -1
  83. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js +0 -24
  84. package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  85. package/lib/cjs/test-driver/index.js +0 -109
  86. package/lib/cjs/test-driver/index.js.map +0 -1
  87. package/lib/cjs/test-driver/utils.js +0 -30
  88. package/lib/cjs/test-driver/utils.js.map +0 -1
  89. package/lib/esm/src/adobe/firefly.js +0 -116
  90. package/lib/esm/src/adobe/firefly.js.map +0 -1
  91. package/lib/esm/src/azure/azure_foundry.js +0 -382
  92. package/lib/esm/src/azure/azure_foundry.js.map +0 -1
  93. package/lib/esm/src/bedrock/converse.js +0 -278
  94. package/lib/esm/src/bedrock/converse.js.map +0 -1
  95. package/lib/esm/src/bedrock/index.js +0 -962
  96. package/lib/esm/src/bedrock/index.js.map +0 -1
  97. package/lib/esm/src/bedrock/nova-image-payload.js +0 -203
  98. package/lib/esm/src/bedrock/nova-image-payload.js.map +0 -1
  99. package/lib/esm/src/bedrock/payloads.js +0 -2
  100. package/lib/esm/src/bedrock/payloads.js.map +0 -1
  101. package/lib/esm/src/bedrock/s3.js +0 -99
  102. package/lib/esm/src/bedrock/s3.js.map +0 -1
  103. package/lib/esm/src/bedrock/twelvelabs.js +0 -84
  104. package/lib/esm/src/bedrock/twelvelabs.js.map +0 -1
  105. package/lib/esm/src/groq/index.js +0 -286
  106. package/lib/esm/src/groq/index.js.map +0 -1
  107. package/lib/esm/src/huggingface_ie.js +0 -197
  108. package/lib/esm/src/huggingface_ie.js.map +0 -1
  109. package/lib/esm/src/index.js +0 -14
  110. package/lib/esm/src/index.js.map +0 -1
  111. package/lib/esm/src/mistral/index.js +0 -169
  112. package/lib/esm/src/mistral/index.js.map +0 -1
  113. package/lib/esm/src/mistral/types.js +0 -80
  114. package/lib/esm/src/mistral/types.js.map +0 -1
  115. package/lib/esm/src/openai/azure_openai.js +0 -68
  116. package/lib/esm/src/openai/azure_openai.js.map +0 -1
  117. package/lib/esm/src/openai/index.js +0 -464
  118. package/lib/esm/src/openai/index.js.map +0 -1
  119. package/lib/esm/src/openai/openai.js +0 -14
  120. package/lib/esm/src/openai/openai.js.map +0 -1
  121. package/lib/esm/src/openai/openai_format.js +0 -134
  122. package/lib/esm/src/openai/openai_format.js.map +0 -1
  123. package/lib/esm/src/replicate.js +0 -268
  124. package/lib/esm/src/replicate.js.map +0 -1
  125. package/lib/esm/src/test/TestErrorCompletionStream.js +0 -16
  126. package/lib/esm/src/test/TestErrorCompletionStream.js.map +0 -1
  127. package/lib/esm/src/test/TestValidationErrorCompletionStream.js +0 -20
  128. package/lib/esm/src/test/TestValidationErrorCompletionStream.js.map +0 -1
  129. package/lib/esm/src/test/index.js +0 -91
  130. package/lib/esm/src/test/index.js.map +0 -1
  131. package/lib/esm/src/test/utils.js +0 -25
  132. package/lib/esm/src/test/utils.js.map +0 -1
  133. package/lib/esm/src/test-driver/TestErrorCompletionStream.js +0 -16
  134. package/lib/esm/src/test-driver/TestErrorCompletionStream.js.map +0 -1
  135. package/lib/esm/src/test-driver/TestValidationErrorCompletionStream.js +0 -20
  136. package/lib/esm/src/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  137. package/lib/esm/src/test-driver/index.js +0 -91
  138. package/lib/esm/src/test-driver/index.js.map +0 -1
  139. package/lib/esm/src/test-driver/utils.js +0 -25
  140. package/lib/esm/src/test-driver/utils.js.map +0 -1
  141. package/lib/esm/src/togetherai/index.js +0 -122
  142. package/lib/esm/src/togetherai/index.js.map +0 -1
  143. package/lib/esm/src/togetherai/interfaces.js +0 -2
  144. package/lib/esm/src/togetherai/interfaces.js.map +0 -1
  145. package/lib/esm/src/vertexai/debug.js +0 -6
  146. package/lib/esm/src/vertexai/debug.js.map +0 -1
  147. package/lib/esm/src/vertexai/embeddings/embeddings-image.js +0 -24
  148. package/lib/esm/src/vertexai/embeddings/embeddings-image.js.map +0 -1
  149. package/lib/esm/src/vertexai/embeddings/embeddings-text.js +0 -20
  150. package/lib/esm/src/vertexai/embeddings/embeddings-text.js.map +0 -1
  151. package/lib/esm/src/vertexai/index.js +0 -383
  152. package/lib/esm/src/vertexai/index.js.map +0 -1
  153. package/lib/esm/src/vertexai/models/claude.js +0 -394
  154. package/lib/esm/src/vertexai/models/claude.js.map +0 -1
  155. package/lib/esm/src/vertexai/models/gemini.js +0 -817
  156. package/lib/esm/src/vertexai/models/gemini.js.map +0 -1
  157. package/lib/esm/src/vertexai/models/imagen.js +0 -302
  158. package/lib/esm/src/vertexai/models/imagen.js.map +0 -1
  159. package/lib/esm/src/vertexai/models/llama.js +0 -179
  160. package/lib/esm/src/vertexai/models/llama.js.map +0 -1
  161. package/lib/esm/src/vertexai/models.js +0 -32
  162. package/lib/esm/src/vertexai/models.js.map +0 -1
  163. package/lib/esm/src/watsonx/index.js +0 -157
  164. package/lib/esm/src/watsonx/index.js.map +0 -1
  165. package/lib/esm/src/watsonx/interfaces.js +0 -2
  166. package/lib/esm/src/watsonx/interfaces.js.map +0 -1
  167. package/lib/esm/src/xai/index.js +0 -64
  168. package/lib/esm/src/xai/index.js.map +0 -1
  169. package/lib/esm/test-driver/TestErrorCompletionStream.js +0 -16
  170. package/lib/esm/test-driver/TestErrorCompletionStream.js.map +0 -1
  171. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js +0 -20
  172. package/lib/esm/test-driver/TestValidationErrorCompletionStream.js.map +0 -1
  173. package/lib/esm/test-driver/index.js +0 -91
  174. package/lib/esm/test-driver/index.js.map +0 -1
  175. package/lib/esm/test-driver/utils.js +0 -25
  176. package/lib/esm/test-driver/utils.js.map +0 -1
  177. package/lib/esm/tsconfig.tsbuildinfo +0 -1
  178. package/lib/types/src/adobe/firefly.d.ts +0 -29
  179. package/lib/types/src/azure/azure_foundry.d.ts +0 -49
  180. package/lib/types/src/bedrock/converse.d.ts +0 -8
  181. package/lib/types/src/bedrock/index.d.ts +0 -61
  182. package/lib/types/src/bedrock/nova-image-payload.d.ts +0 -73
  183. package/lib/types/src/bedrock/payloads.d.ts +0 -11
  184. package/lib/types/src/bedrock/s3.d.ts +0 -22
  185. package/lib/types/src/bedrock/twelvelabs.d.ts +0 -49
  186. package/lib/types/src/groq/index.d.ts +0 -26
  187. package/lib/types/src/huggingface_ie.d.ts +0 -34
  188. package/lib/types/src/index.d.ts +0 -13
  189. package/lib/types/src/mistral/index.d.ts +0 -24
  190. package/lib/types/src/mistral/types.d.ts +0 -131
  191. package/lib/types/src/openai/azure_openai.d.ts +0 -24
  192. package/lib/types/src/openai/index.d.ts +0 -24
  193. package/lib/types/src/openai/openai.d.ts +0 -14
  194. package/lib/types/src/openai/openai_format.d.ts +0 -18
  195. package/lib/types/src/replicate.d.ts +0 -47
  196. package/lib/types/src/test/TestErrorCompletionStream.d.ts +0 -8
  197. package/lib/types/src/test/TestValidationErrorCompletionStream.d.ts +0 -8
  198. package/lib/types/src/test/index.d.ts +0 -23
  199. package/lib/types/src/test/utils.d.ts +0 -4
  200. package/lib/types/src/test-driver/TestErrorCompletionStream.d.ts +0 -8
  201. package/lib/types/src/test-driver/TestValidationErrorCompletionStream.d.ts +0 -8
  202. package/lib/types/src/test-driver/index.d.ts +0 -23
  203. package/lib/types/src/test-driver/utils.d.ts +0 -4
  204. package/lib/types/src/togetherai/index.d.ts +0 -22
  205. package/lib/types/src/togetherai/interfaces.d.ts +0 -95
  206. package/lib/types/src/vertexai/debug.d.ts +0 -1
  207. package/lib/types/src/vertexai/embeddings/embeddings-image.d.ts +0 -10
  208. package/lib/types/src/vertexai/embeddings/embeddings-text.d.ts +0 -9
  209. package/lib/types/src/vertexai/index.d.ts +0 -52
  210. package/lib/types/src/vertexai/models/claude.d.ts +0 -19
  211. package/lib/types/src/vertexai/models/gemini.d.ts +0 -17
  212. package/lib/types/src/vertexai/models/imagen.d.ts +0 -74
  213. package/lib/types/src/vertexai/models/llama.d.ts +0 -19
  214. package/lib/types/src/vertexai/models.d.ts +0 -14
  215. package/lib/types/src/watsonx/index.d.ts +0 -26
  216. package/lib/types/src/watsonx/interfaces.d.ts +0 -64
  217. package/lib/types/src/xai/index.d.ts +0 -18
  218. package/lib/types/test-driver/TestErrorCompletionStream.d.ts +0 -9
  219. package/lib/types/test-driver/TestErrorCompletionStream.d.ts.map +0 -1
  220. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts +0 -9
  221. package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts.map +0 -1
  222. package/lib/types/test-driver/index.d.ts +0 -24
  223. package/lib/types/test-driver/index.d.ts.map +0 -1
  224. package/lib/types/test-driver/utils.d.ts +0 -5
  225. package/lib/types/test-driver/utils.d.ts.map +0 -1
@@ -1,122 +0,0 @@
1
- import { AbstractDriver } from "@llumiverse/core";
2
- import { transformSSEStream } from "@llumiverse/core/async";
3
- import { FetchClient } from "@vertesia/api-fetch-client";
4
- export class TogetherAIDriver extends AbstractDriver {
5
- static PROVIDER = "togetherai";
6
- provider = TogetherAIDriver.PROVIDER;
7
- apiKey;
8
- fetchClient;
9
- constructor(options) {
10
- super(options);
11
- this.apiKey = options.apiKey;
12
- this.fetchClient = new FetchClient('https://api.together.xyz').withHeaders({
13
- authorization: `Bearer ${this.apiKey}`
14
- });
15
- }
16
- getResponseFormat = (options) => {
17
- return options.result_schema ?
18
- {
19
- type: "json_object",
20
- schema: options.result_schema
21
- } : undefined;
22
- };
23
- async requestTextCompletion(prompt, options) {
24
- if (options.model_options?._option_id !== "text-fallback") {
25
- this.logger.warn({ options: options.model_options }, "Invalid model options");
26
- }
27
- options.model_options = options.model_options;
28
- const stop_seq = options.model_options?.stop_sequence ?? [];
29
- const res = await this.fetchClient.post('/v1/completions', {
30
- payload: {
31
- model: options.model,
32
- prompt: prompt,
33
- response_format: this.getResponseFormat(options),
34
- max_tokens: options.model_options?.max_tokens,
35
- temperature: options.model_options?.temperature,
36
- top_p: options.model_options?.top_p,
37
- top_k: options.model_options?.top_k,
38
- //logprobs: options.top_logprobs, //Logprobs output currently not supported
39
- frequency_penalty: options.model_options?.frequency_penalty,
40
- presence_penalty: options.model_options?.presence_penalty,
41
- stop: [
42
- "</s>",
43
- "[/INST]",
44
- ...stop_seq,
45
- ],
46
- }
47
- });
48
- const choice = res.choices[0];
49
- const text = choice.text ?? '';
50
- const usage = res.usage || {};
51
- return {
52
- result: [{ type: "text", value: text }],
53
- token_usage: {
54
- prompt: usage.prompt_tokens,
55
- result: usage.completion_tokens,
56
- total: usage.total_tokens,
57
- },
58
- finish_reason: choice.finish_reason, //Uses expected "stop" , "length" format
59
- original_response: options.include_original_response ? res : undefined,
60
- };
61
- }
62
- async requestTextCompletionStream(prompt, options) {
63
- if (options.model_options?._option_id !== "text-fallback") {
64
- this.logger.warn({ options: options.model_options }, "Invalid model options");
65
- }
66
- options.model_options = options.model_options;
67
- const stop_seq = options.model_options?.stop_sequence ?? [];
68
- const stream = await this.fetchClient.post('/v1/completions', {
69
- payload: {
70
- model: options.model,
71
- prompt: prompt,
72
- max_tokens: options.model_options?.max_tokens,
73
- temperature: options.model_options?.temperature,
74
- response_format: this.getResponseFormat(options),
75
- top_p: options.model_options?.top_p,
76
- top_k: options.model_options?.top_k,
77
- //logprobs: options.top_logprobs, //Logprobs output currently not supported
78
- frequency_penalty: options.model_options?.frequency_penalty,
79
- presence_penalty: options.model_options?.presence_penalty,
80
- stream: true,
81
- stop: [
82
- "</s>",
83
- "[/INST]",
84
- ...stop_seq,
85
- ],
86
- },
87
- reader: 'sse'
88
- });
89
- return transformSSEStream(stream, (data) => {
90
- const json = JSON.parse(data);
91
- return {
92
- result: [{ type: "text", value: json.choices[0]?.text ?? '' }],
93
- finish_reason: json.choices[0]?.finish_reason, //Uses expected "stop" , "length" format
94
- token_usage: {
95
- prompt: json.usage?.prompt_tokens,
96
- result: json.usage?.completion_tokens,
97
- total: json.usage?.prompt_tokens + json.usage?.completion_tokens,
98
- }
99
- };
100
- });
101
- }
102
- async listModels() {
103
- const models = await this.fetchClient.get("/models/info");
104
- // logObject('#### LIST MODELS RESULT IS', models[0]);
105
- const aiModels = models.map(m => {
106
- return {
107
- id: m.name,
108
- name: m.display_name,
109
- description: m.description,
110
- provider: this.provider,
111
- };
112
- });
113
- return aiModels;
114
- }
115
- validateConnection() {
116
- throw new Error("Method not implemented.");
117
- }
118
- generateEmbeddings() {
119
- throw new Error("Method not implemented.");
120
- }
121
- }
122
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/togetherai/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/togetherai/interfaces.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import util from 'util';
2
- export function logObject(prefix, obj) {
3
- const fullObj = util.inspect(obj, { showHidden: false, depth: null, colors: true });
4
- console.log(prefix, fullObj);
5
- }
6
- //# sourceMappingURL=debug.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../../src/vertexai/debug.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,GAAQ;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAChC,CAAC"}
@@ -1,24 +0,0 @@
1
- //Currently we are only supporting either text or images sent to the multimodal model.
2
- export async function getEmbeddingsForImages(driver, options) {
3
- // API is returns a 400 Error if a property is empty, so you undefined and "as" to remove the property entirely.
4
- const prompt = {
5
- instances: [{
6
- text: options.image ? undefined : options.text,
7
- image: options.image ?
8
- {
9
- bytesBase64Encoded: options.image
10
- }
11
- : undefined,
12
- }]
13
- };
14
- const model = options.model || "multimodalembedding@001";
15
- const client = driver.getFetchClient();
16
- const result = await client.post(`/publishers/google/models/${model}:predict`, {
17
- payload: prompt
18
- });
19
- return {
20
- values: result.predictions[0].imageEmbedding ?? result.predictions[0].textEmbedding,
21
- model: model,
22
- };
23
- }
24
- //# sourceMappingURL=embeddings-image.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embeddings-image.js","sourceRoot":"","sources":["../../../../../src/vertexai/embeddings/embeddings-image.ts"],"names":[],"mappings":"AAwBA,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAAsB,EAAE,OAA0B;IAE3F,gHAAgH;IAChH,MAAM,MAAM,GAAG;QACX,SAAS,EAAE,CAAC;gBACR,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;gBAC9C,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;oBAClB;wBACI,kBAAkB,EAAE,OAAO,CAAC,KAAK;qBACpC;oBACD,CAAC,CAAC,SAAS;aAClB,CAAC;KACuB,CAAC;IAE9B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,yBAAyB,CAAC;IAEzD,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,6BAA6B,KAAK,UAAU,EAAE;QAC3E,OAAO,EAAE,MAAM;KAClB,CAA0B,CAAC;IAE5B,OAAO;QACH,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa;QACnF,KAAK,EAAE,KAAK;KACf,CAAC;AACN,CAAC"}
@@ -1,20 +0,0 @@
1
- export async function getEmbeddingsForText(driver, options) {
2
- const prompt = {
3
- instances: [{
4
- task_type: options.task_type,
5
- title: options.title,
6
- content: options.content
7
- }]
8
- };
9
- const model = options.model || "gemini-embedding-001";
10
- const client = driver.getFetchClient();
11
- const result = await client.post(`/publishers/google/models/${model}:predict`, {
12
- payload: prompt
13
- });
14
- return {
15
- ...result.predictions[0].embeddings,
16
- model,
17
- token_count: result.predictions[0].embeddings.statistics?.token_count
18
- };
19
- }
20
- //# sourceMappingURL=embeddings-text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embeddings-text.js","sourceRoot":"","sources":["../../../../../src/vertexai/embeddings/embeddings-text.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAsB,EAAE,OAA8B;IAC7F,MAAM,MAAM,GAAG;QACX,SAAS,EAAE,CAAC;gBACR,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;aAC3B,CAAC;KAC6B,CAAC;IAEpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,sBAAsB,CAAC;IAEtD,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,6BAA6B,KAAK,UAAU,EAAE;QAC3E,OAAO,EAAE,MAAM;KAClB,CAAyB,CAAC;IAE3B,OAAO;QACH,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU;QACnC,KAAK;QACL,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,WAAW;KACxE,CAAC;AACN,CAAC"}
@@ -1,383 +0,0 @@
1
- import { AnthropicVertex } from "@anthropic-ai/vertex-sdk";
2
- import { PredictionServiceClient, v1beta1 } from "@google-cloud/aiplatform";
3
- import { GoogleGenAI } from "@google/genai";
4
- import { AbstractDriver, Modalities, getModelCapabilities, modelModalitiesToArray, } from "@llumiverse/core";
5
- import { FetchClient } from "@vertesia/api-fetch-client";
6
- import { GoogleAuth } from "google-auth-library";
7
- import { getEmbeddingsForImages } from "./embeddings/embeddings-image.js";
8
- import { getEmbeddingsForText } from "./embeddings/embeddings-text.js";
9
- import { getModelDefinition } from "./models.js";
10
- import { ANTHROPIC_REGIONS, NON_GLOBAL_ANTHROPIC_MODELS } from "./models/claude.js";
11
- import { ImagenModelDefinition } from "./models/imagen.js";
12
- export function trimModelName(model) {
13
- const i = model.lastIndexOf("@");
14
- return i > -1 ? model.substring(0, i) : model;
15
- }
16
- export class VertexAIDriver extends AbstractDriver {
17
- static PROVIDER = "vertexai";
18
- provider = VertexAIDriver.PROVIDER;
19
- aiplatform;
20
- anthropicClient;
21
- fetchClient;
22
- googleGenAI;
23
- llamaClient;
24
- modelGarden;
25
- imagenClient;
26
- googleAuth;
27
- authClientPromise;
28
- constructor(options) {
29
- super(options);
30
- this.aiplatform = undefined;
31
- this.anthropicClient = undefined;
32
- this.fetchClient = undefined;
33
- this.googleGenAI = undefined;
34
- this.modelGarden = undefined;
35
- this.llamaClient = undefined;
36
- this.imagenClient = undefined;
37
- this.googleAuth = new GoogleAuth(options.googleAuthOptions);
38
- this.authClientPromise = undefined;
39
- }
40
- async getAuthClient() {
41
- if (!this.authClientPromise) {
42
- this.authClientPromise = this.googleAuth.getClient();
43
- }
44
- return this.authClientPromise;
45
- }
46
- getGoogleGenAIClient(region = this.options.region) {
47
- //Lazy initialization
48
- if (region !== this.options.region) {
49
- //Get one off client for different region
50
- return new GoogleGenAI({
51
- project: this.options.project,
52
- location: region,
53
- vertexai: true,
54
- googleAuthOptions: this.options.googleAuthOptions || {
55
- scopes: ["https://www.googleapis.com/auth/cloud-platform"],
56
- }
57
- });
58
- }
59
- if (!this.googleGenAI) {
60
- this.googleGenAI = new GoogleGenAI({
61
- project: this.options.project,
62
- location: region,
63
- vertexai: true,
64
- googleAuthOptions: this.options.googleAuthOptions || {
65
- scopes: ["https://www.googleapis.com/auth/cloud-platform"],
66
- }
67
- });
68
- }
69
- return this.googleGenAI;
70
- }
71
- getFetchClient() {
72
- //Lazy initialization
73
- if (!this.fetchClient) {
74
- this.fetchClient = createFetchClient({
75
- region: this.options.region,
76
- project: this.options.project,
77
- }).withAuthCallback(async () => {
78
- const token = await this.googleAuth.getAccessToken();
79
- return `Bearer ${token}`;
80
- });
81
- }
82
- return this.fetchClient;
83
- }
84
- getLLamaClient(region = "us-central1") {
85
- //Lazy initialization
86
- if (!this.llamaClient || this.llamaClient["region"] !== region) {
87
- this.llamaClient = createFetchClient({
88
- region: region,
89
- project: this.options.project,
90
- apiVersion: "v1beta1",
91
- }).withAuthCallback(async () => {
92
- const token = await this.googleAuth.getAccessToken();
93
- return `Bearer ${token}`;
94
- });
95
- // Store the region for potential client reuse
96
- this.llamaClient["region"] = region;
97
- }
98
- return this.llamaClient;
99
- }
100
- async getAnthropicClient(region = this.options.region) {
101
- // Extract region prefix and map if it exists in ANTHROPIC_REGIONS, otherwise use as-is
102
- const getRegionPrefix = (r) => r.split('-')[0];
103
- const regionPrefix = getRegionPrefix(region);
104
- const mappedRegion = ANTHROPIC_REGIONS[regionPrefix] || region;
105
- const defaultRegionPrefix = getRegionPrefix(this.options.region);
106
- const defaultMappedRegion = ANTHROPIC_REGIONS[defaultRegionPrefix] || this.options.region;
107
- // Get auth client to avoid version mismatch with GoogleAuth generic types
108
- const authClient = await this.getAuthClient();
109
- // If mapped region is different from default mapped region, create one-off client
110
- if (mappedRegion !== defaultMappedRegion) {
111
- return new AnthropicVertex({
112
- timeout: 20 * 60 * 10000, // Set to 20 minutes, 10 minute default, setting this disables long request error: https://github.com/anthropics/anthropic-sdk-typescript?#long-requests
113
- region: mappedRegion,
114
- projectId: this.options.project,
115
- authClient,
116
- });
117
- }
118
- //Lazy initialization for default region
119
- if (!this.anthropicClient) {
120
- this.anthropicClient = new AnthropicVertex({
121
- timeout: 20 * 60 * 10000, // Set to 20 minutes, 10 minute default, setting this disables long request error: https://github.com/anthropics/anthropic-sdk-typescript?#long-requests
122
- region: mappedRegion,
123
- projectId: this.options.project,
124
- authClient,
125
- });
126
- }
127
- return this.anthropicClient;
128
- }
129
- async getAIPlatformClient() {
130
- //Lazy initialization
131
- if (!this.aiplatform) {
132
- const authClient = await this.getAuthClient();
133
- this.aiplatform = new v1beta1.ModelServiceClient({
134
- projectId: this.options.project,
135
- apiEndpoint: `${this.options.region}-${API_BASE_PATH}`,
136
- authClient,
137
- });
138
- }
139
- return this.aiplatform;
140
- }
141
- async getModelGardenClient() {
142
- //Lazy initialization
143
- if (!this.modelGarden) {
144
- const authClient = await this.getAuthClient();
145
- this.modelGarden = new v1beta1.ModelGardenServiceClient({
146
- projectId: this.options.project,
147
- apiEndpoint: `${this.options.region}-${API_BASE_PATH}`,
148
- authClient,
149
- });
150
- }
151
- return this.modelGarden;
152
- }
153
- async getImagenClient() {
154
- //Lazy initialization
155
- if (!this.imagenClient) {
156
- // TODO: make location configurable, fixed to us-central1 for now
157
- const authClient = await this.getAuthClient();
158
- this.imagenClient = new PredictionServiceClient({
159
- projectId: this.options.project,
160
- apiEndpoint: `us-central1-${API_BASE_PATH}`,
161
- authClient,
162
- });
163
- }
164
- return this.imagenClient;
165
- }
166
- validateResult(result, options) {
167
- // Optionally preprocess the result before validation
168
- const modelDef = getModelDefinition(options.model);
169
- if (typeof modelDef.preValidationProcessing === "function") {
170
- const processed = modelDef.preValidationProcessing(result, options);
171
- result = processed.result;
172
- options = processed.options;
173
- }
174
- super.validateResult(result, options);
175
- }
176
- canStream(options) {
177
- if (options.output_modality == Modalities.image) {
178
- return Promise.resolve(false);
179
- }
180
- return Promise.resolve(getModelDefinition(options.model).model.can_stream === true);
181
- }
182
- createPrompt(segments, options) {
183
- if (options.model.includes("imagen")) {
184
- return new ImagenModelDefinition(options.model).createPrompt(this, segments, options);
185
- }
186
- return getModelDefinition(options.model).createPrompt(this, segments, options);
187
- }
188
- async requestTextCompletion(prompt, options) {
189
- return getModelDefinition(options.model).requestTextCompletion(this, prompt, options);
190
- }
191
- async requestTextCompletionStream(prompt, options) {
192
- return getModelDefinition(options.model).requestTextCompletionStream(this, prompt, options);
193
- }
194
- async requestImageGeneration(_prompt, _options) {
195
- const splits = _options.model.split("/");
196
- const modelName = trimModelName(splits[splits.length - 1]);
197
- return new ImagenModelDefinition(modelName).requestImageGeneration(this, _prompt, _options);
198
- }
199
- async getGenAIModelsArray(client) {
200
- const models = [];
201
- const pager = await client.models.list();
202
- for await (const item of pager) {
203
- models.push(item);
204
- }
205
- return models;
206
- }
207
- async listModels(_params) {
208
- // Get clients
209
- const modelGarden = await this.getModelGardenClient();
210
- const aiplatform = await this.getAIPlatformClient();
211
- const globalGenAiClient = this.getGoogleGenAIClient("global");
212
- let models = [];
213
- //Model Garden Publisher models - Pretrained models
214
- const publishers = ["google", "anthropic", "meta"];
215
- // Meta "maas" models are LLama Models-As-A-Service. Non-maas models are not pre-deployed.
216
- const supportedModels = { google: ["gemini", "imagen"], anthropic: ["claude"], meta: ["maas"] };
217
- // Additional models not in the listings, but we want to include
218
- // TODO: Remove once the models are available in the listing API, or no longer needed
219
- const additionalModels = {
220
- google: [
221
- "imagen-3.0-fast-generate-001",
222
- ],
223
- anthropic: [],
224
- meta: [
225
- "llama-4-maverick-17b-128e-instruct-maas",
226
- "llama-4-scout-17b-16e-instruct-maas",
227
- "llama-3.3-70b-instruct-maas",
228
- "llama-3.2-90b-vision-instruct-maas",
229
- "llama-3.1-405b-instruct-maas",
230
- "llama-3.1-70b-instruct-maas",
231
- "llama-3.1-8b-instruct-maas",
232
- ],
233
- };
234
- //Used to exclude retired models that are still in the listing API but not available for use.
235
- //Or models we do not support yet
236
- const unsupportedModelsByPublisher = {
237
- google: ["gemini-pro", "gemini-ultra", "imagen-product-recontext-preview", "embedding"],
238
- anthropic: [],
239
- meta: [],
240
- };
241
- // Start all network requests in parallel
242
- const aiplatformPromise = aiplatform.listModels({
243
- parent: `projects/${this.options.project}/locations/${this.options.region}`,
244
- });
245
- const publisherPromises = publishers.map(async (publisher) => {
246
- const [response] = await modelGarden.listPublisherModels({
247
- parent: `publishers/${publisher}`,
248
- orderBy: "name",
249
- listAllVersions: true,
250
- });
251
- return { publisher, response };
252
- });
253
- const globalGooglePromise = this.getGenAIModelsArray(globalGenAiClient);
254
- // Await all network requests
255
- const [aiplatformResult, globalGoogleResult, ...publisherResults] = await Promise.all([
256
- aiplatformPromise,
257
- globalGooglePromise,
258
- ...publisherPromises,
259
- ]);
260
- // Process aiplatform models, project specific models
261
- const [response] = aiplatformResult;
262
- models = models.concat(response.map((model) => ({
263
- id: model.name?.split("/").pop() ?? "",
264
- name: model.displayName ?? "",
265
- provider: "vertexai"
266
- })));
267
- // Process global google models from GenAI
268
- models = models.concat(globalGoogleResult.map((model) => {
269
- const modelCapability = getModelCapabilities(model.name ?? '', "vertexai");
270
- return {
271
- id: "locations/global/" + model.name,
272
- name: "Global " + model.name?.split('/').pop(),
273
- provider: "vertexai",
274
- owner: "google",
275
- input_modalities: modelModalitiesToArray(modelCapability.input),
276
- output_modalities: modelModalitiesToArray(modelCapability.output),
277
- tool_support: modelCapability.tool_support,
278
- };
279
- }));
280
- // Process publisher models
281
- for (const result of publisherResults) {
282
- const { publisher, response } = result;
283
- const modelFamily = supportedModels[publisher];
284
- const retiredModels = unsupportedModelsByPublisher[publisher];
285
- models = models.concat(response.filter((model) => {
286
- const modelName = model.name ?? "";
287
- // Exclude retired models
288
- if (retiredModels.some(retiredModel => modelName.includes(retiredModel))) {
289
- return false;
290
- }
291
- // Check if the model belongs to the supported model families
292
- if (modelFamily.some(family => modelName.includes(family))) {
293
- return true;
294
- }
295
- return false;
296
- }).map(model => {
297
- const modelCapability = getModelCapabilities(model.name ?? '', "vertexai");
298
- return {
299
- id: model.name ?? '',
300
- name: model.name?.split('/').pop() ?? '',
301
- provider: 'vertexai',
302
- owner: publisher,
303
- input_modalities: modelModalitiesToArray(modelCapability.input),
304
- output_modalities: modelModalitiesToArray(modelCapability.output),
305
- tool_support: modelCapability.tool_support,
306
- };
307
- }));
308
- // Create global anthropic models for those not in NON_GLOBAL_ANTHROPIC_MODELS
309
- if (publisher === 'anthropic') {
310
- const globalAnthropicModels = response.filter((model) => {
311
- const modelName = model.name ?? "";
312
- if (retiredModels.some(retiredModel => modelName.includes(retiredModel))) {
313
- return false;
314
- }
315
- if (modelFamily.some(family => modelName.includes(family))) {
316
- if (modelName.includes("claude-3-7")) {
317
- return true;
318
- }
319
- return !NON_GLOBAL_ANTHROPIC_MODELS.some(nonGlobalModel => modelName.includes(nonGlobalModel));
320
- }
321
- return false;
322
- }).map(model => {
323
- const modelCapability = getModelCapabilities(model.name ?? '', "vertexai");
324
- return {
325
- id: "locations/global/" + model.name,
326
- name: "Global " + model.name?.split('/').pop(),
327
- provider: 'vertexai',
328
- owner: publisher,
329
- input_modalities: modelModalitiesToArray(modelCapability.input),
330
- output_modalities: modelModalitiesToArray(modelCapability.output),
331
- tool_support: modelCapability.tool_support,
332
- };
333
- });
334
- models = models.concat(globalAnthropicModels);
335
- }
336
- // Add additional models that are not in the listing
337
- for (const additionalModel of additionalModels[publisher]) {
338
- const publisherModelName = `publishers/${publisher}/models/${additionalModel}`;
339
- const modelCapability = getModelCapabilities(additionalModel, "vertexai");
340
- models.push({
341
- id: publisherModelName,
342
- name: additionalModel,
343
- provider: 'vertexai',
344
- owner: publisher,
345
- input_modalities: modelModalitiesToArray(modelCapability.input),
346
- output_modalities: modelModalitiesToArray(modelCapability.output),
347
- tool_support: modelCapability.tool_support,
348
- });
349
- }
350
- }
351
- //Remove duplicates
352
- const uniqueModels = Array.from(new Set(models.map(a => a.id)))
353
- .map(id => {
354
- return models.find(a => a.id === id) ?? {};
355
- }).sort((a, b) => a.id.localeCompare(b.id));
356
- return uniqueModels;
357
- }
358
- validateConnection() {
359
- throw new Error("Method not implemented.");
360
- }
361
- async generateEmbeddings(options) {
362
- if (options.image || options.model?.includes("multimodal")) {
363
- if (options.text && options.image) {
364
- throw new Error("Text and Image simultaneous embedding not implemented. Submit separately");
365
- }
366
- return getEmbeddingsForImages(this, options);
367
- }
368
- const text_options = {
369
- content: options.text ?? "",
370
- model: options.model,
371
- };
372
- return getEmbeddingsForText(this, text_options);
373
- }
374
- }
375
- //'us-central1-aiplatform.googleapis.com',
376
- const API_BASE_PATH = "aiplatform.googleapis.com";
377
- function createFetchClient({ region, project, apiEndpoint, apiVersion = "v1", }) {
378
- const vertexBaseEndpoint = apiEndpoint ?? `${region}-${API_BASE_PATH}`;
379
- return new FetchClient(`https://${vertexBaseEndpoint}/${apiVersion}/projects/${project}/locations/${region}`).withHeaders({
380
- "Content-Type": "application/json",
381
- });
382
- }
383
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/vertexai/index.ts"],"names":[],"mappings":"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"}