return res;
};
- this->get_api_show = [this](const server_http_req &) {
- auto res = create_response();
- std::string tmpl_default = common_chat_templates_source(meta->chat_params.tmpls.get(), "");
- json data = {
- {
- "model_info", {
- { "llama.context_length", meta->slot_n_ctx },
- }
- },
- {"modelfile", ""},
- {"parameters", ""},
- {"template", tmpl_default},
- {"details", {
- {"parent_model", ""},
- {"format", "gguf"},
- {"family", ""},
- {"families", {""}},
- {"parameter_size", ""},
- {"quantization_level", ""}
- }},
- {"model_info", ""},
- {"capabilities", meta->has_mtmd ? json({"completion","multimodal"}) : json({"completion"})}
- };
-
- res->ok(data);
- return res;
- };
-
this->post_infill = [this](const server_http_req & req) {
auto res = create_response();
// check model compatibility
server_http_context::handler_t post_slots;
server_http_context::handler_t get_props;
server_http_context::handler_t post_props;
- server_http_context::handler_t get_api_show;
server_http_context::handler_t post_infill;
server_http_context::handler_t post_completions;
server_http_context::handler_t post_completions_oai;
// note: routes.get_health stays the same
routes.get_metrics = models_routes->proxy_get;
routes.post_props = models_routes->proxy_post;
- routes.get_api_show = models_routes->proxy_get;
routes.post_completions = models_routes->proxy_post;
routes.post_completions_oai = models_routes->proxy_post;
routes.post_chat_completions = models_routes->proxy_post;
ctx_http.get ("/metrics", ex_wrapper(routes.get_metrics));
ctx_http.get ("/props", ex_wrapper(routes.get_props));
ctx_http.post("/props", ex_wrapper(routes.post_props));
- ctx_http.post("/api/show", ex_wrapper(routes.get_api_show));
ctx_http.get ("/models", ex_wrapper(routes.get_models)); // public endpoint (no API key check)
ctx_http.get ("/v1/models", ex_wrapper(routes.get_models)); // public endpoint (no API key check)
- ctx_http.get ("/api/tags", ex_wrapper(routes.get_models)); // ollama specific endpoint. public endpoint (no API key check)
ctx_http.post("/completion", ex_wrapper(routes.post_completions)); // legacy
ctx_http.post("/completions", ex_wrapper(routes.post_completions));
ctx_http.post("/v1/completions", ex_wrapper(routes.post_completions_oai));
ctx_http.post("/chat/completions", ex_wrapper(routes.post_chat_completions));
ctx_http.post("/v1/chat/completions", ex_wrapper(routes.post_chat_completions));
- ctx_http.post("/api/chat", ex_wrapper(routes.post_chat_completions)); // ollama specific endpoint
ctx_http.post("/v1/responses", ex_wrapper(routes.post_responses_oai));
ctx_http.post("/responses", ex_wrapper(routes.post_responses_oai));
ctx_http.post("/v1/audio/transcriptions", ex_wrapper(routes.post_transcriptions_oai));