donobu 2.15.0 → 2.15.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.
- package/dist/apis/FlowsFilesApi.d.ts.map +1 -1
- package/dist/apis/FlowsFilesApi.js +5 -2
- package/dist/apis/FlowsFilesApi.js.map +1 -1
- package/dist/assets/generated/parameter-schemas.json +101 -0
- package/dist/assets/generated/version +1 -1
- package/dist/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/bindings/PageInteractionTracker.js +2 -2
- package/dist/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/clients/AnthropicAwsBedrockGptClient.d.ts +1 -20
- package/dist/clients/AnthropicAwsBedrockGptClient.d.ts.map +1 -1
- package/dist/clients/AnthropicAwsBedrockGptClient.js +12 -329
- package/dist/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
- package/dist/clients/AnthropicGptClient.d.ts +0 -8
- package/dist/clients/AnthropicGptClient.d.ts.map +1 -1
- package/dist/clients/AnthropicGptClient.js +8 -22
- package/dist/clients/AnthropicGptClient.js.map +1 -1
- package/dist/clients/GoogleGptClient.d.ts +4 -20
- package/dist/clients/GoogleGptClient.d.ts.map +1 -1
- package/dist/clients/GoogleGptClient.js +23 -299
- package/dist/clients/GoogleGptClient.js.map +1 -1
- package/dist/clients/OpenAiGptClient.d.ts +0 -6
- package/dist/clients/OpenAiGptClient.d.ts.map +1 -1
- package/dist/clients/OpenAiGptClient.js +4 -8
- package/dist/clients/OpenAiGptClient.js.map +1 -1
- package/dist/clients/VercelAiGptClient.d.ts +3 -1
- package/dist/clients/VercelAiGptClient.d.ts.map +1 -1
- package/dist/clients/VercelAiGptClient.js +18 -14
- package/dist/clients/VercelAiGptClient.js.map +1 -1
- package/dist/esm/apis/FlowsFilesApi.d.ts.map +1 -1
- package/dist/esm/apis/FlowsFilesApi.js +5 -2
- package/dist/esm/apis/FlowsFilesApi.js.map +1 -1
- package/dist/esm/assets/generated/parameter-schemas.json +101 -0
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/esm/bindings/PageInteractionTracker.js +2 -2
- package/dist/esm/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.d.ts +1 -20
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.d.ts.map +1 -1
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.js +12 -329
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
- package/dist/esm/clients/AnthropicGptClient.d.ts +0 -8
- package/dist/esm/clients/AnthropicGptClient.d.ts.map +1 -1
- package/dist/esm/clients/AnthropicGptClient.js +8 -22
- package/dist/esm/clients/AnthropicGptClient.js.map +1 -1
- package/dist/esm/clients/GoogleGptClient.d.ts +4 -20
- package/dist/esm/clients/GoogleGptClient.d.ts.map +1 -1
- package/dist/esm/clients/GoogleGptClient.js +23 -299
- package/dist/esm/clients/GoogleGptClient.js.map +1 -1
- package/dist/esm/clients/OpenAiGptClient.d.ts +0 -6
- package/dist/esm/clients/OpenAiGptClient.d.ts.map +1 -1
- package/dist/esm/clients/OpenAiGptClient.js +4 -8
- package/dist/esm/clients/OpenAiGptClient.js.map +1 -1
- package/dist/esm/clients/VercelAiGptClient.d.ts +3 -1
- package/dist/esm/clients/VercelAiGptClient.d.ts.map +1 -1
- package/dist/esm/clients/VercelAiGptClient.js +18 -14
- package/dist/esm/clients/VercelAiGptClient.js.map +1 -1
- package/dist/esm/managers/DonobuFlow.d.ts +6 -2
- package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlow.js +93 -37
- package/dist/esm/managers/DonobuFlow.js.map +1 -1
- package/dist/esm/managers/ToolManager.js +2 -2
- package/dist/esm/managers/ToolManager.js.map +1 -1
- package/dist/esm/models/GptMessage.d.ts +3 -3
- package/dist/esm/models/GptMessage.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistence.d.ts +4 -4
- package/dist/esm/persistence/FlowsPersistence.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts +2 -3
- package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceAwsS3.js +8 -6
- package/dist/esm/persistence/FlowsPersistenceAwsS3.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts +2 -3
- package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceFilesystem.js +5 -4
- package/dist/esm/persistence/FlowsPersistenceFilesystem.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +2 -3
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js +7 -5
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts +2 -3
- package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceSqlite.js +8 -6
- package/dist/esm/persistence/FlowsPersistenceSqlite.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts +2 -2
- package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceSupabase.js +5 -3
- package/dist/esm/persistence/FlowsPersistenceSupabase.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts +2 -2
- package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceVolatile.js +5 -3
- package/dist/esm/persistence/FlowsPersistenceVolatile.js.map +1 -1
- package/dist/esm/playwrightTestExtensions.js +4 -4
- package/dist/esm/playwrightTestExtensions.js.map +1 -1
- package/dist/esm/tools/AssertTool.js +2 -2
- package/dist/esm/tools/AssertTool.js.map +1 -1
- package/dist/esm/tools/DetectBrokenLinksTool.d.ts.map +1 -1
- package/dist/esm/tools/DetectBrokenLinksTool.js +4 -2
- package/dist/esm/tools/DetectBrokenLinksTool.js.map +1 -1
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js +3 -3
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
- package/dist/esm/utils/MiscUtils.d.ts +8 -11
- package/dist/esm/utils/MiscUtils.d.ts.map +1 -1
- package/dist/esm/utils/MiscUtils.js +90 -54
- package/dist/esm/utils/MiscUtils.js.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.d.ts +6 -3
- package/dist/esm/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.js +9 -5
- package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
- package/dist/managers/DonobuFlow.d.ts +6 -2
- package/dist/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/managers/DonobuFlow.js +93 -37
- package/dist/managers/DonobuFlow.js.map +1 -1
- package/dist/managers/ToolManager.js +2 -2
- package/dist/managers/ToolManager.js.map +1 -1
- package/dist/models/GptMessage.d.ts +3 -3
- package/dist/models/GptMessage.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistence.d.ts +4 -4
- package/dist/persistence/FlowsPersistence.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceAwsS3.d.ts +2 -3
- package/dist/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceAwsS3.js +8 -6
- package/dist/persistence/FlowsPersistenceAwsS3.js.map +1 -1
- package/dist/persistence/FlowsPersistenceFilesystem.d.ts +2 -3
- package/dist/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceFilesystem.js +5 -4
- package/dist/persistence/FlowsPersistenceFilesystem.js.map +1 -1
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +2 -3
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js +7 -5
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
- package/dist/persistence/FlowsPersistenceSqlite.d.ts +2 -3
- package/dist/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceSqlite.js +8 -6
- package/dist/persistence/FlowsPersistenceSqlite.js.map +1 -1
- package/dist/persistence/FlowsPersistenceSupabase.d.ts +2 -2
- package/dist/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceSupabase.js +5 -3
- package/dist/persistence/FlowsPersistenceSupabase.js.map +1 -1
- package/dist/persistence/FlowsPersistenceVolatile.d.ts +2 -2
- package/dist/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceVolatile.js +5 -3
- package/dist/persistence/FlowsPersistenceVolatile.js.map +1 -1
- package/dist/playwrightTestExtensions.js +4 -4
- package/dist/playwrightTestExtensions.js.map +1 -1
- package/dist/tools/AssertTool.js +2 -2
- package/dist/tools/AssertTool.js.map +1 -1
- package/dist/tools/DetectBrokenLinksTool.d.ts.map +1 -1
- package/dist/tools/DetectBrokenLinksTool.js +4 -2
- package/dist/tools/DetectBrokenLinksTool.js.map +1 -1
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js +3 -3
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
- package/dist/utils/MiscUtils.d.ts +8 -11
- package/dist/utils/MiscUtils.d.ts.map +1 -1
- package/dist/utils/MiscUtils.js +90 -54
- package/dist/utils/MiscUtils.js.map +1 -1
- package/dist/utils/PlaywrightUtils.d.ts +6 -3
- package/dist/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/utils/PlaywrightUtils.js +9 -5
- package/dist/utils/PlaywrightUtils.js.map +1 -1
- package/package.json +4 -2
|
@@ -1,355 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AnthropicAwsBedrockGptClient = void 0;
|
|
4
|
-
const Logger_1 = require("../utils/Logger");
|
|
5
|
-
const JsonUtils_1 = require("../utils/JsonUtils");
|
|
6
4
|
const GptClient_1 = require("./GptClient");
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const GptPlatformNotReachableException_1 = require("../exceptions/GptPlatformNotReachableException");
|
|
11
|
-
const client_bedrock_runtime_1 = require("@aws-sdk/client-bedrock-runtime");
|
|
12
|
-
const GptPlatformRateLimitedException_1 = require("../exceptions/GptPlatformRateLimitedException");
|
|
5
|
+
const amazon_bedrock_1 = require("@ai-sdk/amazon-bedrock");
|
|
6
|
+
const VercelAiGptClient_1 = require("./VercelAiGptClient");
|
|
7
|
+
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
13
8
|
/**
|
|
14
9
|
* A GPT client implemented using AWS Bedrock for Anthropic models.
|
|
15
10
|
* @see https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-anthropic-claude.html
|
|
16
11
|
*/
|
|
17
12
|
class AnthropicAwsBedrockGptClient extends GptClient_1.GptClient {
|
|
18
|
-
/**
|
|
19
|
-
* Create a new instance.
|
|
20
|
-
*/
|
|
21
13
|
constructor(anthropicAwsBedrockConfig) {
|
|
22
14
|
super(anthropicAwsBedrockConfig);
|
|
23
15
|
this.anthropicAwsBedrockConfig = anthropicAwsBedrockConfig;
|
|
24
|
-
|
|
16
|
+
const bedrock = (0, amazon_bedrock_1.createAmazonBedrock)({
|
|
25
17
|
region: anthropicAwsBedrockConfig.region,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
accessKeyId: anthropicAwsBedrockConfig.accessKeyId,
|
|
29
|
-
secretAccessKey: anthropicAwsBedrockConfig.secretAccessKey,
|
|
30
|
-
}
|
|
31
|
-
: undefined,
|
|
18
|
+
accessKeyId: anthropicAwsBedrockConfig.accessKeyId,
|
|
19
|
+
secretAccessKey: anthropicAwsBedrockConfig.secretAccessKey,
|
|
32
20
|
});
|
|
21
|
+
const model = bedrock(anthropicAwsBedrockConfig.modelName);
|
|
22
|
+
this.delegate = new VercelAiGptClient_1.VercelAiGptClient(model);
|
|
33
23
|
}
|
|
34
24
|
async ping() {
|
|
35
|
-
|
|
36
|
-
// Build a minimal request to check if the model exists and credentials are valid.
|
|
37
|
-
const command = new client_bedrock_runtime_1.InvokeModelCommand({
|
|
38
|
-
modelId: this.anthropicAwsBedrockConfig.modelName,
|
|
39
|
-
contentType: 'application/json',
|
|
40
|
-
accept: 'application/json',
|
|
41
|
-
body: JSON.stringify({
|
|
42
|
-
anthropic_version: 'bedrock-2023-05-31',
|
|
43
|
-
max_tokens: 1,
|
|
44
|
-
messages: [
|
|
45
|
-
{ role: 'user', content: [{ type: 'text', text: 'ping' }] },
|
|
46
|
-
],
|
|
47
|
-
}),
|
|
48
|
-
});
|
|
49
|
-
await this.bedrockClient.send(command);
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
if (error.name === 'ResourceNotFoundException' ||
|
|
53
|
-
(error.message && error.message.includes('model not found'))) {
|
|
54
|
-
throw new GptModelNotFoundException_1.GptModelNotFoundException(this.anthropicAwsBedrockConfig.type, this.anthropicAwsBedrockConfig.modelName);
|
|
55
|
-
}
|
|
56
|
-
else if (error.name === 'AccessDeniedException' ||
|
|
57
|
-
error.name === 'UnrecognizedClientException' ||
|
|
58
|
-
error.name === 'InvalidSignatureException') {
|
|
59
|
-
throw new GptPlatformAuthenticationFailedException_1.GptPlatformAuthenticationFailedException(this.anthropicAwsBedrockConfig.type);
|
|
60
|
-
}
|
|
61
|
-
else if (error.name === 'ServiceUnavailableException') {
|
|
62
|
-
throw new GptPlatformNotReachableException_1.GptPlatformNotReachableException(this.anthropicAwsBedrockConfig.type);
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
throw new GptPlatformInternalErrorException_1.GptPlatformInternalErrorException(error.message || 'Unknown Bedrock error');
|
|
66
|
-
}
|
|
67
|
-
}
|
|
25
|
+
return this.delegate.ping();
|
|
68
26
|
}
|
|
69
27
|
async getMessage(messages) {
|
|
70
|
-
|
|
71
|
-
const nonSystemMessages = messages
|
|
72
|
-
.filter((msg) => msg.type !== 'system')
|
|
73
|
-
.map(AnthropicAwsBedrockGptClient.chatRequestMessageFromGptMessage);
|
|
74
|
-
const bedrockRequest = {
|
|
75
|
-
anthropic_version: 'bedrock-2023-05-31',
|
|
76
|
-
max_tokens: AnthropicAwsBedrockGptClient.MAX_TOKENS,
|
|
77
|
-
temperature: 0.0,
|
|
78
|
-
system: systemPrompt,
|
|
79
|
-
messages: nonSystemMessages,
|
|
80
|
-
};
|
|
81
|
-
try {
|
|
82
|
-
const command = new client_bedrock_runtime_1.InvokeModelCommand({
|
|
83
|
-
modelId: this.anthropicAwsBedrockConfig.modelName,
|
|
84
|
-
contentType: 'application/json',
|
|
85
|
-
accept: 'application/json',
|
|
86
|
-
body: JSON.stringify(bedrockRequest),
|
|
87
|
-
});
|
|
88
|
-
const response = await this.bedrockClient.send(command);
|
|
89
|
-
const responseBody = JSON.parse(Buffer.from(response.body).toString('utf-8'));
|
|
90
|
-
const text = responseBody.content[0].text;
|
|
91
|
-
// Bedrock currently doesn't provide token usage in the same format as Anthropic direct API
|
|
92
|
-
// We would need to adapt this if/when Bedrock adds token usage metrics
|
|
93
|
-
const promptTokensUsed = responseBody.usage?.input_tokens || 0;
|
|
94
|
-
const completionTokensUsed = responseBody.usage?.output_tokens || 0;
|
|
95
|
-
return {
|
|
96
|
-
type: 'assistant',
|
|
97
|
-
text,
|
|
98
|
-
promptTokensUsed,
|
|
99
|
-
completionTokensUsed,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
catch (error) {
|
|
103
|
-
throw await this.mapErrorToDonobuException(error);
|
|
104
|
-
}
|
|
28
|
+
return this.delegate.getMessage(MiscUtils_1.MiscUtils.mergeAdjacentUserMessages(messages));
|
|
105
29
|
}
|
|
106
30
|
async getStructuredOutput(messages, jsonSchema) {
|
|
107
|
-
|
|
108
|
-
const nonSystemMessages = messages
|
|
109
|
-
.filter((msg) => msg.type !== 'system')
|
|
110
|
-
.map(AnthropicAwsBedrockGptClient.chatRequestMessageFromGptMessage);
|
|
111
|
-
const bedrockRequest = {
|
|
112
|
-
anthropic_version: 'bedrock-2023-05-31',
|
|
113
|
-
max_tokens: AnthropicAwsBedrockGptClient.MAX_TOKENS,
|
|
114
|
-
temperature: 0.0,
|
|
115
|
-
system: systemPrompt,
|
|
116
|
-
messages: nonSystemMessages,
|
|
117
|
-
tools: [
|
|
118
|
-
{
|
|
119
|
-
name: 'StructuredOutputTool',
|
|
120
|
-
description: 'Call this tool with the described parameters',
|
|
121
|
-
input_schema: jsonSchema,
|
|
122
|
-
},
|
|
123
|
-
],
|
|
124
|
-
tool_choice: {
|
|
125
|
-
name: 'StructuredOutputTool',
|
|
126
|
-
type: 'tool',
|
|
127
|
-
disable_parallel_tool_use: true,
|
|
128
|
-
},
|
|
129
|
-
};
|
|
130
|
-
try {
|
|
131
|
-
const command = new client_bedrock_runtime_1.InvokeModelCommand({
|
|
132
|
-
modelId: this.anthropicAwsBedrockConfig.modelName,
|
|
133
|
-
contentType: 'application/json',
|
|
134
|
-
accept: 'application/json',
|
|
135
|
-
body: JSON.stringify(bedrockRequest),
|
|
136
|
-
});
|
|
137
|
-
const response = await this.bedrockClient.send(command);
|
|
138
|
-
const responseBody = JSON.parse(Buffer.from(response.body).toString('utf-8'));
|
|
139
|
-
const item = responseBody.content[0];
|
|
140
|
-
const contentType = item.type;
|
|
141
|
-
let respObj;
|
|
142
|
-
if (contentType === 'tool_use') {
|
|
143
|
-
respObj = item.input;
|
|
144
|
-
}
|
|
145
|
-
else if (contentType === 'text') {
|
|
146
|
-
throw new Error('Unsupported content type: text');
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
throw new Error(`Unexpected content type: ${contentType}`);
|
|
150
|
-
}
|
|
151
|
-
const promptTokensUsed = responseBody.usage?.input_tokens || 0;
|
|
152
|
-
const completionTokensUsed = responseBody.usage?.output_tokens || 0;
|
|
153
|
-
return {
|
|
154
|
-
type: 'structured_output',
|
|
155
|
-
output: respObj,
|
|
156
|
-
promptTokensUsed,
|
|
157
|
-
completionTokensUsed,
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
catch (error) {
|
|
161
|
-
throw await this.mapErrorToDonobuException(error);
|
|
162
|
-
}
|
|
31
|
+
return this.delegate.getStructuredOutput(MiscUtils_1.MiscUtils.mergeAdjacentUserMessages(messages), jsonSchema);
|
|
163
32
|
}
|
|
164
33
|
async getToolCalls(messages, tools) {
|
|
165
|
-
|
|
166
|
-
const nonSystemMessages = messages
|
|
167
|
-
.filter((msg) => msg.type !== 'system')
|
|
168
|
-
.map(AnthropicAwsBedrockGptClient.chatRequestMessageFromGptMessage);
|
|
169
|
-
// Apply user message merging for compatibility with Anthropic's expectations
|
|
170
|
-
AnthropicAwsBedrockGptClient.shenanigansUserMessageMerge(nonSystemMessages);
|
|
171
|
-
const bedrockRequest = {
|
|
172
|
-
anthropic_version: 'bedrock-2023-05-31',
|
|
173
|
-
max_tokens: AnthropicAwsBedrockGptClient.MAX_TOKENS,
|
|
174
|
-
temperature: 0.0,
|
|
175
|
-
system: systemPrompt,
|
|
176
|
-
messages: nonSystemMessages,
|
|
177
|
-
tool_choice: { type: 'any' },
|
|
178
|
-
tools: tools.length
|
|
179
|
-
? tools.map(AnthropicAwsBedrockGptClient.toolChoiceFromTool)
|
|
180
|
-
: undefined,
|
|
181
|
-
};
|
|
182
|
-
try {
|
|
183
|
-
const command = new client_bedrock_runtime_1.InvokeModelCommand({
|
|
184
|
-
modelId: this.anthropicAwsBedrockConfig.modelName,
|
|
185
|
-
contentType: 'application/json',
|
|
186
|
-
accept: 'application/json',
|
|
187
|
-
body: JSON.stringify(bedrockRequest),
|
|
188
|
-
});
|
|
189
|
-
const response = await this.bedrockClient.send(command);
|
|
190
|
-
const responseBody = JSON.parse(Buffer.from(response.body).toString('utf-8'));
|
|
191
|
-
const proposedToolCalls = responseBody.content.map((item) => {
|
|
192
|
-
const contentType = item.type;
|
|
193
|
-
if (contentType === 'tool_use') {
|
|
194
|
-
const tool = tools.find((t) => t.name === item.name);
|
|
195
|
-
if (!tool) {
|
|
196
|
-
throw new Error('Unable to find matching tool for tool call');
|
|
197
|
-
}
|
|
198
|
-
return {
|
|
199
|
-
name: item.name,
|
|
200
|
-
parameters: item.input,
|
|
201
|
-
toolCallId: item.id,
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
else if (contentType === 'text') {
|
|
205
|
-
throw new Error('Unsupported content type: text');
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
throw new Error(`Unexpected content type: ${contentType}`);
|
|
209
|
-
}
|
|
210
|
-
});
|
|
211
|
-
const promptTokensUsed = responseBody.usage?.input_tokens || 0;
|
|
212
|
-
const completionTokensUsed = responseBody.usage?.output_tokens || 0;
|
|
213
|
-
return {
|
|
214
|
-
type: 'proposed_tool_calls',
|
|
215
|
-
proposedToolCalls,
|
|
216
|
-
promptTokensUsed,
|
|
217
|
-
completionTokensUsed,
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
catch (error) {
|
|
221
|
-
throw await this.mapErrorToDonobuException(error);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Extract system prompt from messages
|
|
226
|
-
*/
|
|
227
|
-
extractSystemPrompt(messages) {
|
|
228
|
-
const systemMessages = messages.filter((msg) => msg.type === 'system');
|
|
229
|
-
if (systemMessages.length === 0) {
|
|
230
|
-
return '';
|
|
231
|
-
}
|
|
232
|
-
// Concatenate all system prompts
|
|
233
|
-
return systemMessages.map((msg) => msg.text).join('\n\n');
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Maps AWS SDK errors to our application-specific exceptions
|
|
237
|
-
*/
|
|
238
|
-
async mapErrorToDonobuException(error) {
|
|
239
|
-
Logger_1.appLogger.error(`Bedrock error: ${JSON.stringify(JsonUtils_1.JsonUtils.objectToJson(error))}`);
|
|
240
|
-
if (error.name === 'ResourceNotFoundException' ||
|
|
241
|
-
(error.message && error.message.includes('model not found'))) {
|
|
242
|
-
return new GptModelNotFoundException_1.GptModelNotFoundException(this.anthropicAwsBedrockConfig.type, this.anthropicAwsBedrockConfig.modelName);
|
|
243
|
-
}
|
|
244
|
-
else if (error.name === 'AccessDeniedException' ||
|
|
245
|
-
error.name === 'UnrecognizedClientException' ||
|
|
246
|
-
error.name === 'InvalidSignatureException') {
|
|
247
|
-
return new GptPlatformAuthenticationFailedException_1.GptPlatformAuthenticationFailedException(this.anthropicAwsBedrockConfig.type);
|
|
248
|
-
}
|
|
249
|
-
else if (error.name === 'ServiceUnavailableException') {
|
|
250
|
-
return new GptPlatformNotReachableException_1.GptPlatformNotReachableException(this.anthropicAwsBedrockConfig.type);
|
|
251
|
-
}
|
|
252
|
-
else if (error.name === 'ThrottlingException') {
|
|
253
|
-
return new GptPlatformRateLimitedException_1.GptPlatformRateLimitedException(this.anthropicAwsBedrockConfig.type);
|
|
254
|
-
}
|
|
255
|
-
else {
|
|
256
|
-
return new GptPlatformInternalErrorException_1.GptPlatformInternalErrorException(error.message || 'Unknown Bedrock error');
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Merges adjacent user messages because Anthropic will reject requests that do not delicately
|
|
261
|
-
* flip-flop between "user" and "assistant" roles.
|
|
262
|
-
*/
|
|
263
|
-
static shenanigansUserMessageMerge(messages) {
|
|
264
|
-
for (let i = messages.length - 1; i > 0; i--) {
|
|
265
|
-
const message = messages[i];
|
|
266
|
-
const adjacentMessage = messages[i - 1];
|
|
267
|
-
if (message.role === 'user' && adjacentMessage.role === 'user') {
|
|
268
|
-
adjacentMessage.content.push(...message.content);
|
|
269
|
-
messages.splice(i, 1);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
static chatRequestMessageFromGptMessage(gptMessage) {
|
|
274
|
-
if (gptMessage.type === 'assistant') {
|
|
275
|
-
return {
|
|
276
|
-
role: 'assistant',
|
|
277
|
-
content: [
|
|
278
|
-
{
|
|
279
|
-
type: 'text',
|
|
280
|
-
text: gptMessage.text,
|
|
281
|
-
},
|
|
282
|
-
],
|
|
283
|
-
};
|
|
284
|
-
}
|
|
285
|
-
if (gptMessage.type === 'structured_output') {
|
|
286
|
-
const output = gptMessage.output;
|
|
287
|
-
return {
|
|
288
|
-
role: 'assistant',
|
|
289
|
-
content: [
|
|
290
|
-
{
|
|
291
|
-
type: 'text',
|
|
292
|
-
text: JSON.stringify(JsonUtils_1.JsonUtils.objectToJson(output), null, 2),
|
|
293
|
-
},
|
|
294
|
-
],
|
|
295
|
-
};
|
|
296
|
-
}
|
|
297
|
-
if (gptMessage.type === 'proposed_tool_calls') {
|
|
298
|
-
return {
|
|
299
|
-
role: 'assistant',
|
|
300
|
-
content: gptMessage.proposedToolCalls.map((tc) => ({
|
|
301
|
-
type: 'tool_use',
|
|
302
|
-
id: tc.toolCallId,
|
|
303
|
-
name: tc.name,
|
|
304
|
-
input: JsonUtils_1.JsonUtils.objectToJson(tc.parameters),
|
|
305
|
-
})),
|
|
306
|
-
};
|
|
307
|
-
}
|
|
308
|
-
if (gptMessage.type === 'user') {
|
|
309
|
-
return {
|
|
310
|
-
role: 'user',
|
|
311
|
-
content: gptMessage.items.map((item) => {
|
|
312
|
-
if (item.type === 'png') {
|
|
313
|
-
return {
|
|
314
|
-
type: 'image',
|
|
315
|
-
source: {
|
|
316
|
-
type: 'base64',
|
|
317
|
-
media_type: 'image/png',
|
|
318
|
-
data: Buffer.from(item.bytes).toString('base64'),
|
|
319
|
-
},
|
|
320
|
-
};
|
|
321
|
-
}
|
|
322
|
-
else {
|
|
323
|
-
return {
|
|
324
|
-
type: 'text',
|
|
325
|
-
text: item.text,
|
|
326
|
-
};
|
|
327
|
-
}
|
|
328
|
-
}),
|
|
329
|
-
};
|
|
330
|
-
}
|
|
331
|
-
if (gptMessage.type === 'tool_call_result') {
|
|
332
|
-
return {
|
|
333
|
-
role: 'user',
|
|
334
|
-
content: [
|
|
335
|
-
{
|
|
336
|
-
type: 'tool_result',
|
|
337
|
-
tool_use_id: gptMessage.toolCallId,
|
|
338
|
-
content: gptMessage.data,
|
|
339
|
-
},
|
|
340
|
-
],
|
|
341
|
-
};
|
|
342
|
-
}
|
|
343
|
-
throw new Error(`Unsupported message type: ${JsonUtils_1.JsonUtils.objectToJson(gptMessage)}`);
|
|
344
|
-
}
|
|
345
|
-
static toolChoiceFromTool(tool) {
|
|
346
|
-
return {
|
|
347
|
-
name: tool.name,
|
|
348
|
-
description: tool.description,
|
|
349
|
-
input_schema: tool.inputSchema,
|
|
350
|
-
};
|
|
34
|
+
return this.delegate.getToolCalls(MiscUtils_1.MiscUtils.mergeAdjacentUserMessages(messages), tools);
|
|
351
35
|
}
|
|
352
36
|
}
|
|
353
37
|
exports.AnthropicAwsBedrockGptClient = AnthropicAwsBedrockGptClient;
|
|
354
|
-
AnthropicAwsBedrockGptClient.MAX_TOKENS = 8192;
|
|
355
38
|
//# sourceMappingURL=AnthropicAwsBedrockGptClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnthropicAwsBedrockGptClient.js","sourceRoot":"","sources":["../../../src/clients/AnthropicAwsBedrockGptClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AnthropicAwsBedrockGptClient.js","sourceRoot":"","sources":["../../../src/clients/AnthropicAwsBedrockGptClient.ts"],"names":[],"mappings":";;;AAAA,2CAAoD;AASpD,2DAA6D;AAC7D,2DAAwD;AACxD,kDAA+C;AAE/C;;;GAGG;AACH,MAAa,4BAA6B,SAAQ,qBAAS;IAGzD,YACmB,yBAAoD;QAErE,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAFhB,8BAAyB,GAAzB,yBAAyB,CAA2B;QAGrE,MAAM,OAAO,GAAG,IAAA,oCAAmB,EAAC;YAClC,MAAM,EAAE,yBAAyB,CAAC,MAAM;YACxC,WAAW,EAAE,yBAAyB,CAAC,WAAW;YAClD,eAAe,EAAE,yBAAyB,CAAC,eAAe;SAC3D,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,qCAAiB,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,QAAsB;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAC7B,qBAAS,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAC9C,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC9B,QAAsB,EACtB,UAAuB;QAEvB,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CACtC,qBAAS,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAC7C,UAAU,CACX,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,QAAsB,EACtB,KAAmB;QAEnB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAC/B,qBAAS,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAC7C,KAAK,CACN,CAAC;IACJ,CAAC;CACF;AA7CD,oEA6CC"}
|
|
@@ -16,9 +16,6 @@ export declare class AnthropicGptClient extends GptClient {
|
|
|
16
16
|
private static readonly CONTENT_TYPE_HEADER_VALUE;
|
|
17
17
|
private static readonly MAX_TOKENS;
|
|
18
18
|
private readonly headers;
|
|
19
|
-
/**
|
|
20
|
-
* Create a new instance.
|
|
21
|
-
*/
|
|
22
19
|
constructor(anthropicConfig: AnthropicConfig);
|
|
23
20
|
ping(): Promise<void>;
|
|
24
21
|
getMessage(messages: GptMessage[]): Promise<AssistantMessage>;
|
|
@@ -26,11 +23,6 @@ export declare class AnthropicGptClient extends GptClient {
|
|
|
26
23
|
getToolCalls(messages: GptMessage[], tools: ToolOption[]): Promise<ProposedToolCallsMessage>;
|
|
27
24
|
private mapErrorResponseToDonobuException;
|
|
28
25
|
private makeRequest;
|
|
29
|
-
/**
|
|
30
|
-
* Merges adjacent user messages because Anthropic will reject requests that do not delicately
|
|
31
|
-
* flip-flop between "user" and "assistant" roles.
|
|
32
|
-
*/
|
|
33
|
-
private static shenanigansUserMessageMerge;
|
|
34
26
|
private static chatRequestMessageFromGptMessage;
|
|
35
27
|
private static toolChoiceFromTool;
|
|
36
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnthropicGptClient.d.ts","sourceRoot":"","sources":["../../../src/clients/AnthropicGptClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"AnthropicGptClient.d.ts","sourceRoot":"","sources":["../../../src/clients/AnthropicGptClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;IAW5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAVnD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAA+B;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAU;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAe;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAuB;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAgB;IAChE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAsB;IACvE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAQ;IAE1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEE,eAAe,EAAE,eAAe;IAUvD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAerB,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkC7D,mBAAmB,CAC9B,QAAQ,EAAE,UAAU,EAAE,EACtB,UAAU,EAAE,WAAW,GACtB,OAAO,CAAC,uBAAuB,CAAC;IAyDtB,YAAY,CACvB,QAAQ,EAAE,UAAU,EAAE,EACtB,KAAK,EAAE,UAAU,EAAE,GAClB,OAAO,CAAC,wBAAwB,CAAC;YAqEtB,iCAAiC;YA0BjC,WAAW;IAwBzB,OAAO,CAAC,MAAM,CAAC,gCAAgC;IAkF/C,OAAO,CAAC,MAAM,CAAC,kBAAkB;CAOlC"}
|
|
@@ -8,14 +8,12 @@ const GptModelNotFoundException_1 = require("../exceptions/GptModelNotFoundExcep
|
|
|
8
8
|
const GptPlatformAuthenticationFailedException_1 = require("../exceptions/GptPlatformAuthenticationFailedException");
|
|
9
9
|
const GptPlatformInternalErrorException_1 = require("../exceptions/GptPlatformInternalErrorException");
|
|
10
10
|
const GptPlatformNotReachableException_1 = require("../exceptions/GptPlatformNotReachableException");
|
|
11
|
+
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
11
12
|
/**
|
|
12
13
|
* A GPT client implemented using the Anthropic API
|
|
13
14
|
* @see https://docs.anthropic.com/en/api/messages
|
|
14
15
|
*/
|
|
15
16
|
class AnthropicGptClient extends GptClient_1.GptClient {
|
|
16
|
-
/**
|
|
17
|
-
* Create a new instance.
|
|
18
|
-
*/
|
|
19
17
|
constructor(anthropicConfig) {
|
|
20
18
|
super(anthropicConfig);
|
|
21
19
|
this.anthropicConfig = anthropicConfig;
|
|
@@ -35,6 +33,7 @@ class AnthropicGptClient extends GptClient_1.GptClient {
|
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
35
|
async getMessage(messages) {
|
|
36
|
+
messages = MiscUtils_1.MiscUtils.mergeAdjacentUserMessages(messages);
|
|
38
37
|
const systemPrompts = messages
|
|
39
38
|
.filter((msg) => msg.type === 'system')
|
|
40
39
|
.map(AnthropicGptClient.chatRequestMessageFromGptMessage);
|
|
@@ -47,7 +46,6 @@ class AnthropicGptClient extends GptClient_1.GptClient {
|
|
|
47
46
|
.filter((msg) => msg.type !== 'system')
|
|
48
47
|
.map(AnthropicGptClient.chatRequestMessageFromGptMessage),
|
|
49
48
|
};
|
|
50
|
-
AnthropicGptClient.shenanigansUserMessageMerge(body.messages);
|
|
51
49
|
const resp = await this.makeRequest('/v1/messages', 'POST', body);
|
|
52
50
|
if (resp.status !== 200) {
|
|
53
51
|
throw await this.mapErrorResponseToDonobuException(resp);
|
|
@@ -64,6 +62,7 @@ class AnthropicGptClient extends GptClient_1.GptClient {
|
|
|
64
62
|
};
|
|
65
63
|
}
|
|
66
64
|
async getStructuredOutput(messages, jsonSchema) {
|
|
65
|
+
messages = MiscUtils_1.MiscUtils.mergeAdjacentUserMessages(messages);
|
|
67
66
|
const systemPrompts = messages
|
|
68
67
|
.filter((msg) => msg.type === 'system')
|
|
69
68
|
.map(AnthropicGptClient.chatRequestMessageFromGptMessage);
|
|
@@ -88,7 +87,6 @@ class AnthropicGptClient extends GptClient_1.GptClient {
|
|
|
88
87
|
disable_parallel_tool_use: true,
|
|
89
88
|
},
|
|
90
89
|
};
|
|
91
|
-
AnthropicGptClient.shenanigansUserMessageMerge(body.messages);
|
|
92
90
|
const resp = await this.makeRequest('/v1/messages', 'POST', body);
|
|
93
91
|
if (resp.status !== 200) {
|
|
94
92
|
throw await this.mapErrorResponseToDonobuException(resp);
|
|
@@ -116,6 +114,7 @@ class AnthropicGptClient extends GptClient_1.GptClient {
|
|
|
116
114
|
};
|
|
117
115
|
}
|
|
118
116
|
async getToolCalls(messages, tools) {
|
|
117
|
+
messages = MiscUtils_1.MiscUtils.mergeAdjacentUserMessages(messages);
|
|
119
118
|
const systemPrompts = messages
|
|
120
119
|
.filter((msg) => msg.type === 'system')
|
|
121
120
|
.map(AnthropicGptClient.chatRequestMessageFromGptMessage);
|
|
@@ -136,7 +135,6 @@ class AnthropicGptClient extends GptClient_1.GptClient {
|
|
|
136
135
|
.filter((msg) => msg.type !== 'system')
|
|
137
136
|
.map(AnthropicGptClient.chatRequestMessageFromGptMessage),
|
|
138
137
|
};
|
|
139
|
-
AnthropicGptClient.shenanigansUserMessageMerge(body.messages);
|
|
140
138
|
// Note the special header for this endpoint
|
|
141
139
|
const headers = new Headers(this.headers);
|
|
142
140
|
headers.append('anthropic-beta', 'prompt-caching-2024-07-31');
|
|
@@ -206,20 +204,6 @@ class AnthropicGptClient extends GptClient_1.GptClient {
|
|
|
206
204
|
}
|
|
207
205
|
}
|
|
208
206
|
}
|
|
209
|
-
/**
|
|
210
|
-
* Merges adjacent user messages because Anthropic will reject requests that do not delicately
|
|
211
|
-
* flip-flop between "user" and "assistant" roles.
|
|
212
|
-
*/
|
|
213
|
-
static shenanigansUserMessageMerge(messages) {
|
|
214
|
-
for (let i = messages.length - 1; i > 0; i--) {
|
|
215
|
-
const message = messages[i];
|
|
216
|
-
const adjacentMessage = messages[i - 1];
|
|
217
|
-
if (message.role === 'user' && adjacentMessage.role === 'user') {
|
|
218
|
-
adjacentMessage.content.push(...message.content);
|
|
219
|
-
messages.splice(i, 1);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
207
|
static chatRequestMessageFromGptMessage(gptMessage) {
|
|
224
208
|
if (gptMessage.type === 'assistant') {
|
|
225
209
|
return {
|
|
@@ -255,12 +239,14 @@ class AnthropicGptClient extends GptClient_1.GptClient {
|
|
|
255
239
|
return {
|
|
256
240
|
role: 'user',
|
|
257
241
|
content: gptMessage.items.map((item) => {
|
|
258
|
-
if (
|
|
242
|
+
if ('bytes' in item) {
|
|
243
|
+
const imageType = MiscUtils_1.MiscUtils.detectImageType(item.bytes);
|
|
244
|
+
const mimeType = `image/${imageType}`;
|
|
259
245
|
return {
|
|
260
246
|
type: 'image',
|
|
261
247
|
source: {
|
|
262
248
|
type: 'base64',
|
|
263
|
-
media_type:
|
|
249
|
+
media_type: mimeType,
|
|
264
250
|
data: Buffer.from(item.bytes).toString('base64'),
|
|
265
251
|
},
|
|
266
252
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnthropicGptClient.js","sourceRoot":"","sources":["../../../src/clients/AnthropicGptClient.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAC5C,kDAA+C;AAC/C,2CAAoD;AAQpD,uFAAoF;AACpF,qHAAkH;AAClH,uGAAoG;AACpG,qGAAkG;
|
|
1
|
+
{"version":3,"file":"AnthropicGptClient.js","sourceRoot":"","sources":["../../../src/clients/AnthropicGptClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,31 +8,19 @@ import { GoogleGeminiConfig } from '../models/GptConfig';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare class GoogleGptClient extends GptClient {
|
|
10
10
|
private readonly googleGeminiConfig;
|
|
11
|
-
private
|
|
12
|
-
private static readonly REQUEST_TIMEOUT_MILLISECONDS;
|
|
13
|
-
private static readonly API_KEY_HEADER_NAME;
|
|
14
|
-
private static readonly CONTENT_TYPE;
|
|
15
|
-
private readonly headers;
|
|
16
|
-
/**
|
|
17
|
-
* Create a new instance.
|
|
18
|
-
* @param apiKey The Google API key to use for all requests with this client.
|
|
19
|
-
* @param modelName See https://ai.google.dev/gemini-api/docs/models/gemini for the list of models.
|
|
20
|
-
* @param apiUrl The URL of the API to use for all requests with this client.
|
|
21
|
-
*/
|
|
11
|
+
private readonly delegate;
|
|
22
12
|
constructor(googleGeminiConfig: GoogleGeminiConfig);
|
|
23
13
|
ping(): Promise<void>;
|
|
24
14
|
getMessage(messages: GptMessage[]): Promise<AssistantMessage>;
|
|
25
15
|
getStructuredOutput(messages: GptMessage[], jsonSchema: JSONSchema7): Promise<StructuredOutputMessage>;
|
|
26
16
|
getToolCalls(messages: GptMessage[], tools: ToolOption[]): Promise<ProposedToolCallsMessage>;
|
|
27
17
|
/**
|
|
28
|
-
* Fix the "assert1" field issue in tool call parameters
|
|
18
|
+
* Fix the "assert1" field issue in tool call parameters (Gemini has severe
|
|
19
|
+
* troubles trying to say the word "assert" on its own... really).
|
|
20
|
+
*
|
|
29
21
|
* Recursively search and replace any field containing "assert1" with "assert"
|
|
30
22
|
*/
|
|
31
23
|
private static fixAssertFields;
|
|
32
|
-
private mapErrorResponseToDonobuException;
|
|
33
|
-
private makeRequest;
|
|
34
|
-
private static chatRequestMessageFromGptMessage;
|
|
35
|
-
private static toolChoiceFromTool;
|
|
36
24
|
/**
|
|
37
25
|
* Creates a new JSON schema compatible with Google's API.
|
|
38
26
|
*/
|
|
@@ -42,10 +30,6 @@ export declare class GoogleGptClient extends GptClient {
|
|
|
42
30
|
* schema since Google does not support that keyword.
|
|
43
31
|
**/
|
|
44
32
|
private static removeAdditionalProperties;
|
|
45
|
-
/**
|
|
46
|
-
* Merges adjacent user messages because Google will otherwise reject the request.
|
|
47
|
-
*/
|
|
48
|
-
private static shenanigansUserMessageMerge;
|
|
49
33
|
/**
|
|
50
34
|
* Recursively replaces "type" fields that are arrays containing "null" with
|
|
51
35
|
* a single non-null type since Google will otherwise throw an error.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleGptClient.d.ts","sourceRoot":"","sources":["../../../src/clients/GoogleGptClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"GoogleGptClient.d.ts","sourceRoot":"","sources":["../../../src/clients/GoogleGptClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAKzD;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAGzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAFtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;gBAED,kBAAkB,EAAE,kBAAkB;IAS7D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAM7D,mBAAmB,CAC9B,QAAQ,EAAE,UAAU,EAAE,EACtB,UAAU,EAAE,WAAW,GACtB,OAAO,CAAC,uBAAuB,CAAC;IAStB,YAAY,CACvB,QAAQ,EAAE,UAAU,EAAE,EACtB,KAAK,EAAE,UAAU,EAAE,GAClB,OAAO,CAAC,wBAAwB,CAAC;IAmBpC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IA0C9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gCAAgC;IAU/C;;;QAGI;IACJ,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAmBzC;;;QAGI;IACJ,OAAO,CAAC,MAAM,CAAC,mBAAmB;CA2BnC"}
|