Files
semantic-kernel/python/samples/service_settings.py
T
Eduard van Valkenburg 12851923bc Python: allow settings to be created directly (#11468)
### Motivation and Context

<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
  2. What problem does it solve?
  3. What scenario does it contribute to?
  4. If it fixes an open issue, please link to the issue here.
-->
I've always hated having to add the .create to a settings object, this
removes that, you can just use the regular init, added benefit is that
it has the proper fields in the docstrings for each implemented settings
object!

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->
Adds a __new__ method to the base settings class, which takes the prefix
and if supplied the env_file and encoding, then calls model_rebuild and
then the init.

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [x] The code builds clean without any errors or warnings
- [x] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [x] All unit tests pass, and I have added new tests where possible
- [x] I didn't break anyone 😄
2025-04-11 06:26:22 +00:00

23 lines
854 B
Python

# Copyright (c) Microsoft. All rights reserved.
from typing import Literal
from semantic_kernel.kernel_pydantic import KernelBaseSettings
class ServiceSettings(KernelBaseSettings):
"""The Learn Resources Service Settings.
The settings are first loaded from environment variables. If the
environment variables are not found, the settings can be loaded from a .env file with the
encoding 'utf-8' as default or the specific encoding. If the settings are not found in the
.env file, the settings are ignored; however, validation will fail alerting that the settings
are missing.
Args:
global_llm_service: The LLM service to use for the samples, either "OpenAI" or "AzureOpenAI"
If not provided, defaults to "AzureOpenAI".
"""
global_llm_service: Literal["OpenAI", "AzureOpenAI"] = "AzureOpenAI"