9
9
#pragma once
10
10
11
11
#include " minja.hpp"
12
- #include < json.hpp>
12
+
13
+ #include < chrono>
14
+ #include < cstddef>
15
+ #include < cstdio>
16
+ #include < exception>
17
+ #include < iomanip>
18
+ #include < memory>
19
+ #include < sstream>
13
20
#include < string>
14
21
#include < vector>
15
22
23
+ #include < json.hpp>
24
+
16
25
using json = nlohmann::ordered_json;
17
26
18
27
namespace minja {
@@ -425,7 +434,7 @@ class chat_template {
425
434
auto obj = json {
426
435
{" tool_calls" , tool_calls},
427
436
};
428
- if (!content.is_null () && content != " " ) {
437
+ if (!content.is_null () && !content. empty () ) {
429
438
obj[" content" ] = content;
430
439
}
431
440
message[" content" ] = obj.dump (2 );
@@ -435,13 +444,12 @@ class chat_template {
435
444
if (polyfill_tool_responses && role == " tool" ) {
436
445
message[" role" ] = " user" ;
437
446
auto obj = json {
438
- {" tool_response" , {
439
- {" content" , message.at (" content" )},
440
- }},
447
+ {" tool_response" , json::object ()},
441
448
};
442
449
if (message.contains (" name" )) {
443
- obj[" tool_response" ][" name " ] = message.at (" name" );
450
+ obj[" tool_response" ][" tool " ] = message.at (" name" );
444
451
}
452
+ obj[" tool_response" ][" content" ] = message.at (" content" );
445
453
if (message.contains (" tool_call_id" )) {
446
454
obj[" tool_response" ][" tool_call_id" ] = message.at (" tool_call_id" );
447
455
}
@@ -510,7 +518,7 @@ class chat_template {
510
518
static nlohmann::ordered_json add_system (const nlohmann::ordered_json & messages, const std::string & system_prompt) {
511
519
json messages_with_system = messages;
512
520
513
- if (messages_with_system.size () > 0 && messages_with_system[0 ].at (" role" ) == " system" ) {
521
+ if (! messages_with_system.empty () && messages_with_system[0 ].at (" role" ) == " system" ) {
514
522
std::string existing_system = messages_with_system.at (0 ).at (" content" );
515
523
messages_with_system[0 ] = json {
516
524
{" role" , " system" },
0 commit comments