| 31 | }; |
| 32 | |
| 33 | ProviderResult test_provider(const std::string& provider_name, |
| 34 | const std::string& model, |
| 35 | const std::string& prompt) { |
| 36 | auto start = std::chrono::high_resolution_clock::now(); |
| 37 | |
| 38 | ai::Client client; |
| 39 | if (provider_name == "OpenAI") { |
| 40 | client = ai::openai::create_client(); |
| 41 | } else if (provider_name == "Anthropic") { |
| 42 | client = ai::anthropic::create_client(); |
| 43 | } else { |
| 44 | return {provider_name, model, ai::GenerateResult("Unknown provider"), |
| 45 | std::chrono::milliseconds(0), false}; |
| 46 | } |
| 47 | |
| 48 | ai::GenerateOptions options; |
| 49 | options.model = model; |
| 50 | options.prompt = prompt; |
| 51 | auto result = client.generate_text(options); |
| 52 | |
| 53 | auto end = std::chrono::high_resolution_clock::now(); |
| 54 | auto duration = |
| 55 | std::chrono::duration_cast<std::chrono::milliseconds>(end - start); |
| 56 | |
| 57 | return {provider_name, model, std::move(result), duration, |
| 58 | result.is_success()}; |
| 59 | } |
| 60 | |
| 61 | void print_result(const ProviderResult& pr) { |
| 62 | std::cout << "Provider: " << pr.provider_name << "\n"; |
no test coverage detected