[C++] 293 FLTK : ChatGPTアプリの製作 その22 Redisとの連携検討

[M1 Mac, Monterey 12.6.3, clang 13.0.0, FLTK 1.3.8, ChatGPT Plus, NO IDE]

ChatGPTにデータを与えて即席の専門家に仕立て上げる方法を模索しています。

DocsBotというChatGPT連携サービスを見つけましたが、さすがにWebアプリにAPIキーを渡すのは危ないと思い、登録だけにとどめました。

Redisというデータベースで整理したデータを与えると効率的にChatbotを作れるようなので検討を開始しました。

とりあえずURLデータを読み込ませる方法をChatGPTに聞いてみました。ぱっと見でネットに接続していないことが分かるデタラメなコードでした。さらに質問を重ねる必要があります。

今現在ChatGPTアプリは1〜3窓で稼働しています。

Q : RedisにURLのデータを読み込ませるにはどうすればよいですか
A :
RedisにURLのデータを読み込ませるには、URLを文字列としてRedisに保存する必要があります。以下は、C++を使用してURLのデータをRedisに保存する例です。

#include <iostream>
#include <hiredis/hiredis.h>

int main() {
    // Redisに接続
    redisContext* redis = redisConnect("localhost", 6379);
    if (redis == NULL || redis->err) {
        std::cerr << "Error connecting to Redis: " << redis->errstr << std::endl;
        return 1;
    }

    // URLのデータを読み込む
    std::string url_data = "https://example.com";

    // RedisにURLのデータを保存
    redisReply* reply = (redisReply*)redisCommand(redis, "SET %s %s", "url_data", url_data.c_str());
    if (reply == NULL || reply->type == REDIS_REPLY_ERROR) {
        std::cerr << "Error setting data to Redis: " << redis->errstr << std::endl;
        return 1;
    }
    freeReplyObject(reply);

    // RedisからURLのデータを取得
    reply = (redisReply*)redisCommand(redis, "GET %s", "url_data");
    if (reply == NULL || reply->type == REDIS_REPLY_ERROR) {
        std::cerr << "Error getting data from Redis: " << redis->errstr << std::endl;
        return 1;
    }
    std::string data(reply->str, reply->len);
    freeReplyObject(reply);

    // 取得したURLのデータを表示
    std::cout << data << std::endl;

    return 0;
}

この例では、URLのデータを文字列として定義し、Redisにurl_dataというキーで保存しています。保存したデータを取得し、コンソールに表示しています。