Tell us what you think about the Semantic Kernel v1 proposal #3358
Replies: 7 comments 14 replies
-
after implementing a lot of the same concepts in a python branch, I have some notes, questions and suggestions:
|
Beta Was this translation helpful? Give feedback.
-
This is my feedback here: Feedback to SK v1 propoals:This is only relating to the C# variant. 01.01 ContextVariables to Dictionary<string, object>Seems more flexible at first, but exposing this through the API is difficult. Better:
The generic can be omitted here, as the compiler can infere the type from the
Ideally, also make it an 01.02 SKContext to IKernelAgain, please use a 02.01. Handlebars.NET already has powerful template engines that a) most .NET developers know and b) Especially when rendering to a HTML/CML-like structure like you did in the example, 02.03. YAMLNo YAML, please. Configuration in the .NET world nowadays is almost exclusively done If leveraged correctly, System.Extensions.Configuration also allows you to load changes Also, the current configuration system allows you to override only specific values for If you force adoption of YAML onto .NET developers, they will look for alternatives. 04.01. Functions detached - as singletons?You suggest that functions can (or should) be instanciated once and be re-used by several kernels. For EF Core, you need to get an instance of your DbContext that is scoped to the current API request, What you'd actually should provide, is that the developer only registers a Type and not an |
Beta Was this translation helpful? Give feedback.
-
What is the deadline for comment? |
Beta Was this translation helpful? Give feedback.
-
@matthewbolanos - Is handlebars fully available for us to try with beta 6? Any examples on how to import a yaml semantic function from folder? |
Beta Was this translation helpful? Give feedback.
-
01.01. ContextVariables will become be a Dictionary<string, object>The main drawback of Map<String, Object> is that we give up compile-time type checking and open ourselves to ClassCastException at runtime. The Java code is positioned to handle this with little modification. The Semantic Kernel for Java's input_variables:
- name: messages
type: com.microsoft.semantickernel.chatcompletion.ChatHistory
description: The history of the chat.
is_required: true Because of this, this change to Dictionary<string,object> has the unforunate consequence that one cannot apply the same template to any language. 01.02. SKContext will be replaced with IKernel and the variables dictionaryI would pass the variables dictionary in some other class that allows for possible future expansion without having to change the IKernel or ISKFunction abstractions. At some point in the future there is going to be the need to pass some piece of data other than the variables. Some piece of data that 01.03. Memory will be modeled like any other pluginWhat happens to the existing memory connectors that are in the semantic-kernel repo? 02.04. You can configure execution settings for multiple modelsI can see setting defaults in the yaml, but there may be many factors to selecting the best service. Letting the kernel make the decision should be a default 04.01. Use a function with multiple kernelsThis may be apparent, but this has the implication that functions must be stateless. On the other hand, this will make it easier to cache results from previous computations for reuse. 04.02. Introducing plugins to the kernelWill existing plugins be repackaged in a separate library? 04.03. Simplifying the creation of a kernelJava will still have builders which smooth over issues of having multiple constructors or constructors with a plethora of arguments. 04.04. Stream functions from the kernelBy streaming, you mean server sent events. In the given code example, how are the events dispatched to the client? Is there some kind of |
Beta Was this translation helpful? Give feedback.
-
I have a little bit of advice, maybe not very perfect. It's all based on my experience. Again, I would like to reiterate that the above is based on my experience. Maybe it's because my studies aren't in place, after all, SK is very new, and there are a lot of materials that maybe I haven't fully noticed. If there is a problem with my statement. Corrections are welcome. |
Beta Was this translation helpful? Give feedback.
-
Thank you all for the feedback: |
Beta Was this translation helpful? Give feedback.
-
Earlier today we shared the full proposal for v1 on our blog. If you have any thoughts about our proposal, this is the place to share them so we can incorporate the feedback into our final designs.
Beta Was this translation helpful? Give feedback.
All reactions