-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
.Net adding chat completion and settings to Oobabooga connector #2229
Conversation
merge upstream
merge upstream
merge upstream
merge upstream
merge upstream
Merge upstream
merge upstream
Merge upstream
…for oogabooga constraints
Merge upstream
merge upstream
merge upstream
merge upstream
update upstream
@dmytrostruk Thanks for your review.
Now I suppose that the settings where most of the parameters and some of the logic were moved might invite to some more refactoring later on if we want clean serializable settings as was initially planned, but I believe this is a good start, and it has the additional benefit to fix an issue I had initially overlooked, that the completion themselves are supposed to be scoped and short-lived, whereas all the unit stress tests involved a single completion hammered with many calls. Also, I guess now some proper documentation would be welcome. I started documenting that related PR for a multiconnector in the form of that Readme file that contains useful information to get hold of this connector, but that other PR is currently based on the previous merged version of this connector, so it will need some merge work once this one gets merged. |
Here is the corresponding issue |
…mantic-kernel into feature-oobaboogachat
@jsboige Thanks for all the hard work! In general, as this functionality grows, it looks like separate Oobabooga .NET SDK, while in this repository we are focused more on lightweight connectors, that can be used with Semantic Kernel. Ideal scenario is when integration client is implemented as separate package, and we re-use it when implementing At the moment we are looking at opportunity to extract connectors and plugins to separate repositories (PR with contribution guidelines: #2503). We are working on mechanisms and will post official guidelines soon. Meanwhile, do you think it will be possible for you to migrate Oobabooga client implementation to separate repository and package, so in this connector we will reference it and use necessary methods to implement Please let me know what you think about it, thank you! |
@dmytrostruk Thanks for following through with reviewing yet another PR of mine, and for extending your long-term vision. Regarding #2503, I understand the motivation, which makes sense and, similarly to what happened with the recent extraction of chat-copilot, I'll be happy to commit to another dedicated connector's repository to keep this one light and focused. Then extending the idea to extracting the Oobabooga's client from the connector itself, the way I understand it, you would like to reproduce the existing architecture of the OpenAI connector, which is implemented through as a wrapper to Azure SDK's Open AI client library's Nugget package, that library being an external projet that can be used to target Open AI models independently from semantic-kernel. Again that makes sense, and I suppose most connectors and plugin are meant to wrap some kind of external client library with bindings to the core interfaces and abstractions. Here are several considerations that come to mind:
Now here's for my side of the story. Doing and teaching AI in .Net has proved exhausting with most projects ending up losing traction one way or another (Solver foundation dead, Encog dead, Accord.Net too, Genetic Sharp stalled, AIMA.Net dead, DlxLib dead, Quickgraph dead, Heuristiclab dead, CNTK dead, KerasSharp dead, TensorflowSharp dead, etc.). Even those still active like Z3, OR-tools, ML.Net, Spark.Net, SciSharp, TorchSharp, Infer etc. are not super healthy. I hope you guys are aware of that grim history. With that said I'm still pretty committed to that .Net stack and I'd rather see IronPython and IKVM properly revived that take the Python.Net bridging path, which I started doing occasionally. Also I tried to avoid past pitfalls where significant contributions of mine would be wasted like this one or that one although I just realized the latest was eventually partially merged into a revival project. Accordingly, I'm super grateful my contributions were accepted with open arms, and I believe I'm now ready to become the steward of some of it if you think that's the best path forward. |
@jsboige Thank you very much for your response and great contribution to this repository! |
@jsboige FYI: We recently updated our contributing guidelines [here](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#adding-plugins-and-memory-connectors , stating we are not directly adding plugin and connectors directly into the SDK repository. We are encouraging the community to host their own plugins and connectors separately in their own repositories. At the time we are exploring how we can provide a way to discover plugins and connectors and should have an update soon. I am going to close this issue given our change in contribution guidelines. |
@nacharya1, @dmytrostruk |
Motivation and Context
Resolves: #2583
a Oobabooga text completion connector was recently added to SK. Oobabooga API also supports a rich Chat API compatible with SK's chat completion model
Description
This PR completes the recently added Oobabooga connector with a complementary chat completion connector and exposes Oobabooga settings both for text and chat completion.
Contribution Checklist