mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2026-03-17 16:44:07 +00:00
tools/server: support refusal content for Responses API (#20285)
* Support refusal content for Responses API * Update tools/server/server-common.cpp Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * Update tools/server/server-common.cpp Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> --------- Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
This commit is contained in:
committed by
GitHub
parent
d34ff7eb5b
commit
2e4a6edd4a
@@ -1273,17 +1273,27 @@ json convert_responses_to_chatcmpl(const json & response_body) {
|
|||||||
|
|
||||||
for (const auto & output_text : item.at("content")) {
|
for (const auto & output_text : item.at("content")) {
|
||||||
const std::string type = json_value(output_text, "type", std::string());
|
const std::string type = json_value(output_text, "type", std::string());
|
||||||
if (type != "output_text") {
|
if (type == "output_text") {
|
||||||
throw std::invalid_argument("'type' must be 'output_text'");
|
if (!exists_and_is_string(output_text, "text")) {
|
||||||
|
throw std::invalid_argument("'Output text' requires 'text'");
|
||||||
|
// Ignore annotations and logprobs for now
|
||||||
|
chatcmpl_content.push_back({
|
||||||
|
{"text", output_text.at("text")},
|
||||||
|
{"type", "text"},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else if (type == "refusal") {
|
||||||
|
if (!exists_and_is_string(output_text, "refusal")) {
|
||||||
|
throw std::invalid_argument("'Refusal' requires 'refusal'");
|
||||||
|
// Ignore annotations and logprobs for now
|
||||||
|
chatcmpl_content.push_back({
|
||||||
|
{"refusal", output_text.at("refusal")},
|
||||||
|
{"type", "refusal"},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw std::invalid_argument("'type' must be one of 'output_text' or 'refusal'");
|
||||||
}
|
}
|
||||||
if (!exists_and_is_string(output_text, "text")) {
|
|
||||||
throw std::invalid_argument("'Output text' requires 'text'");
|
|
||||||
}
|
|
||||||
// Ignore annotations and logprobs for now
|
|
||||||
chatcmpl_content.push_back({
|
|
||||||
{"text", output_text.at("text")},
|
|
||||||
{"type", "text"},
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (merge_prev) {
|
if (merge_prev) {
|
||||||
|
|||||||
Reference in New Issue
Block a user