mirror of
https://github.com/microsoft/semantic-kernel.git
synced 2026-10-12 02:19:06 +00:00
### Motivation and Context The C# Semantic Kernel has recently undergone an upgrade to its `PromptTemplateEngine`. This brings Python back in line with the semantics of Prompt Templates in C#. ### Description Here, unlike the original port, I've tried to make things more pythonic/idiomatic (instead of trying to directly mirror the C# codebase). I've also brought over the corresponding unit tests (and added some of my own as I was building/validating).
57 lines
2.1 KiB
Python
57 lines
2.1 KiB
Python
# Copyright (c) Microsoft. All rights reserved.
|
|
|
|
from typing import TYPE_CHECKING, Optional
|
|
|
|
from semantic_kernel.skill_definition.read_only_skill_collection_base import (
|
|
ReadOnlySkillCollectionBase,
|
|
)
|
|
|
|
if TYPE_CHECKING:
|
|
from semantic_kernel.orchestration.sk_function_base import SKFunctionBase
|
|
from semantic_kernel.skill_definition.functions_view import FunctionsView
|
|
from semantic_kernel.skill_definition.skill_collection_base import (
|
|
SkillCollectionBase,
|
|
)
|
|
|
|
|
|
class ReadOnlySkillCollection(ReadOnlySkillCollectionBase):
|
|
_skill_collection: "SkillCollectionBase"
|
|
|
|
def __init__(self, skill_collection: "SkillCollectionBase") -> None:
|
|
self._skill_collection = skill_collection
|
|
|
|
def has_function(self, skill_name: Optional[str], function_name: str) -> bool:
|
|
return self._skill_collection.has_function(skill_name, function_name)
|
|
|
|
def has_semantic_function(
|
|
self, skill_name: Optional[str], function_name: str
|
|
) -> bool:
|
|
return self._skill_collection.has_semantic_function(skill_name, function_name)
|
|
|
|
def has_native_function(
|
|
self, skill_name: Optional[str], function_name: str
|
|
) -> bool:
|
|
return self._skill_collection.has_native_function(skill_name, function_name)
|
|
|
|
def get_semantic_function(
|
|
self, skill_name: Optional[str], function_name: str
|
|
) -> "SKFunctionBase":
|
|
return self._skill_collection.get_semantic_function(skill_name, function_name)
|
|
|
|
def get_native_function(
|
|
self, skill_name: Optional[str], function_name: str
|
|
) -> "SKFunctionBase":
|
|
return self._skill_collection.get_native_function(skill_name, function_name)
|
|
|
|
def get_functions_view(
|
|
self, include_semantic: bool = True, include_native: bool = True
|
|
) -> "FunctionsView":
|
|
return self._skill_collection.get_functions_view(
|
|
include_semantic, include_native
|
|
)
|
|
|
|
def get_function(
|
|
self, skill_name: Optional[str], function_name: str
|
|
) -> "SKFunctionBase":
|
|
return self._skill_collection.get_function(skill_name, function_name)
|