32 virtual void initialize(rclcpp::Node::SharedPtr node)
override
54 result.set(
"input", input.
text );
73 if (object->has(
"data"))
75 Poco::JSON::Array::Ptr data_array =
object->getArray(
"data");
76 for (
size_t di = 0; di < data_array->size(); ++di)
78 Poco::JSON::Object::Ptr embed_obj = data_array->getObject(di);
81 if (embed_obj->has(
"embedding"))
83 if (embed_obj->isArray(
"embedding"))
85 Poco::JSON::Array::Ptr arr = embed_obj->getArray(
"embedding");
87 for (
size_t i = 0; i < arr->size(); ++i)
89 emb.
float_embedding.push_back(
static_cast<float>(arr->get(i).convert<
double>()));
101 if (embed_obj->has(
"index"))
103 emb.
index = embed_obj->getValue<
int>(
"index");
111 if (object->has(
"model"))
113 res.
model =
object->getValue<std::string>(
"model");
115 if (object->has(
"usage"))
119 Poco::JSON::Object::Ptr usage =
object->getObject(
"usage");
120 if (usage->has(
"prompt_tokens"))
124 if (usage->has(
"total_tokens"))
126 res.
total_tokens = usage->getValue<
int>(
"total_tokens");
129 catch (
const Poco::Exception& ex)
131 RCLCPP_WARN(
node_->get_logger(),
"Failed to parse usage: %s", ex.what());
137 catch (
const Poco::Exception& ex)
139 RCLCPP_WARN(
node_->get_logger(),
"Failed to parse OpenAI embeddings response: %s", ex.what());
140 res.
error = ex.what();
rclcpp::Node::SharedPtr node_
Node shared pointer.
Definition base_class.hpp:105
EmbedBaseClass.
Definition embed_base_class.hpp:17
virtual void initialize_embed_base(rclcpp::Node::SharedPtr node, std::string plugin_name="EmbedBaseClass", std::string api_key_name="")
Initialize the REST base class.
Definition embed_base_class.hpp:45
OpenAIEmbedding.
Definition openai_embedding.hpp:16
virtual Poco::JSON::Object toJson(prompt::EmbedRequest &input) override
Convert a embed request to a JSON object.
Definition openai_embedding.hpp:48
OpenAIEmbedding()
Construct a new OpenAI Embedding Provider object.
Definition openai_embedding.hpp:21
virtual prompt::EmbedResponse fromJson(const Poco::JSON::Object::Ptr object) override
Convert a JSON object to a prompt response for OpenAI Embeddings.
Definition openai_embedding.hpp:67
virtual void initialize(rclcpp::Node::SharedPtr node) override
Initialize the OpenAIEmbedding.
Definition openai_embedding.hpp:32
virtual const Poco::JSON::Object handle_options(std::vector< prompt::PromptOption > &options)
Process options from the prompt request.
Definition rest_base_class.hpp:314
Definition base_class.hpp:8
Definition structs.hpp:46
std::vector< PromptOption > options
Definition structs.hpp:49
std::string text
Definition structs.hpp:47
Definition structs.hpp:61
bool success
Definition structs.hpp:63
std::vector< Embedding > embeddings
Definition structs.hpp:62
std::string model
Definition structs.hpp:65
int prompt_tokens
Definition structs.hpp:66
int total_tokens
Definition structs.hpp:67
std::string error
Definition structs.hpp:64
Definition structs.hpp:53
bool is_float
Definition structs.hpp:56
int index
Definition structs.hpp:57
std::vector< float > float_embedding
Definition structs.hpp:55
std::string base64_embedding
Definition structs.hpp:54