mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-07-30 07:39:38 +00:00
# What does this PR do? - Add base_url field to OpenAIConfig with default "https://api.openai.com/v1" - Update sample_run_config to support OPENAI_BASE_URL environment variable - Modify get_base_url() to return configured base_url instead of hardcoded value - Add comprehensive test suite covering: - Default base URL behavior - Custom base URL from config - Environment variable override - Config precedence over environment variables - Client initialization with configured URL - Model availability checks using configured URL This enables users to configure custom OpenAI-compatible API endpoints via environment variables or configuration files. Closes #2910 ## Test Plan run unit tests
42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
# All rights reserved.
|
|
#
|
|
# This source code is licensed under the terms described in the LICENSE file in
|
|
# the root directory of this source tree.
|
|
|
|
from typing import Any
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from llama_stack.schema_utils import json_schema_type
|
|
|
|
|
|
class OpenAIProviderDataValidator(BaseModel):
|
|
openai_api_key: str | None = Field(
|
|
default=None,
|
|
description="API key for OpenAI models",
|
|
)
|
|
|
|
|
|
@json_schema_type
|
|
class OpenAIConfig(BaseModel):
|
|
api_key: str | None = Field(
|
|
default=None,
|
|
description="API key for OpenAI models",
|
|
)
|
|
base_url: str = Field(
|
|
default="https://api.openai.com/v1",
|
|
description="Base URL for OpenAI API",
|
|
)
|
|
|
|
@classmethod
|
|
def sample_run_config(
|
|
cls,
|
|
api_key: str = "${env.OPENAI_API_KEY:=}",
|
|
base_url: str = "${env.OPENAI_BASE_URL:=https://api.openai.com/v1}",
|
|
**kwargs,
|
|
) -> dict[str, Any]:
|
|
return {
|
|
"api_key": api_key,
|
|
"base_url": base_url,
|
|
}
|