@llumiverse/drivers 0.11.0 → 0.12.1

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 (154) hide show
  1. package/README.md +1 -0
  2. package/lib/cjs/bedrock/index.js +74 -22
  3. package/lib/cjs/bedrock/index.js.map +1 -1
  4. package/lib/cjs/groq/index.js +112 -0
  5. package/lib/cjs/groq/index.js.map +1 -0
  6. package/lib/cjs/huggingface_ie.js +6 -0
  7. package/lib/cjs/huggingface_ie.js.map +1 -1
  8. package/lib/cjs/index.js +1 -0
  9. package/lib/cjs/index.js.map +1 -1
  10. package/lib/cjs/mistral/index.js +8 -4
  11. package/lib/cjs/mistral/index.js.map +1 -1
  12. package/lib/cjs/openai.js +40 -18
  13. package/lib/cjs/openai.js.map +1 -1
  14. package/lib/cjs/replicate.js +1 -0
  15. package/lib/cjs/replicate.js.map +1 -1
  16. package/lib/cjs/togetherai/index.js +4 -1
  17. package/lib/cjs/togetherai/index.js.map +1 -1
  18. package/lib/cjs/vertexai/models/gemini.js +15 -3
  19. package/lib/cjs/vertexai/models/gemini.js.map +1 -1
  20. package/lib/cjs/vertexai/models/palm-model-base.js +3 -1
  21. package/lib/cjs/vertexai/models/palm-model-base.js.map +1 -1
  22. package/lib/esm/bedrock/index.js +74 -22
  23. package/lib/esm/bedrock/index.js.map +1 -1
  24. package/lib/esm/groq/index.js +105 -0
  25. package/lib/esm/groq/index.js.map +1 -0
  26. package/lib/esm/huggingface_ie.js +6 -0
  27. package/lib/esm/huggingface_ie.js.map +1 -1
  28. package/lib/esm/index.js +1 -0
  29. package/lib/esm/index.js.map +1 -1
  30. package/lib/esm/mistral/index.js +9 -5
  31. package/lib/esm/mistral/index.js.map +1 -1
  32. package/lib/esm/openai.js +40 -18
  33. package/lib/esm/openai.js.map +1 -1
  34. package/lib/esm/replicate.js +1 -0
  35. package/lib/esm/replicate.js.map +1 -1
  36. package/lib/esm/togetherai/index.js +4 -1
  37. package/lib/esm/togetherai/index.js.map +1 -1
  38. package/lib/esm/vertexai/models/gemini.js +16 -4
  39. package/lib/esm/vertexai/models/gemini.js.map +1 -1
  40. package/lib/esm/vertexai/models/palm-model-base.js +3 -1
  41. package/lib/esm/vertexai/models/palm-model-base.js.map +1 -1
  42. package/lib/types/bedrock/index.d.ts.map +1 -1
  43. package/lib/types/{src/mistral → groq}/index.d.ts +8 -8
  44. package/lib/types/groq/index.d.ts.map +1 -0
  45. package/lib/types/huggingface_ie.d.ts +2 -0
  46. package/lib/types/huggingface_ie.d.ts.map +1 -1
  47. package/lib/types/index.d.ts +1 -0
  48. package/lib/types/index.d.ts.map +1 -1
  49. package/lib/types/mistral/index.d.ts.map +1 -1
  50. package/lib/types/openai.d.ts.map +1 -1
  51. package/lib/types/replicate.d.ts +1 -0
  52. package/lib/types/replicate.d.ts.map +1 -1
  53. package/lib/types/togetherai/index.d.ts.map +1 -1
  54. package/lib/types/togetherai/interfaces.d.ts +15 -0
  55. package/lib/types/togetherai/interfaces.d.ts.map +1 -1
  56. package/lib/types/vertexai/models/gemini.d.ts.map +1 -1
  57. package/lib/types/vertexai/models/palm-model-base.d.ts.map +1 -1
  58. package/package.json +3 -2
  59. package/src/bedrock/index.ts +69 -21
  60. package/src/groq/index.ts +134 -0
  61. package/src/huggingface_ie.ts +6 -0
  62. package/src/index.ts +1 -1
  63. package/src/mistral/index.ts +11 -7
  64. package/src/mistral/types.ts +2 -2
  65. package/src/openai.ts +43 -20
  66. package/src/replicate.ts +1 -0
  67. package/src/togetherai/index.ts +6 -4
  68. package/src/togetherai/interfaces.ts +16 -0
  69. package/src/vertexai/models/gemini.ts +13 -5
  70. package/src/vertexai/models/palm-model-base.ts +3 -1
  71. package/lib/cjs/vertexai/utils/prompts.js +0 -52
  72. package/lib/cjs/vertexai/utils/prompts.js.map +0 -1
  73. package/lib/esm/src/bedrock/index.js +0 -375
  74. package/lib/esm/src/bedrock/index.js.map +0 -1
  75. package/lib/esm/src/bedrock/s3.js +0 -53
  76. package/lib/esm/src/bedrock/s3.js.map +0 -1
  77. package/lib/esm/src/huggingface_ie.js +0 -173
  78. package/lib/esm/src/huggingface_ie.js.map +0 -1
  79. package/lib/esm/src/index.js +0 -9
  80. package/lib/esm/src/index.js.map +0 -1
  81. package/lib/esm/src/mistral/index.js +0 -145
  82. package/lib/esm/src/mistral/index.js.map +0 -1
  83. package/lib/esm/src/mistral/types.js +0 -80
  84. package/lib/esm/src/mistral/types.js.map +0 -1
  85. package/lib/esm/src/openai.js +0 -195
  86. package/lib/esm/src/openai.js.map +0 -1
  87. package/lib/esm/src/replicate.js +0 -281
  88. package/lib/esm/src/replicate.js.map +0 -1
  89. package/lib/esm/src/test/TestErrorCompletionStream.js +0 -16
  90. package/lib/esm/src/test/TestErrorCompletionStream.js.map +0 -1
  91. package/lib/esm/src/test/TestValidationErrorCompletionStream.js +0 -20
  92. package/lib/esm/src/test/TestValidationErrorCompletionStream.js.map +0 -1
  93. package/lib/esm/src/test/index.js +0 -91
  94. package/lib/esm/src/test/index.js.map +0 -1
  95. package/lib/esm/src/test/utils.js +0 -25
  96. package/lib/esm/src/test/utils.js.map +0 -1
  97. package/lib/esm/src/togetherai/index.js +0 -89
  98. package/lib/esm/src/togetherai/index.js.map +0 -1
  99. package/lib/esm/src/togetherai/interfaces.js +0 -2
  100. package/lib/esm/src/togetherai/interfaces.js.map +0 -1
  101. package/lib/esm/src/vertexai/debug.js +0 -6
  102. package/lib/esm/src/vertexai/debug.js.map +0 -1
  103. package/lib/esm/src/vertexai/embeddings/embeddings-text.js +0 -19
  104. package/lib/esm/src/vertexai/embeddings/embeddings-text.js.map +0 -1
  105. package/lib/esm/src/vertexai/index.js +0 -73
  106. package/lib/esm/src/vertexai/index.js.map +0 -1
  107. package/lib/esm/src/vertexai/models/codey-chat.js +0 -61
  108. package/lib/esm/src/vertexai/models/codey-chat.js.map +0 -1
  109. package/lib/esm/src/vertexai/models/codey-text.js +0 -31
  110. package/lib/esm/src/vertexai/models/codey-text.js.map +0 -1
  111. package/lib/esm/src/vertexai/models/gemini.js +0 -136
  112. package/lib/esm/src/vertexai/models/gemini.js.map +0 -1
  113. package/lib/esm/src/vertexai/models/palm-model-base.js +0 -53
  114. package/lib/esm/src/vertexai/models/palm-model-base.js.map +0 -1
  115. package/lib/esm/src/vertexai/models/palm2-chat.js +0 -61
  116. package/lib/esm/src/vertexai/models/palm2-chat.js.map +0 -1
  117. package/lib/esm/src/vertexai/models/palm2-text.js +0 -31
  118. package/lib/esm/src/vertexai/models/palm2-text.js.map +0 -1
  119. package/lib/esm/src/vertexai/models.js +0 -87
  120. package/lib/esm/src/vertexai/models.js.map +0 -1
  121. package/lib/esm/src/vertexai/utils/prompts.js +0 -47
  122. package/lib/esm/src/vertexai/utils/prompts.js.map +0 -1
  123. package/lib/esm/src/vertexai/utils/tensor.js +0 -82
  124. package/lib/esm/src/vertexai/utils/tensor.js.map +0 -1
  125. package/lib/esm/tsconfig.tsbuildinfo +0 -1
  126. package/lib/esm/vertexai/utils/prompts.js +0 -47
  127. package/lib/esm/vertexai/utils/prompts.js.map +0 -1
  128. package/lib/types/src/bedrock/index.d.ts +0 -94
  129. package/lib/types/src/bedrock/s3.d.ts +0 -16
  130. package/lib/types/src/huggingface_ie.d.ts +0 -30
  131. package/lib/types/src/index.d.ts +0 -8
  132. package/lib/types/src/mistral/types.d.ts +0 -130
  133. package/lib/types/src/openai.d.ts +0 -30
  134. package/lib/types/src/replicate.d.ts +0 -47
  135. package/lib/types/src/test/TestErrorCompletionStream.d.ts +0 -8
  136. package/lib/types/src/test/TestValidationErrorCompletionStream.d.ts +0 -8
  137. package/lib/types/src/test/index.d.ts +0 -23
  138. package/lib/types/src/test/utils.d.ts +0 -4
  139. package/lib/types/src/togetherai/index.d.ts +0 -21
  140. package/lib/types/src/togetherai/interfaces.d.ts +0 -80
  141. package/lib/types/src/vertexai/debug.d.ts +0 -1
  142. package/lib/types/src/vertexai/embeddings/embeddings-text.d.ts +0 -9
  143. package/lib/types/src/vertexai/index.d.ts +0 -21
  144. package/lib/types/src/vertexai/models/codey-chat.d.ts +0 -50
  145. package/lib/types/src/vertexai/models/codey-text.d.ts +0 -38
  146. package/lib/types/src/vertexai/models/gemini.d.ts +0 -10
  147. package/lib/types/src/vertexai/models/palm-model-base.d.ts +0 -60
  148. package/lib/types/src/vertexai/models/palm2-chat.d.ts +0 -60
  149. package/lib/types/src/vertexai/models/palm2-text.d.ts +0 -38
  150. package/lib/types/src/vertexai/models.d.ts +0 -13
  151. package/lib/types/src/vertexai/utils/prompts.d.ts +0 -19
  152. package/lib/types/src/vertexai/utils/tensor.d.ts +0 -5
  153. package/lib/types/vertexai/utils/prompts.d.ts +0 -20
  154. package/lib/types/vertexai/utils/prompts.d.ts.map +0 -1
@@ -1,173 +0,0 @@
1
- import { HfInference } from "@huggingface/inference";
2
- import { AIModelStatus, AbstractDriver, BuiltinProviders } from "@llumiverse/core";
3
- import { transformAsyncIterator } from "@llumiverse/core/async";
4
- import { FetchClient } from "api-fetch-client";
5
- export class HuggingFaceIEDriver extends AbstractDriver {
6
- service;
7
- provider = BuiltinProviders.huggingface_ie;
8
- _executor;
9
- constructor(options) {
10
- super(options);
11
- if (!options.endpoint_url) {
12
- throw new Error(`Endpoint URL is required for ${this.provider}`);
13
- }
14
- this.service = new FetchClient(this.options.endpoint_url);
15
- this.service.headers["Authorization"] = `Bearer ${this.options.apiKey}`;
16
- }
17
- async getModelURLEndpoint(modelId) {
18
- const res = (await this.service.get(`/${modelId}`));
19
- return {
20
- url: res.status.url,
21
- status: getStatus(res),
22
- };
23
- }
24
- async getExecutor(model) {
25
- if (!this._executor) {
26
- const endpoint = await this.getModelURLEndpoint(model);
27
- if (!endpoint.url)
28
- throw new Error(`Endpoint URL not found for model ${model}`);
29
- if (endpoint.status !== AIModelStatus.Available)
30
- throw new Error(`Endpoint ${model} is not running - current status: ${endpoint.status}`);
31
- this._executor = new HfInference(this.options.apiKey).endpoint(endpoint.url);
32
- }
33
- return this._executor;
34
- }
35
- async requestCompletionStream(prompt, options) {
36
- const executor = await this.getExecutor(options.model);
37
- const req = executor.textGenerationStream({
38
- inputs: prompt,
39
- parameters: {
40
- temperature: options.temperature,
41
- max_new_tokens: options.max_tokens,
42
- },
43
- });
44
- return transformAsyncIterator(req, (val) => {
45
- //special like <s> are not part of the result
46
- if (val.token.special)
47
- return "";
48
- return val.token.text;
49
- });
50
- }
51
- async requestCompletion(prompt, options) {
52
- const executor = await this.getExecutor(options.model);
53
- const res = await executor.textGeneration({
54
- inputs: prompt,
55
- parameters: {
56
- temperature: options.temperature,
57
- max_new_tokens: options.max_tokens,
58
- },
59
- });
60
- return {
61
- result: res.generated_text,
62
- token_usage: {
63
- result: res.generated_text.length,
64
- prompt: prompt.length,
65
- total: res.generated_text.length + prompt.length,
66
- },
67
- };
68
- }
69
- // ============== management API ==============
70
- async listModels() {
71
- const res = await this.service.get("/");
72
- const hfModels = res.items;
73
- if (!hfModels || !hfModels.length)
74
- return [];
75
- const models = hfModels.map((model) => ({
76
- id: model.name,
77
- name: `${model.name} [${model.model.repository}:${model.model.task}]`,
78
- provider: this.provider,
79
- tags: [model.model.task],
80
- status: getStatus(model),
81
- }));
82
- return models;
83
- }
84
- async validateConnection() {
85
- try {
86
- await this.service.get("/models");
87
- return true;
88
- }
89
- catch (error) {
90
- return false;
91
- }
92
- }
93
- async generateEmbeddings() {
94
- throw new Error("Method not implemented.");
95
- }
96
- }
97
- //get status from HF status
98
- function getStatus(hfModel) {
99
- //[ pending, initializing, updating, updateFailed, running, paused, failed, scaledToZero ]
100
- switch (hfModel.status.state) {
101
- case "running":
102
- return AIModelStatus.Available;
103
- case "initializing":
104
- return AIModelStatus.Pending;
105
- case "updating":
106
- return AIModelStatus.Pending;
107
- case "updateFailed":
108
- return AIModelStatus.Unavailable;
109
- case "paused":
110
- return AIModelStatus.Stopped;
111
- case "failed":
112
- return AIModelStatus.Unavailable;
113
- case "scaledToZero":
114
- return AIModelStatus.Available;
115
- default:
116
- return AIModelStatus.Unknown;
117
- }
118
- }
119
- /*
120
- Example of model returned by the API
121
- {
122
- "items": [
123
- {
124
- "accountId": "string",
125
- "compute": {
126
- "accelerator": "cpu",
127
- "instanceSize": "large",
128
- "instanceType": "c6i",
129
- "scaling": {
130
- "maxReplica": 8,
131
- "minReplica": 2
132
- }
133
- },
134
- "model": {
135
- "framework": "custom",
136
- "image": {
137
- "huggingface": {}
138
- },
139
- "repository": "gpt2",
140
- "revision": "6c0e6080953db56375760c0471a8c5f2929baf11",
141
- "task": "text-classification"
142
- },
143
- "name": "my-endpoint",
144
- "provider": {
145
- "region": "us-east-1",
146
- "vendor": "aws"
147
- },
148
- "status": {
149
- "createdAt": "2023-10-19T05:04:17.305Z",
150
- "createdBy": {
151
- "id": "string",
152
- "name": "string"
153
- },
154
- "message": "Endpoint is ready",
155
- "private": {
156
- "serviceName": "string"
157
- },
158
- "readyReplica": 2,
159
- "state": "pending",
160
- "targetReplica": 4,
161
- "updatedAt": "2023-10-19T05:04:17.305Z",
162
- "updatedBy": {
163
- "id": "string",
164
- "name": "string"
165
- },
166
- "url": "https://endpoint-id.region.vendor.endpoints.huggingface.cloud"
167
- },
168
- "type": "public"
169
- }
170
- ]
171
- }
172
- */
173
- //# sourceMappingURL=huggingface_ie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"huggingface_ie.js","sourceRoot":"","sources":["../../../src/huggingface_ie.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
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";
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC"}
@@ -1,145 +0,0 @@
1
- import { AbstractDriver } from "@llumiverse/core";
2
- import { transformSSEStream } from "@llumiverse/core/async";
3
- import { formatOpenAILikePrompt, getJSONSafetyNotice } from "@llumiverse/core/formatters";
4
- import { FetchClient } from "api-fetch-client";
5
- //TODO retry on 429
6
- //const RETRY_STATUS_CODES = [429, 500, 502, 503, 504];
7
- const ENDPOINT = 'https://api.mistral.ai';
8
- export class MistralAIDriver extends AbstractDriver {
9
- provider;
10
- apiKey;
11
- //client: MistralClient;
12
- client;
13
- endpointUrl;
14
- constructor(options) {
15
- super(options);
16
- this.provider = "MistralAI";
17
- this.apiKey = options.apiKey;
18
- //this.client = new MistralClient(options.apiKey, options.endpointUrl);
19
- this.client = new FetchClient(options.endpoint_url || ENDPOINT).withHeaders({
20
- authorization: `Bearer ${this.apiKey}`
21
- });
22
- }
23
- getResponseFormat = (_options) => {
24
- // const responseFormatJson: ResponseFormat = {
25
- // type: "json_object",
26
- // } as ResponseFormat
27
- // const responseFormatText: ResponseFormat = {
28
- // type: "text",
29
- // } as ResponseFormat;
30
- // return _options.resultSchema ? responseFormatJson : responseFormatText;
31
- //TODO remove this when Mistral properly supports the parameters - it makes an error for now
32
- // some models like mixtral mistrall tiny or medium are throwing an error when using the response_format parameter
33
- return undefined;
34
- };
35
- formatPrompt(segments, opts) {
36
- const messages = formatOpenAILikePrompt(segments);
37
- //Add JSON instruction is schema is provided
38
- if (opts.resultSchema) {
39
- messages.push({
40
- role: "user",
41
- content: "IMPORTANT: " + getJSONSafetyNotice(opts.resultSchema)
42
- });
43
- }
44
- return messages;
45
- }
46
- async requestCompletion(messages, options) {
47
- const res = await this.client.post('/v1/chat/completions', {
48
- payload: _makeChatCompletionRequest({
49
- model: options.model,
50
- messages: messages,
51
- maxTokens: options.max_tokens,
52
- temperature: options.temperature,
53
- responseFormat: this.getResponseFormat(options),
54
- })
55
- });
56
- const result = res.choices[0]?.message.content;
57
- return {
58
- result: result,
59
- token_usage: {
60
- prompt: res.usage.prompt_tokens,
61
- result: res.usage.completion_tokens,
62
- total: res.usage.total_tokens,
63
- }
64
- };
65
- }
66
- async requestCompletionStream(messages, options) {
67
- const stream = await this.client.post('/v1/chat/completions', {
68
- payload: _makeChatCompletionRequest({
69
- model: options.model,
70
- messages: messages,
71
- maxTokens: options.max_tokens,
72
- temperature: options.temperature,
73
- responseFormat: this.getResponseFormat(options),
74
- stream: true
75
- }),
76
- reader: 'sse'
77
- });
78
- return transformSSEStream(stream, (data) => {
79
- const json = JSON.parse(data);
80
- return json.choices[0]?.delta.content ?? '';
81
- });
82
- }
83
- async listModels() {
84
- const models = await this.client.get('v1/models');
85
- const aimodels = models.data.map(m => {
86
- return {
87
- id: m.id,
88
- name: m.id,
89
- description: undefined,
90
- provider: m.owned_by,
91
- };
92
- });
93
- return aimodels;
94
- }
95
- validateConnection() {
96
- throw new Error("Method not implemented.");
97
- }
98
- async generateEmbeddings({ content, model = "mistral-embed" }) {
99
- const r = await this.client.post('/v1/embeddings', {
100
- payload: {
101
- model,
102
- input: [content],
103
- encoding_format: "float"
104
- },
105
- });
106
- return {
107
- values: r.data[0].embedding,
108
- model,
109
- token_count: r.usage.total_tokens
110
- };
111
- }
112
- }
113
- /**
114
- * Creates a chat completion request
115
- * @param {*} model
116
- * @param {*} messages
117
- * @param {*} tools
118
- * @param {*} temperature
119
- * @param {*} maxTokens
120
- * @param {*} topP
121
- * @param {*} randomSeed
122
- * @param {*} stream
123
- * @param {*} safeMode deprecated use safePrompt instead
124
- * @param {*} safePrompt
125
- * @param {*} toolChoice
126
- * @param {*} responseFormat
127
- * @return {Promise<Object>}
128
- */
129
- function _makeChatCompletionRequest({ model, messages, tools, temperature, maxTokens, topP, randomSeed, stream, safeMode, safePrompt, toolChoice, responseFormat, }) {
130
- return {
131
- model: model,
132
- messages: messages,
133
- tools: tools ?? undefined,
134
- temperature: temperature ?? undefined,
135
- max_tokens: maxTokens ?? undefined,
136
- top_p: topP ?? undefined,
137
- random_seed: randomSeed ?? undefined,
138
- stream: stream ?? undefined,
139
- safe_prompt: (safeMode || safePrompt) ?? undefined,
140
- tool_choice: toolChoice ?? undefined,
141
- response_format: responseFormat ?? undefined,
142
- };
143
- }
144
- ;
145
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mistral/index.ts"],"names":[],"mappings":"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"}
@@ -1,80 +0,0 @@
1
- // Copied from https://github.com/mistralai/client-js/blob/main/src/client.d.ts
2
- // MistralAI Types
3
- export var ToolType;
4
- (function (ToolType) {
5
- ToolType["function"] = "function";
6
- })(ToolType || (ToolType = {}));
7
- export var ResponseFormats;
8
- (function (ResponseFormats) {
9
- ResponseFormats["text"] = "text";
10
- ResponseFormats["json_object"] = "json_object";
11
- })(ResponseFormats || (ResponseFormats = {}));
12
- export var ToolChoice;
13
- (function (ToolChoice) {
14
- ToolChoice["auto"] = "auto";
15
- ToolChoice["any"] = "any";
16
- ToolChoice["none"] = "none";
17
- })(ToolChoice || (ToolChoice = {}));
18
- // class MistralClient {
19
- // constructor(apiKey?: string, endpoint?: string);
20
- // private _request(
21
- // method: string,
22
- // path: string,
23
- // request: unknown
24
- // ): Promise<unknown>;
25
- // private _makeChatCompletionRequest(
26
- // model: string,
27
- // messages: Array<{ role: string; name?: string, content: string | string[], tool_calls?: ToolCalls[]; }>,
28
- // tools?: Array<{ type: string; function: Function; }>,
29
- // temperature?: number,
30
- // maxTokens?: number,
31
- // topP?: number,
32
- // randomSeed?: number,
33
- // stream?: boolean,
34
- // /**
35
- // * @deprecated use safePrompt instead
36
- // */
37
- // safeMode?: boolean,
38
- // safePrompt?: boolean,
39
- // toolChoice?: ToolChoice,
40
- // responseFormat?: ResponseFormat
41
- // ): object;
42
- // listModels(): Promise<ListModelsResponse>;
43
- // chat(options: {
44
- // model: string;
45
- // messages: Array<{ role: string; name?: string, content: string | string[], tool_calls?: ToolCalls[]; }>;
46
- // tools?: Array<{ type: string; function: Function; }>;
47
- // temperature?: number;
48
- // maxTokens?: number;
49
- // topP?: number;
50
- // randomSeed?: number;
51
- // /**
52
- // * @deprecated use safePrompt instead
53
- // */
54
- // safeMode?: boolean;
55
- // safePrompt?: boolean;
56
- // toolChoice?: ToolChoice;
57
- // responseFormat?: ResponseFormat;
58
- // }): Promise<ChatCompletionResponse>;
59
- // chatStream(options: {
60
- // model: string;
61
- // messages: Array<{ role: string; name?: string, content: string | string[], tool_calls?: ToolCalls[]; }>;
62
- // tools?: Array<{ type: string; function: Function; }>;
63
- // temperature?: number;
64
- // maxTokens?: number;
65
- // topP?: number;
66
- // randomSeed?: number;
67
- // /**
68
- // * @deprecated use safePrompt instead
69
- // */
70
- // safeMode?: boolean;
71
- // safePrompt?: boolean;
72
- // toolChoice?: ToolChoice;
73
- // responseFormat?: ResponseFormat;
74
- // }): AsyncGenerator<ChatCompletionResponseChunk, void, unknown>;
75
- // embeddings(options: {
76
- // model: string;
77
- // input: string | string[];
78
- // }): Promise<EmbeddingResponse>;
79
- // }
80
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/mistral/types.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,kBAAkB;AAsClB,MAAM,CAAN,IAAY,QAEX;AAFD,WAAY,QAAQ;IAChB,iCAAqB,CAAA;AACzB,CAAC,EAFW,QAAQ,KAAR,QAAQ,QAEnB;AAaD,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACvB,gCAAa,CAAA;IACb,8CAA2B,CAAA;AAC/B,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,2BAAa,CAAA;IACb,yBAAW,CAAA;IACX,2BAAa,CAAA;AACjB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAgFD,wBAAwB;AACxB,uDAAuD;AAEvD,wBAAwB;AACxB,0BAA0B;AAC1B,wBAAwB;AACxB,2BAA2B;AAC3B,2BAA2B;AAE3B,0CAA0C;AAC1C,yBAAyB;AACzB,mHAAmH;AACnH,gEAAgE;AAChE,gCAAgC;AAChC,8BAA8B;AAC9B,yBAAyB;AACzB,+BAA+B;AAC/B,4BAA4B;AAC5B,cAAc;AACd,gDAAgD;AAChD,cAAc;AACd,8BAA8B;AAC9B,gCAAgC;AAChC,mCAAmC;AACnC,0CAA0C;AAC1C,iBAAiB;AAEjB,iDAAiD;AAEjD,sBAAsB;AACtB,yBAAyB;AACzB,mHAAmH;AACnH,gEAAgE;AAChE,gCAAgC;AAChC,8BAA8B;AAC9B,yBAAyB;AACzB,+BAA+B;AAC/B,cAAc;AACd,gDAAgD;AAChD,cAAc;AACd,8BAA8B;AAC9B,gCAAgC;AAChC,mCAAmC;AACnC,2CAA2C;AAC3C,2CAA2C;AAE3C,4BAA4B;AAC5B,yBAAyB;AACzB,mHAAmH;AACnH,gEAAgE;AAChE,gCAAgC;AAChC,8BAA8B;AAC9B,yBAAyB;AACzB,+BAA+B;AAC/B,cAAc;AACd,gDAAgD;AAChD,cAAc;AACd,8BAA8B;AAC9B,gCAAgC;AAChC,mCAAmC;AACnC,2CAA2C;AAC3C,sEAAsE;AAEtE,4BAA4B;AAC5B,yBAAyB;AACzB,oCAAoC;AACpC,sCAAsC;AACtC,IAAI"}
@@ -1,195 +0,0 @@
1
- import { AbstractDriver, BuiltinProviders, ModelType, TrainingJobStatus, } from "@llumiverse/core";
2
- import { formatOpenAILikePrompt } from "@llumiverse/core/formatters";
3
- import { asyncMap } from "@llumiverse/core/async";
4
- import OpenAI from "openai";
5
- const supportFineTunning = new Set([
6
- "gpt-3.5-turbo-1106",
7
- "gpt-3.5-turbo-0613",
8
- "babbage-002",
9
- "davinci-002",
10
- "gpt-4-0613"
11
- ]);
12
- export class OpenAIDriver extends AbstractDriver {
13
- inputContentTypes = ["text/plain"];
14
- generatedContentTypes = ["text/plain"];
15
- service;
16
- provider = BuiltinProviders.openai;
17
- constructor(opts) {
18
- super(opts);
19
- this.service = new OpenAI({
20
- apiKey: opts.apiKey,
21
- });
22
- this.formatPrompt = formatOpenAILikePrompt;
23
- }
24
- extractDataFromResponse(options, result) {
25
- const tokenInfo = {
26
- prompt: result.usage?.prompt_tokens,
27
- result: result.usage?.completion_tokens,
28
- total: result.usage?.total_tokens,
29
- };
30
- //if no schema, return content
31
- if (!options.resultSchema) {
32
- return {
33
- result: result.choices[0]?.message.content,
34
- token_usage: tokenInfo,
35
- };
36
- }
37
- //we have a schema: get the content and return after validation
38
- const data = result.choices[0]?.message.function_call?.arguments;
39
- if (!data) {
40
- this.logger?.error("[OpenAI] Response is not valid", result);
41
- throw new Error("Response is not valid: no data");
42
- }
43
- return {
44
- result: data,
45
- token_usage: tokenInfo
46
- };
47
- }
48
- async requestCompletionStream(prompt, options) {
49
- const mapFn = options.resultSchema
50
- ? (chunk) => {
51
- return (chunk.choices[0]?.delta?.function_call?.arguments ?? "");
52
- }
53
- : (chunk) => {
54
- return chunk.choices[0]?.delta?.content ?? "";
55
- };
56
- const stream = (await this.service.chat.completions.create({
57
- stream: true,
58
- model: options.model,
59
- messages: prompt,
60
- temperature: options.temperature,
61
- n: 1,
62
- max_tokens: options.max_tokens,
63
- functions: options.resultSchema
64
- ? [
65
- {
66
- name: "format_output",
67
- parameters: options.resultSchema,
68
- },
69
- ]
70
- : undefined,
71
- function_call: options.resultSchema
72
- ? { name: "format_output" }
73
- : undefined,
74
- }));
75
- return asyncMap(stream, mapFn);
76
- }
77
- async requestCompletion(prompt, options) {
78
- const functions = options.resultSchema
79
- ? [
80
- {
81
- name: "format_output",
82
- parameters: options.resultSchema,
83
- },
84
- ]
85
- : undefined;
86
- const res = await this.service.chat.completions.create({
87
- stream: false,
88
- model: options.model,
89
- messages: prompt,
90
- temperature: options.temperature,
91
- n: 1,
92
- max_tokens: options.max_tokens,
93
- functions: functions,
94
- function_call: options.resultSchema
95
- ? { name: "format_output" }
96
- : undefined,
97
- });
98
- return this.extractDataFromResponse(options, res);
99
- }
100
- createTrainingPrompt(options) {
101
- if (options.model.includes("gpt")) {
102
- return super.createTrainingPrompt(options);
103
- }
104
- else {
105
- // babbage, davinci not yet implemented
106
- throw new Error("Unsupported model for training: " + options.model);
107
- }
108
- }
109
- async startTraining(dataset, options) {
110
- const url = await dataset.getURL();
111
- const file = await this.service.files.create({
112
- file: await fetch(url),
113
- purpose: "fine-tune",
114
- });
115
- const job = await this.service.fineTuning.jobs.create({
116
- training_file: file.id,
117
- model: options.model,
118
- hyperparameters: options.params
119
- });
120
- return jobInfo(job);
121
- }
122
- async cancelTraining(jobId) {
123
- const job = await this.service.fineTuning.jobs.cancel(jobId);
124
- return jobInfo(job);
125
- }
126
- async getTrainingJob(jobId) {
127
- const job = await this.service.fineTuning.jobs.retrieve(jobId);
128
- return jobInfo(job);
129
- }
130
- // ========= management API =============
131
- async validateConnection() {
132
- try {
133
- await this.service.models.list();
134
- return true;
135
- }
136
- catch (error) {
137
- return false;
138
- }
139
- }
140
- listTrainableModels() {
141
- return this._listModels((m) => supportFineTunning.has(m.id));
142
- }
143
- async listModels() {
144
- return this._listModels();
145
- }
146
- async _listModels(filter) {
147
- let result = await this.service.models.list();
148
- const models = filter ? result.data.filter(filter) : result.data;
149
- return models.map((m) => ({
150
- id: m.id,
151
- name: m.id,
152
- provider: this.provider,
153
- owner: m.owned_by,
154
- type: m.object === "model" ? ModelType.Text : ModelType.Unknown,
155
- }));
156
- }
157
- async generateEmbeddings({ content, model = "text-embedding-ada-002" }) {
158
- const res = await this.service.embeddings.create({
159
- input: content,
160
- model: model,
161
- });
162
- const embeddings = res.data[0].embedding;
163
- if (!embeddings || embeddings.length === 0) {
164
- throw new Error("No embedding found");
165
- }
166
- return { values: embeddings, model };
167
- }
168
- }
169
- function jobInfo(job) {
170
- //validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`.
171
- const jobStatus = job.status;
172
- let status = TrainingJobStatus.running;
173
- let details;
174
- if (jobStatus === 'succeeded') {
175
- status = TrainingJobStatus.succeeded;
176
- }
177
- else if (jobStatus === 'failed') {
178
- status = TrainingJobStatus.failed;
179
- details = job.error ? `${job.error.code} - ${job.error.message} ${job.error.param ? " [" + job.error.param + "]" : ""}` : "error";
180
- }
181
- else if (jobStatus === 'cancelled') {
182
- status = TrainingJobStatus.cancelled;
183
- }
184
- else {
185
- status = TrainingJobStatus.running;
186
- details = jobStatus;
187
- }
188
- return {
189
- id: job.id,
190
- model: job.fine_tuned_model || undefined,
191
- status,
192
- details
193
- };
194
- }
195
- //# sourceMappingURL=openai.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/openai.ts"],"names":[],"mappings":"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"}