Skip to content

Commit 72fbe8a

Browse files
authored
Merge pull request #19988 from brave/ai-chat-prompt-abstraction
AI Chat: refactor prompt building and engine calling to EngineConsumer implementations
2 parents 9f202eb + e8a454d commit 72fbe8a

16 files changed

+1010
-590
lines changed

browser/ui/webui/ai_chat/ai_chat_ui_page_handler.cc

+3-15
Original file line numberDiff line numberDiff line change
@@ -81,22 +81,10 @@ void AIChatUIPageHandler::SetClientPage(
8181

8282
void AIChatUIPageHandler::SubmitHumanConversationEntry(
8383
const std::string& input) {
84-
// TODO(nullhook): Avoid copy
85-
std::string input_copy = input;
86-
87-
// Prevent indirect prompt injections being sent to the AI model.
88-
// TODO(nullhook): Abstract prompt injection cleanups to a central place
89-
base::ReplaceSubstringsAfterOffset(&input_copy, 0, ai_chat::kHumanPrompt, "");
90-
base::ReplaceSubstringsAfterOffset(&input_copy, 0, ai_chat::kAIPrompt, "");
91-
base::ReplaceSubstringsAfterOffset(&input_copy, 0, "<article>", "");
92-
base::ReplaceSubstringsAfterOffset(&input_copy, 0, "</article>", "");
93-
base::ReplaceSubstringsAfterOffset(&input_copy, 0, "<history>", "");
94-
base::ReplaceSubstringsAfterOffset(&input_copy, 0, "</history>", "");
95-
base::ReplaceSubstringsAfterOffset(&input_copy, 0, "<question>", "");
96-
base::ReplaceSubstringsAfterOffset(&input_copy, 0, "</question>", "");
97-
84+
mojom::ConversationTurn turn = {CharacterType::HUMAN,
85+
ConversationTurnVisibility::VISIBLE, input};
9886
active_chat_tab_helper_->MakeAPIRequestWithConversationHistoryUpdate(
99-
{CharacterType::HUMAN, ConversationTurnVisibility::VISIBLE, input_copy});
87+
std::move(turn));
10088
}
10189

10290
void AIChatUIPageHandler::GetConversationHistory(

components/ai_chat/browser/BUILD.gn

+7-2
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,19 @@ if (is_official_build) {
1313

1414
static_library("browser") {
1515
sources = [
16-
"ai_chat_api.cc",
17-
"ai_chat_api.h",
1816
"ai_chat_metrics.cc",
1917
"ai_chat_metrics.h",
2018
"ai_chat_tab_helper.cc",
2119
"ai_chat_tab_helper.h",
2220
"constants.cc",
2321
"constants.h",
22+
"engine/engine_consumer.h",
23+
"engine/engine_consumer_claude.cc",
24+
"engine/engine_consumer_claude.h",
25+
"engine/engine_consumer_llama.cc",
26+
"engine/engine_consumer_llama.h",
27+
"engine/remote_completion_client.cc",
28+
"engine/remote_completion_client.h",
2429
"page_content_fetcher.cc",
2530
"page_content_fetcher.h",
2631
]

components/ai_chat/browser/DEPS

+1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@ include_rules = [
33
"+services/data_decoder/public",
44
"+services/network/public",
55
"+services/service_manager/public",
6+
"+absl/types/optional.h",
67
"+ui",
78
]

components/ai_chat/browser/ai_chat_api.h

-42
This file was deleted.

0 commit comments

Comments
 (0)