-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Description
Important
Labeled Urgent because it may require a breaking change.
(Metapoint: Try rewriting all the examples without using var and seeing how many namespaces need to be imported to successfully compile.)
- (1)
To do anything meaningful with memory now I need both:
using Microsoft.SemanticKernel.Memory; // for ISemanticTextMemory, unless I rely exclusively on var
using Microsoft.SemanticKernel.Plugins.Memory; // for MemoryBuilder and friendsplus a using for whatever store I'm using it if it's not the VolatileMemoryStore, e.g.
using Microsoft.SemanticKernel.Connectors.Memory.AzureCognitiveSearch;That's three usings just to create an ISemanticTextMemory. Can these be consolidated?
- (2)
To do anything meaningful with planning, I now need both:
using Microsoft.SemanticKernel.Planners; // for the actual planner
using Microsoft.SemanticKernel.Planning; // for PlanThe difference between "Planners" and "Planning" is also very subtle. Can these be consolidated?
-
(3)
It looks like Microsoft.SemanticKernel.Diagnostics exists now just forSKException,HttpOperationException, andTelemetry. Do we need this namespace at all? Can we move these types somewhere else, like movingSKExceptionto the rootMicrosoft.SemanticKernelnamespace? -
(4)
Similarly, can we consolidate Microsoft.SemanticKernel.Events with something else? "Events" is pretty broad; the types here are specific to pre/post hooks with plan execution, right? -
(5)
Why do we need Microsoft.SemanticKernel.Plugins.Core? Can't those just move down into Plugins? -
(6)
We should also move "extensions" types to the namespace with the types they extend. For example, it looks like ImageGenerationServiceExtensions, TextEmbeddingServiceExtensions, TextCompletionServiceExtensions, only have extension methods and those only apply toIAIServicein Microsoft.SemanticKernel.Services... can they move there? And can they be consolidated into an AIServicesExtensions class? AndOpenAIModelResultExtensionshas methods that operate only onMicrosoft.SemanticKernel.Orchestration.ModelResult... can it move there? -
(7)
What is MemoryConfiguration and why does it live in the root namespace? -
(8)
The main thing I do with anIKernel(which lives in the root namespace) isInvokeAsyncon it, and to get a useful result from it, I need to access itsKernelResult, which now lives inMicrosoft.SemanticKernel.Orchestration. I suggest at leastKernelResultandFunctionResultmove to be next toIKernelandISKFunctionin the root namespace. And at that point, theOrchestrationnamespace contains very little and should likely be consolidated with something else. -
(9)
Microsoft.SemanticKernel.TemplateEngine contains just a single type (IPromptTemplateEngine) and then a subBasicnamespace. Can everything inBasicjust move up? -
(10)
Microsoft.SemanticKernel.Reliabilityappears to solely be about HTTP and retries. Why is this separate fromMicrosoft.SemanticKernel.Http? Can we consolidate them? -
(11)
.Net: PromptTemplateConfig and IPromptTemplate namesapce refactor #3173
Metadata
Metadata
Assignees
Labels
Type
Projects
Status