mirror of
https://github.com/microsoft/semantic-kernel.git
synced 2026-10-12 02:19:06 +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. --> Split the integration tests into seperate ones for Memory and Completions Added code to allow the samples to run as well Moved containers to service containers. ### Description <!-- 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 😄
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
# Copyright (c) Microsoft. All rights reserved.
|
|
|
|
from abc import ABC, abstractmethod
|
|
from typing import Annotated, Any, TypeVar
|
|
|
|
from pydantic import Field
|
|
|
|
from semantic_kernel.kernel_pydantic import KernelBaseModel
|
|
|
|
_T = TypeVar("_T", bound="KernelContent")
|
|
|
|
|
|
class KernelContent(KernelBaseModel, ABC):
|
|
"""Base class for all kernel contents."""
|
|
|
|
# NOTE: if you wish to hold on to the inner content, you are responsible
|
|
# for saving it before serializing the content/chat history as it won't be included.
|
|
inner_content: Annotated[Any | None, Field(exclude=True)] = None
|
|
ai_model_id: str | None = None
|
|
metadata: dict[str, Any] = Field(default_factory=dict)
|
|
|
|
@abstractmethod
|
|
def __str__(self) -> str:
|
|
"""Return the string representation of the content."""
|
|
pass
|
|
|
|
@abstractmethod
|
|
def to_element(self) -> Any:
|
|
"""Convert the instance to an Element."""
|
|
pass
|
|
|
|
@classmethod
|
|
@abstractmethod
|
|
def from_element(cls: type[_T], element: Any) -> _T:
|
|
"""Create an instance from an Element."""
|
|
pass
|
|
|
|
@abstractmethod
|
|
def to_dict(self) -> dict[str, Any]:
|
|
"""Convert the instance to a dictionary."""
|
|
pass
|