Drogon Web Frameworkとは、C++のWebフレームワークです。公式サイトは、https://drogon.org/ です。ビルドの仕方やDockerでの構築方法が書かれています。
その中で、Gemini APIを突いてレスポンスを表示するだけのサンプルコードです。
Google Gemini APIについては、
https://aistudio.google.com から、APIキーを生成して組み込みます。
#include <drogon/drogon.h>
#include <drogon/utils/Utilities.h>
#include <trantor/utils/Logger.h>
...
Json::Value textJson;
textJson[0]["text"] = text; // ← 'text'はご自由に。
Json::Value partsJson;
partsJson[0]["parts"] = textJson;
Json::Value requestJson;
requestJson["contents"] = partsJson;
auto client = drogon::HttpClient::newHttpClient(
"https://generativelanguage.googleapis.com/"
);
auto request = drogon::HttpRequest::newHttpJsonRequest(requestJson);
std::string path = "/v1beta/models/";
request->setPath(path.append("gemini-1.5-flash").append(":generateContent"));
request->setPathEncode(false);
request->setContentTypeCode(drogon::ContentType::CT_APPLICATION_JSON);
request->setMethod(drogon::HttpMethod::Post);
request->setParameter("key", GEMINI_API_KEY); // ←Gemini APIキー
auto result = client->sendRequest(request, 60.0);
if (result.first != drogon::ReqResult::Ok) {
LOG_ERROR << "NG.";
}
auto jsonObject = result.second->getJsonObject();
if (jsonObject != nullptr) {
LOG_INFO << jsonObject->toStyledString();
}