promptfoo 0.94.2 → 0.94.4
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/dist/package.json +12 -1
- package/dist/src/app/assets/{index-DzFOW2sr.js → index-kiRqtGJ5.js} +3 -3
- package/dist/src/app/assets/{index.es-DHZ-d3WX.js → index.es-BPtsk-Gq.js} +1 -1
- package/dist/src/app/assets/{sync-BXQkLspz.js → sync-ePlbCE3C.js} +1 -1
- package/dist/src/app/index.html +1 -1
- package/dist/src/assertions/index.d.ts.map +1 -1
- package/dist/src/assertions/index.js +9 -0
- package/dist/src/assertions/index.js.map +1 -1
- package/dist/src/commands/eval.d.ts.map +1 -1
- package/dist/src/commands/eval.js +3 -1
- package/dist/src/commands/eval.js.map +1 -1
- package/dist/src/commands/init.js +2 -2
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/envars.d.ts +1 -0
- package/dist/src/envars.d.ts.map +1 -1
- package/dist/src/envars.js.map +1 -1
- package/dist/src/evaluator.d.ts.map +1 -1
- package/dist/src/evaluator.js +8 -6
- package/dist/src/evaluator.js.map +1 -1
- package/dist/src/evaluatorHelpers.d.ts.map +1 -1
- package/dist/src/evaluatorHelpers.js +12 -0
- package/dist/src/evaluatorHelpers.js.map +1 -1
- package/dist/src/fetch.d.ts +2 -0
- package/dist/src/fetch.d.ts.map +1 -1
- package/dist/src/fetch.js +35 -4
- package/dist/src/fetch.js.map +1 -1
- package/dist/src/onboarding.d.ts +1 -1
- package/dist/src/onboarding.d.ts.map +1 -1
- package/dist/src/onboarding.js +1 -2
- package/dist/src/onboarding.js.map +1 -1
- package/dist/src/providers/adaline.gateway.d.ts +74 -0
- package/dist/src/providers/adaline.gateway.d.ts.map +1 -0
- package/dist/src/providers/adaline.gateway.js +565 -0
- package/dist/src/providers/adaline.gateway.js.map +1 -0
- package/dist/src/providers/anthropic.d.ts +2 -0
- package/dist/src/providers/anthropic.d.ts.map +1 -1
- package/dist/src/providers/anthropic.js +6 -0
- package/dist/src/providers/anthropic.js.map +1 -1
- package/dist/src/providers/azureopenai.d.ts +1 -0
- package/dist/src/providers/azureopenai.d.ts.map +1 -1
- package/dist/src/providers/azureopenai.js +38 -28
- package/dist/src/providers/azureopenai.js.map +1 -1
- package/dist/src/providers/groq.d.ts +2 -0
- package/dist/src/providers/groq.d.ts.map +1 -1
- package/dist/src/providers/groq.js +5 -2
- package/dist/src/providers/groq.js.map +1 -1
- package/dist/src/providers/openai.d.ts +4 -0
- package/dist/src/providers/openai.d.ts.map +1 -1
- package/dist/src/providers/openai.js +11 -5
- package/dist/src/providers/openai.js.map +1 -1
- package/dist/src/providers/packageParser.d.ts +2 -0
- package/dist/src/providers/packageParser.d.ts.map +1 -1
- package/dist/src/providers/packageParser.js +27 -25
- package/dist/src/providers/packageParser.js.map +1 -1
- package/dist/src/providers/promptfoo.d.ts +12 -0
- package/dist/src/providers/promptfoo.d.ts.map +1 -1
- package/dist/src/providers/promptfoo.js +46 -1
- package/dist/src/providers/promptfoo.js.map +1 -1
- package/dist/src/providers/simulatedUser.d.ts +27 -0
- package/dist/src/providers/simulatedUser.d.ts.map +1 -0
- package/dist/src/providers/simulatedUser.js +64 -0
- package/dist/src/providers/simulatedUser.js.map +1 -0
- package/dist/src/providers/watsonx.d.ts +2 -2
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js +20 -0
- package/dist/src/providers.js.map +1 -1
- package/dist/src/redteam/commands/init.d.ts.map +1 -1
- package/dist/src/redteam/commands/init.js +11 -6
- package/dist/src/redteam/commands/init.js.map +1 -1
- package/dist/src/redteam/plugins/base.d.ts.map +1 -1
- package/dist/src/redteam/plugins/base.js +2 -1
- package/dist/src/redteam/plugins/base.js.map +1 -1
- package/dist/src/redteam/plugins/harmful.d.ts.map +1 -1
- package/dist/src/redteam/plugins/harmful.js +2 -1
- package/dist/src/redteam/plugins/harmful.js.map +1 -1
- package/dist/src/testCases.d.ts.map +1 -1
- package/dist/src/testCases.js +10 -3
- package/dist/src/testCases.js.map +1 -1
- package/dist/src/util/templates.d.ts.map +1 -1
- package/dist/src/util/templates.js +4 -2
- package/dist/src/util/templates.js.map +1 -1
- package/dist/src/util/time.d.ts +1 -0
- package/dist/src/util/time.d.ts.map +1 -1
- package/dist/src/util/time.js +3 -0
- package/dist/src/util/time.js.map +1 -1
- package/dist/test/assertions/index.test.js +72 -0
- package/dist/test/assertions/index.test.js.map +1 -1
- package/dist/test/evaluatorHelpers.test.js +27 -0
- package/dist/test/evaluatorHelpers.test.js.map +1 -1
- package/dist/test/fetch.test.d.ts +2 -0
- package/dist/test/fetch.test.d.ts.map +1 -0
- package/dist/test/fetch.test.js +307 -0
- package/dist/test/fetch.test.js.map +1 -0
- package/dist/test/providers/azure.test.js +98 -0
- package/dist/test/providers/azure.test.js.map +1 -1
- package/dist/test/providers/packageParser.test.js +81 -29
- package/dist/test/providers/packageParser.test.js.map +1 -1
- package/dist/test/testCases.test.js +1 -1
- package/dist/test/testCases.test.js.map +1 -1
- package/dist/test/util/templates.test.js +26 -0
- package/dist/test/util/templates.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -1
|
@@ -0,0 +1,565 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AdalineGatewayChatProvider = exports.AdalineGatewayEmbeddingProvider = exports.AdalineGatewayGenericProvider = void 0;
|
|
7
|
+
const anthropic_1 = require("@adaline/anthropic");
|
|
8
|
+
const azure_1 = require("@adaline/azure");
|
|
9
|
+
const gateway_1 = require("@adaline/gateway");
|
|
10
|
+
const google_1 = require("@adaline/google");
|
|
11
|
+
const groq_1 = require("@adaline/groq");
|
|
12
|
+
const open_router_1 = require("@adaline/open-router");
|
|
13
|
+
const openai_1 = require("@adaline/openai");
|
|
14
|
+
const together_ai_1 = require("@adaline/together-ai");
|
|
15
|
+
const vertex_1 = require("@adaline/vertex");
|
|
16
|
+
const cache_1 = require("../cache");
|
|
17
|
+
const envars_1 = require("../envars");
|
|
18
|
+
const logger_1 = __importDefault(require("../logger"));
|
|
19
|
+
const json_1 = require("../util/json");
|
|
20
|
+
const anthropic_2 = require("./anthropic");
|
|
21
|
+
const azureopenai_1 = require("./azureopenai");
|
|
22
|
+
const groq_2 = require("./groq");
|
|
23
|
+
const openai_2 = require("./openai");
|
|
24
|
+
const palm_1 = require("./palm");
|
|
25
|
+
const shared_1 = require("./shared");
|
|
26
|
+
const vertex_2 = require("./vertex");
|
|
27
|
+
const vertexUtil_1 = require("./vertexUtil");
|
|
28
|
+
const voyage_1 = require("./voyage");
|
|
29
|
+
// Allows Adaline Gateway to R/W PromptFoo's cache
|
|
30
|
+
class AdalineGatewayCachePlugin {
|
|
31
|
+
async get(key) {
|
|
32
|
+
const cache = await (0, cache_1.getCache)();
|
|
33
|
+
return cache.get(key);
|
|
34
|
+
}
|
|
35
|
+
async set(key, value) {
|
|
36
|
+
const cache = await (0, cache_1.getCache)();
|
|
37
|
+
cache.set(key, value);
|
|
38
|
+
}
|
|
39
|
+
// Gateway will never invoke this method
|
|
40
|
+
async delete(key) {
|
|
41
|
+
throw new Error('Not implemented');
|
|
42
|
+
}
|
|
43
|
+
// Gateway will never invoke this method
|
|
44
|
+
async clear() {
|
|
45
|
+
throw new Error('Not implemented');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Adaline Gateway singleton
|
|
49
|
+
class AdalineGateway {
|
|
50
|
+
getGateway() {
|
|
51
|
+
if (!this.gateway) {
|
|
52
|
+
this.gateway = new gateway_1.Gateway({
|
|
53
|
+
queueOptions: {
|
|
54
|
+
maxConcurrentTasks: 4,
|
|
55
|
+
retryCount: 2,
|
|
56
|
+
retry: {
|
|
57
|
+
initialDelay: (0, envars_1.getEnvInt)('PROMPTFOO_REQUEST_BACKOFF_MS', 5000),
|
|
58
|
+
exponentialFactor: 2,
|
|
59
|
+
},
|
|
60
|
+
timeout: shared_1.REQUEST_TIMEOUT_MS,
|
|
61
|
+
},
|
|
62
|
+
completeChatCache: new AdalineGatewayCachePlugin(),
|
|
63
|
+
getEmbeddingsCache: new AdalineGatewayCachePlugin(),
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return this.gateway;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const adalineGateway = new AdalineGateway();
|
|
70
|
+
class AdalineGatewayGenericProvider {
|
|
71
|
+
constructor(providerName, modelName, options = {}) {
|
|
72
|
+
this.modelName = modelName;
|
|
73
|
+
this.providerName = providerName;
|
|
74
|
+
this.providerOptions = options;
|
|
75
|
+
const { config, id, env } = options;
|
|
76
|
+
this.env = env;
|
|
77
|
+
this.config = config || {};
|
|
78
|
+
this.id = id ? () => id : this.id;
|
|
79
|
+
this.gateway = adalineGateway.getGateway();
|
|
80
|
+
}
|
|
81
|
+
id() {
|
|
82
|
+
return `adaline:${this.providerName}:${this.modelName}`;
|
|
83
|
+
}
|
|
84
|
+
toString() {
|
|
85
|
+
return `[Adaline Gateway ${this.providerName}:${this.modelName}]`;
|
|
86
|
+
}
|
|
87
|
+
// @ts-ignore: Params are not used in this implementation
|
|
88
|
+
async callApi(prompt, context, callApiOptions) {
|
|
89
|
+
throw new Error('Not implemented');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.AdalineGatewayGenericProvider = AdalineGatewayGenericProvider;
|
|
93
|
+
class AdalineGatewayEmbeddingProvider extends AdalineGatewayGenericProvider {
|
|
94
|
+
async callEmbeddingApi(text) {
|
|
95
|
+
try {
|
|
96
|
+
let gatewayEmbeddingModel;
|
|
97
|
+
const gatewayEmbeddingRequests = {
|
|
98
|
+
modality: 'text',
|
|
99
|
+
requests: [text],
|
|
100
|
+
};
|
|
101
|
+
if (this.providerName === 'openai') {
|
|
102
|
+
const provider = new openai_1.OpenAI();
|
|
103
|
+
const parentClass = new openai_2.OpenAiEmbeddingProvider(this.modelName, this.providerOptions);
|
|
104
|
+
const apiKey = parentClass.getApiKey();
|
|
105
|
+
if (!apiKey) {
|
|
106
|
+
throw new Error('OpenAI API key is not set. Set the OPENAI_API_KEY environment variable or add `apiKey` to the provider config.');
|
|
107
|
+
}
|
|
108
|
+
gatewayEmbeddingModel = provider.embeddingModel({
|
|
109
|
+
apiKey,
|
|
110
|
+
modelName: this.modelName,
|
|
111
|
+
baseUrl: parentClass.getApiUrl(),
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
else if (this.providerName === 'vertex') {
|
|
115
|
+
const provider = new vertex_1.Vertex();
|
|
116
|
+
const parentClass = new vertex_2.VertexEmbeddingProvider(this.modelName, this.providerOptions);
|
|
117
|
+
const { client, projectId } = await (0, vertexUtil_1.getGoogleClient)();
|
|
118
|
+
const token = await client.getAccessToken();
|
|
119
|
+
gatewayEmbeddingModel = provider.embeddingModel({
|
|
120
|
+
modelName: this.modelName,
|
|
121
|
+
accessToken: token.token,
|
|
122
|
+
location: parentClass.getRegion(),
|
|
123
|
+
projectId,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
else if (this.providerName === 'voyage') {
|
|
127
|
+
const provider = new anthropic_1.Anthropic();
|
|
128
|
+
const parentClass = new voyage_1.VoyageEmbeddingProvider(this.modelName, this.providerOptions);
|
|
129
|
+
const apiKey = parentClass.getApiKey();
|
|
130
|
+
if (!apiKey) {
|
|
131
|
+
throw new Error('Voyage API key is not set. Set the VOYAGE_API_KEY environment variable or add `apiKey` to the provider config.');
|
|
132
|
+
}
|
|
133
|
+
gatewayEmbeddingModel = provider.embeddingModel({
|
|
134
|
+
apiKey,
|
|
135
|
+
modelName: this.modelName,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
else if (this.providerName === 'azureopenai') {
|
|
139
|
+
const provider = new azure_1.Azure();
|
|
140
|
+
const parentClass = new azureopenai_1.AzureOpenAiEmbeddingProvider(this.modelName, this.providerOptions);
|
|
141
|
+
gatewayEmbeddingModel = provider.embeddingModel({
|
|
142
|
+
apiKey: await parentClass.getApiKey(),
|
|
143
|
+
deploymentId: this.modelName,
|
|
144
|
+
baseUrl: parentClass.getApiBaseUrl(),
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
throw new Error(`Unsupported provider: ${this.providerName} on Adaline Gateway`);
|
|
149
|
+
}
|
|
150
|
+
const gatewayRequest = {
|
|
151
|
+
model: gatewayEmbeddingModel,
|
|
152
|
+
config: {},
|
|
153
|
+
embeddingRequests: gatewayEmbeddingRequests,
|
|
154
|
+
options: {
|
|
155
|
+
enableCache: (0, cache_1.isCacheEnabled)(),
|
|
156
|
+
customHeaders: this.config.headers,
|
|
157
|
+
},
|
|
158
|
+
};
|
|
159
|
+
logger_1.default.debug(`Adaline Gateway Embedding API Request: ${(0, json_1.safeJsonStringify)(gatewayRequest)}`);
|
|
160
|
+
const response = (await this.gateway.getEmbeddings(gatewayRequest));
|
|
161
|
+
logger_1.default.debug(`Adaline Gateway Embedding API Response: ${(0, json_1.safeJsonStringify)(response)}`);
|
|
162
|
+
const embedding = response.response.embeddings[0].embedding;
|
|
163
|
+
return {
|
|
164
|
+
embedding,
|
|
165
|
+
tokenUsage: {
|
|
166
|
+
total: response.response.usage?.totalTokens,
|
|
167
|
+
cached: response.cached ? response.response.usage?.totalTokens : 0,
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
logger_1.default.error('Error calling embedding API on Adaline Gateway:', error);
|
|
173
|
+
throw error;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
exports.AdalineGatewayEmbeddingProvider = AdalineGatewayEmbeddingProvider;
|
|
178
|
+
class AdalineGatewayChatProvider extends AdalineGatewayGenericProvider {
|
|
179
|
+
constructor(providerName, modelName, options = {}) {
|
|
180
|
+
super(providerName, modelName, options);
|
|
181
|
+
this.config = options.config || {};
|
|
182
|
+
}
|
|
183
|
+
checkRequestFormat(prompt) {
|
|
184
|
+
const checkFormatRequestUsingConfig = () => {
|
|
185
|
+
if (this.config.tools && this.config.tools.length > 0) {
|
|
186
|
+
if ('definition' in this.config.tools[0]) {
|
|
187
|
+
// valid tool in config and sufficiently in gateway format
|
|
188
|
+
return { formatType: 'gateway' };
|
|
189
|
+
}
|
|
190
|
+
else if ('function' in this.config.tools[0]) {
|
|
191
|
+
// valid tool in config and sufficiently in openai format
|
|
192
|
+
return { formatType: 'openai' };
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// check if any gateway specific config is present
|
|
196
|
+
if ('maxTokens' in this.config ||
|
|
197
|
+
'topP' in this.config ||
|
|
198
|
+
'topK' in this.config ||
|
|
199
|
+
'minP' in this.config ||
|
|
200
|
+
'frequencyPenalty' in this.config ||
|
|
201
|
+
'presencePenalty' in this.config ||
|
|
202
|
+
'repetitionPenalty' in this.config ||
|
|
203
|
+
'logProbs' in this.config ||
|
|
204
|
+
'responseFormat' in this.config ||
|
|
205
|
+
'responseSchema' in this.config ||
|
|
206
|
+
'toolChoice' in this.config) {
|
|
207
|
+
return { formatType: 'gateway' };
|
|
208
|
+
}
|
|
209
|
+
// no gateway specific config is present, assume openai format
|
|
210
|
+
return { formatType: 'openai' };
|
|
211
|
+
};
|
|
212
|
+
const trimmedPrompt = prompt.trim();
|
|
213
|
+
try {
|
|
214
|
+
// try to parse the prompt as JSON and check if it matches openai or gateway format
|
|
215
|
+
const objPrompt = JSON.parse(trimmedPrompt);
|
|
216
|
+
if (Array.isArray(objPrompt) && objPrompt.length > 0) {
|
|
217
|
+
if ('content' in objPrompt[0]) {
|
|
218
|
+
if (typeof objPrompt[0].content === 'string' ||
|
|
219
|
+
(Array.isArray(objPrompt[0].content) &&
|
|
220
|
+
objPrompt[0].content.length > 0 &&
|
|
221
|
+
'type' in objPrompt[0].content[0])) {
|
|
222
|
+
// JSON prompt sufficiently matches openai format
|
|
223
|
+
return { formatType: 'openai' };
|
|
224
|
+
}
|
|
225
|
+
else if (Array.isArray(objPrompt[0].content) &&
|
|
226
|
+
objPrompt[0].content.length > 0 &&
|
|
227
|
+
'modality' in objPrompt[0].content[0]) {
|
|
228
|
+
// JSON prompt sufficiently matches gateway format
|
|
229
|
+
return { formatType: 'gateway' };
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
// JSON prompt does not match openai or gateway format, could just be a valid JSON message to be sent to the model
|
|
234
|
+
return checkFormatRequestUsingConfig();
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// JSON prompt does not match openai or gateway format, could just be a valid JSON message to be sent to the model
|
|
238
|
+
return checkFormatRequestUsingConfig();
|
|
239
|
+
}
|
|
240
|
+
catch {
|
|
241
|
+
// prompt is not a valid JSON string, check if it matches openai or gateway format using config
|
|
242
|
+
return checkFormatRequestUsingConfig();
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
async callApi(prompt, context, callApiOptions) {
|
|
246
|
+
let gatewayChatModel;
|
|
247
|
+
let gatewayConfig;
|
|
248
|
+
let gatewayMessages;
|
|
249
|
+
let gatewayTools;
|
|
250
|
+
// gateway provider can also handle prompts in openai format
|
|
251
|
+
let formatType;
|
|
252
|
+
try {
|
|
253
|
+
formatType = this.checkRequestFormat(prompt).formatType;
|
|
254
|
+
logger_1.default.debug(`Calling Adaline Gateway Chat API with prompt format: ${formatType}`);
|
|
255
|
+
if (formatType === 'openai') {
|
|
256
|
+
// create a temp openai provider to get the entire body that would have been sent to openai
|
|
257
|
+
const openAiProvider = new openai_2.OpenAiChatCompletionProvider(this.modelName, this.providerOptions);
|
|
258
|
+
const { body } = openAiProvider.getOpenAiBody(prompt, context, callApiOptions);
|
|
259
|
+
// create a temp gateway openai model to transform the body to gateway types
|
|
260
|
+
const gatewayOpenAiDummyModel = new openai_1.OpenAI().chatModel({
|
|
261
|
+
modelName: 'gpt-4o',
|
|
262
|
+
apiKey: 'random-api-key',
|
|
263
|
+
});
|
|
264
|
+
// create gateway types from the body
|
|
265
|
+
const gatewayRequest = gatewayOpenAiDummyModel.transformModelRequest(body);
|
|
266
|
+
gatewayConfig = gatewayRequest.config;
|
|
267
|
+
gatewayMessages = gatewayRequest.messages;
|
|
268
|
+
gatewayTools = gatewayRequest.tools;
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
// prompt is in gateway format
|
|
272
|
+
const _config = this.config;
|
|
273
|
+
gatewayConfig = {
|
|
274
|
+
maxTokens: _config.maxTokens,
|
|
275
|
+
temperature: _config.temperature,
|
|
276
|
+
topP: _config.topP,
|
|
277
|
+
topK: _config.topK,
|
|
278
|
+
minP: _config.minP,
|
|
279
|
+
frequencyPenalty: _config.frequencyPenalty,
|
|
280
|
+
presencePenalty: _config.presencePenalty,
|
|
281
|
+
repetitionPenalty: _config.repetitionPenalty,
|
|
282
|
+
stop: _config.stop,
|
|
283
|
+
seed: _config.seed,
|
|
284
|
+
logProbs: callApiOptions?.includeLogProbs === true || _config.logProbs,
|
|
285
|
+
toolChoice: _config.toolChoice,
|
|
286
|
+
responseFormat: _config.responseFormat,
|
|
287
|
+
responseSchema: _config.responseSchema,
|
|
288
|
+
safetySettings: _config.safetySettings,
|
|
289
|
+
};
|
|
290
|
+
gatewayMessages = (0, shared_1.parseChatPrompt)(prompt, [
|
|
291
|
+
{ role: 'user', content: [{ modality: 'text', value: prompt }] },
|
|
292
|
+
]);
|
|
293
|
+
gatewayTools = _config.tools;
|
|
294
|
+
}
|
|
295
|
+
if (this.providerName === 'openai') {
|
|
296
|
+
const provider = new openai_1.OpenAI();
|
|
297
|
+
const parentClass = new openai_2.OpenAiChatCompletionProvider(this.modelName, this.providerOptions);
|
|
298
|
+
const apiKey = parentClass.getApiKey();
|
|
299
|
+
if (!apiKey) {
|
|
300
|
+
throw new Error('OpenAI API key is not set. Set the OPENAI_API_KEY environment variable or add `apiKey` to the provider config.');
|
|
301
|
+
}
|
|
302
|
+
gatewayChatModel = provider.chatModel({
|
|
303
|
+
apiKey,
|
|
304
|
+
modelName: this.modelName,
|
|
305
|
+
baseUrl: parentClass.getApiUrl(),
|
|
306
|
+
organization: parentClass.getOrganization(),
|
|
307
|
+
});
|
|
308
|
+
gatewayConfig.temperature =
|
|
309
|
+
gatewayConfig.temperature ?? (0, envars_1.getEnvFloat)('OPENAI_TEMPERATURE', 0);
|
|
310
|
+
gatewayConfig.maxTokens = gatewayConfig.maxTokens ?? (0, envars_1.getEnvFloat)('OPENAI_MAX_TOKENS', 1024);
|
|
311
|
+
gatewayConfig.maxTokens =
|
|
312
|
+
gatewayConfig.maxTokens ?? (0, envars_1.getEnvFloat)('OPENAI_MAX_COMPLETION_TOKENS');
|
|
313
|
+
gatewayConfig.topP = gatewayConfig.topP ?? (0, envars_1.getEnvFloat)('OPENAI_TOP_P', 1);
|
|
314
|
+
gatewayConfig.frequencyPenalty =
|
|
315
|
+
gatewayConfig.frequencyPenalty ?? (0, envars_1.getEnvFloat)('OPENAI_FREQUENCY_PENALTY', 0);
|
|
316
|
+
gatewayConfig.presencePenalty =
|
|
317
|
+
gatewayConfig.presencePenalty ?? (0, envars_1.getEnvFloat)('OPENAI_PRESENCE_PENALTY', 0);
|
|
318
|
+
}
|
|
319
|
+
else if (this.providerName === 'vertex') {
|
|
320
|
+
const provider = new vertex_1.Vertex();
|
|
321
|
+
const parentClass = new vertex_2.VertexChatProvider(this.modelName, this.providerOptions);
|
|
322
|
+
const { client, projectId } = await (0, vertexUtil_1.getGoogleClient)();
|
|
323
|
+
const token = await client.getAccessToken();
|
|
324
|
+
if (token === null) {
|
|
325
|
+
throw new Error('Vertex API token is not set. Please configure the Google Cloud SDK');
|
|
326
|
+
}
|
|
327
|
+
gatewayChatModel = provider.chatModel({
|
|
328
|
+
modelName: this.modelName,
|
|
329
|
+
accessToken: token.token,
|
|
330
|
+
location: parentClass.getRegion(),
|
|
331
|
+
projectId,
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
else if (this.providerName === 'google') {
|
|
335
|
+
const provider = new google_1.Google();
|
|
336
|
+
const parentClass = new palm_1.PalmChatProvider(this.modelName, this.providerOptions);
|
|
337
|
+
const apiKey = parentClass.getApiKey();
|
|
338
|
+
if (!apiKey) {
|
|
339
|
+
throw new Error('Google API key is not set. Set the GOOGLE_API_KEY environment variable or add `apiKey` to the provider config.');
|
|
340
|
+
}
|
|
341
|
+
gatewayChatModel = provider.chatModel({
|
|
342
|
+
apiKey,
|
|
343
|
+
modelName: this.modelName,
|
|
344
|
+
baseUrl: `https://${parentClass.getApiHost()}/v1beta`,
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
else if (this.providerName === 'azureopenai') {
|
|
348
|
+
const provider = new azure_1.Azure();
|
|
349
|
+
const parentClass = new azureopenai_1.AzureOpenAiChatCompletionProvider(this.modelName, this.providerOptions);
|
|
350
|
+
const apiKey = await parentClass.getApiKey();
|
|
351
|
+
gatewayChatModel = provider.chatModel({
|
|
352
|
+
apiKey,
|
|
353
|
+
deploymentId: this.modelName,
|
|
354
|
+
baseUrl: parentClass.getApiBaseUrl(),
|
|
355
|
+
});
|
|
356
|
+
gatewayConfig.temperature =
|
|
357
|
+
gatewayConfig.temperature ?? (0, envars_1.getEnvFloat)('OPENAI_TEMPERATURE', 0);
|
|
358
|
+
gatewayConfig.maxTokens = gatewayConfig.maxTokens ?? (0, envars_1.getEnvFloat)('OPENAI_MAX_TOKENS', 1024);
|
|
359
|
+
gatewayConfig.topP = gatewayConfig.topP ?? (0, envars_1.getEnvFloat)('OPENAI_TOP_P', 1);
|
|
360
|
+
gatewayConfig.frequencyPenalty =
|
|
361
|
+
gatewayConfig.frequencyPenalty ?? (0, envars_1.getEnvFloat)('OPENAI_FREQUENCY_PENALTY', 0);
|
|
362
|
+
gatewayConfig.presencePenalty =
|
|
363
|
+
gatewayConfig.presencePenalty ?? (0, envars_1.getEnvFloat)('OPENAI_PRESENCE_PENALTY', 0);
|
|
364
|
+
}
|
|
365
|
+
else if (this.providerName === 'anthropic') {
|
|
366
|
+
const provider = new anthropic_1.Anthropic();
|
|
367
|
+
const parentClass = new anthropic_2.AnthropicMessagesProvider(this.modelName, this.providerOptions);
|
|
368
|
+
const apiKey = parentClass.getApiKey();
|
|
369
|
+
if (!apiKey) {
|
|
370
|
+
throw new Error('Anthropic API key is not set. Set the ANTHROPIC_API_KEY environment variable or add `apiKey` to the provider config.');
|
|
371
|
+
}
|
|
372
|
+
gatewayChatModel = provider.chatModel({
|
|
373
|
+
apiKey,
|
|
374
|
+
modelName: this.modelName,
|
|
375
|
+
});
|
|
376
|
+
gatewayConfig.temperature =
|
|
377
|
+
gatewayConfig.temperature ?? (0, envars_1.getEnvFloat)('ANTHROPIC_TEMPERATURE', 0);
|
|
378
|
+
gatewayConfig.maxTokens =
|
|
379
|
+
gatewayConfig.maxTokens ?? (0, envars_1.getEnvFloat)('ANTHROPIC_MAX_TOKENS', 1024);
|
|
380
|
+
}
|
|
381
|
+
else if (this.providerName === 'groq') {
|
|
382
|
+
const provider = new groq_1.Groq();
|
|
383
|
+
const parentClass = new groq_2.GroqProvider(this.modelName, this.providerOptions);
|
|
384
|
+
const apiKey = parentClass.getApiKey();
|
|
385
|
+
if (!apiKey) {
|
|
386
|
+
throw new Error('Groq API key is not set. Set the GROQ_API_KEY environment variable or add `apiKey` to the provider config.');
|
|
387
|
+
}
|
|
388
|
+
gatewayChatModel = provider.chatModel({
|
|
389
|
+
apiKey,
|
|
390
|
+
modelName: this.modelName,
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
else if (this.providerName === 'openrouter') {
|
|
394
|
+
const provider = new open_router_1.OpenRouter();
|
|
395
|
+
const apiKey = this.config.apiKey || process.env['OPENROUTER_API_KEY'];
|
|
396
|
+
if (!apiKey) {
|
|
397
|
+
throw new Error('OpenRouter API key is not set. Set the OPENROUTER_API_KEY environment variable or add `apiKey` to the provider config.');
|
|
398
|
+
}
|
|
399
|
+
gatewayChatModel = provider.chatModel({
|
|
400
|
+
apiKey,
|
|
401
|
+
modelName: this.modelName,
|
|
402
|
+
});
|
|
403
|
+
gatewayConfig.temperature =
|
|
404
|
+
gatewayConfig.temperature ?? (0, envars_1.getEnvFloat)('OPENAI_TEMPERATURE', 0);
|
|
405
|
+
gatewayConfig.maxTokens = gatewayConfig.maxTokens ?? (0, envars_1.getEnvFloat)('OPENAI_MAX_TOKENS', 1024);
|
|
406
|
+
gatewayConfig.maxTokens =
|
|
407
|
+
gatewayConfig.maxTokens ?? (0, envars_1.getEnvFloat)('OPENAI_MAX_COMPLETION_TOKENS');
|
|
408
|
+
gatewayConfig.topP = gatewayConfig.topP ?? (0, envars_1.getEnvFloat)('OPENAI_TOP_P', 1);
|
|
409
|
+
gatewayConfig.frequencyPenalty =
|
|
410
|
+
gatewayConfig.frequencyPenalty ?? (0, envars_1.getEnvFloat)('OPENAI_FREQUENCY_PENALTY', 0);
|
|
411
|
+
gatewayConfig.presencePenalty =
|
|
412
|
+
gatewayConfig.presencePenalty ?? (0, envars_1.getEnvFloat)('OPENAI_PRESENCE_PENALTY', 0);
|
|
413
|
+
}
|
|
414
|
+
else if (this.providerName === 'togetherai') {
|
|
415
|
+
const provider = new together_ai_1.TogetherAI();
|
|
416
|
+
const apiKey = this.config.apiKey || process.env['TOGETHER_API_KEY'];
|
|
417
|
+
if (!apiKey) {
|
|
418
|
+
throw new Error('TogetherAI API key is not set. Set the TOGETHER_API_KEY environment variable or add `apiKey` to the provider config.');
|
|
419
|
+
}
|
|
420
|
+
gatewayChatModel = provider.chatModel({
|
|
421
|
+
apiKey,
|
|
422
|
+
modelName: this.modelName,
|
|
423
|
+
});
|
|
424
|
+
gatewayConfig.temperature =
|
|
425
|
+
gatewayConfig.temperature ?? (0, envars_1.getEnvFloat)('OPENAI_TEMPERATURE', 0);
|
|
426
|
+
gatewayConfig.maxTokens = gatewayConfig.maxTokens ?? (0, envars_1.getEnvFloat)('OPENAI_MAX_TOKENS', 1024);
|
|
427
|
+
gatewayConfig.maxTokens =
|
|
428
|
+
gatewayConfig.maxTokens ?? (0, envars_1.getEnvFloat)('OPENAI_MAX_COMPLETION_TOKENS');
|
|
429
|
+
gatewayConfig.topP = gatewayConfig.topP ?? (0, envars_1.getEnvFloat)('OPENAI_TOP_P', 1);
|
|
430
|
+
gatewayConfig.frequencyPenalty =
|
|
431
|
+
gatewayConfig.frequencyPenalty ?? (0, envars_1.getEnvFloat)('OPENAI_FREQUENCY_PENALTY', 0);
|
|
432
|
+
gatewayConfig.presencePenalty =
|
|
433
|
+
gatewayConfig.presencePenalty ?? (0, envars_1.getEnvFloat)('OPENAI_PRESENCE_PENALTY', 0);
|
|
434
|
+
}
|
|
435
|
+
else {
|
|
436
|
+
throw new Error(`Unsupported provider on Adaline Gateway: ${this.providerName}`);
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
catch (error) {
|
|
440
|
+
logger_1.default.error(`Adaline Gateway Chat API request error: ${String(error)}`);
|
|
441
|
+
return {
|
|
442
|
+
error: `request error: ${String(error)}`,
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
let response;
|
|
446
|
+
const gatewayRequest = {
|
|
447
|
+
model: gatewayChatModel,
|
|
448
|
+
config: gatewayConfig,
|
|
449
|
+
messages: gatewayMessages,
|
|
450
|
+
tools: gatewayTools,
|
|
451
|
+
options: {
|
|
452
|
+
enableCache: (0, cache_1.isCacheEnabled)(),
|
|
453
|
+
customHeaders: this.config.headers,
|
|
454
|
+
},
|
|
455
|
+
};
|
|
456
|
+
logger_1.default.debug(`Adaline Gateway Chat API request: ${(0, json_1.safeJsonStringify)(gatewayRequest)}`);
|
|
457
|
+
try {
|
|
458
|
+
response = (await this.gateway.completeChat(gatewayRequest));
|
|
459
|
+
logger_1.default.debug(`Adaline Gateway Chat API response: ${(0, json_1.safeJsonStringify)(response)}`);
|
|
460
|
+
}
|
|
461
|
+
catch (error) {
|
|
462
|
+
logger_1.default.error(`Adaline Gateway Chat API response error: ${String(error)}`);
|
|
463
|
+
return {
|
|
464
|
+
error: `API response error: ${String(error)} : ${(0, json_1.safeJsonStringify)(gatewayRequest)}`,
|
|
465
|
+
};
|
|
466
|
+
}
|
|
467
|
+
try {
|
|
468
|
+
let output = '';
|
|
469
|
+
if (response.response.messages[0].content.length === 1 &&
|
|
470
|
+
response.response.messages[0].content[0].modality === 'text') {
|
|
471
|
+
output = response.response.messages[0].content[0].value;
|
|
472
|
+
if (gatewayConfig.responseFormat === 'json_schema' && typeof output === 'string') {
|
|
473
|
+
try {
|
|
474
|
+
output = JSON.parse(output);
|
|
475
|
+
}
|
|
476
|
+
catch (error) {
|
|
477
|
+
throw new Error(`Failed to parse JSON output: ${error}`);
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
else {
|
|
482
|
+
if (formatType === 'openai') {
|
|
483
|
+
// convert gateway message type to openai message type if it's more than just text content
|
|
484
|
+
if (response.response.messages[0].content.filter((content) => content.modality === 'text')
|
|
485
|
+
.length > 0) {
|
|
486
|
+
// response has both text and tool-call content
|
|
487
|
+
output = {
|
|
488
|
+
content: response.response.messages[0].content
|
|
489
|
+
.filter((content) => content.modality === 'text')
|
|
490
|
+
.map((content) => content.value)
|
|
491
|
+
.join(' '),
|
|
492
|
+
tool_calls: response.response.messages[0].content
|
|
493
|
+
.filter((content) => content.modality === 'tool-call')
|
|
494
|
+
.map((content) => {
|
|
495
|
+
return {
|
|
496
|
+
id: content.id,
|
|
497
|
+
type: 'function',
|
|
498
|
+
function: {
|
|
499
|
+
name: content.name,
|
|
500
|
+
arguments: content.arguments,
|
|
501
|
+
},
|
|
502
|
+
};
|
|
503
|
+
}),
|
|
504
|
+
};
|
|
505
|
+
}
|
|
506
|
+
else {
|
|
507
|
+
// response has only tool-call content
|
|
508
|
+
output = response.response.messages[0].content
|
|
509
|
+
.filter((content) => content.modality === 'tool-call')
|
|
510
|
+
.map((content) => {
|
|
511
|
+
return {
|
|
512
|
+
id: content.id,
|
|
513
|
+
type: 'function',
|
|
514
|
+
function: {
|
|
515
|
+
name: content.name,
|
|
516
|
+
arguments: content.arguments,
|
|
517
|
+
},
|
|
518
|
+
};
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
else {
|
|
523
|
+
output = response.response.messages[0].content;
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
let cost;
|
|
527
|
+
const costConfig = { cost: this.config.cost };
|
|
528
|
+
if (this.providerName === 'openai') {
|
|
529
|
+
cost = (0, openai_2.calculateOpenAICost)(this.modelName, costConfig, response.response.usage?.promptTokens, response.response.usage?.completionTokens);
|
|
530
|
+
}
|
|
531
|
+
else if (this.providerName === 'azureopenai') {
|
|
532
|
+
cost = (0, azureopenai_1.calculateAzureOpenAICost)(this.modelName, {}, response.response.usage?.promptTokens, response.response.usage?.completionTokens);
|
|
533
|
+
}
|
|
534
|
+
else if (this.providerName === 'anthropic') {
|
|
535
|
+
cost = (0, anthropic_2.calculateAnthropicCost)(this.modelName, costConfig, response.response.usage?.promptTokens, response.response.usage?.completionTokens);
|
|
536
|
+
}
|
|
537
|
+
const logProbs = response.response.logProbs?.map((logProb) => logProb.logProb);
|
|
538
|
+
const tokenUsage = {};
|
|
539
|
+
if (response.cached) {
|
|
540
|
+
tokenUsage.cached = response.response.usage?.totalTokens;
|
|
541
|
+
tokenUsage.total = response.response.usage?.totalTokens;
|
|
542
|
+
}
|
|
543
|
+
else {
|
|
544
|
+
tokenUsage.prompt = response.response.usage?.promptTokens;
|
|
545
|
+
tokenUsage.completion = response.response.usage?.completionTokens;
|
|
546
|
+
tokenUsage.total = response.response.usage?.totalTokens;
|
|
547
|
+
}
|
|
548
|
+
return {
|
|
549
|
+
output,
|
|
550
|
+
tokenUsage,
|
|
551
|
+
cached: response.cached,
|
|
552
|
+
cost,
|
|
553
|
+
logProbs,
|
|
554
|
+
};
|
|
555
|
+
}
|
|
556
|
+
catch (error) {
|
|
557
|
+
logger_1.default.error(`Adaline Gateway Chat API post response error: ${String(error)}`);
|
|
558
|
+
return {
|
|
559
|
+
error: `API post response error: ${String(error)} : ${(0, json_1.safeJsonStringify)(response)}`,
|
|
560
|
+
};
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
exports.AdalineGatewayChatProvider = AdalineGatewayChatProvider;
|
|
565
|
+
//# sourceMappingURL=adaline.gateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adaline.gateway.js","sourceRoot":"","sources":["../../../src/providers/adaline.gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,8 @@ export declare class AnthropicMessagesProvider implements ApiProvider {
|
|
|
40
40
|
});
|
|
41
41
|
id(): string;
|
|
42
42
|
toString(): string;
|
|
43
|
+
getApiKey(): string | undefined;
|
|
44
|
+
getApiBaseUrl(): string | undefined;
|
|
43
45
|
callApi(prompt: string): Promise<ProviderResponse>;
|
|
44
46
|
}
|
|
45
47
|
interface AnthropicCompletionOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAuB,MAAM,mBAAmB,CAAC;AAIxD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAc,MAAM,UAAU,CAAC;AAwDxF,UAAU,uBAAuB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,WAAW,CAAC,EACR,SAAS,CAAC,mBAAmB,CAAC,aAAa,GAC3C,SAAS,CAAC,mBAAmB,CAAC,cAAc,GAC5C,SAAS,CAAC,mBAAmB,CAAC,cAAc,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAkBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,UAiBpE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG;IAC/C,MAAM,CAAC,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC;IACpC,iBAAiB,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC;CAC7C,CA8CA;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,uBAAuB,EAC/B,YAAY,CAAC,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,MAAM,GACxB,MAAM,GAAG,SAAS,CAEpB;AAED,qBAAa,yBAA0B,YAAW,WAAW;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,uBAAuB,CAAC;IAChC,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IAErB,MAAM,CAAC,gBAAgB;;;;;;QAAoB;IAE3C,MAAM,CAAC,sBAAsB,WAA6C;gBAGxE,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,uBAAuB,CAAC;QAAC,GAAG,CAAC,EAAE,YAAY,CAAA;KAAO;IAcrF,EAAE,IAAI,MAAM;IAIZ,QAAQ,IAAI,MAAM;
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAuB,MAAM,mBAAmB,CAAC;AAIxD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAc,MAAM,UAAU,CAAC;AAwDxF,UAAU,uBAAuB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,WAAW,CAAC,EACR,SAAS,CAAC,mBAAmB,CAAC,aAAa,GAC3C,SAAS,CAAC,mBAAmB,CAAC,cAAc,GAC5C,SAAS,CAAC,mBAAmB,CAAC,cAAc,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAkBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,UAiBpE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG;IAC/C,MAAM,CAAC,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC;IACpC,iBAAiB,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC;CAC7C,CA8CA;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,uBAAuB,EAC/B,YAAY,CAAC,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,MAAM,GACxB,MAAM,GAAG,SAAS,CAEpB;AAED,qBAAa,yBAA0B,YAAW,WAAW;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,uBAAuB,CAAC;IAChC,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IAErB,MAAM,CAAC,gBAAgB;;;;;;QAAoB;IAE3C,MAAM,CAAC,sBAAsB,WAA6C;gBAGxE,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,uBAAuB,CAAC;QAAC,GAAG,CAAC,EAAE,YAAY,CAAA;KAAO;IAcrF,EAAE,IAAI,MAAM;IAIZ,QAAQ,IAAI,MAAM;IAIlB,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B,aAAa,IAAI,MAAM,GAAG,SAAS;IAI7B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAmFzD;AAED,UAAU,0BAA0B;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,2BAA4B,YAAW,WAAW;IAC7D,MAAM,CAAC,2BAA2B,WAQhC;IAEF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,0BAA0B,CAAC;gBAGjC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,0BAA0B,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,YAAY,CAAA;KAAO;IAUxF,EAAE,IAAI,MAAM;IAIZ,QAAQ,IAAI,MAAM;IAIZ,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAqEzD;AAED,eAAO,MAAM,sBAAsB,2BAA8D,CAAC;AAClG,eAAO,MAAM,0BAA0B,2BAEtC,CAAC;AACF,eAAO,MAAM,0BAA0B,2BAEtC,CAAC;AAEF,qBAAa,0BAA2B,SAAQ,yBAAyB;gBAC3D,SAAS,EAAE,MAAM;IAgCvB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA2BzD;AACD,eAAO,MAAM,wBAAwB,4BAEpC,CAAC"}
|
|
@@ -188,6 +188,12 @@ class AnthropicMessagesProvider {
|
|
|
188
188
|
toString() {
|
|
189
189
|
return `[Anthropic Messages Provider ${this.modelName || 'claude-2.1'}]`;
|
|
190
190
|
}
|
|
191
|
+
getApiKey() {
|
|
192
|
+
return this.apiKey;
|
|
193
|
+
}
|
|
194
|
+
getApiBaseUrl() {
|
|
195
|
+
return this.config.apiBaseUrl;
|
|
196
|
+
}
|
|
191
197
|
async callApi(prompt) {
|
|
192
198
|
if (!this.apiKey) {
|
|
193
199
|
throw new Error('Anthropic API key is not set. Set the ANTHROPIC_API_KEY environment variable or add `apiKey` to the provider config.');
|