Skip to content

Commit e403844

Browse files
committed
Remove complexity
1 parent 8694fa3 commit e403844

File tree

1 file changed

+10
-73
lines changed

1 file changed

+10
-73
lines changed

tools/main/main.cpp

Lines changed: 10 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -83,33 +83,6 @@ static void sigint_handler(int signo) {
8383
}
8484
#endif
8585

86-
class template_content_tracker {
87-
public:
88-
template_content_tracker() : pos_(0), start_(std::string::npos), end_(std::string::npos) {}
89-
90-
void set_range(size_t start, size_t end) {
91-
start_ = start;
92-
end_ = end;
93-
}
94-
95-
bool should_display(size_t pos) const {
96-
return start_ != std::string::npos && pos >= start_ && pos < end_;
97-
}
98-
99-
bool at_end(size_t pos) const {
100-
return start_ != std::string::npos && pos >= end_;
101-
}
102-
103-
bool is_active() const {
104-
return start_ != std::string::npos;
105-
}
106-
107-
private:
108-
size_t pos_;
109-
size_t start_;
110-
size_t end_;
111-
};
112-
11386
class partial_formatter {
11487
public:
11588
enum output_type {
@@ -175,7 +148,8 @@ class chat_formatter {
175148
cinputs.reasoning_format = params_.reasoning_format;
176149

177150
cinputs.enable_thinking =
178-
params_.use_jinja && params_.reasoning_budget != 0 &&
151+
params_.use_jinja &&
152+
params_.reasoning_budget != 0 &&
179153
common_chat_templates_support_enable_thinking(chat_templates_.get());
180154

181155
common_chat_params cparams = common_chat_templates_apply(chat_templates_.get(), cinputs);
@@ -427,30 +401,6 @@ int main(int argc, char ** argv) {
427401
LOG_DBG("tokens: %s\n", string_from(ctx, embd_inp).c_str());
428402
}
429403

430-
// Set up content tracking to skip template markup during display
431-
size_t prompt_pos = 0;
432-
template_content_tracker system_tracker;
433-
template_content_tracker prompt_tracker;
434-
435-
if (params.conversation_mode && params.enable_chat_template) {
436-
size_t search_pos = 0;
437-
for (const auto & msg : chat_msgs) {
438-
if (msg.role == "system") {
439-
size_t content_start = prompt.find(msg.content, search_pos);
440-
if (content_start != std::string::npos) {
441-
system_tracker.set_range(content_start, content_start + msg.content.length());
442-
search_pos = content_start + msg.content.length();
443-
}
444-
} else if (msg.role == "user") {
445-
size_t content_start = prompt.find(msg.content, search_pos);
446-
if (content_start != std::string::npos) {
447-
prompt_tracker.set_range(content_start, content_start + msg.content.length());
448-
search_pos = content_start + msg.content.length();
449-
}
450-
}
451-
}
452-
}
453-
454404
// Should not run without any tokens
455405
if (!waiting_for_first_input && embd_inp.empty()) {
456406
if (add_bos) {
@@ -698,6 +648,12 @@ int main(int argc, char ** argv) {
698648
embd_inp.push_back(decoder_start_token_id);
699649
}
700650

651+
if (chat_add_and_format.get_partial_formatter()) {
652+
for (const auto & msg : chat_msgs) {
653+
LOG("%s\n", msg.content.c_str());
654+
}
655+
}
656+
701657
while ((n_remain != 0 && !is_antiprompt) || params.interactive) {
702658
// predict
703659
if (!embd.empty()) {
@@ -883,27 +839,8 @@ int main(int argc, char ** argv) {
883839
for (auto id : embd) {
884840
const std::string token_str = common_token_to_piece(ctx, id, params.special);
885841

886-
if (!chat_add_and_format.get_partial_formatter() || assistant_ss.str().empty()) {
887-
bool always_display = !system_tracker.is_active() && !prompt_tracker.is_active();
888-
if (always_display) {
889-
LOG("%s", token_str.c_str());
890-
891-
} else if (system_tracker.should_display(prompt_pos)) {
892-
LOG("%s", token_str.c_str());
893-
size_t next_pos = prompt_pos + token_str.length();
894-
if (system_tracker.at_end(next_pos)) {
895-
LOG("\n");
896-
}
897-
898-
} else if (prompt_tracker.should_display(prompt_pos)) {
899-
LOG("%s", token_str.c_str());
900-
size_t next_pos = prompt_pos + token_str.length();
901-
if (prompt_tracker.at_end(next_pos)) {
902-
LOG("\n");
903-
}
904-
}
905-
906-
prompt_pos += token_str.length();
842+
if (!chat_add_and_format.get_partial_formatter()) {
843+
LOG("%s", token_str.c_str());
907844
}
908845

909846
// Record Displayed Tokens To Log

0 commit comments

Comments
 (0)