@llumiverse/drivers 0.9.2 → 0.11.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.
Files changed (182) hide show
  1. package/README.md +51 -7
  2. package/lib/cjs/bedrock/index.js +32 -8
  3. package/lib/cjs/bedrock/index.js.map +1 -1
  4. package/lib/cjs/bedrock/s3.js.map +1 -1
  5. package/lib/cjs/huggingface_ie.js +1 -7
  6. package/lib/cjs/huggingface_ie.js.map +1 -1
  7. package/lib/cjs/mistral/index.js +31 -29
  8. package/lib/cjs/mistral/index.js.map +1 -1
  9. package/lib/cjs/openai.js +4 -7
  10. package/lib/cjs/openai.js.map +1 -1
  11. package/lib/cjs/replicate.js +3 -5
  12. package/lib/cjs/replicate.js.map +1 -1
  13. package/lib/cjs/test/index.js.map +1 -1
  14. package/lib/cjs/togetherai/index.js +5 -12
  15. package/lib/cjs/togetherai/index.js.map +1 -1
  16. package/lib/cjs/vertexai/embeddings/embeddings-text.js +23 -0
  17. package/lib/cjs/vertexai/embeddings/embeddings-text.js.map +1 -0
  18. package/lib/cjs/vertexai/index.js +5 -8
  19. package/lib/cjs/vertexai/index.js.map +1 -1
  20. package/lib/cjs/vertexai/models/codey-chat.js +2 -2
  21. package/lib/cjs/vertexai/models/codey-chat.js.map +1 -1
  22. package/lib/cjs/vertexai/models/codey-text.js +2 -2
  23. package/lib/cjs/vertexai/models/codey-text.js.map +1 -1
  24. package/lib/cjs/vertexai/models/gemini.js +2 -2
  25. package/lib/cjs/vertexai/models/gemini.js.map +1 -1
  26. package/lib/cjs/vertexai/models/palm-model-base.js.map +1 -1
  27. package/lib/cjs/vertexai/models/palm2-chat.js +2 -2
  28. package/lib/cjs/vertexai/models/palm2-chat.js.map +1 -1
  29. package/lib/cjs/vertexai/models/palm2-text.js +2 -2
  30. package/lib/cjs/vertexai/models/palm2-text.js.map +1 -1
  31. package/lib/esm/bedrock/index.js +33 -9
  32. package/lib/esm/bedrock/index.js.map +1 -1
  33. package/lib/esm/bedrock/s3.js.map +1 -1
  34. package/lib/esm/huggingface_ie.js +2 -8
  35. package/lib/esm/huggingface_ie.js.map +1 -1
  36. package/lib/esm/mistral/index.js +32 -30
  37. package/lib/esm/mistral/index.js.map +1 -1
  38. package/lib/esm/openai.js +5 -8
  39. package/lib/esm/openai.js.map +1 -1
  40. package/lib/esm/replicate.js +4 -6
  41. package/lib/esm/replicate.js.map +1 -1
  42. package/lib/esm/src/bedrock/index.js +375 -0
  43. package/lib/esm/src/bedrock/index.js.map +1 -0
  44. package/lib/esm/src/bedrock/s3.js +53 -0
  45. package/lib/esm/src/bedrock/s3.js.map +1 -0
  46. package/lib/esm/src/huggingface_ie.js +173 -0
  47. package/lib/esm/src/huggingface_ie.js.map +1 -0
  48. package/lib/esm/src/index.js +9 -0
  49. package/lib/esm/src/index.js.map +1 -0
  50. package/lib/esm/src/mistral/index.js +145 -0
  51. package/lib/esm/src/mistral/index.js.map +1 -0
  52. package/lib/esm/src/mistral/types.js +80 -0
  53. package/lib/esm/src/mistral/types.js.map +1 -0
  54. package/lib/esm/src/openai.js +195 -0
  55. package/lib/esm/src/openai.js.map +1 -0
  56. package/lib/esm/src/replicate.js +281 -0
  57. package/lib/esm/src/replicate.js.map +1 -0
  58. package/lib/esm/src/test/TestErrorCompletionStream.js +16 -0
  59. package/lib/esm/src/test/TestErrorCompletionStream.js.map +1 -0
  60. package/lib/esm/src/test/TestValidationErrorCompletionStream.js +20 -0
  61. package/lib/esm/src/test/TestValidationErrorCompletionStream.js.map +1 -0
  62. package/lib/esm/src/test/index.js +91 -0
  63. package/lib/esm/src/test/index.js.map +1 -0
  64. package/lib/esm/src/test/utils.js +25 -0
  65. package/lib/esm/src/test/utils.js.map +1 -0
  66. package/lib/esm/src/togetherai/index.js +89 -0
  67. package/lib/esm/src/togetherai/index.js.map +1 -0
  68. package/lib/esm/src/togetherai/interfaces.js +2 -0
  69. package/lib/esm/src/togetherai/interfaces.js.map +1 -0
  70. package/lib/esm/src/vertexai/debug.js +6 -0
  71. package/lib/esm/src/vertexai/debug.js.map +1 -0
  72. package/lib/esm/src/vertexai/embeddings/embeddings-text.js +19 -0
  73. package/lib/esm/src/vertexai/embeddings/embeddings-text.js.map +1 -0
  74. package/lib/esm/src/vertexai/index.js +73 -0
  75. package/lib/esm/src/vertexai/index.js.map +1 -0
  76. package/lib/esm/src/vertexai/models/codey-chat.js +61 -0
  77. package/lib/esm/src/vertexai/models/codey-chat.js.map +1 -0
  78. package/lib/esm/src/vertexai/models/codey-text.js +31 -0
  79. package/lib/esm/src/vertexai/models/codey-text.js.map +1 -0
  80. package/lib/esm/src/vertexai/models/gemini.js +136 -0
  81. package/lib/esm/src/vertexai/models/gemini.js.map +1 -0
  82. package/lib/esm/src/vertexai/models/palm-model-base.js +53 -0
  83. package/lib/esm/src/vertexai/models/palm-model-base.js.map +1 -0
  84. package/lib/esm/src/vertexai/models/palm2-chat.js +61 -0
  85. package/lib/esm/src/vertexai/models/palm2-chat.js.map +1 -0
  86. package/lib/esm/src/vertexai/models/palm2-text.js +31 -0
  87. package/lib/esm/src/vertexai/models/palm2-text.js.map +1 -0
  88. package/lib/esm/src/vertexai/models.js +87 -0
  89. package/lib/esm/src/vertexai/models.js.map +1 -0
  90. package/{src/vertexai/utils/prompts.ts → lib/esm/src/vertexai/utils/prompts.js} +10 -29
  91. package/lib/esm/src/vertexai/utils/prompts.js.map +1 -0
  92. package/lib/esm/src/vertexai/utils/tensor.js +82 -0
  93. package/lib/esm/src/vertexai/utils/tensor.js.map +1 -0
  94. package/lib/esm/test/index.js.map +1 -1
  95. package/lib/esm/togetherai/index.js +6 -13
  96. package/lib/esm/togetherai/index.js.map +1 -1
  97. package/lib/esm/tsconfig.tsbuildinfo +1 -0
  98. package/lib/esm/vertexai/embeddings/embeddings-text.js +19 -0
  99. package/lib/esm/vertexai/embeddings/embeddings-text.js.map +1 -0
  100. package/lib/esm/vertexai/index.js +6 -9
  101. package/lib/esm/vertexai/index.js.map +1 -1
  102. package/lib/esm/vertexai/models/codey-chat.js +1 -1
  103. package/lib/esm/vertexai/models/codey-chat.js.map +1 -1
  104. package/lib/esm/vertexai/models/codey-text.js +2 -2
  105. package/lib/esm/vertexai/models/codey-text.js.map +1 -1
  106. package/lib/esm/vertexai/models/gemini.js +2 -2
  107. package/lib/esm/vertexai/models/gemini.js.map +1 -1
  108. package/lib/esm/vertexai/models/palm-model-base.js.map +1 -1
  109. package/lib/esm/vertexai/models/palm2-chat.js +1 -1
  110. package/lib/esm/vertexai/models/palm2-chat.js.map +1 -1
  111. package/lib/esm/vertexai/models/palm2-text.js +2 -2
  112. package/lib/esm/vertexai/models/palm2-text.js.map +1 -1
  113. package/lib/types/bedrock/index.d.ts +12 -9
  114. package/lib/types/bedrock/index.d.ts.map +1 -1
  115. package/lib/types/bedrock/s3.d.ts +2 -5
  116. package/lib/types/bedrock/s3.d.ts.map +1 -1
  117. package/lib/types/huggingface_ie.d.ts +5 -10
  118. package/lib/types/huggingface_ie.d.ts.map +1 -1
  119. package/lib/types/mistral/index.d.ts +7 -15
  120. package/lib/types/mistral/index.d.ts.map +1 -1
  121. package/lib/types/openai.d.ts +2 -7
  122. package/lib/types/openai.d.ts.map +1 -1
  123. package/lib/types/replicate.d.ts +2 -6
  124. package/lib/types/replicate.d.ts.map +1 -1
  125. package/lib/types/src/bedrock/index.d.ts +94 -0
  126. package/lib/types/src/bedrock/s3.d.ts +16 -0
  127. package/lib/types/src/huggingface_ie.d.ts +30 -0
  128. package/lib/types/src/index.d.ts +8 -0
  129. package/lib/types/src/mistral/index.d.ts +23 -0
  130. package/lib/types/src/mistral/types.d.ts +130 -0
  131. package/lib/types/src/openai.d.ts +30 -0
  132. package/lib/types/src/replicate.d.ts +47 -0
  133. package/lib/types/src/test/TestErrorCompletionStream.d.ts +8 -0
  134. package/lib/types/src/test/TestValidationErrorCompletionStream.d.ts +8 -0
  135. package/lib/types/src/test/index.d.ts +23 -0
  136. package/lib/types/src/test/utils.d.ts +4 -0
  137. package/lib/types/src/togetherai/index.d.ts +21 -0
  138. package/lib/types/src/togetherai/interfaces.d.ts +80 -0
  139. package/lib/types/src/vertexai/debug.d.ts +1 -0
  140. package/lib/types/src/vertexai/embeddings/embeddings-text.d.ts +9 -0
  141. package/lib/types/src/vertexai/index.d.ts +21 -0
  142. package/lib/types/src/vertexai/models/codey-chat.d.ts +50 -0
  143. package/lib/types/src/vertexai/models/codey-text.d.ts +38 -0
  144. package/lib/types/src/vertexai/models/gemini.d.ts +10 -0
  145. package/lib/types/src/vertexai/models/palm-model-base.d.ts +60 -0
  146. package/lib/types/src/vertexai/models/palm2-chat.d.ts +60 -0
  147. package/lib/types/src/vertexai/models/palm2-text.d.ts +38 -0
  148. package/lib/types/src/vertexai/models.d.ts +13 -0
  149. package/lib/types/src/vertexai/utils/prompts.d.ts +19 -0
  150. package/lib/types/src/vertexai/utils/tensor.d.ts +5 -0
  151. package/lib/types/test/index.d.ts +2 -5
  152. package/lib/types/test/index.d.ts.map +1 -1
  153. package/lib/types/togetherai/index.d.ts +2 -7
  154. package/lib/types/togetherai/index.d.ts.map +1 -1
  155. package/lib/types/vertexai/embeddings/embeddings-text.d.ts +10 -0
  156. package/lib/types/vertexai/embeddings/embeddings-text.d.ts.map +1 -0
  157. package/lib/types/vertexai/index.d.ts +3 -7
  158. package/lib/types/vertexai/index.d.ts.map +1 -1
  159. package/lib/types/vertexai/models/codey-chat.d.ts.map +1 -1
  160. package/lib/types/vertexai/models/codey-text.d.ts.map +1 -1
  161. package/lib/types/vertexai/models/gemini.d.ts.map +1 -1
  162. package/lib/types/vertexai/models/palm-model-base.d.ts +15 -1
  163. package/lib/types/vertexai/models/palm-model-base.d.ts.map +1 -1
  164. package/lib/types/vertexai/models/palm2-chat.d.ts.map +1 -1
  165. package/lib/types/vertexai/models/palm2-text.d.ts.map +1 -1
  166. package/package.json +15 -16
  167. package/src/bedrock/index.ts +37 -12
  168. package/src/bedrock/s3.ts +2 -3
  169. package/src/huggingface_ie.ts +3 -10
  170. package/src/mistral/index.ts +36 -43
  171. package/src/openai.ts +7 -11
  172. package/src/replicate.ts +4 -6
  173. package/src/test/index.ts +2 -2
  174. package/src/togetherai/index.ts +6 -13
  175. package/src/vertexai/embeddings/embeddings-text.ts +52 -0
  176. package/src/vertexai/index.ts +9 -10
  177. package/src/vertexai/models/codey-chat.ts +1 -1
  178. package/src/vertexai/models/codey-text.ts +2 -2
  179. package/src/vertexai/models/gemini.ts +4 -4
  180. package/src/vertexai/models/palm-model-base.ts +17 -1
  181. package/src/vertexai/models/palm2-chat.ts +1 -1
  182. package/src/vertexai/models/palm2-text.ts +2 -2
@@ -0,0 +1,8 @@
1
+ export * from "./bedrock/index.js";
2
+ export * from "./huggingface_ie.js";
3
+ export * from "./mistral/index.js";
4
+ export * from "./openai.js";
5
+ export * from "./replicate.js";
6
+ export * from "./test/index.js";
7
+ export * from "./togetherai/index.js";
8
+ export * from "./vertexai/index.js";
@@ -0,0 +1,23 @@
1
+ import { AIModel, AbstractDriver, Completion, DriverOptions, EmbeddingsOptions, EmbeddingsResult, ExecutionOptions, PromptSegment } from "@llumiverse/core";
2
+ import { OpenAITextMessage } from "@llumiverse/core/formatters";
3
+ import { FetchClient } from "api-fetch-client";
4
+ import { ResponseFormat } from "./types.js";
5
+ interface MistralAIDriverOptions extends DriverOptions {
6
+ apiKey: string;
7
+ endpoint_url?: string;
8
+ }
9
+ export declare class MistralAIDriver extends AbstractDriver<MistralAIDriverOptions, OpenAITextMessage[]> {
10
+ provider: string;
11
+ apiKey: string;
12
+ client: FetchClient;
13
+ endpointUrl?: string;
14
+ constructor(options: MistralAIDriverOptions);
15
+ getResponseFormat: (_options: ExecutionOptions) => ResponseFormat | undefined;
16
+ protected formatPrompt(segments: PromptSegment[], opts: ExecutionOptions): OpenAITextMessage[];
17
+ requestCompletion(messages: OpenAITextMessage[], options: ExecutionOptions): Promise<Completion<any>>;
18
+ requestCompletionStream(messages: OpenAITextMessage[], options: ExecutionOptions): Promise<AsyncIterable<string>>;
19
+ listModels(): Promise<AIModel<string>[]>;
20
+ validateConnection(): Promise<boolean>;
21
+ generateEmbeddings({ content, model }: EmbeddingsOptions): Promise<EmbeddingsResult>;
22
+ }
23
+ export {};
@@ -0,0 +1,130 @@
1
+ export interface ModelPermission {
2
+ id: string;
3
+ object: 'model_permission';
4
+ created: number;
5
+ allow_create_engine: boolean;
6
+ allow_sampling: boolean;
7
+ allow_logprobs: boolean;
8
+ allow_search_indices: boolean;
9
+ allow_view: boolean;
10
+ allow_fine_tuning: boolean;
11
+ organization: string;
12
+ group: string | null;
13
+ is_blocking: boolean;
14
+ }
15
+ export interface Model {
16
+ id: string;
17
+ object: 'model';
18
+ created: number;
19
+ owned_by: string;
20
+ root: string | null;
21
+ parent: string | null;
22
+ permission: ModelPermission[];
23
+ }
24
+ export interface ListModelsResponse {
25
+ object: 'list';
26
+ data: Model[];
27
+ }
28
+ export interface Function {
29
+ name: string;
30
+ description: string;
31
+ parameters: object;
32
+ }
33
+ export declare enum ToolType {
34
+ function = "function"
35
+ }
36
+ export interface FunctionCall {
37
+ name: string;
38
+ arguments: string;
39
+ }
40
+ export interface ToolCalls {
41
+ id: 'null';
42
+ type: ToolType;
43
+ function: FunctionCall;
44
+ }
45
+ export declare enum ResponseFormats {
46
+ text = "text",
47
+ json_object = "json_object"
48
+ }
49
+ export declare enum ToolChoice {
50
+ auto = "auto",
51
+ any = "any",
52
+ none = "none"
53
+ }
54
+ export interface ResponseFormat {
55
+ type: ResponseFormats;
56
+ }
57
+ export interface TokenUsage {
58
+ prompt_tokens: number;
59
+ completion_tokens: number;
60
+ total_tokens: number;
61
+ }
62
+ export interface ChatCompletionResponseChoice {
63
+ index: number;
64
+ message: {
65
+ role: string;
66
+ content: string;
67
+ };
68
+ finish_reason: string;
69
+ }
70
+ export interface ChatCompletionResponseChunkChoice {
71
+ index: number;
72
+ delta: {
73
+ role?: string;
74
+ content?: string;
75
+ tool_calls?: ToolCalls[];
76
+ };
77
+ finish_reason: string;
78
+ }
79
+ export interface ChatCompletionResponse {
80
+ id: string;
81
+ object: 'chat.completion';
82
+ created: number;
83
+ model: string;
84
+ choices: ChatCompletionResponseChoice[];
85
+ usage: TokenUsage;
86
+ }
87
+ export interface ChatCompletionResponseChunk {
88
+ id: string;
89
+ object: 'chat.completion.chunk';
90
+ created: number;
91
+ model: string;
92
+ choices: ChatCompletionResponseChunkChoice[];
93
+ }
94
+ export interface Embedding {
95
+ id: string;
96
+ object: 'embedding';
97
+ embedding: number[];
98
+ }
99
+ export interface EmbeddingResponse {
100
+ id: string;
101
+ object: 'list';
102
+ data: Embedding[];
103
+ model: string;
104
+ usage: TokenUsage;
105
+ }
106
+ export interface CompletionRequestParams {
107
+ model: string;
108
+ messages: Array<{
109
+ role: string;
110
+ name?: string;
111
+ content: string | string[];
112
+ tool_calls?: ToolCalls[];
113
+ }>;
114
+ tools?: Array<{
115
+ type: string;
116
+ function: Function;
117
+ }>;
118
+ temperature?: number;
119
+ maxTokens?: number;
120
+ topP?: number;
121
+ randomSeed?: number;
122
+ stream?: boolean;
123
+ /**
124
+ * @deprecated use safePrompt instead
125
+ */
126
+ safeMode?: boolean;
127
+ safePrompt?: boolean;
128
+ toolChoice?: ToolChoice;
129
+ responseFormat?: ResponseFormat;
130
+ }
@@ -0,0 +1,30 @@
1
+ import { AIModel, AbstractDriver, BuiltinProviders, Completion, DataSource, DriverOptions, EmbeddingsOptions, EmbeddingsResult, ExecutionOptions, ModelType, TrainingJob, TrainingOptions, TrainingPromptOptions } from "@llumiverse/core";
2
+ import OpenAI from "openai";
3
+ export interface OpenAIDriverOptions extends DriverOptions {
4
+ apiKey: string;
5
+ }
6
+ export declare class OpenAIDriver extends AbstractDriver<OpenAIDriverOptions, OpenAI.Chat.Completions.ChatCompletionMessageParam[]> {
7
+ inputContentTypes: string[];
8
+ generatedContentTypes: string[];
9
+ service: OpenAI;
10
+ provider: BuiltinProviders;
11
+ constructor(opts: OpenAIDriverOptions);
12
+ extractDataFromResponse(options: ExecutionOptions, result: OpenAI.Chat.Completions.ChatCompletion): Completion;
13
+ requestCompletionStream(prompt: OpenAI.Chat.Completions.ChatCompletionMessageParam[], options: ExecutionOptions): Promise<any>;
14
+ requestCompletion(prompt: OpenAI.Chat.Completions.ChatCompletionMessageParam[], options: ExecutionOptions): Promise<any>;
15
+ createTrainingPrompt(options: TrainingPromptOptions): string;
16
+ startTraining(dataset: DataSource, options: TrainingOptions): Promise<TrainingJob>;
17
+ cancelTraining(jobId: string): Promise<TrainingJob>;
18
+ getTrainingJob(jobId: string): Promise<TrainingJob>;
19
+ validateConnection(): Promise<boolean>;
20
+ listTrainableModels(): Promise<AIModel<string>[]>;
21
+ listModels(): Promise<AIModel[]>;
22
+ _listModels(filter?: (m: OpenAI.Models.Model) => boolean): Promise<{
23
+ id: string;
24
+ name: string;
25
+ provider: BuiltinProviders;
26
+ owner: string;
27
+ type: ModelType;
28
+ }[]>;
29
+ generateEmbeddings({ content, model }: EmbeddingsOptions): Promise<EmbeddingsResult>;
30
+ }
@@ -0,0 +1,47 @@
1
+ import { AIModel, AbstractDriver, BuiltinProviders, Completion, DataSource, DriverOptions, EmbeddingsResult, ExecutionOptions, ModelSearchPayload, TrainingJob, TrainingOptions } from "@llumiverse/core";
2
+ import Replicate, { Prediction } from "replicate";
3
+ export interface ReplicateDriverOptions extends DriverOptions {
4
+ apiKey: string;
5
+ }
6
+ export declare class ReplicateDriver extends AbstractDriver<DriverOptions, string> {
7
+ provider: BuiltinProviders;
8
+ service: Replicate;
9
+ static parseModelId(modelId: string): {
10
+ owner: string;
11
+ model: string;
12
+ version: string;
13
+ };
14
+ constructor(options: ReplicateDriverOptions);
15
+ extractDataFromResponse(prompt: string, response: Prediction): Completion;
16
+ requestCompletionStream(prompt: string, options: ExecutionOptions): Promise<AsyncIterable<string>>;
17
+ requestCompletion(prompt: string, options: ExecutionOptions): Promise<{
18
+ result: any;
19
+ token_usage: {
20
+ result: any;
21
+ prompt: number;
22
+ total: any;
23
+ };
24
+ }>;
25
+ startTraining(dataset: DataSource, options: TrainingOptions): Promise<TrainingJob>;
26
+ /**
27
+ * This method is not returning a consistent TrainingJob like the one returned by startTraining
28
+ * Instead of returning the full model name `owner/model:version` it returns only the version `version
29
+ * @param jobId
30
+ * @returns
31
+ */
32
+ cancelTraining(jobId: string): Promise<TrainingJob>;
33
+ /**
34
+ * This method is not returning a consistent TrainingJob like the one returned by startTraining
35
+ * Instead of returning the full model name `owner/model:version` it returns only the version `version
36
+ * @param jobId
37
+ * @returns
38
+ */
39
+ getTrainingJob(jobId: string): Promise<TrainingJob>;
40
+ validateConnection(): Promise<boolean>;
41
+ _listTrainableModels(): Promise<AIModel[]>;
42
+ listTrainableModels(): Promise<AIModel[]>;
43
+ listModels(params?: ModelSearchPayload): Promise<AIModel[]>;
44
+ listModelVersions(owner: string, model: string): Promise<AIModel[]>;
45
+ searchModels(params: ModelSearchPayload): Promise<AIModel[]>;
46
+ generateEmbeddings(): Promise<EmbeddingsResult>;
47
+ }
@@ -0,0 +1,8 @@
1
+ import { CompletionStream, ExecutionOptions, ExecutionResponse, PromptSegment } from "@llumiverse/core";
2
+ export declare class TestErrorCompletionStream implements CompletionStream<PromptSegment[]> {
3
+ segments: PromptSegment[];
4
+ options: ExecutionOptions;
5
+ completion: ExecutionResponse<PromptSegment[]> | undefined;
6
+ constructor(segments: PromptSegment[], options: ExecutionOptions);
7
+ [Symbol.asyncIterator](): AsyncGenerator<string, void, unknown>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { CompletionStream, ExecutionOptions, ExecutionResponse, PromptSegment } from "@llumiverse/core";
2
+ export declare class TestValidationErrorCompletionStream implements CompletionStream<PromptSegment[]> {
3
+ segments: PromptSegment[];
4
+ options: ExecutionOptions;
5
+ completion: ExecutionResponse<PromptSegment[]> | undefined;
6
+ constructor(segments: PromptSegment[], options: ExecutionOptions);
7
+ [Symbol.asyncIterator](): AsyncGenerator<"Started TestValidationError.\n" | "chunk1\n" | "chunk2\n", void, unknown>;
8
+ }
@@ -0,0 +1,23 @@
1
+ import { AIModel, CompletionStream, Driver, EmbeddingsResult, ExecutionOptions, ExecutionResponse, PromptOptions, PromptSegment, TrainingJob } from "@llumiverse/core";
2
+ export * from "./TestErrorCompletionStream.js";
3
+ export * from "./TestValidationErrorCompletionStream.js";
4
+ export declare enum TestDriverModels {
5
+ executionError = "execution-error",
6
+ validationError = "validation-error"
7
+ }
8
+ export declare class TestDriver implements Driver<PromptSegment[]> {
9
+ provider: string;
10
+ createTrainingPrompt(): string;
11
+ startTraining(): Promise<TrainingJob>;
12
+ cancelTraining(): Promise<TrainingJob>;
13
+ getTrainingJob(_jobId: string): Promise<TrainingJob>;
14
+ createPrompt(segments: PromptSegment[], _opts: PromptOptions): PromptSegment[];
15
+ execute(segments: PromptSegment[], options: ExecutionOptions): Promise<ExecutionResponse<PromptSegment[]>>;
16
+ stream(segments: PromptSegment[], options: ExecutionOptions): Promise<CompletionStream<PromptSegment[]>>;
17
+ listTrainableModels(): Promise<AIModel<string>[]>;
18
+ listModels(): Promise<AIModel<string>[]>;
19
+ validateConnection(): Promise<boolean>;
20
+ generateEmbeddings(): Promise<EmbeddingsResult>;
21
+ executeError(segments: PromptSegment[], _options: ExecutionOptions): Promise<ExecutionResponse<PromptSegment[]>>;
22
+ executeValidationError(segments: PromptSegment[], _options: ExecutionOptions): Promise<ExecutionResponse<PromptSegment[]>>;
23
+ }
@@ -0,0 +1,4 @@
1
+ import { ExecutionResponse, PromptSegment } from "@llumiverse/core";
2
+ export declare function throwError(message: string, prompt: PromptSegment[]): never;
3
+ export declare function createValidationErrorCompletion(segments: PromptSegment[]): ExecutionResponse<PromptSegment[]>;
4
+ export declare function sleep(ms: number): Promise<unknown>;
@@ -0,0 +1,21 @@
1
+ import { AIModel, AbstractDriver, Completion, DriverOptions, EmbeddingsResult, ExecutionOptions } from "@llumiverse/core";
2
+ import { FetchClient } from "api-fetch-client";
3
+ interface TogetherAIDriverOptions extends DriverOptions {
4
+ apiKey: string;
5
+ }
6
+ export declare class TogetherAIDriver extends AbstractDriver<TogetherAIDriverOptions, string> {
7
+ provider: string;
8
+ apiKey: string;
9
+ fetchClient: FetchClient;
10
+ constructor(options: TogetherAIDriverOptions);
11
+ getResponseFormat: (options: ExecutionOptions) => {
12
+ type: string;
13
+ schema: import("json-schema").JSONSchema4;
14
+ } | undefined;
15
+ requestCompletion(prompt: string, options: ExecutionOptions): Promise<Completion<any>>;
16
+ requestCompletionStream(prompt: string, options: ExecutionOptions): Promise<AsyncIterable<string>>;
17
+ listModels(): Promise<AIModel<string>[]>;
18
+ validateConnection(): Promise<boolean>;
19
+ generateEmbeddings(): Promise<EmbeddingsResult>;
20
+ }
21
+ export {};
@@ -0,0 +1,80 @@
1
+ interface ModelInstanceConfig {
2
+ appearsIn: any[];
3
+ order: number;
4
+ }
5
+ interface Config {
6
+ stop: string[];
7
+ prompt_format: string;
8
+ chat_template: string;
9
+ }
10
+ interface Pricing {
11
+ input: number;
12
+ output: number;
13
+ hourly: number;
14
+ }
15
+ interface Instance {
16
+ avzone: string;
17
+ cluster: string;
18
+ }
19
+ interface Ask {
20
+ [key: string]: number;
21
+ }
22
+ interface Gpu {
23
+ [key: string]: number;
24
+ }
25
+ interface Price {
26
+ base: number;
27
+ finetune: number;
28
+ hourly: number;
29
+ input: number;
30
+ output: number;
31
+ }
32
+ interface Stat {
33
+ avzone: string;
34
+ cluster: string;
35
+ capacity: number;
36
+ qps: number;
37
+ throughput_in: number;
38
+ throughput_out: number;
39
+ error_rate: number;
40
+ retry_rate: number;
41
+ }
42
+ interface Depth {
43
+ num_asks: number;
44
+ num_bids: number;
45
+ num_running: number;
46
+ asks: Ask;
47
+ asks_updated: string;
48
+ gpus: Gpu;
49
+ qps: number;
50
+ permit_required: boolean;
51
+ price: Price;
52
+ throughput_in: number;
53
+ throughput_out: number;
54
+ stats: Stat[];
55
+ }
56
+ export interface TogetherModelInfo {
57
+ modelInstanceConfig: ModelInstanceConfig;
58
+ _id: string;
59
+ name: string;
60
+ display_name: string;
61
+ display_type: string;
62
+ description: string;
63
+ license: string;
64
+ creator_organization: string;
65
+ hardware_label: string;
66
+ num_parameters: number;
67
+ show_in_playground: boolean;
68
+ isFeaturedModel: boolean;
69
+ context_length: number;
70
+ config: Config;
71
+ pricing: Pricing;
72
+ created_at: string;
73
+ update_at: string;
74
+ instances: Instance[];
75
+ access: string;
76
+ link: string;
77
+ descriptionLink: string;
78
+ depth: Depth;
79
+ }
80
+ export {};
@@ -0,0 +1 @@
1
+ export declare function logObject(prefix: string, obj: any): void;
@@ -0,0 +1,9 @@
1
+ import { EmbeddingsResult } from '@llumiverse/core';
2
+ import { VertexAIDriver } from '../index.js';
3
+ export interface TextEmbeddingsOptions {
4
+ model?: string;
5
+ task_type?: "RETRIEVAL_QUERY" | "RETRIEVAL_DOCUMENT" | "SEMANTIC_SIMILARITY" | "CLASSIFICATION" | "CLUSTERING";
6
+ title?: string;
7
+ content: string;
8
+ }
9
+ export declare function getEmbeddingsForText(driver: VertexAIDriver, options: TextEmbeddingsOptions): Promise<EmbeddingsResult>;
@@ -0,0 +1,21 @@
1
+ import { GenerateContentRequest, VertexAI } from "@google-cloud/vertexai";
2
+ import { AIModel, AbstractDriver, BuiltinProviders, Completion, DriverOptions, EmbeddingsResult, ExecutionOptions, ModelSearchPayload, PromptOptions, PromptSegment } from "@llumiverse/core";
3
+ import { FetchClient } from "api-fetch-client";
4
+ import { TextEmbeddingsOptions } from "./embeddings/embeddings-text.js";
5
+ export interface VertexAIDriverOptions extends DriverOptions {
6
+ project: string;
7
+ region: string;
8
+ }
9
+ export declare class VertexAIDriver extends AbstractDriver<VertexAIDriverOptions, GenerateContentRequest> {
10
+ provider: BuiltinProviders;
11
+ vertexai: VertexAI;
12
+ fetchClient: FetchClient;
13
+ constructor(options: VertexAIDriverOptions);
14
+ protected canStream(options: ExecutionOptions): Promise<boolean>;
15
+ createPrompt(segments: PromptSegment[], options: PromptOptions): GenerateContentRequest;
16
+ requestCompletion(prompt: GenerateContentRequest, options: ExecutionOptions): Promise<Completion<any>>;
17
+ requestCompletionStream(prompt: GenerateContentRequest, options: ExecutionOptions): Promise<AsyncIterable<string>>;
18
+ listModels(_params?: ModelSearchPayload): Promise<AIModel<string>[]>;
19
+ validateConnection(): Promise<boolean>;
20
+ generateEmbeddings(options: TextEmbeddingsOptions): Promise<EmbeddingsResult>;
21
+ }
@@ -0,0 +1,50 @@
1
+ import { AIModel, PromptOptions, PromptSegment } from "@llumiverse/core";
2
+ import { VertexAIDriver } from "../index.js";
3
+ import { AbstractPalmModelDefinition, NonStreamingPromptBase, PalmResponseMetadata, StreamingPromptBase } from "./palm-model-base.js";
4
+ export interface CodeyChatMessage {
5
+ author: string;
6
+ content: string;
7
+ }
8
+ export type CodeyChatPrompt = NonStreamingPromptBase<{
9
+ context?: string;
10
+ messages: CodeyChatMessage[];
11
+ }>;
12
+ export type CodeyChatStreamingPrompt = StreamingPromptBase<{
13
+ messages: {
14
+ listVal: {
15
+ structVal: {
16
+ author: {
17
+ stringVal: string;
18
+ };
19
+ content: {
20
+ stringVal: string;
21
+ };
22
+ };
23
+ }[];
24
+ };
25
+ }>;
26
+ interface CodeyChatResponsePrediction {
27
+ candidates: CodeyChatMessage[];
28
+ safetyAttributes: {
29
+ scores: number[];
30
+ blocked: boolean;
31
+ categories: string[];
32
+ errors: number[];
33
+ };
34
+ citationMetadata: {
35
+ citations: any[];
36
+ };
37
+ logprobs: any;
38
+ }
39
+ export interface CodeyChatResponse {
40
+ predictions: CodeyChatResponsePrediction[];
41
+ metadata: PalmResponseMetadata;
42
+ }
43
+ export declare class CodeyChatDefinition extends AbstractPalmModelDefinition<CodeyChatPrompt, CodeyChatStreamingPrompt> {
44
+ versions: string[];
45
+ model: AIModel;
46
+ createNonStreamingPrompt(_driver: VertexAIDriver, segments: PromptSegment[], opts: PromptOptions): CodeyChatPrompt;
47
+ extractContentFromResponse(response: CodeyChatResponse): string;
48
+ extractContentFromResponseChunk(chunk: any): string;
49
+ }
50
+ export {};
@@ -0,0 +1,38 @@
1
+ import { AIModel, PromptOptions, PromptSegment } from "@llumiverse/core";
2
+ import { VertexAIDriver } from "../index.js";
3
+ import { AbstractPalmModelDefinition, NonStreamingPromptBase, PalmResponseMetadata, StreamingPromptBase } from "./palm-model-base.js";
4
+ export type CodeyTextPrompt = NonStreamingPromptBase<{
5
+ prefix: string;
6
+ }>;
7
+ export type CodeyTextStreamingPrompt = StreamingPromptBase<{
8
+ prefix: {
9
+ stringVal: string;
10
+ };
11
+ }>;
12
+ interface CodeyTextResponsePrediction {
13
+ content: string;
14
+ safetyAttributes: {
15
+ scores: number[];
16
+ safetyRatings: {
17
+ severity: string;
18
+ probabilityScore: number;
19
+ severityScore: number;
20
+ category: string;
21
+ }[];
22
+ };
23
+ citationMetadata: {
24
+ citations: any[];
25
+ };
26
+ }
27
+ export interface CodeyTextResponse {
28
+ predictions: CodeyTextResponsePrediction[];
29
+ metadata: PalmResponseMetadata;
30
+ }
31
+ export declare class CodeyTextDefinition extends AbstractPalmModelDefinition<CodeyTextPrompt, CodeyTextStreamingPrompt> {
32
+ versions: string[];
33
+ model: AIModel;
34
+ createNonStreamingPrompt(_driver: VertexAIDriver, segments: PromptSegment[], opts: PromptOptions): CodeyTextPrompt;
35
+ extractContentFromResponse(response: CodeyTextResponse): string;
36
+ extractContentFromResponseChunk(chunk: any): string;
37
+ }
38
+ export {};
@@ -0,0 +1,10 @@
1
+ import { GenerateContentRequest } from "@google-cloud/vertexai";
2
+ import { AIModel, Completion, ExecutionOptions, PromptOptions, PromptSegment } from "@llumiverse/core";
3
+ import { VertexAIDriver } from "../index.js";
4
+ import { ModelDefinition } from "../models.js";
5
+ export declare class GeminiModelDefinition implements ModelDefinition<GenerateContentRequest> {
6
+ model: AIModel;
7
+ createPrompt(_driver: VertexAIDriver, segments: PromptSegment[], options: PromptOptions): GenerateContentRequest;
8
+ requestCompletion(driver: VertexAIDriver, prompt: GenerateContentRequest, options: ExecutionOptions): Promise<Completion>;
9
+ requestCompletionStream(driver: VertexAIDriver, prompt: GenerateContentRequest, options: ExecutionOptions): Promise<AsyncIterable<string>>;
10
+ }
@@ -0,0 +1,60 @@
1
+ import { AIModel, Completion, ExecutionOptions, PromptOptions, PromptSegment } from "@llumiverse/core";
2
+ import { VertexAIDriver } from "../index.js";
3
+ import { ModelDefinition } from "../models.js";
4
+ export interface PromptParamatersBase {
5
+ temperature?: number;
6
+ maxOutputTokens?: number;
7
+ topK?: number;
8
+ topP?: number;
9
+ groundingConfig?: string;
10
+ stopSequences?: string[];
11
+ candidateCount?: number;
12
+ logprobs?: number;
13
+ presencePenalty?: number;
14
+ frequencyPenalty?: number;
15
+ logitBias?: Record<string, number>;
16
+ seed?: number;
17
+ echo?: boolean;
18
+ }
19
+ export interface NonStreamingPromptBase<InstanceType = any> {
20
+ instances: InstanceType[];
21
+ parameters: PromptParamatersBase;
22
+ }
23
+ export interface StreamingPromptBase<InputType = any> {
24
+ inputs: {
25
+ structVal: InputType;
26
+ }[];
27
+ parameters: {
28
+ structVal: {
29
+ temperature?: {
30
+ floatval: number;
31
+ };
32
+ maxOutputTokens?: {
33
+ intVal: number;
34
+ };
35
+ [key: string]: Record<string, any> | undefined;
36
+ };
37
+ };
38
+ }
39
+ export interface PalmResponseMetadata {
40
+ tokenMetadata: {
41
+ outputTokenCount: {
42
+ totalBillableCharacters: number;
43
+ totalTokens: number;
44
+ };
45
+ inputTokenCount: {
46
+ totalBillableCharacters: number;
47
+ totalTokens: number;
48
+ };
49
+ };
50
+ }
51
+ export declare abstract class AbstractPalmModelDefinition<NonStreamingPromptT extends NonStreamingPromptBase, StreamingPromptT extends StreamingPromptBase> implements ModelDefinition<NonStreamingPromptT | StreamingPromptT> {
52
+ abstract model: AIModel;
53
+ abstract versions?: string[];
54
+ abstract createNonStreamingPrompt(driver: VertexAIDriver, segments: PromptSegment[], options: PromptOptions): NonStreamingPromptT;
55
+ abstract extractContentFromResponse(response: any): string;
56
+ abstract extractContentFromResponseChunk(chunk: any): string;
57
+ createPrompt(driver: VertexAIDriver, segments: PromptSegment[], options: PromptOptions): NonStreamingPromptT;
58
+ requestCompletion(driver: VertexAIDriver, prompt: NonStreamingPromptT | StreamingPromptT, options: ExecutionOptions): Promise<Completion<any>>;
59
+ requestCompletionStream(driver: VertexAIDriver, prompt: NonStreamingPromptT | StreamingPromptT, options: ExecutionOptions): Promise<AsyncIterable<string>>;
60
+ }
@@ -0,0 +1,60 @@
1
+ import { AIModel, PromptOptions, PromptSegment } from "@llumiverse/core";
2
+ import { VertexAIDriver } from "../index.js";
3
+ import { AbstractPalmModelDefinition, NonStreamingPromptBase, PalmResponseMetadata, StreamingPromptBase } from "./palm-model-base.js";
4
+ export interface Palm2ChatMessage {
5
+ author: string;
6
+ content: string;
7
+ }
8
+ export type Palm2ChatPrompt = NonStreamingPromptBase<{
9
+ context?: string;
10
+ examples?: [
11
+ {
12
+ input: {
13
+ content: string;
14
+ };
15
+ output: {
16
+ content: string;
17
+ };
18
+ }
19
+ ];
20
+ messages: Palm2ChatMessage[];
21
+ }>;
22
+ export type Palm2ChatStreamingPrompt = StreamingPromptBase<{
23
+ messages: {
24
+ listVal: {
25
+ structVal: {
26
+ author: {
27
+ stringVal: string;
28
+ };
29
+ content: {
30
+ stringVal: string;
31
+ };
32
+ };
33
+ }[];
34
+ };
35
+ }>;
36
+ interface Palm2ChatResponsePrediction {
37
+ candidates: Palm2ChatMessage[];
38
+ safetyAttributes: {
39
+ scores: number[];
40
+ blocked: boolean;
41
+ categories: string[];
42
+ errors: number[];
43
+ };
44
+ citationMetadata: {
45
+ citations: any[];
46
+ };
47
+ logprobs: any;
48
+ }
49
+ export interface Palm2ChatResponse {
50
+ predictions: Palm2ChatResponsePrediction[];
51
+ metadata: PalmResponseMetadata;
52
+ }
53
+ export declare class Palm2ChatDefinition extends AbstractPalmModelDefinition<Palm2ChatPrompt, Palm2ChatStreamingPrompt> {
54
+ versions: string[];
55
+ model: AIModel;
56
+ createNonStreamingPrompt(_driver: VertexAIDriver, segments: PromptSegment[], opts: PromptOptions): Palm2ChatPrompt;
57
+ extractContentFromResponse(response: Palm2ChatResponse): string;
58
+ extractContentFromResponseChunk(chunk: any): string;
59
+ }
60
+ export {};