diff --git a/.env.example b/.env.example index 93c179442d..c0cdb9ab83 100644 --- a/.env.example +++ b/.env.example @@ -40,6 +40,7 @@ UNBROWSE_API_KEY=your-unbrowse-api-key # DEEPSEEK_API_KEY=your-deepseek-api-key # NOVITA_API_KEY=your-novita-api-key # OpenAI-compatible, see https://novita.ai # MINIMAX_API_KEY=your-minimax-api-key # OpenAI-compatible, see https://platform.minimax.io +# OPPER_API_KEY=your-opper-api-key # OpenAI-compatible, see https://opper.ai # OpenAI-compatible Images API (used by the image-generation skill) # IMAGE_GENERATION_PROVIDER=openai # openai-compatible is also accepted # IMAGE_GENERATION_API_KEY=your-image-generation-api-key diff --git a/README.md b/README.md index a6ebb69ee9..8f12fbc442 100644 --- a/README.md +++ b/README.md @@ -268,6 +268,13 @@ For MindIE XML tool calls, see the api_key: $OPENROUTER_API_KEY base_url: https://openrouter.ai/api/v1 + - name: opper-claude-sonnet-4-6 + display_name: Claude Sonnet 4.6 (Opper) + use: langchain_openai:ChatOpenAI + model: claude-sonnet-4-6 + api_key: $OPPER_API_KEY + base_url: https://api.opper.ai/v3/compat + - name: gpt-5-responses display_name: GPT-5 (Responses API) use: langchain_openai:ChatOpenAI diff --git a/README_fr.md b/README_fr.md index 58bece6252..0c9ff211ee 100644 --- a/README_fr.md +++ b/README_fr.md @@ -149,6 +149,13 @@ Ce prompt est destiné aux coding agents. Il leur demande de cloner le dépôt s api_key: $OPENROUTER_API_KEY base_url: https://openrouter.ai/api/v1 + - name: opper-claude-sonnet-4-6 + display_name: Claude Sonnet 4.6 (Opper) + use: langchain_openai:ChatOpenAI + model: claude-sonnet-4-6 + api_key: $OPPER_API_KEY + base_url: https://api.opper.ai/v3/compat + - name: gpt-5-responses display_name: GPT-5 (Responses API) use: langchain_openai:ChatOpenAI diff --git a/README_ja.md b/README_ja.md index d986b38509..333f8d20ea 100644 --- a/README_ja.md +++ b/README_ja.md @@ -140,6 +140,13 @@ DeerFlow がまだ clone されていなければ先に clone してから、htt api_key: $OPENROUTER_API_KEY base_url: https://openrouter.ai/api/v1 + - name: opper-claude-sonnet-4-6 + display_name: Claude Sonnet 4.6 (Opper) + use: langchain_openai:ChatOpenAI + model: claude-sonnet-4-6 + api_key: $OPPER_API_KEY + base_url: https://api.opper.ai/v3/compat + - name: gpt-5-responses display_name: GPT-5 (Responses API) use: langchain_openai:ChatOpenAI diff --git a/README_pt.md b/README_pt.md index a605f7b19e..cbcf720b10 100644 --- a/README_pt.md +++ b/README_pt.md @@ -200,6 +200,13 @@ Para o endpoint oficial do Gemini compatível com OpenAI, do Google, use o [perf api_key: $OPENROUTER_API_KEY base_url: https://openrouter.ai/api/v1 + - name: opper-claude-sonnet-4-6 + display_name: Claude Sonnet 4.6 (Opper) + use: langchain_openai:ChatOpenAI + model: claude-sonnet-4-6 + api_key: $OPPER_API_KEY + base_url: https://api.opper.ai/v3/compat + - name: gpt-5-responses display_name: GPT-5 (Responses API) use: langchain_openai:ChatOpenAI diff --git a/README_ru.md b/README_ru.md index 2b323a0ee5..7f70cb2dee 100644 --- a/README_ru.md +++ b/README_ru.md @@ -152,6 +152,13 @@ DeerFlow интегрирован с инструментарием для ум api_key: $OPENROUTER_API_KEY base_url: https://openrouter.ai/api/v1 + - name: opper-claude-sonnet-4-6 + display_name: Claude Sonnet 4.6 (Opper) + use: langchain_openai:ChatOpenAI + model: claude-sonnet-4-6 + api_key: $OPPER_API_KEY + base_url: https://api.opper.ai/v3/compat + - name: gpt-5-responses display_name: GPT-5 (Responses API) use: langchain_openai:ChatOpenAI diff --git a/README_zh.md b/README_zh.md index 9249474878..27b3f52866 100644 --- a/README_zh.md +++ b/README_zh.md @@ -152,6 +152,13 @@ DeerFlow 新近集成了 BytePlus 自研的智能搜索与抓取工具集——[ api_key: $OPENROUTER_API_KEY base_url: https://openrouter.ai/api/v1 + - name: opper-claude-sonnet-4-6 + display_name: Claude Sonnet 4.6 (Opper) + use: langchain_openai:ChatOpenAI + model: claude-sonnet-4-6 + api_key: $OPPER_API_KEY + base_url: https://api.opper.ai/v3/compat + - name: gpt-5-responses display_name: GPT-5 (Responses API) use: langchain_openai:ChatOpenAI diff --git a/backend/docs/CONFIGURATION.md b/backend/docs/CONFIGURATION.md index b23b197ac3..23ff14880b 100644 --- a/backend/docs/CONFIGURATION.md +++ b/backend/docs/CONFIGURATION.md @@ -1405,6 +1405,7 @@ models: - `DEEPSEEK_API_KEY` - DeepSeek API key - `MIMO_API_KEY` - Xiaomi MiMo API key - `NOVITA_API_KEY` - Novita API key (OpenAI-compatible endpoint) +- `OPPER_API_KEY` - Opper API key (OpenAI-compatible endpoint) - `TAVILY_API_KEY` - Tavily search API key - `BRAVE_SEARCH_API_KEY` - Brave Search API key for `web_search` and `image_search` - `SERPER_API_KEY` - Serper (Google Search/Images API) key for `web_search` and `image_search` diff --git a/config.example.yaml b/config.example.yaml index 4f78b6e339..cf03678aad 100644 --- a/config.example.yaml +++ b/config.example.yaml @@ -759,6 +759,22 @@ models: # thinking: # type: disabled + # Example: Opper (OpenAI-compatible) + # Opper is an EU-hosted AI gateway: 700+ models from 50+ providers behind one + # OpenAI-compatible API, so it uses the same ChatOpenAI + base_url pattern as + # other OpenAI-compatible gateways. Model ids are bare names such as + # claude-sonnet-4-6; browse them at https://api.opper.ai/v3/models. See https://opper.ai + # - name: opper-claude-sonnet-4-6 + # display_name: Claude Sonnet 4.6 (Opper) + # use: langchain_openai:ChatOpenAI + # model: claude-sonnet-4-6 + # api_key: $OPPER_API_KEY + # base_url: https://api.opper.ai/v3/compat + # request_timeout: 600.0 + # max_retries: 2 + # max_tokens: 8192 + # temperature: 0.7 + # Example: vLLM 0.19.0 (OpenAI-compatible, with reasoning toggle) # DeerFlow's vLLM provider preserves vLLM reasoning across tool-call turns and # toggles Qwen-style reasoning by writing diff --git a/scripts/wizard/providers.py b/scripts/wizard/providers.py index f75d090f2f..3cfc9b25b7 100644 --- a/scripts/wizard/providers.py +++ b/scripts/wizard/providers.py @@ -495,6 +495,23 @@ LLM_PROVIDERS: list[LLMProvider] = [ "temperature": 0.7, }, ), + LLMProvider( + name="opper", + display_name="Opper", + description="EU-hosted AI gateway, 700+ models behind one OpenAI-compatible API", + use="langchain_openai:ChatOpenAI", + models=["claude-sonnet-4-6", "gpt-5.5", "gemini-3.8-flash", "gpt-5.4-mini"], + default_model="claude-sonnet-4-6", + env_var="OPPER_API_KEY", + package="langchain-openai", + extra_config={ + "base_url": "https://api.opper.ai/v3/compat", + "request_timeout": 600.0, + "max_retries": 2, + "max_tokens": 8192, + "temperature": 0.7, + }, + ), LLMProvider( name="vllm", display_name="vLLM",