diff --git a/README.md b/README.md index fc5ca5872..ac9421d61 100644 --- a/README.md +++ b/README.md @@ -2902,12 +2902,15 @@ docker run --rm \ #### Using Pre-configured Providers -The Docker image comes with built-in support for major providers (OpenAI, Anthropic, Gemini, Ollama) and pre-configured provider files for additional services (OpenRouter, DeepInfra, DeepSeek, Moonshot, Novita): +The Docker image comes with built-in support for major providers (OpenAI, Anthropic, Gemini, Ollama) and pre-configured provider files for additional services (OpenRouter, OrcaRouter, DeepInfra, DeepSeek, Moonshot, Novita): ```bash # Test with OpenRouter configuration docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/openrouter.provider.yml +# Test with OrcaRouter configuration +docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/orcarouter.provider.yml + # Test with DeepInfra configuration docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/deepinfra.provider.yml @@ -2960,11 +2963,11 @@ docker exec -it pentagi /opt/pentagi/bin/ctester -config /opt/pentagi/conf/ollam To use these configurations, your `.env` file only needs to contain: ``` -LLM_SERVER_URL=https://openrouter.ai/api/v1 # or https://api.deepinfra.com/v1/openai or https://api.openai.com/v1 or https://api.novita.ai/openai +LLM_SERVER_URL=https://openrouter.ai/api/v1 # or https://api.orcarouter.ai/v1 or https://api.deepinfra.com/v1/openai or https://api.openai.com/v1 or https://api.novita.ai/openai LLM_SERVER_KEY=your_api_key LLM_SERVER_MODEL= # Leave empty, as models are specified in the config -LLM_SERVER_CONFIG_PATH=/opt/pentagi/conf/openrouter.provider.yml # or deepinfra.provider.ymll or custom-openai.provider.yml or novita.provider.yml -LLM_SERVER_PROVIDER= # Provider name for LiteLLM proxy (e.g., openrouter, deepseek, moonshot, novita) +LLM_SERVER_CONFIG_PATH=/opt/pentagi/conf/openrouter.provider.yml # or orcarouter.provider.yml or deepinfra.provider.ymll or custom-openai.provider.yml or novita.provider.yml +LLM_SERVER_PROVIDER= # Provider name for LiteLLM proxy (e.g., openrouter, orcarouter, deepseek, moonshot, novita) LLM_SERVER_LEGACY_REASONING=false # Controls reasoning format, for OpenAI must be true (default: false) LLM_SERVER_PRESERVE_REASONING=false # Preserve reasoning content in multi-turn conversations (required by Moonshot, default: false) @@ -3083,6 +3086,7 @@ When using LiteLLM proxy, set the corresponding `*_PROVIDER` variable to enable - `dashscope` - for Qwen models (`QWEN_PROVIDER=dashscope` → `dashscope/qwen-plus`) - `openai`, `anthropic`, `gemini` - for major cloud providers - `openrouter` - for OpenRouter aggregator +- `orcarouter` - for OrcaRouter aggregator - `deepinfra` - for DeepInfra hosting - `novita` - for Novita AI - Any other provider name configured in your LiteLLM instance diff --git a/examples/configs/orcarouter.provider.yml b/examples/configs/orcarouter.provider.yml new file mode 100644 index 000000000..493cd8133 --- /dev/null +++ b/examples/configs/orcarouter.provider.yml @@ -0,0 +1,134 @@ +# OrcaRouter provider configuration (OpenAI-compatible meta-router). +# Use via the custom LLM endpoint: +# LLM_SERVER_URL=https://api.orcarouter.ai/v1 +# LLM_SERVER_KEY=sk-orca-... +# LLM_SERVER_CONFIG_PATH=/opt/pentagi/conf/orcarouter.provider.yml +# Model IDs are namespaced (e.g. openai/gpt-5.5); "orcarouter/auto" is a virtual +# adaptive router. Prices are indicative - regenerate from https://www.orcarouter.ai/api/pricing. + +simple: + model: "google/gemini-3.5-flash" + temperature: 0.3 + top_p: 0.9 + n: 1 + max_tokens: 4000 + price: + input: 0.3 + output: 2.5 + +simple_json: + model: "google/gemini-3.5-flash" + temperature: 0.3 + top_p: 1.0 + n: 1 + max_tokens: 4000 + json: true + price: + input: 0.3 + output: 2.5 + +primary_agent: + model: "openai/gpt-5.5" + n: 1 + max_tokens: 6000 + reasoning: + effort: high + price: + input: 1.25 + output: 10.0 + +assistant: + model: "openai/gpt-5.5" + n: 1 + max_tokens: 6000 + reasoning: + effort: high + price: + input: 1.25 + output: 10.0 + +generator: + model: "anthropic/claude-sonnet-4.6" + n: 1 + max_tokens: 12000 + reasoning: + max_tokens: 4000 + price: + input: 3.0 + output: 15.0 + +refiner: + model: "openai/gpt-5.5" + n: 1 + max_tokens: 10000 + reasoning: + effort: medium + price: + input: 1.25 + output: 10.0 + +adviser: + model: "openai/gpt-5.5" + n: 1 + max_tokens: 6000 + reasoning: + effort: high + price: + input: 1.25 + output: 10.0 + +reflector: + model: "google/gemini-3.5-flash" + temperature: 0.5 + top_p: 1.0 + n: 1 + max_tokens: 4000 + price: + input: 0.3 + output: 2.5 + +searcher: + model: "google/gemini-3.5-flash" + n: 1 + max_tokens: 4000 + price: + input: 0.3 + output: 2.5 + +enricher: + model: "google/gemini-3.5-flash" + temperature: 0.5 + top_p: 1.0 + n: 1 + max_tokens: 6000 + price: + input: 0.3 + output: 2.5 + +coder: + model: "anthropic/claude-sonnet-4.6" + n: 1 + max_tokens: 8000 + reasoning: + max_tokens: 2000 + price: + input: 3.0 + output: 15.0 + +installer: + model: "google/gemini-3.5-flash" + n: 1 + max_tokens: 4000 + price: + input: 0.3 + output: 2.5 + +pentester: + model: "openai/gpt-5.5" + n: 1 + max_tokens: 6000 + reasoning: + effort: high + price: + input: 1.25 + output: 10.0