diff --git a/hatchling/config/openai_settings.py b/hatchling/config/openai_settings.py index 9f7e3ce..3243ddc 100644 --- a/hatchling/config/openai_settings.py +++ b/hatchling/config/openai_settings.py @@ -30,9 +30,9 @@ class OpenAISettings(BaseModel): ) api_base: str = Field( - default="https://api.openai.com/v1", + default_factory=lambda: os.environ.get("OPENAI_API_URL", "https://api.openai.com/v1"), description="The base URL for OpenAI API requests.", - json_schema_extra={"access_level": SettingAccessLevel.READ_ONLY}, + json_schema_extra={"access_level": SettingAccessLevel.PROTECTED}, ) timeout: int = Field( diff --git a/hatchling/core/llm/model_manager_api.py b/hatchling/core/llm/model_manager_api.py index d270a8d..65864f5 100644 --- a/hatchling/core/llm/model_manager_api.py +++ b/hatchling/core/llm/model_manager_api.py @@ -224,7 +224,7 @@ async def _list_openai_models(settings: AppSettings) -> List[ModelInfo]: # model listing requires different permissions and pricing try: - client = AsyncOpenAI(api_key=settings.openai.api_key) + client = AsyncOpenAI(api_key=settings.openai.api_key, base_url=settings.openai.api_base) models_response = await client.models.list() models = []