#ifndef OPENAICLIENT_H
#define OPENAICLIENT_H

#include <asio.hpp>
#include <communicate.hpp>

class OpenAIClient
{
public:
    explicit OpenAIClient(asio::io_context& io_context);

public:
    bool connect(const std::string& ip, unsigned int port);
    FrameData* ask_openai(const std::string& text);
    void disconnect();

private:
    std::string ip_;
    std::string port_;
    asio::ip::tcp::socket socket_;
    asio::io_context& io_context_;
    CMutBuffer buffer_;
    std::array<char, g_BuffSize> tmp_buf_{};
};

#endif   // OPENAICLIENT_H