赞
踩
随着ChatGPT的火热,基于大模型开发应用已经成为新的风口。虽然目前的大型模型已经具备相当高的智能水平,但它们仍然无法完全实现业务流程的自动化,从而达到用户的目标。
微软官方开源的Semantic Kernel的AI编排工具,就可以很好的满足我们自定义开发。
01
项目简介
Semantic Kernel是一个轻量级的SDK,最基本的功能就是帮我们完成与OpenAI、Azure OpenAI和Hugging Face大模型的API的对接,并且支持C#、Python、Java版本。
Semantic Kernel提供自定义插件、编排计划、信息存储至数据库(如SQLite、MongoDB、Redis、Postgres等)。
总的来说,Semantic Kernel就是可以把用户输入的prompt,经过分解为多个步骤、获取外部数据、执行自定义操作等,转换为一个更好的prompt,再调用大模型API,从而获取结果。
02
使用示例
以下是C#使用示例:
- using Microsoft.SemanticKernel;
- using Microsoft.SemanticKernel.Connectors.OpenAI;
-
-
- var builder = Kernel.CreateBuilder();
-
-
- //OpenAI模型
- builder.AddOpenAIChatCompletion(
- "gpt-3.5-turbo",
- "...your OpenAI API Key...");
-
-
- var kernel = builder.Build();
-
-
- //等待用户输入
- Console.Write("用户:");
- var input = Console.ReadLine();
-
-
- //循环对话
- while (input != "quit")
- {
- var prompt = @$"<message role=""user"">{input}</message>";
- var summarize = kernel.CreateFunctionFromPrompt(prompt, executionSettings: new OpenAIPromptExecutionSettings { MaxTokens = 100 });
- var result = kernel.InvokeStreamingAsync(summarize);
- Console.Write("OpenAI:");
- await foreach (var item in result)
- {
- Console.Write(item.ToString());
- }
- Console.WriteLine();
- Console.WriteLine();
- Console.Write("用户:");
- input = Console.ReadLine();
- }
03
核心组件
语义引擎:核心组件,用于理解用户的输入的语义,并将这些输入转化为机器可读的格式;
LLM API包装器:将传统的编程语言(如C#、Python、Java)与AI大模型集成,使得开发人员无需过多的关注大模型API,只需关心具体的业务开发;
可扩展编程模型:整合了自然语言语义功能、传统编程语言的native function以及基于embedding的存储,可以为大模型增强功能与数据。
04
项目地址
https://github.com/microsoft/semantic-kernel
从今天开始,在公众号即将编写:Semantic Kernel系列教程,欢迎关注
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。