From 54c1bf69500f6e558dbdb156e84c65582494a0d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Victor=20Mu=C5=A1tar?= Date: Fri, 18 Jul 2025 19:10:14 +0200 Subject: [PATCH] feat: add Hugging Face engine configuration and model definitions --- .../models/huggingface.json | 47 +++++++++++++++++++ .../resources/huggingface.json | 23 +++++++++ 2 files changed, 70 insertions(+) create mode 100644 extensions/engine-management-extension/models/huggingface.json create mode 100644 extensions/engine-management-extension/resources/huggingface.json diff --git a/extensions/engine-management-extension/models/huggingface.json b/extensions/engine-management-extension/models/huggingface.json new file mode 100644 index 000000000..d4bf92688 --- /dev/null +++ b/extensions/engine-management-extension/models/huggingface.json @@ -0,0 +1,47 @@ +[ + { + "model": "moonshotai/Kimi-K2-Instruct:groq", + "object": "model", + "name": "Kimi-K2-Instruct", + "version": "1.0", + "description": "Moonshot's Kimi K2 model with 131k context and tool calling support", + "inference_params": { + "temperature": 0.6, + "top_p": 1.0, + "frequency_penalty": 0, + "presence_penalty": 0, + "stream": true + }, + "engine": "huggingface" + }, + { + "model": "deepseek-ai/DeepSeek-R1-0528", + "object": "model", + "name": "DeepSeek-R1-0528", + "version": "1.0", + "description": "DeepSeek's reasoning model with 163k context, tool calling support, and open weights", + "inference_params": { + "temperature": 0.6, + "top_p": 0.95, + "frequency_penalty": 0, + "presence_penalty": 0, + "stream": true + }, + "engine": "huggingface" + }, + { + "model": "deepseek-ai/DeepSeek-V3-0324", + "object": "model", + "name": "DeepSeek-V3-0324", + "version": "1.0", + "description": "DeepSeek V3 with 16k context, tool calling support, and open weights", + "inference_params": { + "temperature": 0.3, + "top_p": 0.95, + "frequency_penalty": 0, + "presence_penalty": 0, + "stream": true + }, + "engine": "huggingface" + } +] diff --git a/extensions/engine-management-extension/resources/huggingface.json b/extensions/engine-management-extension/resources/huggingface.json new file mode 100644 index 000000000..6a161b65a --- /dev/null +++ b/extensions/engine-management-extension/resources/huggingface.json @@ -0,0 +1,23 @@ +{ + "id": "huggingface", + "type": "remote", + "engine": "huggingface", + "url": "https://huggingface.co/settings/tokens", + "api_key": "", + "metadata": { + "get_models_url": "https://router.huggingface.co/v1/models", + "header_template": "Authorization: Bearer {{api_key}}", + "transform_req": { + "chat_completions": { + "url": "https://router.huggingface.co/v1/chat/completions", + "template": "{ {% set first = true %} {% for key, value in input_request %} {% if key == \"messages\" or key == \"model\" or key == \"temperature\" or key == \"store\" or key == \"max_tokens\" or key == \"stream\" or key == \"presence_penalty\" or key == \"metadata\" or key == \"frequency_penalty\" or key == \"tools\" or key == \"tool_choice\" or key == \"logprobs\" or key == \"top_logprobs\" or key == \"logit_bias\" or key == \"n\" or key == \"modalities\" or key == \"prediction\" or key == \"response_format\" or key == \"service_tier\" or key == \"seed\" or key == \"stop\" or key == \"stream_options\" or key == \"top_p\" or key == \"parallel_tool_calls\" or key == \"user\" %} {% if not first %},{% endif %} \"{{ key }}\": {{ tojson(value) }} {% set first = false %} {% endif %} {% endfor %} }" + } + }, + "transform_resp": { + "chat_completions": { + "template": "{{tojson(input_request)}}" + } + }, + "explore_models_url": "https://huggingface.co/models?pipeline_tag=text-generation&inference_provider=all" + } +}