@llumiverse/drivers 0.22.0 → 0.22.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/adobe/firefly.js +8 -7
- package/lib/cjs/adobe/firefly.js.map +1 -1
- package/lib/cjs/azure/azure_foundry.js +12 -12
- package/lib/cjs/azure/azure_foundry.js.map +1 -1
- package/lib/cjs/bedrock/index.js +172 -22
- package/lib/cjs/bedrock/index.js.map +1 -1
- package/lib/cjs/bedrock/twelvelabs.js +87 -0
- package/lib/cjs/bedrock/twelvelabs.js.map +1 -0
- package/lib/cjs/groq/index.js +91 -16
- package/lib/cjs/groq/index.js.map +1 -1
- package/lib/cjs/huggingface_ie.js +7 -6
- package/lib/cjs/huggingface_ie.js.map +1 -1
- package/lib/cjs/index.js +2 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/mistral/index.js +5 -4
- package/lib/cjs/mistral/index.js.map +1 -1
- package/lib/cjs/openai/azure_openai.js +1 -1
- package/lib/cjs/openai/azure_openai.js.map +1 -1
- package/lib/cjs/openai/index.js +16 -12
- package/lib/cjs/openai/index.js.map +1 -1
- package/lib/cjs/replicate.js +6 -6
- package/lib/cjs/replicate.js.map +1 -1
- package/lib/cjs/test/utils.js +1 -1
- package/lib/cjs/test/utils.js.map +1 -1
- package/lib/cjs/test-driver/TestErrorCompletionStream.js +20 -0
- package/lib/cjs/test-driver/TestErrorCompletionStream.js.map +1 -0
- package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js +24 -0
- package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js.map +1 -0
- package/lib/cjs/test-driver/index.js +109 -0
- package/lib/cjs/test-driver/index.js.map +1 -0
- package/lib/cjs/test-driver/utils.js +30 -0
- package/lib/cjs/test-driver/utils.js.map +1 -0
- package/lib/cjs/togetherai/index.js +4 -4
- package/lib/cjs/togetherai/index.js.map +1 -1
- package/lib/cjs/vertexai/embeddings/embeddings-text.js +1 -1
- package/lib/cjs/vertexai/embeddings/embeddings-text.js.map +1 -1
- package/lib/cjs/vertexai/index.js +136 -31
- package/lib/cjs/vertexai/index.js.map +1 -1
- package/lib/cjs/vertexai/models/claude.js +38 -16
- package/lib/cjs/vertexai/models/claude.js.map +1 -1
- package/lib/cjs/vertexai/models/gemini.js +131 -41
- package/lib/cjs/vertexai/models/gemini.js.map +1 -1
- package/lib/cjs/vertexai/models/imagen.js +12 -23
- package/lib/cjs/vertexai/models/imagen.js.map +1 -1
- package/lib/cjs/vertexai/models/llama.js +4 -3
- package/lib/cjs/vertexai/models/llama.js.map +1 -1
- package/lib/cjs/vertexai/models.js +13 -2
- package/lib/cjs/vertexai/models.js.map +1 -1
- package/lib/cjs/watsonx/index.js +5 -5
- package/lib/cjs/watsonx/index.js.map +1 -1
- package/lib/cjs/xai/index.js +1 -1
- package/lib/cjs/xai/index.js.map +1 -1
- package/lib/esm/adobe/firefly.js +8 -7
- package/lib/esm/adobe/firefly.js.map +1 -1
- package/lib/esm/azure/azure_foundry.js +12 -12
- package/lib/esm/azure/azure_foundry.js.map +1 -1
- package/lib/esm/bedrock/index.js +172 -22
- package/lib/esm/bedrock/index.js.map +1 -1
- package/lib/esm/bedrock/twelvelabs.js +84 -0
- package/lib/esm/bedrock/twelvelabs.js.map +1 -0
- package/lib/esm/groq/index.js +91 -16
- package/lib/esm/groq/index.js.map +1 -1
- package/lib/esm/huggingface_ie.js +8 -7
- package/lib/esm/huggingface_ie.js.map +1 -1
- package/lib/esm/index.js +2 -2
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/mistral/index.js +5 -4
- package/lib/esm/mistral/index.js.map +1 -1
- package/lib/esm/openai/azure_openai.js +1 -1
- package/lib/esm/openai/azure_openai.js.map +1 -1
- package/lib/esm/openai/index.js +16 -12
- package/lib/esm/openai/index.js.map +1 -1
- package/lib/esm/replicate.js +6 -6
- package/lib/esm/replicate.js.map +1 -1
- package/lib/esm/src/adobe/firefly.js +116 -0
- package/lib/esm/src/adobe/firefly.js.map +1 -0
- package/lib/esm/src/azure/azure_foundry.js +382 -0
- package/lib/esm/src/azure/azure_foundry.js.map +1 -0
- package/lib/esm/src/bedrock/converse.js +278 -0
- package/lib/esm/src/bedrock/converse.js.map +1 -0
- package/lib/esm/src/bedrock/index.js +962 -0
- package/lib/esm/src/bedrock/index.js.map +1 -0
- package/lib/esm/src/bedrock/nova-image-payload.js +203 -0
- package/lib/esm/src/bedrock/nova-image-payload.js.map +1 -0
- package/lib/esm/src/bedrock/payloads.js +2 -0
- package/lib/esm/src/bedrock/payloads.js.map +1 -0
- package/lib/esm/src/bedrock/s3.js +99 -0
- package/lib/esm/src/bedrock/s3.js.map +1 -0
- package/lib/esm/src/bedrock/twelvelabs.js +84 -0
- package/lib/esm/src/bedrock/twelvelabs.js.map +1 -0
- package/lib/esm/src/groq/index.js +286 -0
- package/lib/esm/src/groq/index.js.map +1 -0
- package/lib/esm/src/huggingface_ie.js +197 -0
- package/lib/esm/src/huggingface_ie.js.map +1 -0
- package/lib/esm/src/index.js +14 -0
- package/lib/esm/src/index.js.map +1 -0
- package/lib/esm/src/mistral/index.js +169 -0
- package/lib/esm/src/mistral/index.js.map +1 -0
- package/lib/esm/src/mistral/types.js +80 -0
- package/lib/esm/src/mistral/types.js.map +1 -0
- package/lib/esm/src/openai/azure_openai.js +68 -0
- package/lib/esm/src/openai/azure_openai.js.map +1 -0
- package/lib/esm/src/openai/index.js +464 -0
- package/lib/esm/src/openai/index.js.map +1 -0
- package/lib/esm/src/openai/openai.js +14 -0
- package/lib/esm/src/openai/openai.js.map +1 -0
- package/lib/esm/src/openai/openai_format.js +134 -0
- package/lib/esm/src/openai/openai_format.js.map +1 -0
- package/lib/esm/src/replicate.js +268 -0
- package/lib/esm/src/replicate.js.map +1 -0
- package/lib/esm/src/test/TestErrorCompletionStream.js +16 -0
- package/lib/esm/src/test/TestErrorCompletionStream.js.map +1 -0
- package/lib/esm/src/test/TestValidationErrorCompletionStream.js +20 -0
- package/lib/esm/src/test/TestValidationErrorCompletionStream.js.map +1 -0
- package/lib/esm/src/test/index.js +91 -0
- package/lib/esm/src/test/index.js.map +1 -0
- package/lib/esm/src/test/utils.js +25 -0
- package/lib/esm/src/test/utils.js.map +1 -0
- package/lib/esm/src/test-driver/TestErrorCompletionStream.js +16 -0
- package/lib/esm/src/test-driver/TestErrorCompletionStream.js.map +1 -0
- package/lib/esm/src/test-driver/TestValidationErrorCompletionStream.js +20 -0
- package/lib/esm/src/test-driver/TestValidationErrorCompletionStream.js.map +1 -0
- package/lib/esm/src/test-driver/index.js +91 -0
- package/lib/esm/src/test-driver/index.js.map +1 -0
- package/lib/esm/src/test-driver/utils.js +25 -0
- package/lib/esm/src/test-driver/utils.js.map +1 -0
- package/lib/esm/src/togetherai/index.js +122 -0
- package/lib/esm/src/togetherai/index.js.map +1 -0
- package/lib/esm/src/togetherai/interfaces.js +2 -0
- package/lib/esm/src/togetherai/interfaces.js.map +1 -0
- package/lib/esm/src/vertexai/debug.js +6 -0
- package/lib/esm/src/vertexai/debug.js.map +1 -0
- package/lib/esm/src/vertexai/embeddings/embeddings-image.js +24 -0
- package/lib/esm/src/vertexai/embeddings/embeddings-image.js.map +1 -0
- package/lib/esm/src/vertexai/embeddings/embeddings-text.js +20 -0
- package/lib/esm/src/vertexai/embeddings/embeddings-text.js.map +1 -0
- package/lib/esm/src/vertexai/index.js +383 -0
- package/lib/esm/src/vertexai/index.js.map +1 -0
- package/lib/esm/src/vertexai/models/claude.js +394 -0
- package/lib/esm/src/vertexai/models/claude.js.map +1 -0
- package/lib/esm/src/vertexai/models/gemini.js +817 -0
- package/lib/esm/src/vertexai/models/gemini.js.map +1 -0
- package/lib/esm/src/vertexai/models/imagen.js +302 -0
- package/lib/esm/src/vertexai/models/imagen.js.map +1 -0
- package/lib/esm/src/vertexai/models/llama.js +179 -0
- package/lib/esm/src/vertexai/models/llama.js.map +1 -0
- package/lib/esm/src/vertexai/models.js +32 -0
- package/lib/esm/src/vertexai/models.js.map +1 -0
- package/lib/esm/src/watsonx/index.js +157 -0
- package/lib/esm/src/watsonx/index.js.map +1 -0
- package/lib/esm/src/watsonx/interfaces.js +2 -0
- package/lib/esm/src/watsonx/interfaces.js.map +1 -0
- package/lib/esm/src/xai/index.js +64 -0
- package/lib/esm/src/xai/index.js.map +1 -0
- package/lib/esm/test/utils.js +1 -1
- package/lib/esm/test/utils.js.map +1 -1
- package/lib/esm/test-driver/TestErrorCompletionStream.js +16 -0
- package/lib/esm/test-driver/TestErrorCompletionStream.js.map +1 -0
- package/lib/esm/test-driver/TestValidationErrorCompletionStream.js +20 -0
- package/lib/esm/test-driver/TestValidationErrorCompletionStream.js.map +1 -0
- package/lib/esm/test-driver/index.js +91 -0
- package/lib/esm/test-driver/index.js.map +1 -0
- package/lib/esm/test-driver/utils.js +25 -0
- package/lib/esm/test-driver/utils.js.map +1 -0
- package/lib/esm/togetherai/index.js +4 -4
- package/lib/esm/togetherai/index.js.map +1 -1
- package/lib/esm/tsconfig.tsbuildinfo +1 -0
- package/lib/esm/vertexai/embeddings/embeddings-text.js +1 -1
- package/lib/esm/vertexai/embeddings/embeddings-text.js.map +1 -1
- package/lib/esm/vertexai/index.js +136 -31
- package/lib/esm/vertexai/index.js.map +1 -1
- package/lib/esm/vertexai/models/claude.js +37 -15
- package/lib/esm/vertexai/models/claude.js.map +1 -1
- package/lib/esm/vertexai/models/gemini.js +133 -43
- package/lib/esm/vertexai/models/gemini.js.map +1 -1
- package/lib/esm/vertexai/models/imagen.js +9 -17
- package/lib/esm/vertexai/models/imagen.js.map +1 -1
- package/lib/esm/vertexai/models/llama.js +4 -3
- package/lib/esm/vertexai/models/llama.js.map +1 -1
- package/lib/esm/vertexai/models.js +13 -2
- package/lib/esm/vertexai/models.js.map +1 -1
- package/lib/esm/watsonx/index.js +5 -5
- package/lib/esm/watsonx/index.js.map +1 -1
- package/lib/esm/xai/index.js +1 -1
- package/lib/esm/xai/index.js.map +1 -1
- package/lib/types/adobe/firefly.d.ts +3 -3
- package/lib/types/adobe/firefly.d.ts.map +1 -1
- package/lib/types/azure/azure_foundry.d.ts +2 -2
- package/lib/types/azure/azure_foundry.d.ts.map +1 -1
- package/lib/types/bedrock/index.d.ts +9 -5
- package/lib/types/bedrock/index.d.ts.map +1 -1
- package/lib/types/bedrock/twelvelabs.d.ts +50 -0
- package/lib/types/bedrock/twelvelabs.d.ts.map +1 -0
- package/lib/types/groq/index.d.ts +3 -0
- package/lib/types/groq/index.d.ts.map +1 -1
- package/lib/types/huggingface_ie.d.ts +8 -5
- package/lib/types/huggingface_ie.d.ts.map +1 -1
- package/lib/types/index.d.ts +2 -2
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/mistral/index.d.ts +2 -2
- package/lib/types/mistral/index.d.ts.map +1 -1
- package/lib/types/openai/index.d.ts +2 -2
- package/lib/types/openai/index.d.ts.map +1 -1
- package/lib/types/replicate.d.ts +6 -3
- package/lib/types/replicate.d.ts.map +1 -1
- package/lib/types/src/adobe/firefly.d.ts +29 -0
- package/lib/types/src/azure/azure_foundry.d.ts +49 -0
- package/lib/types/src/bedrock/converse.d.ts +8 -0
- package/lib/types/src/bedrock/index.d.ts +61 -0
- package/lib/types/src/bedrock/nova-image-payload.d.ts +73 -0
- package/lib/types/src/bedrock/payloads.d.ts +11 -0
- package/lib/types/src/bedrock/s3.d.ts +22 -0
- package/lib/types/src/bedrock/twelvelabs.d.ts +49 -0
- package/lib/types/src/groq/index.d.ts +26 -0
- package/lib/types/src/huggingface_ie.d.ts +34 -0
- package/lib/types/src/index.d.ts +13 -0
- package/lib/types/src/mistral/index.d.ts +24 -0
- package/lib/types/src/mistral/types.d.ts +131 -0
- package/lib/types/src/openai/azure_openai.d.ts +24 -0
- package/lib/types/src/openai/index.d.ts +24 -0
- package/lib/types/src/openai/openai.d.ts +14 -0
- package/lib/types/src/openai/openai_format.d.ts +18 -0
- package/lib/types/src/replicate.d.ts +47 -0
- package/lib/types/src/test/TestErrorCompletionStream.d.ts +8 -0
- package/lib/types/src/test/TestValidationErrorCompletionStream.d.ts +8 -0
- package/lib/types/src/test/index.d.ts +23 -0
- package/lib/types/src/test/utils.d.ts +4 -0
- package/lib/types/src/test-driver/TestErrorCompletionStream.d.ts +8 -0
- package/lib/types/src/test-driver/TestValidationErrorCompletionStream.d.ts +8 -0
- package/lib/types/src/test-driver/index.d.ts +23 -0
- package/lib/types/src/test-driver/utils.d.ts +4 -0
- package/lib/types/src/togetherai/index.d.ts +22 -0
- package/lib/types/src/togetherai/interfaces.d.ts +95 -0
- package/lib/types/src/vertexai/debug.d.ts +1 -0
- package/lib/types/src/vertexai/embeddings/embeddings-image.d.ts +10 -0
- package/lib/types/src/vertexai/embeddings/embeddings-text.d.ts +9 -0
- package/lib/types/src/vertexai/index.d.ts +52 -0
- package/lib/types/src/vertexai/models/claude.d.ts +19 -0
- package/lib/types/src/vertexai/models/gemini.d.ts +17 -0
- package/lib/types/src/vertexai/models/imagen.d.ts +74 -0
- package/lib/types/src/vertexai/models/llama.d.ts +19 -0
- package/lib/types/src/vertexai/models.d.ts +14 -0
- package/lib/types/src/watsonx/index.d.ts +26 -0
- package/lib/types/src/watsonx/interfaces.d.ts +64 -0
- package/lib/types/src/xai/index.d.ts +18 -0
- package/lib/types/test-driver/TestErrorCompletionStream.d.ts +9 -0
- package/lib/types/test-driver/TestErrorCompletionStream.d.ts.map +1 -0
- package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts +9 -0
- package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts.map +1 -0
- package/lib/types/test-driver/index.d.ts +24 -0
- package/lib/types/test-driver/index.d.ts.map +1 -0
- package/lib/types/test-driver/utils.d.ts +5 -0
- package/lib/types/test-driver/utils.d.ts.map +1 -0
- package/lib/types/togetherai/index.d.ts +3 -3
- package/lib/types/togetherai/index.d.ts.map +1 -1
- package/lib/types/vertexai/index.d.ts +17 -14
- package/lib/types/vertexai/index.d.ts.map +1 -1
- package/lib/types/vertexai/models/claude.d.ts +2 -0
- package/lib/types/vertexai/models/claude.d.ts.map +1 -1
- package/lib/types/vertexai/models/gemini.d.ts.map +1 -1
- package/lib/types/vertexai/models/imagen.d.ts +2 -2
- package/lib/types/vertexai/models/imagen.d.ts.map +1 -1
- package/lib/types/vertexai/models/llama.d.ts +2 -2
- package/lib/types/vertexai/models/llama.d.ts.map +1 -1
- package/lib/types/vertexai/models.d.ts +2 -2
- package/lib/types/vertexai/models.d.ts.map +1 -1
- package/lib/types/watsonx/index.d.ts +3 -3
- package/lib/types/watsonx/index.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/adobe/firefly.ts +12 -20
- package/src/azure/azure_foundry.ts +5 -5
- package/src/bedrock/index.ts +203 -24
- package/src/bedrock/twelvelabs.ts +150 -0
- package/src/groq/index.ts +134 -37
- package/src/huggingface_ie.ts +7 -7
- package/src/mistral/index.ts +8 -7
- package/src/openai/index.ts +16 -10
- package/src/replicate.ts +11 -11
- package/src/test/utils.ts +1 -1
- package/src/togetherai/index.ts +7 -7
- package/src/vertexai/embeddings/embeddings-text.ts +2 -2
- package/src/vertexai/index.ts +133 -21
- package/src/vertexai/models/claude.ts +43 -17
- package/src/vertexai/models/gemini.ts +161 -60
- package/src/vertexai/models/imagen.ts +15 -26
- package/src/vertexai/models/llama.ts +6 -5
- package/src/vertexai/models.ts +18 -6
- package/src/watsonx/index.ts +5 -5
- package/src/xai/index.ts +11 -12
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AIModel, Completion, ExecutionOptions,
|
|
1
|
+
import { AIModel, Completion, ExecutionOptions, PromptSegment } from "@llumiverse/core";
|
|
2
2
|
import { VertexAIDriver } from "../index.js";
|
|
3
3
|
interface ImagenBaseReference {
|
|
4
4
|
referenceType: "REFERENCE_TYPE_RAW" | "REFERENCE_TYPE_MASK" | "REFERENCE_TYPE_SUBJECT" | "REFERENCE_TYPE_CONTROL" | "REFERENCE_TYPE_STYLE";
|
|
@@ -69,7 +69,7 @@ export declare class ImagenModelDefinition {
|
|
|
69
69
|
model: AIModel;
|
|
70
70
|
constructor(modelId: string);
|
|
71
71
|
createPrompt(_driver: VertexAIDriver, segments: PromptSegment[], options: ExecutionOptions): Promise<ImagenPrompt>;
|
|
72
|
-
requestImageGeneration(driver: VertexAIDriver, prompt: ImagenPrompt, options: ExecutionOptions): Promise<Completion
|
|
72
|
+
requestImageGeneration(driver: VertexAIDriver, prompt: ImagenPrompt, options: ExecutionOptions): Promise<Completion>;
|
|
73
73
|
}
|
|
74
74
|
export {};
|
|
75
75
|
//# sourceMappingURL=imagen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imagen.d.ts","sourceRoot":"","sources":["../../../../src/vertexai/models/imagen.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAAE,UAAU,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"imagen.d.ts","sourceRoot":"","sources":["../../../../src/vertexai/models/imagen.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EACd,aAAa,EACvC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7C,UAAU,mBAAmB;IACzB,aAAa,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,wBAAwB,GACtF,wBAAwB,GAAG,sBAAsB,CAAC;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE;QACZ,kBAAkB,EAAE,MAAM,CAAC;KAC9B,CAAA;CACJ;AAED,oBAAY,cAAc;IACtB,UAAU,eAAe;IACzB,yBAAyB,8BAA8B;IACvD,2BAA2B,gCAAgC;IAC3D,gBAAgB,qBAAqB;IACrC,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,sBAAsB,2BAA2B;CACpD;AAED,oBAAY,cAAc;IACtB,uBAAuB,4BAA4B;IACnD,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,kBAAkB,uBAAuB;CAC5C;AAED,UAAU,kBAAmB,SAAQ,mBAAmB;IACpD,aAAa,EAAE,oBAAoB,CAAC;CACvC;AAED,UAAU,mBAAoB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;IAC7E,aAAa,EAAE,qBAAqB,CAAC;IACrC,eAAe,EAAE;QACb,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAA;IACD,cAAc,CAAC,EAAE;QACb,kBAAkB,EAAE,MAAM,CAAC;KAC9B,CAAA;CACJ;AAED,UAAU,sBAAuB,SAAQ,mBAAmB;IACxD,aAAa,EAAE,wBAAwB,CAAC;IACxC,kBAAkB,EAAE;QAChB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE,qBAAqB,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;KAChH,CAAA;CACJ;AAED,UAAU,sBAAuB,SAAQ,mBAAmB;IACxD,aAAa,EAAE,wBAAwB,CAAC;IACxC,kBAAkB,EAAE;QAChB,WAAW,EAAE,wBAAwB,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;QACvF,6BAA6B,CAAC,EAAE,OAAO,CAAC;KAC3C,CAAA;CACJ;AAED,UAAU,oBAAqB,SAAQ,mBAAmB;IACtD,aAAa,EAAE,sBAAsB,CAAC;IACtC,gBAAgB,EAAE;QACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAA;CACJ;AAED,KAAK,aAAa,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,oBAAoB,CAAC;AAEvI,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAkED,qBAAa,qBAAqB;IAE9B,KAAK,EAAE,OAAO,CAAA;gBAEF,OAAO,EAAE,MAAM;IAUrB,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAiKlH,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;CAkE7H"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AIModel, Completion,
|
|
1
|
+
import { AIModel, Completion, CompletionChunkObject, ExecutionOptions, PromptOptions, PromptSegment } from "@llumiverse/core";
|
|
2
2
|
import { VertexAIDriver } from "../index.js";
|
|
3
3
|
import { ModelDefinition } from "../models.js";
|
|
4
4
|
interface LLamaMessage {
|
|
@@ -14,7 +14,7 @@ export declare class LLamaModelDefinition implements ModelDefinition<LLamaPrompt
|
|
|
14
14
|
getLlamaModelRegion(modelName: string): string;
|
|
15
15
|
createPrompt(_driver: VertexAIDriver, segments: PromptSegment[], options: PromptOptions): Promise<LLamaPrompt>;
|
|
16
16
|
requestTextCompletion(driver: VertexAIDriver, prompt: LLamaPrompt, options: ExecutionOptions): Promise<Completion>;
|
|
17
|
-
requestTextCompletionStream(driver: VertexAIDriver, prompt: LLamaPrompt, options: ExecutionOptions): Promise<AsyncIterable<
|
|
17
|
+
requestTextCompletionStream(driver: VertexAIDriver, prompt: LLamaPrompt, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>>;
|
|
18
18
|
}
|
|
19
19
|
export {};
|
|
20
20
|
//# sourceMappingURL=llama.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llama.d.ts","sourceRoot":"","sources":["../../../../src/vertexai/models/llama.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"llama.d.ts","sourceRoot":"","sources":["../../../../src/vertexai/models/llama.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,gBAAgB,EAC5D,aAAa,EAAc,aAAa,EAE3C,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,UAAU,YAAY;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,WAAW;IACjB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC5B;AAqED,qBAAa,oBAAqB,YAAW,eAAe,CAAC,WAAW,CAAC;IAErE,KAAK,EAAE,OAAO,CAAA;gBAEF,OAAO,EAAE,MAAM;IAW3B,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IASxC,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAwC9G,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IA2DlH,2BAA2B,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;CAqD3J"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { AIModel, Completion, PromptSegment, ExecutionOptions,
|
|
1
|
+
import { AIModel, Completion, PromptSegment, ExecutionOptions, CompletionChunkObject } from "@llumiverse/core";
|
|
2
2
|
import { VertexAIDriver } from "./index.js";
|
|
3
3
|
export interface ModelDefinition<PromptT = any> {
|
|
4
4
|
model: AIModel;
|
|
5
5
|
versions?: string[];
|
|
6
6
|
createPrompt: (driver: VertexAIDriver, segments: PromptSegment[], options: ExecutionOptions) => Promise<PromptT>;
|
|
7
7
|
requestTextCompletion: (driver: VertexAIDriver, prompt: PromptT, options: ExecutionOptions) => Promise<Completion>;
|
|
8
|
-
requestTextCompletionStream: (driver: VertexAIDriver, prompt: PromptT, options: ExecutionOptions) => Promise<AsyncIterable<
|
|
8
|
+
requestTextCompletionStream: (driver: VertexAIDriver, prompt: PromptT, options: ExecutionOptions) => Promise<AsyncIterable<CompletionChunkObject>>;
|
|
9
9
|
preValidationProcessing?(result: Completion, options: ExecutionOptions): {
|
|
10
10
|
result: Completion;
|
|
11
11
|
options: ExecutionOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/vertexai/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/vertexai/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAiB,MAAM,YAAY,CAAC;AAK3D,MAAM,WAAW,eAAe,CAAC,OAAO,GAAG,GAAG;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjH,qBAAqB,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACnH,2BAA2B,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACnJ,uBAAuB,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,gBAAgB,CAAA;KAAE,CAAC;CAC9H;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CA2BjE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AIModel, AbstractDriver, Completion,
|
|
1
|
+
import { AIModel, AbstractDriver, Completion, CompletionChunkObject, DriverOptions, EmbeddingsOptions, EmbeddingsResult, ExecutionOptions } from "@llumiverse/core";
|
|
2
2
|
import { FetchClient } from "@vertesia/api-fetch-client";
|
|
3
3
|
import { WatsonAuthToken } from "./interfaces.js";
|
|
4
4
|
interface WatsonxDriverOptions extends DriverOptions {
|
|
@@ -16,8 +16,8 @@ export declare class WatsonxDriver extends AbstractDriver<WatsonxDriverOptions,
|
|
|
16
16
|
fetcher?: FetchClient;
|
|
17
17
|
fetchClient: FetchClient;
|
|
18
18
|
constructor(options: WatsonxDriverOptions);
|
|
19
|
-
requestTextCompletion(prompt: string, options: ExecutionOptions): Promise<Completion
|
|
20
|
-
requestTextCompletionStream(prompt: string, options: ExecutionOptions): Promise<AsyncIterable<
|
|
19
|
+
requestTextCompletion(prompt: string, options: ExecutionOptions): Promise<Completion>;
|
|
20
|
+
requestTextCompletionStream(prompt: string, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>>;
|
|
21
21
|
listModels(): Promise<AIModel<string>[]>;
|
|
22
22
|
getAuthToken(): Promise<string>;
|
|
23
23
|
validateConnection(): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/watsonx/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/watsonx/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAuB,MAAM,kBAAkB,CAAC;AAEzL,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAuD,eAAe,EAA2G,MAAM,iBAAiB,CAAC;AAEhN,UAAU,oBAAqB,SAAQ,aAAa;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACvB;AAID,qBAAa,aAAc,SAAQ,cAAc,CAAC,oBAAoB,EAAE,MAAM,CAAC;IAC3E,MAAM,CAAC,QAAQ,SAAa;IAC5B,QAAQ,SAA0B;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,WAAW,EAAE,WAAW,CAAA;gBAEZ,OAAO,EAAE,oBAAoB;IAQnC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAmCrF,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAwCrH,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IAoBxC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAwB/B,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAStC,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAwBlF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llumiverse/drivers",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "LLM driver implementations. Currently supported are: openai, huggingface, bedrock, replicate.",
|
|
6
6
|
"files": [
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
"dotenv": "^16.6.1",
|
|
45
45
|
"rimraf": "^6.0.1",
|
|
46
46
|
"ts-dual-module": "^0.6.3",
|
|
47
|
-
"typescript": "^5.
|
|
47
|
+
"typescript": "^5.9.2",
|
|
48
48
|
"vitest": "^3.2.4"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@anthropic-ai/sdk": "^0.
|
|
52
|
-
"@anthropic-ai/vertex-sdk": "^0.
|
|
51
|
+
"@anthropic-ai/sdk": "^0.66.0",
|
|
52
|
+
"@anthropic-ai/vertex-sdk": "^0.14.0",
|
|
53
53
|
"@aws-sdk/client-bedrock": "^3.840.0",
|
|
54
54
|
"@aws-sdk/client-bedrock-runtime": "^3.840.0",
|
|
55
55
|
"@aws-sdk/client-s3": "^3.840.0",
|
|
@@ -63,18 +63,18 @@
|
|
|
63
63
|
"@azure/identity": "^4.10.1",
|
|
64
64
|
"@azure/openai": "2.0.0",
|
|
65
65
|
"@google-cloud/aiplatform": "^3.35.0",
|
|
66
|
-
"@google/genai": "^1.
|
|
66
|
+
"@google/genai": "^1.25.0",
|
|
67
67
|
"@huggingface/inference": "2.6.7",
|
|
68
|
-
"@vertesia/api-fetch-client": "^0.
|
|
68
|
+
"@vertesia/api-fetch-client": "^0.74.0",
|
|
69
69
|
"eventsource": "^4.0.0",
|
|
70
70
|
"google-auth-library": "^9.15.1",
|
|
71
|
-
"groq-sdk": "^0.
|
|
71
|
+
"groq-sdk": "^0.34.0",
|
|
72
72
|
"mnemonist": "^0.40.3",
|
|
73
73
|
"node-web-stream-adapters": "^0.2.1",
|
|
74
74
|
"openai": "^4.104.0",
|
|
75
75
|
"replicate": "^1.0.1",
|
|
76
|
-
"@llumiverse/common": "0.22.
|
|
77
|
-
"@llumiverse/core": "0.22.
|
|
76
|
+
"@llumiverse/common": "0.22.2",
|
|
77
|
+
"@llumiverse/core": "0.22.2"
|
|
78
78
|
},
|
|
79
79
|
"ts_dual_module": {
|
|
80
80
|
"outDir": "lib"
|
package/src/adobe/firefly.ts
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
AbstractDriver, AIModel,
|
|
3
|
-
Completion,
|
|
4
|
-
CompletionChunk, DriverOptions, EmbeddingsOptions,
|
|
5
|
-
EmbeddingsResult,
|
|
6
|
-
ExecutionOptions,
|
|
7
|
-
ImageGeneration,
|
|
8
|
-
ModelSearchPayload,
|
|
9
|
-
PromptSegment
|
|
10
|
-
} from "@llumiverse/core";
|
|
1
|
+
import { AbstractDriver, AIModel, Completion, CompletionChunkObject, DriverOptions, EmbeddingsOptions, EmbeddingsResult, ExecutionOptions, ModelSearchPayload, PromptSegment } from "@llumiverse/core";
|
|
11
2
|
|
|
12
3
|
interface FireflyImageSource {
|
|
13
4
|
url?: string;
|
|
@@ -83,7 +74,7 @@ export class FireflyDriver extends AbstractDriver<FireflyDriverOptions> {
|
|
|
83
74
|
|
|
84
75
|
constructor(options: FireflyDriverOptions) {
|
|
85
76
|
super(options);
|
|
86
|
-
|
|
77
|
+
|
|
87
78
|
if (!options.apiKey) {
|
|
88
79
|
throw new Error("No API key provided for Firefly driver");
|
|
89
80
|
}
|
|
@@ -95,14 +86,14 @@ export class FireflyDriver extends AbstractDriver<FireflyDriverOptions> {
|
|
|
95
86
|
throw new Error("Text completion not supported by Firefly");
|
|
96
87
|
}
|
|
97
88
|
|
|
98
|
-
async requestTextCompletionStream(_prompt: string, _options: ExecutionOptions): Promise<AsyncIterable<
|
|
89
|
+
async requestTextCompletionStream(_prompt: string, _options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>> {
|
|
99
90
|
throw new Error("Text completion streaming not supported by Firefly");
|
|
100
91
|
}
|
|
101
92
|
|
|
102
|
-
async requestImageGeneration(segments: PromptSegment[], options: ExecutionOptions): Promise<Completion
|
|
93
|
+
async requestImageGeneration(segments: PromptSegment[], options: ExecutionOptions): Promise<Completion> {
|
|
103
94
|
this.logger.debug(`[${this.provider}] Generating image with model ${options.model}`);
|
|
104
95
|
const prompt = segments.map(s => s.content).join("\n\n");
|
|
105
|
-
|
|
96
|
+
|
|
106
97
|
|
|
107
98
|
try {
|
|
108
99
|
const payload: FireflyGenerateRequest = {
|
|
@@ -127,7 +118,7 @@ export class FireflyDriver extends AbstractDriver<FireflyDriverOptions> {
|
|
|
127
118
|
|
|
128
119
|
if (result.promptHasDeniedWords || result.promptHasBlockedArtists) {
|
|
129
120
|
return {
|
|
130
|
-
result:
|
|
121
|
+
result: [],
|
|
131
122
|
error: {
|
|
132
123
|
message: "Prompt contains denied words or blocked artists",
|
|
133
124
|
code: "content_policy_violation"
|
|
@@ -136,15 +127,16 @@ export class FireflyDriver extends AbstractDriver<FireflyDriverOptions> {
|
|
|
136
127
|
}
|
|
137
128
|
|
|
138
129
|
return {
|
|
139
|
-
result: {
|
|
140
|
-
|
|
141
|
-
|
|
130
|
+
result: result.outputs.map(output => ({
|
|
131
|
+
type: "image" as const,
|
|
132
|
+
value: output.image.url
|
|
133
|
+
}))
|
|
142
134
|
};
|
|
143
135
|
|
|
144
136
|
} catch (error: any) {
|
|
145
137
|
this.logger.error("[Firefly] Image generation failed", { error });
|
|
146
138
|
return {
|
|
147
|
-
result:
|
|
139
|
+
result: [],
|
|
148
140
|
error: {
|
|
149
141
|
message: error.message,
|
|
150
142
|
code: error.code || 'GENERATION_FAILED'
|
|
@@ -171,7 +163,7 @@ export class FireflyDriver extends AbstractDriver<FireflyDriverOptions> {
|
|
|
171
163
|
tags: ["image-generation"]
|
|
172
164
|
},
|
|
173
165
|
{
|
|
174
|
-
id: "firefly-v3-image-to-image",
|
|
166
|
+
id: "firefly-v3-image-to-image",
|
|
175
167
|
name: "Firefly v3 Image to Image",
|
|
176
168
|
provider: this.provider,
|
|
177
169
|
description: "Adobe Firefly v3 image to image generation model",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DefaultAzureCredential, getBearerTokenProvider, TokenCredential } from "@azure/identity";
|
|
2
|
-
import { AbstractDriver, AIModel, Completion,
|
|
2
|
+
import { AbstractDriver, AIModel, Completion, CompletionChunkObject, DriverOptions, EmbeddingsOptions, EmbeddingsResult, ExecutionOptions, getModelCapabilities, modelModalitiesToArray, Providers } from "@llumiverse/core";
|
|
3
3
|
import { AIProjectClient, DeploymentUnion, ModelDeployment } from '@azure/ai-projects';
|
|
4
4
|
import { isUnexpected } from "@azure-rest/ai-inference";
|
|
5
5
|
import { ChatCompletionMessageParam } from "openai/resources";
|
|
@@ -139,7 +139,7 @@ export class AzureFoundryDriver extends AbstractDriver<AzureFoundryDriverOptions
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
async requestTextCompletionStream(prompt: ChatCompletionMessageParam[], options: ExecutionOptions): Promise<AsyncIterable<
|
|
142
|
+
async requestTextCompletionStream(prompt: ChatCompletionMessageParam[], options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>> {
|
|
143
143
|
const { deploymentName } = parseAzureFoundryModelId(options.model);
|
|
144
144
|
const model_options = options.model_options as any;
|
|
145
145
|
const isOpenAI = await this.isOpenAIDeployment(options.model);
|
|
@@ -184,7 +184,7 @@ export class AzureFoundryDriver extends AbstractDriver<AzureFoundryDriverOptions
|
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
private async *processStreamResponse(sseStream: any): AsyncIterable<
|
|
187
|
+
private async *processStreamResponse(sseStream: any): AsyncIterable<CompletionChunkObject> {
|
|
188
188
|
try {
|
|
189
189
|
for await (const event of sseStream) {
|
|
190
190
|
if (event.data === "[DONE]") {
|
|
@@ -201,7 +201,7 @@ export class AzureFoundryDriver extends AbstractDriver<AzureFoundryDriverOptions
|
|
|
201
201
|
if (!choice) {
|
|
202
202
|
continue;
|
|
203
203
|
}
|
|
204
|
-
const chunk:
|
|
204
|
+
const chunk: CompletionChunkObject = {
|
|
205
205
|
result: choice.delta?.content || "",
|
|
206
206
|
finish_reason: this.convertFinishReason(choice.finish_reason),
|
|
207
207
|
token_usage: {
|
|
@@ -246,7 +246,7 @@ export class AzureFoundryDriver extends AbstractDriver<AzureFoundryDriverOptions
|
|
|
246
246
|
}
|
|
247
247
|
|
|
248
248
|
const completion: Completion = {
|
|
249
|
-
result: data,
|
|
249
|
+
result: data ? [{ type: "text", value: data }] : [],
|
|
250
250
|
token_usage: tokenInfo,
|
|
251
251
|
finish_reason: this.convertFinishReason(choice.finish_reason),
|
|
252
252
|
};
|
package/src/bedrock/index.ts
CHANGED
|
@@ -7,9 +7,9 @@ import { S3Client } from "@aws-sdk/client-s3";
|
|
|
7
7
|
import { AwsCredentialIdentity, Provider } from "@aws-sdk/types";
|
|
8
8
|
import {
|
|
9
9
|
AbstractDriver, AIModel, Completion, CompletionChunkObject, DataSource, DriverOptions, EmbeddingsOptions, EmbeddingsResult,
|
|
10
|
-
ExecutionOptions, ExecutionTokenUsage,
|
|
10
|
+
ExecutionOptions, ExecutionTokenUsage, Modalities, PromptSegment,
|
|
11
11
|
TextFallbackOptions, ToolDefinition, ToolUse, TrainingJob, TrainingJobStatus, TrainingOptions,
|
|
12
|
-
BedrockClaudeOptions, BedrockPalmyraOptions, getMaxTokensLimitBedrock, NovaCanvasOptions,
|
|
12
|
+
BedrockClaudeOptions, BedrockPalmyraOptions, BedrockGptOssOptions, getMaxTokensLimitBedrock, NovaCanvasOptions,
|
|
13
13
|
modelModalitiesToArray, getModelCapabilities,
|
|
14
14
|
StatelessExecutionOptions,
|
|
15
15
|
ModelOptions
|
|
@@ -20,6 +20,12 @@ import { LRUCache } from "mnemonist";
|
|
|
20
20
|
import { converseConcatMessages, converseJSONprefill, converseSystemToMessages, formatConversePrompt } from "./converse.js";
|
|
21
21
|
import { formatNovaImageGenerationPayload, NovaImageGenerationTaskType } from "./nova-image-payload.js";
|
|
22
22
|
import { forceUploadFile } from "./s3.js";
|
|
23
|
+
import {
|
|
24
|
+
formatTwelvelabsPegasusPrompt,
|
|
25
|
+
TwelvelabsPegasusRequest,
|
|
26
|
+
TwelvelabsMarengoRequest,
|
|
27
|
+
TwelvelabsMarengoResponse
|
|
28
|
+
} from "./twelvelabs.js";
|
|
23
29
|
|
|
24
30
|
const supportStreamingCache = new LRUCache<string, boolean>(4096);
|
|
25
31
|
|
|
@@ -84,7 +90,7 @@ function maxTokenFallbackClaude(option: StatelessExecutionOptions): number {
|
|
|
84
90
|
}
|
|
85
91
|
}
|
|
86
92
|
|
|
87
|
-
export type BedrockPrompt = NovaMessagesPrompt | ConverseRequest;
|
|
93
|
+
export type BedrockPrompt = NovaMessagesPrompt | ConverseRequest | TwelvelabsPegasusRequest;
|
|
88
94
|
|
|
89
95
|
export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockPrompt> {
|
|
90
96
|
|
|
@@ -129,6 +135,9 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
129
135
|
if (opts.model.includes("canvas")) {
|
|
130
136
|
return await formatNovaPrompt(segments, opts.result_schema);
|
|
131
137
|
}
|
|
138
|
+
if (opts.model.includes("twelvelabs.pegasus")) {
|
|
139
|
+
return await formatTwelvelabsPegasusPrompt(segments, opts);
|
|
140
|
+
}
|
|
132
141
|
return await formatConversePrompt(segments, opts);
|
|
133
142
|
}
|
|
134
143
|
|
|
@@ -171,7 +180,7 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
171
180
|
}
|
|
172
181
|
|
|
173
182
|
const completionResult: CompletionChunkObject = {
|
|
174
|
-
result: reasoning + resultText,
|
|
183
|
+
result: reasoning + resultText ? [{ type: "text", value: reasoning + resultText }] : [],
|
|
175
184
|
token_usage: {
|
|
176
185
|
prompt: result.usage?.inputTokens,
|
|
177
186
|
result: result.usage?.outputTokens,
|
|
@@ -252,7 +261,7 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
252
261
|
}
|
|
253
262
|
|
|
254
263
|
const completionResult: CompletionChunkObject = {
|
|
255
|
-
result: reasoning + output,
|
|
264
|
+
result: reasoning + output ? [{ type: "text", value: reasoning + output }] : [],
|
|
256
265
|
token_usage: token_usage,
|
|
257
266
|
finish_reason: converseFinishReason(stop_reason),
|
|
258
267
|
};
|
|
@@ -320,6 +329,11 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
320
329
|
}
|
|
321
330
|
|
|
322
331
|
protected async canStream(options: ExecutionOptions): Promise<boolean> {
|
|
332
|
+
// // TwelveLabs Pegasus supports streaming according to the documentation
|
|
333
|
+
// if (options.model.includes("twelvelabs.pegasus")) {
|
|
334
|
+
// return true;
|
|
335
|
+
// }
|
|
336
|
+
|
|
323
337
|
let canStream = supportStreamingCache.get(options.model);
|
|
324
338
|
if (canStream == null) {
|
|
325
339
|
let type = BedrockModelType.Unknown;
|
|
@@ -336,8 +350,15 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
336
350
|
return canStream;
|
|
337
351
|
}
|
|
338
352
|
|
|
339
|
-
async requestTextCompletion(prompt:
|
|
340
|
-
|
|
353
|
+
async requestTextCompletion(prompt: BedrockPrompt, options: ExecutionOptions): Promise<Completion> {
|
|
354
|
+
// Handle Twelvelabs Pegasus models
|
|
355
|
+
if (options.model.includes("twelvelabs.pegasus")) {
|
|
356
|
+
return this.requestTwelvelabsPegasusCompletion(prompt as TwelvelabsPegasusRequest, options);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
// Handle other Bedrock models that use Converse API
|
|
360
|
+
const conversePrompt = prompt as ConverseRequest;
|
|
361
|
+
let conversation = updateConversation(options.conversation as ConverseRequest, conversePrompt);
|
|
341
362
|
|
|
342
363
|
const payload = this.preparePayload(conversation, options);
|
|
343
364
|
const executor = this.getExecutor();
|
|
@@ -348,7 +369,7 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
348
369
|
|
|
349
370
|
conversation = updateConversation(conversation, {
|
|
350
371
|
messages: [res.output?.message ?? { content: [{ text: "" }], role: "assistant" }],
|
|
351
|
-
modelId:
|
|
372
|
+
modelId: conversePrompt.modelId,
|
|
352
373
|
});
|
|
353
374
|
|
|
354
375
|
let tool_use: ToolUse[] | undefined = undefined;
|
|
@@ -369,7 +390,7 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
369
390
|
}
|
|
370
391
|
|
|
371
392
|
const completion = {
|
|
372
|
-
...this.getExtractedExecution(res,
|
|
393
|
+
...this.getExtractedExecution(res, conversePrompt, options),
|
|
373
394
|
original_response: options.include_original_response ? res : undefined,
|
|
374
395
|
conversation: conversation,
|
|
375
396
|
tool_use: tool_use,
|
|
@@ -378,8 +399,104 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
378
399
|
return completion;
|
|
379
400
|
}
|
|
380
401
|
|
|
381
|
-
async
|
|
382
|
-
const
|
|
402
|
+
private async requestTwelvelabsPegasusCompletion(prompt: TwelvelabsPegasusRequest, options: ExecutionOptions): Promise<Completion> {
|
|
403
|
+
const executor = this.getExecutor();
|
|
404
|
+
|
|
405
|
+
const res = await executor.invokeModel({
|
|
406
|
+
modelId: options.model,
|
|
407
|
+
contentType: "application/json",
|
|
408
|
+
accept: "application/json",
|
|
409
|
+
body: JSON.stringify(prompt),
|
|
410
|
+
});
|
|
411
|
+
|
|
412
|
+
const decoder = new TextDecoder();
|
|
413
|
+
const body = decoder.decode(res.body);
|
|
414
|
+
const result = JSON.parse(body);
|
|
415
|
+
|
|
416
|
+
// Extract the response according to TwelveLabs Pegasus format
|
|
417
|
+
let finishReason: string | undefined;
|
|
418
|
+
switch (result.finishReason) {
|
|
419
|
+
case "stop":
|
|
420
|
+
finishReason = "stop";
|
|
421
|
+
break;
|
|
422
|
+
case "length":
|
|
423
|
+
finishReason = "length";
|
|
424
|
+
break;
|
|
425
|
+
default:
|
|
426
|
+
finishReason = result.finishReason;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
return {
|
|
430
|
+
result: result.message ? [{ type: "text" as const, value: result.message }] : [],
|
|
431
|
+
finish_reason: finishReason,
|
|
432
|
+
original_response: options.include_original_response ? result : undefined,
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
private async requestTwelvelabsPegasusCompletionStream(prompt: TwelvelabsPegasusRequest, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>> {
|
|
437
|
+
const executor = this.getExecutor();
|
|
438
|
+
|
|
439
|
+
const res = await executor.invokeModelWithResponseStream({
|
|
440
|
+
modelId: options.model,
|
|
441
|
+
contentType: "application/json",
|
|
442
|
+
accept: "application/json",
|
|
443
|
+
body: JSON.stringify(prompt),
|
|
444
|
+
});
|
|
445
|
+
|
|
446
|
+
if (!res.body) {
|
|
447
|
+
throw new Error("[Bedrock] Stream not found in response");
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
return transformAsyncIterator(res.body, (chunk: any) => {
|
|
451
|
+
if (chunk.chunk?.bytes) {
|
|
452
|
+
const decoder = new TextDecoder();
|
|
453
|
+
const body = decoder.decode(chunk.chunk.bytes);
|
|
454
|
+
|
|
455
|
+
try {
|
|
456
|
+
const result = JSON.parse(body);
|
|
457
|
+
|
|
458
|
+
// Extract streaming response according to TwelveLabs Pegasus format
|
|
459
|
+
let finishReason: string | undefined;
|
|
460
|
+
if (result.finishReason) {
|
|
461
|
+
switch (result.finishReason) {
|
|
462
|
+
case "stop":
|
|
463
|
+
finishReason = "stop";
|
|
464
|
+
break;
|
|
465
|
+
case "length":
|
|
466
|
+
finishReason = "length";
|
|
467
|
+
break;
|
|
468
|
+
default:
|
|
469
|
+
finishReason = result.finishReason;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
return {
|
|
474
|
+
result: result.delta || result.message ? [{ type: "text" as const, value: result.delta || result.message || "" }] : [],
|
|
475
|
+
finish_reason: finishReason,
|
|
476
|
+
} satisfies CompletionChunkObject;
|
|
477
|
+
} catch (error) {
|
|
478
|
+
// If JSON parsing fails, return empty chunk
|
|
479
|
+
return {
|
|
480
|
+
result: [],
|
|
481
|
+
} satisfies CompletionChunkObject;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
return {
|
|
486
|
+
result: [],
|
|
487
|
+
} satisfies CompletionChunkObject;
|
|
488
|
+
});
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
async requestTextCompletionStream(prompt: BedrockPrompt, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>> {
|
|
492
|
+
// Handle Twelvelabs Pegasus models
|
|
493
|
+
if (options.model.includes("twelvelabs.pegasus")) {
|
|
494
|
+
return this.requestTwelvelabsPegasusCompletionStream(prompt as TwelvelabsPegasusRequest, options);
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
// Handle other Bedrock models that use Converse API
|
|
498
|
+
const conversePrompt = prompt as ConverseRequest;
|
|
499
|
+
const payload = this.preparePayload(conversePrompt, options);
|
|
383
500
|
const executor = this.getExecutor();
|
|
384
501
|
return executor.converseStream({
|
|
385
502
|
...payload,
|
|
@@ -391,7 +508,7 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
391
508
|
}
|
|
392
509
|
|
|
393
510
|
return transformAsyncIterator(stream, (streamSegment: ConverseStreamOutput) => {
|
|
394
|
-
return this.getExtractedStream(streamSegment,
|
|
511
|
+
return this.getExtractedStream(streamSegment, conversePrompt, options);
|
|
395
512
|
});
|
|
396
513
|
|
|
397
514
|
}).catch((err) => {
|
|
@@ -443,7 +560,6 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
443
560
|
} else if (options.model.includes("mistral")) {
|
|
444
561
|
//7B instruct and 8x7B instruct
|
|
445
562
|
if (options.model.includes("7b")) {
|
|
446
|
-
supportsJSONPrefill = true;
|
|
447
563
|
additionalField = { top_k: model_options.top_k };
|
|
448
564
|
//Does not support system messages
|
|
449
565
|
if (prompt.system && prompt.system?.length != 0) {
|
|
@@ -499,12 +615,17 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
499
615
|
}
|
|
500
616
|
} else if (options.model.includes("deepseek")) {
|
|
501
617
|
//DeepSeek models support no additional options
|
|
618
|
+
} else if (options.model.includes("gpt-oss")) {
|
|
619
|
+
const gptOssOptions = model_options as ModelOptions as BedrockGptOssOptions;
|
|
620
|
+
additionalField = {
|
|
621
|
+
reasoning_effort: gptOssOptions?.reasoning_effort,
|
|
622
|
+
};
|
|
502
623
|
}
|
|
503
624
|
|
|
504
625
|
//If last message is "```json", add corresponding ``` as a stop sequence.
|
|
505
626
|
if (prompt.messages && prompt.messages.length > 0) {
|
|
506
627
|
if (prompt.messages[prompt.messages.length - 1].content?.[0].text === "```json") {
|
|
507
|
-
|
|
628
|
+
const stopSeq = model_options.stop_sequence;
|
|
508
629
|
if (!stopSeq) {
|
|
509
630
|
model_options.stop_sequence = ["```"];
|
|
510
631
|
} else if (!stopSeq.includes("```")) {
|
|
@@ -536,8 +657,8 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
536
657
|
}
|
|
537
658
|
};
|
|
538
659
|
|
|
539
|
-
//Only add tools if they are defined
|
|
540
|
-
if (tool_defs) {
|
|
660
|
+
//Only add tools if they are defined and not empty
|
|
661
|
+
if (tool_defs?.length) {
|
|
541
662
|
request.toolConfig = {
|
|
542
663
|
tools: tool_defs,
|
|
543
664
|
}
|
|
@@ -547,7 +668,7 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
547
668
|
}
|
|
548
669
|
|
|
549
670
|
|
|
550
|
-
async requestImageGeneration(prompt: NovaMessagesPrompt, options: ExecutionOptions): Promise<Completion
|
|
671
|
+
async requestImageGeneration(prompt: NovaMessagesPrompt, options: ExecutionOptions): Promise<Completion> {
|
|
551
672
|
if (options.output_modality !== Modalities.image) {
|
|
552
673
|
throw new Error(`Image generation requires image output_modality`);
|
|
553
674
|
}
|
|
@@ -579,13 +700,14 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
579
700
|
|
|
580
701
|
const decoder = new TextDecoder();
|
|
581
702
|
const body = decoder.decode(res.body);
|
|
582
|
-
const
|
|
703
|
+
const bedrockResult = JSON.parse(body);
|
|
583
704
|
|
|
584
705
|
return {
|
|
585
|
-
error:
|
|
586
|
-
result: {
|
|
587
|
-
|
|
588
|
-
|
|
706
|
+
error: bedrockResult.error,
|
|
707
|
+
result: bedrockResult.images.map((image: any) => ({
|
|
708
|
+
type: "image" as const,
|
|
709
|
+
value: image
|
|
710
|
+
}))
|
|
589
711
|
}
|
|
590
712
|
}
|
|
591
713
|
|
|
@@ -698,16 +820,21 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
698
820
|
foundationModels = foundationModels.filter(foundationFilter);
|
|
699
821
|
}
|
|
700
822
|
|
|
701
|
-
const supportedPublishers = ["amazon", "anthropic", "cohere", "ai21",
|
|
823
|
+
const supportedPublishers = ["amazon", "anthropic", "cohere", "ai21",
|
|
824
|
+
"mistral", "meta", "deepseek", "writer",
|
|
825
|
+
"openai", "twelvelabs", "qwen"];
|
|
702
826
|
const unsupportedModelsByPublisher = {
|
|
703
827
|
amazon: ["titan-image-generator", "nova-reel", "nova-sonic", "rerank"],
|
|
704
828
|
anthropic: [],
|
|
705
|
-
cohere: ["rerank"],
|
|
829
|
+
cohere: ["rerank", "embed"],
|
|
706
830
|
ai21: [],
|
|
707
831
|
mistral: [],
|
|
708
832
|
meta: [],
|
|
709
833
|
deepseek: [],
|
|
710
834
|
writer: [],
|
|
835
|
+
openai: [],
|
|
836
|
+
twelvelabs: ["marengo"],
|
|
837
|
+
qwen: [],
|
|
711
838
|
};
|
|
712
839
|
|
|
713
840
|
// Helper function to check if model should be filtered out
|
|
@@ -833,6 +960,13 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
833
960
|
async generateEmbeddings({ text, image, model }: EmbeddingsOptions): Promise<EmbeddingsResult> {
|
|
834
961
|
|
|
835
962
|
this.logger.info("[Bedrock] Generating embeddings with model " + model);
|
|
963
|
+
|
|
964
|
+
// Handle TwelveLabs Marengo models
|
|
965
|
+
if (model?.includes("twelvelabs.marengo")) {
|
|
966
|
+
return this.generateTwelvelabsMarengoEmbeddings({ text, image, model });
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
// Handle other Bedrock embedding models
|
|
836
970
|
const defaultModel = image ? "amazon.titan-embed-image-v1" : "amazon.titan-embed-text-v2:0";
|
|
837
971
|
const modelID = model ?? defaultModel;
|
|
838
972
|
|
|
@@ -865,6 +999,51 @@ export class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockP
|
|
|
865
999
|
token_count: result.inputTextTokenCount
|
|
866
1000
|
};
|
|
867
1001
|
}
|
|
1002
|
+
|
|
1003
|
+
private async generateTwelvelabsMarengoEmbeddings({ text, image, model }: EmbeddingsOptions): Promise<EmbeddingsResult> {
|
|
1004
|
+
const executor = this.getExecutor();
|
|
1005
|
+
|
|
1006
|
+
// Prepare the request payload for TwelveLabs Marengo
|
|
1007
|
+
let invokeBody: TwelvelabsMarengoRequest = {
|
|
1008
|
+
inputType: "text"
|
|
1009
|
+
};
|
|
1010
|
+
|
|
1011
|
+
if (text) {
|
|
1012
|
+
invokeBody.inputText = text;
|
|
1013
|
+
invokeBody.inputType = "text";
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
if (image) {
|
|
1017
|
+
// For the embeddings interface, image is expected to be base64
|
|
1018
|
+
invokeBody.mediaSource = {
|
|
1019
|
+
base64String: image
|
|
1020
|
+
};
|
|
1021
|
+
invokeBody.inputType = "image";
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
const res = await executor.invokeModel({
|
|
1025
|
+
modelId: model!,
|
|
1026
|
+
contentType: "application/json",
|
|
1027
|
+
accept: "application/json",
|
|
1028
|
+
body: JSON.stringify(invokeBody),
|
|
1029
|
+
});
|
|
1030
|
+
|
|
1031
|
+
const decoder = new TextDecoder();
|
|
1032
|
+
const body = decoder.decode(res.body);
|
|
1033
|
+
const result: TwelvelabsMarengoResponse = JSON.parse(body);
|
|
1034
|
+
|
|
1035
|
+
// TwelveLabs Marengo returns embedding data
|
|
1036
|
+
if (!result.embedding) {
|
|
1037
|
+
throw new Error("Embeddings not found in TwelveLabs Marengo response");
|
|
1038
|
+
}
|
|
1039
|
+
|
|
1040
|
+
return {
|
|
1041
|
+
values: result.embedding,
|
|
1042
|
+
model: model!,
|
|
1043
|
+
// TwelveLabs Marengo doesn't return token count in the same way
|
|
1044
|
+
token_count: undefined
|
|
1045
|
+
};
|
|
1046
|
+
}
|
|
868
1047
|
}
|
|
869
1048
|
|
|
870
1049
|
function jobInfo(job: GetModelCustomizationJobCommandOutput, jobId: string): TrainingJob {
|