@llumiverse/drivers 0.8.0
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/bedrock/index.js +338 -0
- package/lib/cjs/bedrock/index.js.map +1 -0
- package/lib/cjs/bedrock/s3.js +61 -0
- package/lib/cjs/bedrock/s3.js.map +1 -0
- package/lib/cjs/huggingface_ie.js +181 -0
- package/lib/cjs/huggingface_ie.js.map +1 -0
- package/lib/cjs/index.js +24 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/openai.js +205 -0
- package/lib/cjs/openai.js.map +1 -0
- package/lib/cjs/package.json +3 -0
- package/lib/cjs/replicate.js +290 -0
- package/lib/cjs/replicate.js.map +1 -0
- package/lib/cjs/test/TestErrorCompletionStream.js +20 -0
- package/lib/cjs/test/TestErrorCompletionStream.js.map +1 -0
- package/lib/cjs/test/TestValidationErrorCompletionStream.js +24 -0
- package/lib/cjs/test/TestValidationErrorCompletionStream.js.map +1 -0
- package/lib/cjs/test/index.js +109 -0
- package/lib/cjs/test/index.js.map +1 -0
- package/lib/cjs/test/utils.js +31 -0
- package/lib/cjs/test/utils.js.map +1 -0
- package/lib/cjs/togetherai/index.js +92 -0
- package/lib/cjs/togetherai/index.js.map +1 -0
- package/lib/cjs/togetherai/interfaces.js +3 -0
- package/lib/cjs/togetherai/interfaces.js.map +1 -0
- package/lib/cjs/vertexai/debug.js +13 -0
- package/lib/cjs/vertexai/debug.js.map +1 -0
- package/lib/cjs/vertexai/index.js +80 -0
- package/lib/cjs/vertexai/index.js.map +1 -0
- package/lib/cjs/vertexai/models/codey-chat.js +65 -0
- package/lib/cjs/vertexai/models/codey-chat.js.map +1 -0
- package/lib/cjs/vertexai/models/codey-text.js +35 -0
- package/lib/cjs/vertexai/models/codey-text.js.map +1 -0
- package/lib/cjs/vertexai/models/gemini.js +140 -0
- package/lib/cjs/vertexai/models/gemini.js.map +1 -0
- package/lib/cjs/vertexai/models/palm-model-base.js +65 -0
- package/lib/cjs/vertexai/models/palm-model-base.js.map +1 -0
- package/lib/cjs/vertexai/models/palm2-chat.js +65 -0
- package/lib/cjs/vertexai/models/palm2-chat.js.map +1 -0
- package/lib/cjs/vertexai/models/palm2-text.js +35 -0
- package/lib/cjs/vertexai/models/palm2-text.js.map +1 -0
- package/lib/cjs/vertexai/models.js +93 -0
- package/lib/cjs/vertexai/models.js.map +1 -0
- package/lib/cjs/vertexai/utils/prompts.js +52 -0
- package/lib/cjs/vertexai/utils/prompts.js.map +1 -0
- package/lib/cjs/vertexai/utils/tensor.js +87 -0
- package/lib/cjs/vertexai/utils/tensor.js.map +1 -0
- package/lib/esm/bedrock/index.js +331 -0
- package/lib/esm/bedrock/index.js.map +1 -0
- package/lib/esm/bedrock/s3.js +53 -0
- package/lib/esm/bedrock/s3.js.map +1 -0
- package/lib/esm/huggingface_ie.js +177 -0
- package/lib/esm/huggingface_ie.js.map +1 -0
- package/lib/esm/index.js +8 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/openai.js +198 -0
- package/lib/esm/openai.js.map +1 -0
- package/lib/esm/replicate.js +283 -0
- package/lib/esm/replicate.js.map +1 -0
- package/lib/esm/test/TestErrorCompletionStream.js +16 -0
- package/lib/esm/test/TestErrorCompletionStream.js.map +1 -0
- package/lib/esm/test/TestValidationErrorCompletionStream.js +20 -0
- package/lib/esm/test/TestValidationErrorCompletionStream.js.map +1 -0
- package/lib/esm/test/index.js +91 -0
- package/lib/esm/test/index.js.map +1 -0
- package/lib/esm/test/utils.js +25 -0
- package/lib/esm/test/utils.js.map +1 -0
- package/lib/esm/togetherai/index.js +88 -0
- package/lib/esm/togetherai/index.js.map +1 -0
- package/lib/esm/togetherai/interfaces.js +2 -0
- package/lib/esm/togetherai/interfaces.js.map +1 -0
- package/lib/esm/vertexai/debug.js +6 -0
- package/lib/esm/vertexai/debug.js.map +1 -0
- package/lib/esm/vertexai/index.js +76 -0
- package/lib/esm/vertexai/index.js.map +1 -0
- package/lib/esm/vertexai/models/codey-chat.js +61 -0
- package/lib/esm/vertexai/models/codey-chat.js.map +1 -0
- package/lib/esm/vertexai/models/codey-text.js +31 -0
- package/lib/esm/vertexai/models/codey-text.js.map +1 -0
- package/lib/esm/vertexai/models/gemini.js +136 -0
- package/lib/esm/vertexai/models/gemini.js.map +1 -0
- package/lib/esm/vertexai/models/palm-model-base.js +61 -0
- package/lib/esm/vertexai/models/palm-model-base.js.map +1 -0
- package/lib/esm/vertexai/models/palm2-chat.js +61 -0
- package/lib/esm/vertexai/models/palm2-chat.js.map +1 -0
- package/lib/esm/vertexai/models/palm2-text.js +31 -0
- package/lib/esm/vertexai/models/palm2-text.js.map +1 -0
- package/lib/esm/vertexai/models.js +87 -0
- package/lib/esm/vertexai/models.js.map +1 -0
- package/lib/esm/vertexai/utils/prompts.js +47 -0
- package/lib/esm/vertexai/utils/prompts.js.map +1 -0
- package/lib/esm/vertexai/utils/tensor.js +82 -0
- package/lib/esm/vertexai/utils/tensor.js.map +1 -0
- package/lib/types/bedrock/index.d.ts +88 -0
- package/lib/types/bedrock/index.d.ts.map +1 -0
- package/lib/types/bedrock/s3.d.ts +20 -0
- package/lib/types/bedrock/s3.d.ts.map +1 -0
- package/lib/types/huggingface_ie.d.ts +36 -0
- package/lib/types/huggingface_ie.d.ts.map +1 -0
- package/lib/types/index.d.ts +8 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/openai.d.ts +36 -0
- package/lib/types/openai.d.ts.map +1 -0
- package/lib/types/replicate.d.ts +52 -0
- package/lib/types/replicate.d.ts.map +1 -0
- package/lib/types/test/TestErrorCompletionStream.d.ts +9 -0
- package/lib/types/test/TestErrorCompletionStream.d.ts.map +1 -0
- package/lib/types/test/TestValidationErrorCompletionStream.d.ts +9 -0
- package/lib/types/test/TestValidationErrorCompletionStream.d.ts.map +1 -0
- package/lib/types/test/index.d.ts +27 -0
- package/lib/types/test/index.d.ts.map +1 -0
- package/lib/types/test/utils.d.ts +5 -0
- package/lib/types/test/utils.d.ts.map +1 -0
- package/lib/types/togetherai/index.d.ts +23 -0
- package/lib/types/togetherai/index.d.ts.map +1 -0
- package/lib/types/togetherai/interfaces.d.ts +81 -0
- package/lib/types/togetherai/interfaces.d.ts.map +1 -0
- package/lib/types/vertexai/debug.d.ts +2 -0
- package/lib/types/vertexai/debug.d.ts.map +1 -0
- package/lib/types/vertexai/index.d.ts +26 -0
- package/lib/types/vertexai/index.d.ts.map +1 -0
- package/lib/types/vertexai/models/codey-chat.d.ts +51 -0
- package/lib/types/vertexai/models/codey-chat.d.ts.map +1 -0
- package/lib/types/vertexai/models/codey-text.d.ts +39 -0
- package/lib/types/vertexai/models/codey-text.d.ts.map +1 -0
- package/lib/types/vertexai/models/gemini.d.ts +11 -0
- package/lib/types/vertexai/models/gemini.d.ts.map +1 -0
- package/lib/types/vertexai/models/palm-model-base.d.ts +47 -0
- package/lib/types/vertexai/models/palm-model-base.d.ts.map +1 -0
- package/lib/types/vertexai/models/palm2-chat.d.ts +61 -0
- package/lib/types/vertexai/models/palm2-chat.d.ts.map +1 -0
- package/lib/types/vertexai/models/palm2-text.d.ts +39 -0
- package/lib/types/vertexai/models/palm2-text.d.ts.map +1 -0
- package/lib/types/vertexai/models.d.ts +14 -0
- package/lib/types/vertexai/models.d.ts.map +1 -0
- package/lib/types/vertexai/utils/prompts.d.ts +20 -0
- package/lib/types/vertexai/utils/prompts.d.ts.map +1 -0
- package/lib/types/vertexai/utils/tensor.d.ts +6 -0
- package/lib/types/vertexai/utils/tensor.d.ts.map +1 -0
- package/package.json +72 -0
- package/src/bedrock/index.ts +456 -0
- package/src/bedrock/s3.ts +62 -0
- package/src/huggingface_ie.ts +269 -0
- package/src/index.ts +7 -0
- package/src/openai.ts +254 -0
- package/src/replicate.ts +333 -0
- package/src/test/TestErrorCompletionStream.ts +17 -0
- package/src/test/TestValidationErrorCompletionStream.ts +21 -0
- package/src/test/index.ts +102 -0
- package/src/test/utils.ts +28 -0
- package/src/togetherai/index.ts +105 -0
- package/src/togetherai/interfaces.ts +88 -0
- package/src/vertexai/README.md +257 -0
- package/src/vertexai/debug.ts +6 -0
- package/src/vertexai/index.ts +99 -0
- package/src/vertexai/models/codey-chat.ts +115 -0
- package/src/vertexai/models/codey-text.ts +69 -0
- package/src/vertexai/models/gemini.ts +152 -0
- package/src/vertexai/models/palm-model-base.ts +122 -0
- package/src/vertexai/models/palm2-chat.ts +119 -0
- package/src/vertexai/models/palm2-text.ts +69 -0
- package/src/vertexai/models.ts +104 -0
- package/src/vertexai/utils/prompts.ts +66 -0
- package/src/vertexai/utils/tensor.ts +82 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbstractPalmModelDefinition = void 0;
|
|
4
|
+
const tensor_js_1 = require("../utils/tensor.js");
|
|
5
|
+
class AbstractPalmModelDefinition {
|
|
6
|
+
createPrompt(driver, segments, options) {
|
|
7
|
+
return this.createNonStreamingPrompt(driver, segments, options);
|
|
8
|
+
}
|
|
9
|
+
async requestCompletion(driver, prompt, options) {
|
|
10
|
+
const nonStreamingPrompt = prompt;
|
|
11
|
+
Object.assign((nonStreamingPrompt).parameters, {
|
|
12
|
+
temperature: options.temperature,
|
|
13
|
+
maxOutputTokens: options.max_tokens,
|
|
14
|
+
});
|
|
15
|
+
const response = await driver.fetchClient.post(`/publishers/google/models/${this.model.id}:predict`, {
|
|
16
|
+
payload: nonStreamingPrompt
|
|
17
|
+
});
|
|
18
|
+
const metadata = response.metadata;
|
|
19
|
+
const inputTokens = metadata.tokenMetadata.inputTokenCount.totalTokens;
|
|
20
|
+
const outputTokens = metadata.tokenMetadata.outputTokenCount.totalTokens;
|
|
21
|
+
const result = this.extractContentFromResponse(response);
|
|
22
|
+
return {
|
|
23
|
+
result,
|
|
24
|
+
token_usage: {
|
|
25
|
+
prompt: inputTokens,
|
|
26
|
+
result: outputTokens,
|
|
27
|
+
total: inputTokens && outputTokens ? inputTokens + outputTokens : undefined,
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
async requestCompletionStream(driver, prompt, options) {
|
|
32
|
+
const inPrompt = prompt;
|
|
33
|
+
Object.assign(inPrompt.parameters, {
|
|
34
|
+
temperature: options.temperature,
|
|
35
|
+
maxOutputTokens: options.max_tokens,
|
|
36
|
+
});
|
|
37
|
+
const path = `/publishers/google/models/${this.model.id}:serverStreamingPredict?alt=sse`;
|
|
38
|
+
const newPrompt = (0, tensor_js_1.generateStreamingPrompt)(inPrompt);
|
|
39
|
+
// we need to modify the existing prompt since it is not the final one
|
|
40
|
+
const outPrompt = prompt;
|
|
41
|
+
delete outPrompt.instances;
|
|
42
|
+
outPrompt.inputs = newPrompt.inputs;
|
|
43
|
+
outPrompt.parameters = newPrompt.parameters;
|
|
44
|
+
const eventStrean = await driver.fetchClient.post(path, {
|
|
45
|
+
payload: newPrompt,
|
|
46
|
+
reader: 'sse'
|
|
47
|
+
});
|
|
48
|
+
return eventStrean.pipeThrough(new ChunkTransformStream(this));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.AbstractPalmModelDefinition = AbstractPalmModelDefinition;
|
|
52
|
+
class ChunkTransformStream extends TransformStream {
|
|
53
|
+
constructor(def) {
|
|
54
|
+
super({
|
|
55
|
+
transform(event, controller) {
|
|
56
|
+
if (event.type === 'event' && event.data) {
|
|
57
|
+
const data = JSON.parse(event.data);
|
|
58
|
+
const stringChunk = def.extractContentFromResponseChunk(data);
|
|
59
|
+
controller.enqueue(Array.isArray(stringChunk) ? stringChunk.join('') : stringChunk);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=palm-model-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palm-model-base.js","sourceRoot":"","sources":["../../../../src/vertexai/models/palm-model-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Palm2ChatDefinition = void 0;
|
|
4
|
+
const core_1 = require("@llumiverse/core");
|
|
5
|
+
const prompts_js_1 = require("../utils/prompts.js");
|
|
6
|
+
const palm_model_base_js_1 = require("./palm-model-base.js");
|
|
7
|
+
class Palm2ChatDefinition extends palm_model_base_js_1.AbstractPalmModelDefinition {
|
|
8
|
+
versions = [];
|
|
9
|
+
model = {
|
|
10
|
+
id: "chat-bison",
|
|
11
|
+
name: "PaLM 2 for Chat",
|
|
12
|
+
provider: "vertexai",
|
|
13
|
+
owner: "google",
|
|
14
|
+
type: core_1.ModelType.Chat,
|
|
15
|
+
canStream: true,
|
|
16
|
+
};
|
|
17
|
+
createNonStreamingPrompt(_driver, segments, opts) {
|
|
18
|
+
const system = [];
|
|
19
|
+
const messages = [];
|
|
20
|
+
const safety = [];
|
|
21
|
+
for (const segment of segments) {
|
|
22
|
+
switch (segment.role) {
|
|
23
|
+
case core_1.PromptRole.user:
|
|
24
|
+
messages.push({ author: 'user', content: segment.content });
|
|
25
|
+
break;
|
|
26
|
+
case core_1.PromptRole.assistant:
|
|
27
|
+
messages.push({ author: 'assistant', content: segment.content });
|
|
28
|
+
break;
|
|
29
|
+
case core_1.PromptRole.system:
|
|
30
|
+
system.push(segment.content);
|
|
31
|
+
break;
|
|
32
|
+
case core_1.PromptRole.safety:
|
|
33
|
+
safety.push(segment.content);
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (opts.resultSchema) {
|
|
38
|
+
safety.push((0, prompts_js_1.getJSONSafetyNotice)(opts.resultSchema));
|
|
39
|
+
}
|
|
40
|
+
const context = [];
|
|
41
|
+
if (system.length > 0) {
|
|
42
|
+
context.push(system.join('\n'));
|
|
43
|
+
}
|
|
44
|
+
if (safety.length > 0) {
|
|
45
|
+
context.push('IMPORTANT: ' + safety.join('\n'));
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
instances: [{
|
|
49
|
+
context: context.length > 0 ? context.join('\n') : undefined,
|
|
50
|
+
messages
|
|
51
|
+
}],
|
|
52
|
+
parameters: {
|
|
53
|
+
// put defauilts here
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
extractContentFromResponse(response) {
|
|
58
|
+
return response.predictions[0].candidates[0].content ?? '';
|
|
59
|
+
}
|
|
60
|
+
extractContentFromResponseChunk(chunk) {
|
|
61
|
+
return chunk.outputs[0]?.structVal.candidates.listVal[0].structVal.content.stringVal || '';
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.Palm2ChatDefinition = Palm2ChatDefinition;
|
|
65
|
+
//# sourceMappingURL=palm2-chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palm2-chat.js","sourceRoot":"","sources":["../../../../src/vertexai/models/palm2-chat.ts"],"names":[],"mappings":";;;AAAA,2CAAgG;AAEhG,oDAA0D;AAC1D,6DAAsI;AAqDtI,MAAa,mBAAoB,SAAQ,gDAAsE;IAC3G,QAAQ,GAAa,EAAE,CAAC;IACxB,KAAK,GAAY;QACb,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,gBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;KAClB,CAAA;IAED,wBAAwB,CAAC,OAAuB,EAAE,QAAyB,EAAE,IAAmB;QAC5F,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAuB,EAAE,CAAC;QACxC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,iBAAU,CAAC,IAAI;oBAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC5D,MAAM;gBACV,KAAK,iBAAU,CAAC,SAAS;oBACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;oBACjE,MAAM;gBACV,KAAK,iBAAU,CAAC,MAAM;oBAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC7B,MAAM;gBACV,KAAK,iBAAU,CAAC,MAAM;oBAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC7B,MAAM;YACd,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,IAAA,gCAAmB,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAA;QAClB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO;YACH,SAAS,EAAE,CAAC;oBACR,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC5D,QAAQ;iBACX,CAAC;YACF,UAAU,EAAE;YACR,qBAAqB;aACxB;SACe,CAAC;IACzB,CAAC;IAED,0BAA0B,CAAC,QAA2B;QAClD,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;IAC/D,CAAC;IAED,+BAA+B,CAAC,KAAU;QACtC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAA;IAC9F,CAAC;CACJ;AA9DD,kDA8DC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Palm2TextDefinition = void 0;
|
|
4
|
+
const core_1 = require("@llumiverse/core");
|
|
5
|
+
const prompts_js_1 = require("../utils/prompts.js");
|
|
6
|
+
const palm_model_base_js_1 = require("./palm-model-base.js");
|
|
7
|
+
class Palm2TextDefinition extends palm_model_base_js_1.AbstractPalmModelDefinition {
|
|
8
|
+
versions = [];
|
|
9
|
+
model = {
|
|
10
|
+
id: "text-bison",
|
|
11
|
+
name: "PaLM 2 for Text",
|
|
12
|
+
provider: "vertexai",
|
|
13
|
+
owner: "google",
|
|
14
|
+
type: core_1.ModelType.Text,
|
|
15
|
+
canStream: true,
|
|
16
|
+
};
|
|
17
|
+
createNonStreamingPrompt(_driver, segments, opts) {
|
|
18
|
+
return {
|
|
19
|
+
instances: [{
|
|
20
|
+
prompt: (0, prompts_js_1.getPromptAsText)(segments, opts)
|
|
21
|
+
}],
|
|
22
|
+
parameters: {
|
|
23
|
+
// put defauilts here
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
extractContentFromResponse(response) {
|
|
28
|
+
return response.predictions[0].content ?? '';
|
|
29
|
+
}
|
|
30
|
+
extractContentFromResponseChunk(chunk) {
|
|
31
|
+
return chunk.outputs[0]?.structVal.content.stringVal || '';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.Palm2TextDefinition = Palm2TextDefinition;
|
|
35
|
+
//# sourceMappingURL=palm2-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palm2-text.js","sourceRoot":"","sources":["../../../../src/vertexai/models/palm2-text.ts"],"names":[],"mappings":";;;AAAA,2CAAoF;AAEpF,oDAAsD;AACtD,6DAAsI;AAmCtI,MAAa,mBAAoB,SAAQ,gDAAsE;IAC3G,QAAQ,GAAa,EAAE,CAAC;IACxB,KAAK,GAAY;QACb,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,gBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI;KAClB,CAAA;IAED,wBAAwB,CAAC,OAAuB,EAAE,QAAyB,EAAE,IAAmB;QAC5F,OAAO;YACH,SAAS,EAAE,CAAC;oBACR,MAAM,EAAE,IAAA,4BAAe,EAAC,QAAQ,EAAE,IAAI,CAAC;iBAC1C,CAAC;YACF,UAAU,EAAE;YACR,qBAAqB;aACxB;SACe,CAAC;IACzB,CAAC;IAED,0BAA0B,CAAC,QAA2B;QAClD,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;IACjD,CAAC;IAED,+BAA+B,CAAC,KAAU;QACtC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;IAC/D,CAAC;CAEJ;AA9BD,kDA8BC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BuiltinModels = exports.getAIModels = exports.getModelDefinition = exports.getModelName = void 0;
|
|
4
|
+
const core_1 = require("@llumiverse/core");
|
|
5
|
+
const gemini_js_1 = require("./models/gemini.js");
|
|
6
|
+
const palm2_text_js_1 = require("./models/palm2-text.js");
|
|
7
|
+
const palm2_chat_js_1 = require("./models/palm2-chat.js");
|
|
8
|
+
const codey_chat_js_1 = require("./models/codey-chat.js");
|
|
9
|
+
const codey_text_js_1 = require("./models/codey-text.js");
|
|
10
|
+
const Models = {
|
|
11
|
+
"gemini-pro": new gemini_js_1.GeminiModelDefinition(),
|
|
12
|
+
"text-bison": new palm2_text_js_1.Palm2TextDefinition(),
|
|
13
|
+
"chat-bison": new palm2_chat_js_1.Palm2ChatDefinition(),
|
|
14
|
+
"code-bison": new codey_text_js_1.CodeyTextDefinition(),
|
|
15
|
+
"codechat-bison": new codey_chat_js_1.CodeyChatDefinition(),
|
|
16
|
+
};
|
|
17
|
+
function getModelName(model) {
|
|
18
|
+
const i = model.lastIndexOf('@');
|
|
19
|
+
return i > -1 ? model.substring(0, i) : model;
|
|
20
|
+
}
|
|
21
|
+
exports.getModelName = getModelName;
|
|
22
|
+
function getModelDefinition(model) {
|
|
23
|
+
const def = Models[getModelName(model)];
|
|
24
|
+
if (!def) {
|
|
25
|
+
throw new Error(`Unknown model ${model}`);
|
|
26
|
+
}
|
|
27
|
+
return def;
|
|
28
|
+
}
|
|
29
|
+
exports.getModelDefinition = getModelDefinition;
|
|
30
|
+
function getAIModels() {
|
|
31
|
+
return Object.values(Models).map(m => m.model);
|
|
32
|
+
}
|
|
33
|
+
exports.getAIModels = getAIModels;
|
|
34
|
+
// Builtin models. VertexAI doesn't provide an API to list models. so we have to hardcode them here.
|
|
35
|
+
exports.BuiltinModels = [
|
|
36
|
+
{
|
|
37
|
+
id: "gemini-pro",
|
|
38
|
+
name: "Gemini Pro",
|
|
39
|
+
provider: "vertexai",
|
|
40
|
+
owner: "google",
|
|
41
|
+
type: core_1.ModelType.Text,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: "chat-bison",
|
|
45
|
+
name: "PaLM 2 Chat Bison",
|
|
46
|
+
provider: "vertexai",
|
|
47
|
+
owner: "google",
|
|
48
|
+
type: core_1.ModelType.Chat,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
id: "text-bison", // versions 001, 002
|
|
52
|
+
name: "PaLM 2 Text Bison",
|
|
53
|
+
provider: "vertexai",
|
|
54
|
+
owner: "google",
|
|
55
|
+
type: core_1.ModelType.Text,
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: "code-gecko",
|
|
59
|
+
name: "Codey for Code Completion",
|
|
60
|
+
provider: "vertexai",
|
|
61
|
+
owner: "google",
|
|
62
|
+
type: core_1.ModelType.Code,
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: "code-bison",
|
|
66
|
+
name: "Codey for Code Generation",
|
|
67
|
+
provider: "vertexai",
|
|
68
|
+
owner: "google",
|
|
69
|
+
type: core_1.ModelType.Code,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
id: "codechat-bison",
|
|
73
|
+
name: "Codey for Code Chat",
|
|
74
|
+
provider: "vertexai",
|
|
75
|
+
owner: "google",
|
|
76
|
+
type: core_1.ModelType.Code,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
id: "tablextembedding-gecko",
|
|
80
|
+
name: "Gecko Text Embeddings",
|
|
81
|
+
provider: "vertexai",
|
|
82
|
+
owner: "google",
|
|
83
|
+
type: core_1.ModelType.Embedding,
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: "textembedding-gecko-multilingual",
|
|
87
|
+
name: "Gecko Multilingual Text Embeddings",
|
|
88
|
+
provider: "vertexai",
|
|
89
|
+
owner: "google",
|
|
90
|
+
type: core_1.ModelType.Embedding,
|
|
91
|
+
},
|
|
92
|
+
];
|
|
93
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/vertexai/models.ts"],"names":[],"mappings":";;;AAAA,2CAAkH;AAClH,kDAA2D;AAE3D,0DAA6D;AAC7D,0DAA6D;AAC7D,0DAA6D;AAC7D,0DAA6D;AAG7D,MAAM,MAAM,GAAoC;IAC5C,YAAY,EAAE,IAAI,iCAAqB,EAAE;IACzC,YAAY,EAAE,IAAI,mCAAmB,EAAE;IACvC,YAAY,EAAE,IAAI,mCAAmB,EAAE;IACvC,YAAY,EAAE,IAAI,mCAAmB,EAAE;IACvC,gBAAgB,EAAE,IAAI,mCAAmB,EAAE;CAC9C,CAAA;AAUD,SAAgB,YAAY,CAAC,KAAa;IACtC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClD,CAAC;AAHD,oCAGC;AAED,SAAgB,kBAAkB,CAAC,KAAa;IAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAND,gDAMC;AAED,SAAgB,WAAW;IACvB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;AAFD,kCAEC;AAED,oGAAoG;AACvF,QAAA,aAAa,GAAsB;IAC5C;QACI,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,gBAAS,CAAC,IAAI;KACvB;IACD;QACI,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,gBAAS,CAAC,IAAI;KACvB;IACD;QACI,EAAE,EAAE,YAAY,EAAE,oBAAoB;QACtC,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,gBAAS,CAAC,IAAI;KACvB;IACD;QACI,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,gBAAS,CAAC,IAAI;KACvB;IACD;QACI,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,gBAAS,CAAC,IAAI;KACvB;IACD;QACI,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,gBAAS,CAAC,IAAI;KACvB;IACD;QACI,EAAE,EAAE,wBAAwB;QAC5B,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,gBAAS,CAAC,SAAS;KAC5B;IACD;QACI,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,oCAAoC;QAC1C,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,gBAAS,CAAC,SAAS;KAC5B;CAIJ,CAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPromptAsText = exports.getJSONSafetyNotice = void 0;
|
|
4
|
+
const core_1 = require("@llumiverse/core");
|
|
5
|
+
function getJSONSafetyNotice(schema) {
|
|
6
|
+
return "The answer must be a JSON object using the following JSON Schema:\n" + JSON.stringify(schema);
|
|
7
|
+
}
|
|
8
|
+
exports.getJSONSafetyNotice = getJSONSafetyNotice;
|
|
9
|
+
function getPromptAsText(segments, options) {
|
|
10
|
+
const isChat = segments.find(m => m.role === core_1.PromptRole.assistant);
|
|
11
|
+
const context = [];
|
|
12
|
+
const content = [];
|
|
13
|
+
const safety = [];
|
|
14
|
+
for (const segment of segments) {
|
|
15
|
+
switch (segment.role) {
|
|
16
|
+
case core_1.PromptRole.user:
|
|
17
|
+
if (isChat) {
|
|
18
|
+
content.push('USER: ' + segment.content);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
content.push(segment.content);
|
|
22
|
+
}
|
|
23
|
+
break;
|
|
24
|
+
case core_1.PromptRole.assistant:
|
|
25
|
+
content.push('ASSISTANT: ' + segment.content);
|
|
26
|
+
break;
|
|
27
|
+
case core_1.PromptRole.system:
|
|
28
|
+
context.push(segment.content);
|
|
29
|
+
break;
|
|
30
|
+
case core_1.PromptRole.safety:
|
|
31
|
+
safety.push(segment.content);
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (options.resultSchema) {
|
|
36
|
+
safety.push(getJSONSafetyNotice(options.resultSchema));
|
|
37
|
+
}
|
|
38
|
+
const out = [];
|
|
39
|
+
if (context.length > 0) {
|
|
40
|
+
out.push('CONTEXT: ' + context.join('\n'));
|
|
41
|
+
}
|
|
42
|
+
if (content.length > 0) {
|
|
43
|
+
const prefix = context.length > 0 && !isChat ? 'INSTRUCTION: ' : '';
|
|
44
|
+
out.push(prefix + content.join('\n'));
|
|
45
|
+
}
|
|
46
|
+
if (safety.length > 0) {
|
|
47
|
+
out.push('IMPORTANT: ' + safety.join('\n'));
|
|
48
|
+
}
|
|
49
|
+
return out.join('\n');
|
|
50
|
+
}
|
|
51
|
+
exports.getPromptAsText = getPromptAsText;
|
|
52
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../../src/vertexai/utils/prompts.ts"],"names":[],"mappings":";;;AAAA,2CAA4E;AAmB5E,SAAgB,mBAAmB,CAAC,MAAmB;IACnD,OAAO,qEAAqE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AACzG,CAAC;AAFD,kDAEC;AAED,SAAgB,eAAe,CAAC,QAAyB,EAAE,OAAsB;IAC7E,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAU,CAAC,SAAS,CAAC,CAAC;IACnE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,iBAAU,CAAC,IAAI;gBAChB,IAAI,MAAM,EAAE,CAAC;oBACT,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAClC,CAAC;gBACD,MAAM;YACV,KAAK,iBAAU,CAAC,SAAS;gBACrB,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC9C,MAAM;YACV,KAAK,iBAAU,CAAC,MAAM;gBAClB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC9B,MAAM;YACV,KAAK,iBAAU,CAAC,MAAM;gBAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC7B,MAAM;QACd,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AA1CD,0CA0CC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateStreamingPrompt = exports.formatArrayAsTensor = void 0;
|
|
4
|
+
function getTensorType(val) {
|
|
5
|
+
if (val == null) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
if (Array.isArray(val)) {
|
|
9
|
+
if (val.length > 0) {
|
|
10
|
+
val = val[0];
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
return 'listVal';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const type = typeof val;
|
|
17
|
+
if (type === 'string') {
|
|
18
|
+
return 'stringVal';
|
|
19
|
+
}
|
|
20
|
+
if (type === 'number') {
|
|
21
|
+
if (val % 1 === 0) { // is interger
|
|
22
|
+
return 'intVal';
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return 'floatVal';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (type === 'boolean') {
|
|
29
|
+
return 'boolVal';
|
|
30
|
+
}
|
|
31
|
+
if (type === 'object') {
|
|
32
|
+
return 'structVal';
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
function formatArrayAsTensor(arr) {
|
|
37
|
+
return arr.map(item => {
|
|
38
|
+
const type = typeof item;
|
|
39
|
+
if (type === 'string' || type === 'number' || type === 'boolean') {
|
|
40
|
+
return item; // primitve values
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return formatObjectAsTensor(item);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
exports.formatArrayAsTensor = formatArrayAsTensor;
|
|
48
|
+
/**
|
|
49
|
+
* Do not support nested array or nested object arrays
|
|
50
|
+
* @param obj
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
53
|
+
function formatObjectAsTensor(obj, isField = false) {
|
|
54
|
+
const struct = {};
|
|
55
|
+
const keys = Object.keys(obj);
|
|
56
|
+
for (const key of keys) {
|
|
57
|
+
//console.log('###', key);
|
|
58
|
+
const val = obj[key];
|
|
59
|
+
const type = getTensorType(val);
|
|
60
|
+
if (type === 'structVal') {
|
|
61
|
+
if (Array.isArray(val)) {
|
|
62
|
+
struct[key] = { listVal: formatArrayAsTensor(val) };
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
struct[key] = {
|
|
66
|
+
[type]: formatObjectAsTensor(val, true)
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else if (type) {
|
|
71
|
+
struct[key] = {
|
|
72
|
+
[type]: val
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return isField ? struct : {
|
|
77
|
+
structVal: struct
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function generateStreamingPrompt(prompt) {
|
|
81
|
+
return {
|
|
82
|
+
inputs: prompt.instances.map((inst) => formatObjectAsTensor(inst)),
|
|
83
|
+
parameters: formatObjectAsTensor(prompt.parameters)
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
exports.generateStreamingPrompt = generateStreamingPrompt;
|
|
87
|
+
//# sourceMappingURL=tensor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tensor.js","sourceRoot":"","sources":["../../../../src/vertexai/utils/tensor.ts"],"names":[],"mappings":"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"}
|