From e1795624b38981b2529a4f4977875312a55c7d2f Mon Sep 17 00:00:00 2001 From: XiaoHuo888 Date: Wed, 12 Aug 2026 06:29:42 +0800 Subject: [PATCH] docs: document OrcaRouter as a hosted inference option Adds a named OrcaRouter example alongside the existing OpenRouter examples in the Model docstring, the SFT distillation teacher-client snippet, and the MCP-RL scenario-generation docs. OrcaRouter is an OpenAI-compatible gateway (https://api.orcarouter.ai/v1, keys start with sk-orca-) that exposes 150+ models behind a single endpoint, including the orcarouter/auto router model. Co-Authored-By: Claude --- docs/features/mcp-rl.mdx | 12 ++++++++++++ docs/fundamentals/sft-training.mdx | 6 ++++++ src/art/model.py | 10 ++++++++++ 3 files changed, 28 insertions(+) diff --git a/docs/features/mcp-rl.mdx b/docs/features/mcp-rl.mdx index 2cdf2b930..1fa7be5b0 100644 --- a/docs/features/mcp-rl.mdx +++ b/docs/features/mcp-rl.mdx @@ -42,6 +42,18 @@ scenario_collection = await generate_scenarios( ) ``` +You can generate scenarios against [OrcaRouter](https://www.orcarouter.ai) the same way — point `generator_base_url` at `https://api.orcarouter.ai/v1` and use an OrcaRouter key (keys start with `sk-orca-`): + +```python +scenario_collection = await generate_scenarios( + tools=tools_list, + num_scenarios=24, + show_preview=True, + generator_api_key="your_orcarouter_key", + generator_base_url="https://api.orcarouter.ai/v1", +) +``` + ART automatically generates diverse training scenarios that exercise different aspects of the MCP server: simple single-tool usage, complex multi-step workflows, edge cases and error handling, and creative combinations of available tools. ### 3. **RULER Evaluation** diff --git a/docs/fundamentals/sft-training.mdx b/docs/fundamentals/sft-training.mdx index e49fe475e..5242e156a 100644 --- a/docs/fundamentals/sft-training.mdx +++ b/docs/fundamentals/sft-training.mdx @@ -142,6 +142,12 @@ async def main(): api_key="your-api-key", base_url="https://openrouter.ai/api/v1", ) + # Or point the teacher at OrcaRouter: + # + # teacher_client = AsyncOpenAI( + # api_key=os.getenv("ORCAROUTER_API_KEY"), + # base_url="https://api.orcarouter.ai/v1", + # ) # Small models often produce malformed JSON or miss fields. # Distilling from a larger model teaches consistent structured extraction. system_prompt = "Extract {name, role, company} as JSON from the text. Return only valid JSON." diff --git a/src/art/model.py b/src/art/model.py index 1dd47cbb4..bc6f497b5 100644 --- a/src/art/model.py +++ b/src/art/model.py @@ -433,6 +433,16 @@ class Model( ) `` + Or, if you're pointing at [OrcaRouter](https://www.orcarouter.ai): + + ``python model = art.Model( + name="gemini-2.5-pro", project="my-project", + inference_api_key=os.getenv("ORCAROUTER_API_KEY"), + inference_base_url="https://api.orcarouter.ai/v1", + inference_model_name="orcarouter/auto", + ) + `` + For trainable (`art.TrainableModel`) models the inference values will be populated automatically by `model.register(api)` so you generally don't need to think about them.