mirror of
https://github.com/microsoft/semantic-kernel.git
synced 2026-10-12 11:19:56 +00:00
### 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. --> The initial implementation of Pydantic Settings was not optimal yet, more optimized now. ### Description Added a KernelBaseSettings class in kernel_pydantic Rebased all settings off that Added single create method to KernelBaseSettings: - sets model_config.env_prefix to cls.end_prefix allowing us to set the env_prefix as a classvar on each subclass and it works - if env_file_path is set, set that in model_config - strip all None values out of inputted values, then instantiate This also allows us to pass the settings that are supplied to the settings class, for overriding env settings. <!-- Describe your changes, the overall approach, the underlying design. These notes will help understanding how your code works. Thanks! --> ### 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 😄
27 lines
872 B
Python
27 lines
872 B
Python
# Copyright (c) Microsoft. All rights reserved.
|
|
|
|
from typing import Any
|
|
|
|
from semantic_kernel.kernel_pydantic import KernelBaseModel
|
|
|
|
|
|
class InputVariable(KernelBaseModel):
|
|
"""Input variable for a prompt template.
|
|
|
|
Args:
|
|
name: The name of the input variable.
|
|
description: The description of the input variable.
|
|
default: The default value of the input variable.
|
|
is_required: Whether the input variable is required.
|
|
json_schema: The JSON schema for the input variable.
|
|
allow_dangerously_set_content: Allow content without encoding, this controls
|
|
if this variable is encoded before use, default is False.
|
|
"""
|
|
|
|
name: str
|
|
description: str | None = ""
|
|
default: Any | None = ""
|
|
is_required: bool | None = True
|
|
json_schema: str | None = ""
|
|
allow_dangerously_set_content: bool = False
|