feat: add perplexity and ollama cloud api key support and models
This commit is contained in:
parent
92b6ec72b1
commit
0de79e1eb8
3 changed files with 60 additions and 1 deletions
|
|
@ -19,6 +19,9 @@ SILICONFLOW_API_KEY=sk-...
|
||||||
DEEPINFRA_API_KEY=...
|
DEEPINFRA_API_KEY=...
|
||||||
GROQ_API_KEY=gsk_...
|
GROQ_API_KEY=gsk_...
|
||||||
CEREBRAS_API_KEY=...
|
CEREBRAS_API_KEY=...
|
||||||
|
PERPLEXITY_API_KEY=pplx-...
|
||||||
|
# Ollama Cloud API key (https://ollama.com → Settings → Keys)
|
||||||
|
OLLAMA_CLOUD_API_KEY=...
|
||||||
|
|
||||||
# --- Grafana ---
|
# --- Grafana ---
|
||||||
GRAFANA_ADMIN_PASSWORD=change-me-to-a-secure-password
|
GRAFANA_ADMIN_PASSWORD=change-me-to-a-secure-password
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,8 @@ services:
|
||||||
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
|
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
|
||||||
- GROQ_API_KEY=${GROQ_API_KEY}
|
- GROQ_API_KEY=${GROQ_API_KEY}
|
||||||
- CEREBRAS_API_KEY=${CEREBRAS_API_KEY}
|
- CEREBRAS_API_KEY=${CEREBRAS_API_KEY}
|
||||||
|
- PERPLEXITY_API_KEY=${PERPLEXITY_API_KEY}
|
||||||
|
- OLLAMA_CLOUD_API_KEY=${OLLAMA_CLOUD_API_KEY}
|
||||||
depends_on:
|
depends_on:
|
||||||
valkey:
|
valkey:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
@ -76,7 +78,6 @@ services:
|
||||||
ports:
|
ports:
|
||||||
- "0.0.0.0:3000:8080"
|
- "0.0.0.0:3000:8080"
|
||||||
environment:
|
environment:
|
||||||
- OLLAMA_BASE_URL=
|
|
||||||
- OPENAI_API_BASE_URL=http://janus:3000/v1
|
- OPENAI_API_BASE_URL=http://janus:3000/v1
|
||||||
- OPENAI_API_KEY=${OPENWEBUI_API_KEY}
|
- OPENAI_API_KEY=${OPENWEBUI_API_KEY}
|
||||||
- ENABLE_RAG_WEB_SEARCH=true
|
- ENABLE_RAG_WEB_SEARCH=true
|
||||||
|
|
|
||||||
55
janus.yaml
55
janus.yaml
|
|
@ -62,6 +62,16 @@ providers:
|
||||||
api_key: "${CEREBRAS_API_KEY}"
|
api_key: "${CEREBRAS_API_KEY}"
|
||||||
priority: 1
|
priority: 1
|
||||||
timeout: 120s
|
timeout: 120s
|
||||||
|
- name: perplexity
|
||||||
|
base_url: "https://api.perplexity.ai"
|
||||||
|
api_key: "${PERPLEXITY_API_KEY}"
|
||||||
|
priority: 1
|
||||||
|
timeout: 120s
|
||||||
|
- name: ollama-cloud
|
||||||
|
base_url: "https://ollama.com/v1"
|
||||||
|
api_key: "${OLLAMA_CLOUD_API_KEY}"
|
||||||
|
priority: 1
|
||||||
|
timeout: 120s
|
||||||
|
|
||||||
models:
|
models:
|
||||||
# ═══ TIER 1: Free (OpenRouter free models, $0) ═══
|
# ═══ TIER 1: Free (OpenRouter free models, $0) ═══
|
||||||
|
|
@ -143,6 +153,8 @@ models:
|
||||||
|
|
||||||
- name: "gpt-oss"
|
- name: "gpt-oss"
|
||||||
routes:
|
routes:
|
||||||
|
- provider: ollama-cloud
|
||||||
|
model: "gpt-oss:120b-cloud"
|
||||||
- provider: groq
|
- provider: groq
|
||||||
model: "openai/gpt-oss-120b"
|
model: "openai/gpt-oss-120b"
|
||||||
pricing: { input: 0.15, output: 0.60 }
|
pricing: { input: 0.15, output: 0.60 }
|
||||||
|
|
@ -155,6 +167,8 @@ models:
|
||||||
|
|
||||||
- name: "gpt-oss-20b"
|
- name: "gpt-oss-20b"
|
||||||
routes:
|
routes:
|
||||||
|
- provider: ollama-cloud
|
||||||
|
model: "gpt-oss:20b-cloud"
|
||||||
- provider: groq
|
- provider: groq
|
||||||
model: "openai/gpt-oss-20b"
|
model: "openai/gpt-oss-20b"
|
||||||
pricing: { input: 0.075, output: 0.30 }
|
pricing: { input: 0.075, output: 0.30 }
|
||||||
|
|
@ -185,6 +199,8 @@ models:
|
||||||
# ═══ TIER 3: DeepSeek V3.2 (cheapest flagship) ═══
|
# ═══ TIER 3: DeepSeek V3.2 (cheapest flagship) ═══
|
||||||
- name: "deepseek-v3.2"
|
- name: "deepseek-v3.2"
|
||||||
routes:
|
routes:
|
||||||
|
- provider: ollama-cloud
|
||||||
|
model: "deepseek-v3.2:cloud"
|
||||||
- provider: deepinfra
|
- provider: deepinfra
|
||||||
model: "deepseek-ai/DeepSeek-V3.2"
|
model: "deepseek-ai/DeepSeek-V3.2"
|
||||||
pricing: { input: 0.26, output: 0.38 }
|
pricing: { input: 0.26, output: 0.38 }
|
||||||
|
|
@ -223,23 +239,31 @@ models:
|
||||||
|
|
||||||
- name: "devstral-small"
|
- name: "devstral-small"
|
||||||
routes:
|
routes:
|
||||||
|
- provider: ollama-cloud
|
||||||
|
model: "devstral-small-2:24b-cloud"
|
||||||
- provider: openrouter
|
- provider: openrouter
|
||||||
model: "mistralai/devstral-small"
|
model: "mistralai/devstral-small"
|
||||||
|
|
||||||
- name: "devstral-medium"
|
- name: "devstral-medium"
|
||||||
routes:
|
routes:
|
||||||
|
- provider: ollama-cloud
|
||||||
|
model: "devstral-2:123b-cloud"
|
||||||
- provider: openrouter
|
- provider: openrouter
|
||||||
model: "mistralai/devstral-medium"
|
model: "mistralai/devstral-medium"
|
||||||
|
|
||||||
# ═══ TIER 6: GLM ═══
|
# ═══ TIER 6: GLM ═══
|
||||||
- name: "glm-4.6"
|
- name: "glm-4.6"
|
||||||
routes:
|
routes:
|
||||||
|
- provider: ollama-cloud
|
||||||
|
model: "glm-4.6:cloud"
|
||||||
- provider: deepinfra
|
- provider: deepinfra
|
||||||
model: "zai-org/GLM-4.6"
|
model: "zai-org/GLM-4.6"
|
||||||
pricing: { input: 0.60, output: 1.90 }
|
pricing: { input: 0.60, output: 1.90 }
|
||||||
|
|
||||||
- name: "glm-4.7"
|
- name: "glm-4.7"
|
||||||
routes:
|
routes:
|
||||||
|
- provider: ollama-cloud
|
||||||
|
model: "glm-4.7:cloud"
|
||||||
- provider: deepinfra
|
- provider: deepinfra
|
||||||
model: "zai-org/GLM-4.7"
|
model: "zai-org/GLM-4.7"
|
||||||
pricing: { input: 0.40, output: 1.75 }
|
pricing: { input: 0.40, output: 1.75 }
|
||||||
|
|
@ -251,6 +275,8 @@ models:
|
||||||
|
|
||||||
- name: "glm-5"
|
- name: "glm-5"
|
||||||
routes:
|
routes:
|
||||||
|
- provider: ollama-cloud
|
||||||
|
model: "glm-5:cloud"
|
||||||
- provider: deepinfra
|
- provider: deepinfra
|
||||||
model: "zai-org/GLM-5"
|
model: "zai-org/GLM-5"
|
||||||
pricing: { input: 0.80, output: 2.56 }
|
pricing: { input: 0.80, output: 2.56 }
|
||||||
|
|
@ -270,6 +296,8 @@ models:
|
||||||
|
|
||||||
- name: "kimi-k2.5"
|
- name: "kimi-k2.5"
|
||||||
routes:
|
routes:
|
||||||
|
- provider: ollama-cloud
|
||||||
|
model: "kimi-k2.5:cloud"
|
||||||
- provider: deepinfra
|
- provider: deepinfra
|
||||||
model: "moonshotai/Kimi-K2.5"
|
model: "moonshotai/Kimi-K2.5"
|
||||||
pricing: { input: 0.45, output: 2.25 }
|
pricing: { input: 0.45, output: 2.25 }
|
||||||
|
|
@ -291,6 +319,8 @@ models:
|
||||||
# ═══ TIER 9: OpenRouter premium (paid) ═══
|
# ═══ TIER 9: OpenRouter premium (paid) ═══
|
||||||
- name: "minimax-m2.5"
|
- name: "minimax-m2.5"
|
||||||
routes:
|
routes:
|
||||||
|
- provider: ollama-cloud
|
||||||
|
model: "minimax-m2.5:cloud"
|
||||||
- provider: openrouter
|
- provider: openrouter
|
||||||
model: "minimax/minimax-m2.5"
|
model: "minimax/minimax-m2.5"
|
||||||
|
|
||||||
|
|
@ -306,6 +336,8 @@ models:
|
||||||
|
|
||||||
- name: "gemini-3-flash-preview"
|
- name: "gemini-3-flash-preview"
|
||||||
routes:
|
routes:
|
||||||
|
- provider: ollama-cloud
|
||||||
|
model: "gemini-3-flash-preview:cloud"
|
||||||
- provider: openrouter
|
- provider: openrouter
|
||||||
model: "google/gemini-3-flash-preview"
|
model: "google/gemini-3-flash-preview"
|
||||||
|
|
||||||
|
|
@ -370,3 +402,26 @@ models:
|
||||||
routes:
|
routes:
|
||||||
- provider: openrouter
|
- provider: openrouter
|
||||||
model: "anthropic/claude-sonnet-4"
|
model: "anthropic/claude-sonnet-4"
|
||||||
|
|
||||||
|
# ═══ TIER 11: Perplexity (online search models) ═══
|
||||||
|
- name: "sonar"
|
||||||
|
routes:
|
||||||
|
- provider: perplexity
|
||||||
|
model: "sonar"
|
||||||
|
pricing: { input: 1.00, output: 1.00 }
|
||||||
|
|
||||||
|
- name: "sonar-pro"
|
||||||
|
routes:
|
||||||
|
- provider: perplexity
|
||||||
|
model: "sonar-pro"
|
||||||
|
pricing: { input: 3.00, output: 15.00 }
|
||||||
|
|
||||||
|
- name: "sonar-reasoning"
|
||||||
|
routes:
|
||||||
|
- provider: perplexity
|
||||||
|
model: "sonar-reasoning"
|
||||||
|
pricing: { input: 1.00, output: 5.00 }
|
||||||
|
|
||||||
|
# ═══ TIER 12: Ollama Cloud ═══
|
||||||
|
# Requires Ollama Cloud Pro ($20/mo) or Max ($100/mo) subscription.
|
||||||
|
# Get API key from: https://ollama.com → Settings → Keys
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue