use provider_id/model_id for model

This commit is contained in:
Adil Hafeez 2025-07-08 16:13:56 -07:00
parent bcd7f9be45
commit 293bd14051
No known key found for this signature in database
GPG key ID: 9B18EF7691369645
4 changed files with 41 additions and 45 deletions

View file

@ -66,21 +66,6 @@ properties:
properties:
name:
type: string
# provider field is deprecated, use provider_interface instead
provider:
type: string
enum:
- openai
provider_interface:
type: string
enum:
- arch
- claude
- deepseek
- groq
- mistral
- openai
- gemini
access_key:
type: string
model:
@ -104,7 +89,6 @@ properties:
additionalProperties: false
required:
- model
- provider_interface
overrides:
type: object
properties:

View file

@ -19,6 +19,16 @@ ARCH_CONFIG_SCHEMA_FILE = os.getenv(
"ARCH_CONFIG_SCHEMA_FILE", "arch_config_schema.yaml"
)
SUPPORTED_PROVIDERS = [
"arch",
"claude",
"deepseek",
"groq",
"mistral",
"openai",
"gemini",
]
def get_endpoint_and_port(endpoint, protocol):
endpoint_tokens = endpoint.split(":")
@ -92,10 +102,24 @@ def validate_and_render_schema():
raise Exception(
f"Duplicate llm_provider name {llm_provider.get('name')}, please provide unique name for each llm_provider"
)
model_name = llm_provider.get("model")
if llm_provider.get("name") is None:
provider_interface = llm_provider.get("provider_interface", "unknown")
model_name = llm_provider.get("model", "unknown")
llm_provider["name"] = f"{provider_interface}/{model_name}"
llm_provider["name"] = model_name
model_name_tokens = model_name.split("/")
if len(model_name_tokens) < 2:
raise Exception(
f"Invalid model name {model_name}. Please provide model name in the format <provider>/<model_id>."
)
provider = model_name_tokens[0]
model_id = "/".join(model_name_tokens[1:])
if provider not in SUPPORTED_PROVIDERS:
raise Exception(
f"Unsupported provider {provider} for model {model_name}. Supported providers are: {', '.join(SUPPORTED_PROVIDERS)}"
)
llm_provider["provider_interface"] = provider
llm_provider_name_set.add(llm_provider.get("name"))
provider = None
if llm_provider.get("provider") and llm_provider.get("provider_interface"):

View file

@ -10,37 +10,29 @@ listeners:
llm_providers:
- access_key: $OPENAI_API_KEY
provider_interface: openai
model: gpt-4o-mini
model: openai/gpt-4o-mini
- access_key: $OPENAI_API_KEY
provider_interface: openai
model: gpt-4o
model: openai/gpt-4o
default: true
- access_key: $MISTRAL_API_KEY
provider_interface: mistral
model: ministral-3b-latest
model: mistral/ministral-3b-latest
- access_key: $ANTHROPIC_API_KEY
provider_interface: claude
model: claude-3-7-sonnet-latest
model: claude/claude-3-7-sonnet-latest
- access_key: $ANTHROPIC_API_KEY
provider_interface: claude
model: claude-sonnet-4-0
model: claude/claude-sonnet-4-0
- access_key: $DEEPSEEK_API_KEY
provider_interface: deepseek
model: deepseek-reasoner
model: deepseek/deepseek-reasoner
- access_key: $GROQ_API_KEY
provider_interface: groq
model: llama-3.1-8b-instant
model: groq/llama-3.1-8b-instant
- access_key: $GEMINI_API_KEY
provider_interface: gemini
model: gemini-1.5-pro-latest
model: gemini/gemini-1.5-pro-latest
tracing:
random_sampling: 100

View file

@ -9,25 +9,21 @@ listeners:
llm_providers:
- provider_interface: openai
access_key: $OPENAI_API_KEY
model: gpt-4o-mini
- access_key: $OPENAI_API_KEY
model: openai/gpt-4o-mini
- provider_interface: openai
access_key: $OPENAI_API_KEY
model: gpt-4.1
- access_key: $OPENAI_API_KEY
model: openai/gpt-4.1
default: true
- name: code_generation
access_key: $OPENAI_API_KEY
provider_interface: openai
model: gpt-4.1
model: openai/gpt-4.1
usage: generating new code snippets, functions, or boilerplate based on user prompts or requirements
- name: code_understanding
provider_interface: openai
access_key: $OPENAI_API_KEY
model: gpt-4o-mini
model: openai/gpt-4o-mini
usage: understand and explain existing code snippets, functions, or libraries
tracing: