十行代码开发一个 AI 应用
Semantic Kernal 简介
Semantic Kernel (SK) is a lightweight SDK that lets you easily mix conventional programming languages with the latest in Large Language Model (LLM) AI "prompts" with templating, chaining, and planning capabilities out-of-the-box.
Semantic Kernel (SK) 是一个轻量级的 SDK,它允许你轻松地将传统编程语言与最新的大型语言模型 (LLM) AI "提示"相结合,其提供开箱即用的模板、链接和规划功能。
简而言之,就是基于 SK 提供的能力,可以基于“传统的编程语言”进行面向 LLM(大语言模型)AI 编程。这里的 LLM 目前就是 OpenAI,这里的传统编程语言,可以是 C#,Python 亦或 TypeScript、Java 等,但 SK 是微软开源,因此目前 C#在第一支持系列。换句话说,C# 开发者已可以基于 SK 进行面向 OpenAI 编程。
大型语言模型 (LLM) AI 是一个术语,指的是可以从大量数据生成自然语言文本的 AI 模型。大型语言模型使用深度神经网络(如转换器)从数十亿或数万亿个单词中学习,并生成有关任何主题或领域的文本。大型语言模型还可以执行各种自然语言任务,例如分类、汇总、翻译、生成和对话。大型语言模型的一些例子是 GPT-3,BERT,XLNet 和 EleutherAI。
那 SK 提供了怎样的能力呢?SK 旨在支持和封装来自最新 AI 研究的多种能力,以便开发人员可以为他们的应用程序注入复杂的 AI 技能,如提示链、递归推理、总结、zero/few-shot(零样本和少量样本)学习、上下文记忆、长期记忆、嵌入、语义索引、 规划,以及访问外部知识库和您自己的数据。
上手开发 AI 外教应用
但很大多数开发者肯定有这样一个疑问:我不懂算法,也能开发 AI 应用?是的,可以。OpenAI 的能力已经通过高度抽象的接口开放,开箱即用。不再像之前一样,要进行复杂的训练、调参。对于大多数的简单的业务场景,只要进行简单的 Prompt 设计,和少许样本的支撑,即可达到不错的效果。 当然,对于复杂的场景,也可能需要通过大数据集进行自定义模型训练。空说无凭,准备了一个简单的 AI 应用示例:使用 SK 开发专属 AI 外教应用。场景很简单:设计一个 AI 外教 7*24 陪我练习英语口语。
需求分析
作为一名哑巴英语保持者,目前开口的难点无外乎:
词汇量不足
语法混淆
发音不准
口语表达能力弱
针对这些顽疾,我希望我的 AI 外教有这样的能力:
由于我的词汇量不足,因此我的表达中会中英混合,当出现这种情况时,希望 AI 能告诉我正确的英文表达。
由于我的语法经常会犯一些时态错误,当出现这种情况时,希望 AI 能进行语法纠正。
由于我的词汇量不足,当我要求解释某些句子或单词时,希望 AI 能通过中文向我解释。
由于有些单词不会发音,当我询问时,希望 AI 能以中文的形式告诉我发音技巧。
效果预览
那这样的 AI 应用的开发,看似复杂,但在 SK 的加持下,20 行代码就可以轻松搞定。先来给大家看看演示效果:
弱弱的问一句,这样的 AI 外教,满足你的需要吗?如需体验,评论留言。
上代码
简单起见创建控制台应用程序:
dotnet new console -n MyAITeacher.Demo
添加
Microsoft.SemanticKernel
Nuget 包创建
Skills->Learning->LearningEnglishSkill
目录在
LearningEnglishSkill
目录下添加config.json
和skprompt.txt
文件:config.json:用来配置模型参数,可保持为空:{}
,使用默认参数即可 skprompt.txt: 用来定义设计的 prompt
在
skprompt.txt
中设计满足需求的 Prompt:
修改
Program.s
如下:
文章转载自:「圣杰」
评论