MCPcopy Create free account
hub / github.com/appdevforall/CodeOnTheGo / run_single

Function run_single

subprojects/llama.cpp/tests/test-chat-template.cpp:223–261  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

221
222
223void run_single(std::string contents, json input, bool use_common, const std::string & output_path) {
224 jinja::enable_debug(true);
225
226 jinja::value_string output_parts;
227
228 if (use_common) {
229 std::string bos_token = "<s>";
230 std::string eos_token = "</s>";
231 if (input.contains("bos_token")) {
232 bos_token = input["bos_token"].get<std::string>();
233 }
234 if (input.contains("eos_token")) {
235 eos_token = input["eos_token"].get<std::string>();
236 }
237 nlohmann::ordered_json msgs_json = input["messages"];
238 nlohmann::ordered_json tools_json = input["tools"];
239 auto messages = common_chat_msgs_parse_oaicompat(msgs_json);
240 auto tools = common_chat_tools_parse_oaicompat(tools_json);
241 auto output = format_using_common(contents, bos_token, eos_token, messages, tools);
242 std::cout << "\n=== OUTPUT ===\n";
243 std::cout << output << "\n";
244 output_parts = jinja::mk_val<jinja::value_string>(output);
245
246 } else {
247 output_parts = format_using_direct_engine(contents, input);
248 std::cout << "\n=== OUTPUT ===\n";
249 std::cout << output_parts->as_string().str() << "\n";
250 }
251
252 if (!output_path.empty()) {
253 std::ofstream outfile(output_path);
254 if (!outfile) {
255 throw std::runtime_error("Could not open output file: " + output_path);
256 }
257 outfile << output_parts->as_string().str();
258 outfile.close();
259 std::cout << "\n=== OUTPUT WRITTEN TO " << output_path << " ===\n";
260 }
261}
262
263
264

Callers 2

mainFunction · 0.85
run_multipleFunction · 0.85

Calls 10

enable_debugFunction · 0.85
format_using_commonFunction · 0.85
containsMethod · 0.65
emptyMethod · 0.65
closeMethod · 0.65
strMethod · 0.45
as_stringMethod · 0.45

Tested by

no test coverage detected