construct and return the correct reponse when the request is a chat completion

This commit is contained in:
FoivosC 2023-05-29 15:18:48 +01:00 committed by AT
parent fae8d65582
commit 0e82d87032

View File

@ -332,15 +332,31 @@ QHttpServerResponse Server::handleCompletionRequest(const QHttpServerRequest &re
responseObject.insert("model", modelName()); responseObject.insert("model", modelName());
QJsonArray choices; QJsonArray choices;
int index = 0;
for (QString r : responses) { if (isChat) {
QJsonObject choice; int index = 0;
choice.insert("text", r); for (QString r : responses) {
choice.insert("index", index++); QJsonObject choice;
choice.insert("logprobs", QJsonValue::Null); // We don't support choice.insert("index", index++);
choice.insert("finish_reason", responseTokens == max_tokens ? "length" : "stop"); choice.insert("finish_reason", responseTokens == max_tokens ? "length" : "stop");
choices.append(choice); QJsonObject message;
message.insert("role", "assistant");
message.insert("content", r);
choice.insert("message", message);
choices.append(choice);
}
} else {
int index = 0;
for (QString r : responses) {
QJsonObject choice;
choice.insert("text", r);
choice.insert("index", index++);
choice.insert("logprobs", QJsonValue::Null); // We don't support
choice.insert("finish_reason", responseTokens == max_tokens ? "length" : "stop");
choices.append(choice);
}
} }
responseObject.insert("choices", choices); responseObject.insert("choices", choices);
QJsonObject usage; QJsonObject usage;