Files
Eduard van Valkenburg d8496da277 Python: improve integration test runs (#9845)
## 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 😄
2024-11-29 11:31:12 +00:00

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