7#include "absl/strings/match.h"
16 if (!absl::EndsWith(base,
"/v1")) {
32 AIServiceConfig config;
33 config.provider =
"gemini";
34 config.model =
"gemini-1.5-flash";
38std::unique_ptr<AIService>
CreateAIService(
const AIServiceConfig& config) {
42 BrowserAIConfig browser_config;
43 browser_config.provider = config.provider.empty() ?
"gemini" : config.provider;
44 browser_config.model = config.model;
45 if (browser_config.model.empty()) {
46 browser_config.model =
47 (browser_config.provider ==
"openai") ?
"gpt-4o-mini"
50 if (browser_config.provider ==
"openai") {
51 browser_config.api_key = config.openai_api_key;
54 browser_config.api_key = config.gemini_api_key;
56 browser_config.verbose = config.verbose;
59 auto http_client = std::make_unique<net::EmscriptenHttpClient>();
62 std::unique_ptr<net::IHttpClient> http_client =
nullptr;
65 return std::make_unique<BrowserAIService>(browser_config, std::move(http_client));
69 const AIServiceConfig& config) {
std::string NormalizeOpenAIApiBase(std::string base)
std::unique_ptr< AIService > CreateAIService()
absl::StatusOr< std::unique_ptr< AIService > > CreateAIServiceStrict(const AIServiceConfig &config)
std::string NormalizeOpenAiBaseUrl(std::string base)