Felipe97/llama-cpp-compiled
01.2k
1#include "parsers.h"2 3#include "log.h"4 5void foreach_function(const json & tools, const std::function<void(const json &)> & fn) {6 for (const auto & tool : tools) {7 if (!tool.contains("type") || tool.at("type") != "function" || !tool.contains("function")) {8 LOG_INF("Skipping tool without function: %s", tool.dump(2).c_str());9 continue;10 }11 fn(tool);12 }13}14 15void foreach_parameter(const json & function, const std::function<void(const common_chat_schema_property &, const common_chat_schema_document_ptr &)> & fn) {16 auto params = common_chat_tool_parameters(function);17 auto doc = std::make_shared<const common_chat_schema_document>(common_chat_schema_from_json(params));18 const auto * object = dynamic_cast<const common_chat_schema_object *>(doc->root.get());19 if (!object) {20 return;21 }22 for (const auto & prop : object->properties) {23 fn(prop, doc);24 }25}26 