diff --git a/examples/server/server.cpp b/examples/server/server.cpp index aedf0afc6..fa885b790 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -2651,6 +2651,17 @@ inline void signal_handler(int signal) { shutdown_handler(signal); } +static void normalize(std::vector& vec) { + float norm = 0; + for (float val : vec) { + norm += val * val; + } + norm = sqrt(norm); + for (float& val : vec) { + val /= norm; + } +} + int main(int argc, char ** argv) { #if SERVER_VERBOSE != 1 log_disable(); @@ -3345,6 +3356,13 @@ int main(int argc, char ** argv) { // get the result server_task_result result = ctx_server.queue_results.recv(id_task); ctx_server.queue_results.remove_waiting_task_id(id_task); + + // normalize the embedding + std::vector embedding = json_value(result.data, "embedding", json::array()); + normalize(embedding); + result.data["embedding"] = embedding; + + // append to the responses responses.push_back(result.data); }