char-fork/llama.cpp

git clone https://git.t4t.associates/char-fork/llama.cpp

Aldehir Rojascommon : implement common_schema internal representation for JSON schemas (#28736)acecd5603

char/aliceai-t5-moe
964 B25 linesraw
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}