🪨 feat: RAG API Support for AWS Bedrock (#4322)

* feat: bedrock/agents legacy rag api file processing

* refactor: use agent instructions for build message options
This commit is contained in:
Danny Avila 2024-10-03 08:53:28 -04:00 committed by GitHub
parent 104341e0e7
commit 519df46e1f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -184,10 +184,10 @@ class AgentClient extends BaseClient {
);
}
getBuildMessagesOptions(opts) {
getBuildMessagesOptions() {
return {
instructions: opts.instructions,
additional_instructions: opts.additional_instructions,
instructions: this.options.agent.instructions,
additional_instructions: this.options.agent.additional_instructions,
};
}
@ -214,8 +214,6 @@ class AgentClient extends BaseClient {
});
let payload;
/** @type {{ role: string; name: string; content: string } | undefined} */
let systemMessage;
/** @type {number | undefined} */
let promptTokens;
@ -263,21 +261,21 @@ class AgentClient extends BaseClient {
}
/* If message has files, calculate image token cost */
// if (this.message_file_map && this.message_file_map[message.messageId]) {
// const attachments = this.message_file_map[message.messageId];
// for (const file of attachments) {
// if (file.embedded) {
// this.contextHandlers?.processFile(file);
// continue;
// }
if (this.message_file_map && this.message_file_map[message.messageId]) {
const attachments = this.message_file_map[message.messageId];
for (const file of attachments) {
if (file.embedded) {
this.contextHandlers?.processFile(file);
continue;
}
// orderedMessages[i].tokenCount += this.calculateImageTokenCost({
// width: file.width,
// height: file.height,
// detail: this.options.imageDetail ?? ImageDetail.auto,
// });
// }
// }
}
}
return formattedMessage;
});
@ -288,20 +286,7 @@ class AgentClient extends BaseClient {
}
if (systemContent) {
systemContent = `${systemContent.trim()}`;
systemMessage = {
role: 'system',
name: 'instructions',
content: systemContent,
};
if (this.contextStrategy) {
const instructionTokens = this.getTokenCountForMessage(systemMessage);
if (instructionTokens >= 0) {
const firstMessageTokens = orderedMessages[0].tokenCount ?? 0;
orderedMessages[0].tokenCount = firstMessageTokens + instructionTokens;
}
}
this.options.agent.instructions = systemContent;
}
if (this.contextStrategy) {