This commit is contained in:
salmanap 2026-01-29 02:56:09 +00:00
parent 9c0ad075ca
commit 58a833cfd4
6 changed files with 548 additions and 29 deletions

View file

@ -1,6 +1,6 @@
Plano Docs v0.4.3
llms.txt (auto-generated)
Generated (UTC): 2026-01-29T01:18:45.966758+00:00
Generated (UTC): 2026-01-29T02:56:05.745300+00:00
Table of contents
- Agents (concepts/agents)
@ -831,6 +831,8 @@ First-Class Providers: Native integrations with OpenAI, Anthropic, DeepSeek, Mis
OpenAI-Compatible Providers: Any provider implementing the OpenAI Chat Completions API standard
Wildcard Model Configuration: Automatically configure all models from a provider using provider/* syntax
Intelligent Routing
Three powerful routing approaches to optimize model selection:
@ -1162,7 +1164,7 @@ llm_providers:
Common Configuration Fields:
model: Provider prefix and model name (format: provider/model-name)
model: Provider prefix and model name (format: provider/model-name or provider/* for wildcard expansion)
access_key: API key for authentication (supports environment variables)
@ -1277,7 +1279,11 @@ Advanced reasoning model (preview)
Configuration Examples:
llm_providers:
# Latest models (examples - use any OpenAI chat model)
# Configure all OpenAI models with wildcard
- model: openai/*
access_key: $OPENAI_API_KEY
# Or configure specific models
- model: openai/gpt-5.2
access_key: $OPENAI_API_KEY
default: true
@ -1285,7 +1291,6 @@ llm_providers:
- model: openai/gpt-5
access_key: $OPENAI_API_KEY
# Use any model name from OpenAI's API
- model: openai/gpt-4o
access_key: $OPENAI_API_KEY
@ -1338,17 +1343,29 @@ Complex agents and coding
Configuration Examples:
llm_providers:
# Latest models (examples - use any Anthropic chat model)
# Configure all Anthropic models with wildcard
- model: anthropic/*
access_key: $ANTHROPIC_API_KEY
# Or configure specific models
- model: anthropic/claude-opus-4-5
access_key: $ANTHROPIC_API_KEY
- model: anthropic/claude-sonnet-4-5
access_key: $ANTHROPIC_API_KEY
# Use any model name from Anthropic's API
- model: anthropic/claude-haiku-4-5
access_key: $ANTHROPIC_API_KEY
# Override specific model with custom routing
- model: anthropic/*
access_key: $ANTHROPIC_API_KEY
- model: anthropic/claude-sonnet-4-20250514
access_key: $ANTHROPIC_PROD_API_KEY
routing_preferences:
- name: code_generation
DeepSeek
Provider Prefix: deepseek/
@ -1928,6 +1945,95 @@ llm_providers:
access_key: $OPENAI_DEV_KEY
name: openai-dev
Wildcard Model Configuration
Automatically configure all available models from a provider using wildcard patterns. Plano expands wildcards at configuration load time to include all known models from the providers registry.
Basic Wildcard Usage:
llm_providers:
# Expand to all OpenAI models
- model: openai/*
access_key: $OPENAI_API_KEY
# Expand to all Anthropic Claude models
- model: anthropic/*
access_key: $ANTHROPIC_API_KEY
# Expand to all Mistral models
- model: mistral/*
access_key: $MISTRAL_API_KEY
How Wildcards Work:
Known Providers (OpenAI, Anthropic, DeepSeek, Mistral, Groq, Gemini, Together AI, xAI, Moonshot, Zhipu):
Expands at config load time to all models in Planos provider registry
Creates entries for both canonical (openai/gpt-4) and short names (gpt-4)
Enables the /models/list endpoint to list all available models
View complete model list: provider_models.yaml
Unknown/Custom Providers (e.g., custom-provider/*):
Stores as a wildcard pattern for runtime matching
Requires base_url and provider_interface configuration
Matches model requests dynamically (e.g., custom-provider/any-model-name)
Does not appear in /models/list endpoint
Overriding Wildcard Models:
You can configure specific models with custom settings even when using wildcards. Specific configurations take precedence and are excluded from wildcard expansion:
llm_providers:
# Expand to all Anthropic models
- model: anthropic/*
access_key: $ANTHROPIC_API_KEY
# Override specific model with custom settings
# This model will NOT be included in the wildcard expansion above
- model: anthropic/claude-sonnet-4-20250514
access_key: $ANTHROPIC_PROD_API_KEY
routing_preferences:
- name: code_generation
priority: 1
# Another specific override
- model: anthropic/claude-3-haiku-20240307
access_key: $ANTHROPIC_DEV_API_KEY
Custom Provider Wildcards:
For providers not in Planos registry, wildcards enable dynamic model routing:
llm_providers:
# Custom LiteLLM deployment
- model: litellm/*
base_url: https://litellm.example.com
provider_interface: openai
passthrough_auth: true
# Custom provider with all models
- model: custom-provider/*
access_key: $CUSTOM_API_KEY
base_url: https://api.custom-provider.com
provider_interface: openai
Benefits:
Simplified Configuration: One line instead of listing dozens of models
Future-Proof: Automatically includes new models as theyre released
Flexible Overrides: Customize specific models while using wildcards for others
Selective Expansion: Control which models get custom configurations
Default Model Configuration
Mark one model as the default for fallback scenarios:
@ -3038,7 +3144,7 @@ Step 3: Interact with LLM
Step 3.1: Using curl command
$ curl --header 'Content-Type: application/json' \
--data '{"messages": [{"role": "user","content": "What is the capital of France?"}], "model": "none"}' \
--data '{"messages": [{"role": "user","content": "What is the capital of France?"}], "model": "gpt-4o"}' \
http://localhost:12000/v1/chat/completions
{
@ -3225,7 +3331,7 @@ Step 3. Interacting with gateway using curl command
Here is a sample curl command you can use to interact:
$ curl --header 'Content-Type: application/json' \
--data '{"messages": [{"role": "user","content": "what is exchange rate for gbp"}], "model": "none"}' \
--data '{"messages": [{"role": "user","content": "what is exchange rate for gbp"}], "model": "gpt-4o"}' \
http://localhost:10000/v1/chat/completions | jq ".choices[0].message.content"
"As of the date provided in your context, December 5, 2024, the exchange rate for GBP (British Pound) from USD (United States Dollar) is 0.78558. This means that 1 USD is equivalent to 0.78558 GBP."
@ -3233,7 +3339,7 @@ $ curl --header 'Content-Type: application/json' \
And to get the list of supported currencies:
$ curl --header 'Content-Type: application/json' \
--data '{"messages": [{"role": "user","content": "show me list of currencies that are supported for conversion"}], "model": "none"}' \
--data '{"messages": [{"role": "user","content": "show me list of currencies that are supported for conversion"}], "model": "gpt-4o"}' \
http://localhost:10000/v1/chat/completions | jq ".choices[0].message.content"
"Here is a list of the currencies that are supported for conversion from USD, along with their symbols:\n\n1. AUD - Australian Dollar\n2. BGN - Bulgarian Lev\n3. BRL - Brazilian Real\n4. CAD - Canadian Dollar\n5. CHF - Swiss Franc\n6. CNY - Chinese Renminbi Yuan\n7. CZK - Czech Koruna\n8. DKK - Danish Krone\n9. EUR - Euro\n10. GBP - British Pound\n11. HKD - Hong Kong Dollar\n12. HUF - Hungarian Forint\n13. IDR - Indonesian Rupiah\n14. ILS - Israeli New Sheqel\n15. INR - Indian Rupee\n16. ISK - Icelandic Króna\n17. JPY - Japanese Yen\n18. KRW - South Korean Won\n19. MXN - Mexican Peso\n20. MYR - Malaysian Ringgit\n21. NOK - Norwegian Krone\n22. NZD - New Zealand Dollar\n23. PHP - Philippine Peso\n24. PLN - Polish Złoty\n25. RON - Romanian Leu\n26. SEK - Swedish Krona\n27. SGD - Singapore Dollar\n28. THB - Thai Baht\n29. TRY - Turkish Lira\n30. USD - United States Dollar\n31. ZAR - South African Rand\n\nIf you want to convert USD to any of these currencies, you can select the one you are interested in."