feat: integrate Hugging Face provider into web app and engine management

This commit is contained in:
Victor Muštar 2025-07-18 19:10:30 +02:00
parent 54c1bf6950
commit 178d1546fe
3 changed files with 68 additions and 0 deletions

View File

@ -3,6 +3,7 @@ import cohere from './resources/cohere.json' with { type: 'json' }
import openai from './resources/openai.json' with { type: 'json' }
import openrouter from './resources/openrouter.json' with { type: 'json' }
import groq from './resources/groq.json' with { type: 'json' }
import huggingface from './resources/huggingface.json' with { type: 'json' }
import martian from './resources/martian.json' with { type: 'json' }
import mistral from './resources/mistral.json' with { type: 'json' }
import nvidia from './resources/nvidia.json' with { type: 'json' }
@ -14,6 +15,7 @@ import cohereModels from './models/cohere.json' with { type: 'json' }
import openaiModels from './models/openai.json' with { type: 'json' }
import openrouterModels from './models/openrouter.json' with { type: 'json' }
import groqModels from './models/groq.json' with { type: 'json' }
import huggingfaceModels from './models/huggingface.json' with { type: 'json' }
import martianModels from './models/martian.json' with { type: 'json' }
import mistralModels from './models/mistral.json' with { type: 'json' }
import nvidiaModels from './models/nvidia.json' with { type: 'json' }
@ -26,6 +28,7 @@ const engines = [
cohere,
openrouter,
groq,
huggingface,
mistral,
martian,
nvidia,
@ -38,6 +41,7 @@ const models = [
...cohereModels,
...openrouterModels,
...groqModels,
...huggingfaceModels,
...mistralModels,
...martianModels,
...nvidiaModels,

View File

@ -11,6 +11,8 @@ export function getProviderLogo(provider: string) {
return '/images/model-provider/llamacpp.svg'
case 'anthropic':
return '/images/model-provider/anthropic.svg'
case 'huggingface':
return '/images/model-provider/huggingface.svg'
case 'mistral':
return '/images/model-provider/mistral.svg'
case 'martian':
@ -46,6 +48,8 @@ export const getProviderTitle = (provider: string) => {
return 'OpenRouter'
case 'gemini':
return 'Gemini'
case 'huggingface':
return 'Hugging Face'
default:
return provider.charAt(0).toUpperCase() + provider.slice(1)
}

View File

@ -281,4 +281,64 @@ export const predefinedProviders = [
],
models: [],
},
{
active: true,
api_key: '',
base_url: 'https://router.huggingface.co/v1',
explore_models_url:
'https://huggingface.co/models?pipeline_tag=text-generation&inference_provider=all',
provider: 'huggingface',
settings: [
{
key: 'api-key',
title: 'API Key',
description:
"The Hugging Face API uses tokens for authentication. Visit your [Access Tokens](https://huggingface.co/settings/tokens) page to retrieve the token you'll use in your requests.",
controller_type: 'input',
controller_props: {
placeholder: 'Insert API Token',
value: '',
type: 'password',
input_actions: ['unobscure', 'copy'],
},
},
{
key: 'base-url',
title: 'Base URL',
description:
'The base endpoint to use. See the [Hugging Face Inference Providers documentation](https://huggingface.co/docs/inference-providers) for more information.',
controller_type: 'input',
controller_props: {
placeholder: 'https://router.huggingface.co/v1',
value: 'https://router.huggingface.co/v1',
},
},
],
models: [
{
id: 'moonshotai/Kimi-K2-Instruct:groq',
name: 'Kimi-K2-Instruct',
version: '1.0',
description:
"Moonshot's Kimi K2 model with 131k context and tool calling support",
capabilities: ['completion', 'tools'],
},
{
id: 'deepseek-ai/DeepSeek-R1-0528',
name: 'DeepSeek-R1-0528',
version: '1.0',
description:
"DeepSeek's reasoning model with 163k context, tool calling support, and open weights",
capabilities: ['completion', 'tools'],
},
{
id: 'deepseek-ai/DeepSeek-V3-0324',
name: 'DeepSeek-V3-0324',
version: '1.0',
description:
'DeepSeek V3 with 16k context, tool calling support, and open weights',
capabilities: ['completion', 'tools'],
},
],
},
]