[Mac M2 Pro 12CPU, Sonoma 14.3.1, clang++ 15.0.0]
対応LLM:gpt-4, gpt-4-vision, claude-3
ネット観察しているとClaude3 Opusの評判がやたらいいので、ChatGPTアプリに導入しました。今日からChatAIアプリに改名します。
GPT-4と同様にlibcurlライブラリを使って通信します。認証(Authorization)のところで少し手間取りました。
これからじっくり比較評価していきます。
string url;
if (model.find("gpt") != string::npos){
url = "https://api.openai.com/v1/chat/completions";
}else{
url = "https://api.anthropic.com/v1/messages";
}
const char* apiKey;
const char* apiKey2;
apiKey = getenv("CHATGPT_API_KEY");
apiKey2 = getenv("CLAUDE_API_KEY");
// appファイルは環境変数を取得できないため直打ち
if (apiKey == NULL) {
apiKey = "xxx";
}
if (apiKey2 == NULL) {
apiKey2 = "xxx";
}
string authHeader;
if (model.find("gpt") != string::npos){
authHeader = "Authorization: Bearer " + string(apiKey);
} else {
authHeader = "x-api-key: " + string(apiKey2);
}
curl_slist* headers = {};
headers = curl_slist_append(headers, authHeader.c_str());
headers = curl_slist_append(headers, "Content-Type: application/json");
if (model.find("claude") != string::npos){
headers = curl_slist_append(headers, "anthropic-version: 2023-06-01");
}