Skip to content

Commit dffd55e

Browse files
committed
Output parsers build split
1 parent e70123f commit dffd55e

File tree

7 files changed

+57
-14
lines changed

7 files changed

+57
-14
lines changed

src/llm/BUILD

Lines changed: 50 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,52 @@ ovms_cc_library(
9191
additional_copts = COPTS_PYTHON
9292
)
9393

94+
ovms_cc_library(
95+
name = "partial_json_builder",
96+
hdrs = ["io_processing/partial_json_builder.hpp"],
97+
srcs = ["io_processing/partial_json_builder.cpp"],
98+
deps = [
99+
"@com_github_tencent_rapidjson//:rapidjson",
100+
],
101+
visibility = ["//visibility:public"],
102+
)
103+
104+
ovms_cc_library(
105+
name = "utils",
106+
hdrs = ["io_processing/utils.hpp"],
107+
srcs = ["io_processing/utils.cpp"],
108+
visibility = ["//visibility:public"],
109+
)
110+
111+
ovms_cc_library(
112+
name = "base_output_parser",
113+
hdrs = ["io_processing/base_output_parser.hpp"],
114+
srcs = ["io_processing/base_output_parser.cpp"],
115+
deps = [
116+
"@com_github_tencent_rapidjson//:rapidjson",
117+
":utils",
118+
] + select({
119+
"//conditions:default": ["//third_party:genai", ":llm_engine"],
120+
"//:not_genai_bin" : [":llm_engine"],
121+
}),
122+
)
123+
ovms_cc_library(
124+
name = "qwen3coder_tool_parser",
125+
hdrs = ["io_processing/qwen3coder/qwen3coder_tool_parser.hpp"],
126+
srcs = ["io_processing/qwen3coder/qwen3coder_tool_parser.cpp"],
127+
deps = [
128+
"@com_github_tencent_rapidjson//:rapidjson",
129+
] + select({
130+
"//conditions:default": ["//third_party:genai", ":llm_engine"],
131+
"//:not_genai_bin" : [":llm_engine"],
132+
}),
133+
visibility = ["//visibility:public"],
134+
)
135+
136+
94137
ovms_cc_library(
95138
name = "output_parsers",
96-
hdrs = ["io_processing/base_output_parser.hpp",
139+
hdrs = [
97140
"io_processing/hermes3/tool_parser.hpp",
98141
"io_processing/llama3/tool_parser.hpp",
99142
"io_processing/phi4/tool_parser.hpp",
@@ -104,9 +147,8 @@ ovms_cc_library(
104147
"io_processing/gptoss/harmony.hpp",
105148
"io_processing/qwen3coder/qwen3coder_tool_parser.hpp",
106149
"io_processing/output_parser.hpp",
107-
"io_processing/partial_json_builder.hpp",
108-
"io_processing/utils.hpp"],
109-
srcs = ["io_processing/base_output_parser.cpp",
150+
],
151+
srcs = [
110152
"io_processing/hermes3/tool_parser.cpp",
111153
"io_processing/llama3/tool_parser.cpp",
112154
"io_processing/phi4/tool_parser.cpp",
@@ -117,14 +159,16 @@ ovms_cc_library(
117159
"io_processing/gptoss/tool_parser.cpp",
118160
"io_processing/gptoss/harmony.cpp",
119161
"io_processing/output_parser.cpp",
120-
"io_processing/partial_json_builder.cpp",
121-
"io_processing/utils.cpp"],
162+
],
122163
deps = [
123164
"@com_github_tencent_rapidjson//:rapidjson",
124165
"//src:libovmslogging",
125166
"//src:libovmsstring_utils",
126167
"//src:libovmsstatus",
127168
"//src/utils:rapidjson_utils",
169+
":partial_json_builder",
170+
":base_output_parser",
171+
":utils",
128172
] + select({
129173
"//conditions:default": ["//third_party:genai", ":llm_engine"],
130174
"//:not_genai_bin" : [":llm_engine"],

src/llm/io_processing/base_output_parser.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@
3232
#include <rapidjson/writer.h>
3333
#pragma warning(pop)
3434

35-
#include "partial_json_builder.hpp"
36-
3735
namespace ovms {
3836
struct ToolCall {
3937
std::string id;

src/llm/io_processing/hermes3/tool_parser.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
#include <rapidjson/writer.h>
2929
#pragma warning(pop)
3030

31-
#include "../base_output_parser.hpp"
31+
#include "src/llm/io_processing/base_output_parser.hpp"
32+
#include "src/llm/io_processing/partial_json_builder.hpp"
3233

3334
namespace ovms {
3435
class Hermes3ToolParser : public BaseOutputParser {

src/llm/io_processing/llama3/tool_parser.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
#include <rapidjson/writer.h>
2929
#pragma warning(pop)
3030

31-
#include "../base_output_parser.hpp"
31+
#include "src/llm/io_processing/base_output_parser.hpp"
32+
#include "src/llm/io_processing/partial_json_builder.hpp"
3233

3334
namespace ovms {
3435
class Llama3ToolParser : public BaseOutputParser {

src/llm/io_processing/mistral/tool_parser.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#include <rapidjson/writer.h>
2929
#pragma warning(pop)
3030

31-
#include "../base_output_parser.hpp"
31+
#include "src/llm/io_processing/base_output_parser.hpp"
3232

3333
namespace ovms {
3434
class MistralToolParser : public BaseOutputParser {

src/llm/io_processing/phi4/tool_parser.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#include <rapidjson/writer.h>
2929
#pragma warning(pop)
3030

31-
#include "../base_output_parser.hpp"
31+
#include "src/llm/io_processing/base_output_parser.hpp"
3232

3333
namespace ovms {
3434
class Phi4ToolParser : public BaseOutputParser {

src/test/llm/output_parsers/qwen3coder_output_parser_test.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -571,8 +571,7 @@ TEST_F(Qwen3CoderOutputParserTest, StreamingSimpleToolCall) {
571571
{"ANOTHER_STRING_VALUE\n", ov::genai::GenerationFinishReason::NONE, std::nullopt},
572572
{"</parameter>\n", ov::genai::GenerationFinishReason::NONE, std::nullopt},
573573
{"</function>", ov::genai::GenerationFinishReason::NONE, std::nullopt},
574-
{"</tool_call>", ov::genai::GenerationFinishReason::NONE, R"({"delta":{"tool_calls":[{"index":1,"function":{"arguments":"{\"arg1\": \"\nANOTHER_STRING_VALUE\"}"}}]}})"}
575-
};
574+
{"</tool_call>", ov::genai::GenerationFinishReason::NONE, R"({"delta":{"tool_calls":[{"index":1,"function":{"arguments":"{\"arg1\": \"\nANOTHER_STRING_VALUE\"}"}}]}})"}};
576575
for (const auto& [chunk, finishReason, expectedDelta] : chunkToDeltaVec) {
577576
i++;
578577
std::optional<rapidjson::Document> doc = outputParser->parseChunk(chunk, true, ov::genai::GenerationFinishReason::NONE);

0 commit comments

Comments
 (0)