ReUseX  0.0.5
3D Point Cloud Processing for Building Reuse
Loading...
Searching...
No Matches
OpenAiCompatibleVlmClient.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Povl Filip Sonne-Frederiksen
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
5#pragma once
6
7// Concrete IVlmClient talking to any OpenAI-compatible /chat/completions
8// endpoint over libcurl (#373). Module-private: constructed by describe().
9
10#include "reusex/vision/IVlmClient.hpp"
11
12#include <string>
13
14namespace reusex::vision {
15
17 public:
27 OpenAiCompatibleVlmClient(std::string base_url, std::string model,
28 std::string api_key, int connect_timeout_s = 10,
29 int total_timeout_s = 120);
30
31 VlmResult describe(const cv::Mat &crop, const std::string &prompt) override;
32
33 int connect_timeout_s() const { return connect_timeout_s_; }
34 int total_timeout_s() const { return total_timeout_s_; }
35
36 private:
37 std::string endpoint_;
38 std::string model_;
39 std::string api_key_;
40 int connect_timeout_s_;
41 int total_timeout_s_;
42};
43
44} // namespace reusex::vision
OpenAiCompatibleVlmClient(std::string base_url, std::string model, std::string api_key, int connect_timeout_s=10, int total_timeout_s=120)
VlmResult describe(const cv::Mat &crop, const std::string &prompt) override
Describe crop (a BGR CV_8UC3 image) given prompt.
A model that, given an image crop and a text prompt, returns structured attributes.
The description + arbitrary attributes a vision-language model returned for one crop.