diff --git a/README.md b/README.md index e30101280c..a96e47f70f 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ - [Custom Endpoints](https://www.librechat.ai/docs/quick_start/custom_endpoints): Use any OpenAI-compatible API with LibreChat, no proxy required - Compatible with [Local & Remote AI Providers](https://www.librechat.ai/docs/configuration/librechat_yaml/ai_endpoints): - Ollama, groq, Cohere, Mistral AI, Apple MLX, koboldcpp, together.ai, - - OpenRouter, Perplexity, ShuttleAI, Deepseek, Qwen, and more + - OpenRouter, Helicone, Perplexity, ShuttleAI, Deepseek, Qwen, and more - 🔧 **[Code Interpreter API](https://www.librechat.ai/docs/features/code_interpreter)**: - Secure, Sandboxed Execution in Python, Node.js (JS/TS), Go, C/C++, Java, PHP, Rust, and Fortran diff --git a/client/public/assets/helicone.svg b/client/public/assets/helicone.svg new file mode 100644 index 0000000000..d982533200 --- /dev/null +++ b/client/public/assets/helicone.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/client/src/hooks/Endpoint/UnknownIcon.tsx b/client/src/hooks/Endpoint/UnknownIcon.tsx index 74df8536f7..20619e0b7d 100644 --- a/client/src/hooks/Endpoint/UnknownIcon.tsx +++ b/client/src/hooks/Endpoint/UnknownIcon.tsx @@ -12,6 +12,7 @@ const knownEndpointAssets = { [KnownEndpoints.fireworks]: 'assets/fireworks.png', [KnownEndpoints.google]: 'assets/google.svg', [KnownEndpoints.groq]: 'assets/groq.png', + [KnownEndpoints.helicone]: 'assets/helicone.png', [KnownEndpoints.huggingface]: 'assets/huggingface.svg', [KnownEndpoints.mistral]: 'assets/mistral.png', [KnownEndpoints.mlx]: 'assets/mlx.png', diff --git a/librechat.example.yaml b/librechat.example.yaml index 04e088aa38..f163f8d4ac 100644 --- a/librechat.example.yaml +++ b/librechat.example.yaml @@ -301,6 +301,22 @@ endpoints: dropParams: ['stop'] modelDisplayLabel: 'OpenRouter' + # Helicone Example + - name: 'Helicone' + # For `apiKey` and `baseURL`, you can use environment variables that you define. + # recommended environment variables: + apiKey: '${HELICONE_KEY}' + baseURL: 'https://ai-gateway.helicone.ai' + headers: + x-librechat-body-parentmessageid: '{{LIBRECHAT_BODY_PARENTMESSAGEID}}' + models: + default: ['gpt-4o-mini', 'claude-4.5-sonnet', 'llama-3.1-8b-instruct', 'gemini-2.5-flash-lite'] + fetch: true + titleConvo: true + titleModel: 'gpt-4o-mini' + modelDisplayLabel: 'Helicone' + iconURL: https://marketing-assets-helicone.s3.us-west-2.amazonaws.com/helicone.png + # Portkey AI Example - name: 'Portkey' apiKey: 'dummy' @@ -407,15 +423,12 @@ endpoints: # # Jina Reranking Configuration # jinaApiKey: '${JINA_API_KEY}' # Your Jina API key # jinaApiUrl: '${JINA_API_URL}' # Custom Jina API URL (optional, defaults to https://api.jina.ai/v1/rerank) -# # # Other rerankers # cohereApiKey: '${COHERE_API_KEY}' -# # # Search providers # serperApiKey: '${SERPER_API_KEY}' # searxngInstanceUrl: '${SEARXNG_INSTANCE_URL}' # searxngApiKey: '${SEARXNG_API_KEY}' -# # # Content scrapers # firecrawlApiKey: '${FIRECRAWL_API_KEY}' # firecrawlApiUrl: '${FIRECRAWL_API_URL}' diff --git a/packages/data-provider/src/config.ts b/packages/data-provider/src/config.ts index f1ac91f447..602880d573 100644 --- a/packages/data-provider/src/config.ts +++ b/packages/data-provider/src/config.ts @@ -911,6 +911,7 @@ export enum KnownEndpoints { fireworks = 'fireworks', deepseek = 'deepseek', groq = 'groq', + helicone = 'helicone', huggingface = 'huggingface', mistral = 'mistral', mlx = 'mlx', @@ -926,6 +927,7 @@ export enum KnownEndpoints { export enum FetchTokenConfig { openrouter = KnownEndpoints.openrouter, + helicone = KnownEndpoints.helicone } export const defaultEndpoints: EModelEndpoint[] = [ @@ -958,6 +960,7 @@ export const alternateName = { [KnownEndpoints.deepseek]: 'DeepSeek', [KnownEndpoints.xai]: 'xAI', [KnownEndpoints.vercel]: 'Vercel', + [KnownEndpoints.helicone]: 'Helicone', }; const sharedOpenAIModels = [