元经纪 - 元宇宙与人工智能领域相关产品与服务一站式采购平台

400-6166692

SK:可将 AI 大型语言模型 (LLM) 与传统编程语言集成

分类:开源 时间:2023-04-04 05:49 浏览:712
概述
内容

概述

语义内核 (SK)是一种轻量级 SDK,可将 AI 大型语言模型 (LLM) 与传统编程语言集成。SK 可扩展编程模型结合了自然语言语义函数、传统代码本机函数基于嵌入的内存,释放新的潜力并通过 AI 为应用程序增加价值。SK开箱即用地支持 提示模板、函数链接、 向量化内存和 智能规划功能。 语义内核旨在支持和封装来自最新 AI 研究的多种设计模式,这样开发人员就可以在他们的应用程序中注入复杂的 技能,例如提示链、递归推理、总结、零/少样本学习、上下文记忆、长期记忆、嵌入、语义索引、规划和访问外部知识存储以及您自己的数据。

如果您想快速了解语义内核如何与您的应用程序集成,请从克隆存储库开始:

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

git clone https://github.com/microsoft/semantic-kernel.git

请注意:

  • 您需要一个 Open AI API 密钥或 Azure Open AI 服务密钥 才能开始。
  • 在运行示例和笔记本之前,您可能需要满足一些软件要求:
    1. Azure Functions Core Tools 用于将内核作为本地 API 运行,这是 Web 应用程序所需的。
    2. Yarn用于安装网络应用程序的依赖项。
    3. 语义内核支持 .NET Standard 2.1,建议使用 .NET 6+。但是,存储库中的一些示例需要.NET 7和 VS Code Polyglot 扩展 才能运行笔记本。

开始使用semantic-kernel

下面是一个快速示例,说明如何从 C# 控制台应用程序使用语义内核。

  1. 创建一个新项目,以 .NET 6 或更新版本为目标,并添加 Microsoft.SemanticKernelnuget 包:

    dotnet add package Microsoft.SemanticKernel --prerelease
    

    有关最新版本和更多说明,请参阅nuget.org 。

  2. 将以下代码复制并粘贴到您的项目中,并准备好您的 Azure OpenAI 密钥(您可以 在此处创建一个)。

using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.KernelExtensions;
using Microsoft.SemanticKernel.Configuration;

var kernel = Kernel.Builder.Build();

// For Azure Open AI details please see
// https://learn.microsoft.com/azure/cognitive-services/openai/quickstart?pivots=rest-api
kernel.Config.AddAzureOpenAITextCompletion(
    "davinci-azure",                     // Alias used by the kernel
    "text-davinci-003",                  // Azure OpenAI *Deployment ID*
    "https://contoso.openai.azure.com/", // Azure OpenAI *Endpoint*
    "...your Azure OpenAI Key..."        // Azure OpenAI *Key*
);

string summarizePrompt = @"
{{$input}}

Give me the a TLDR in 5 words.";

string haikuPrompt = @"
{{$input}}

Write a futuristic haiku about it.";

var summarize = kernel.CreateSemanticFunction(summarizePrompt);
var haikuWriter = kernel.CreateSemanticFunction(haikuPrompt);

string inputText = @"
1) A robot may not injure a human being or, through inaction,
allow a human being to come to harm.

2) A robot must obey orders given it by human beings except where
such orders would conflict with the First Law.

3) A robot must protect its own existence as long as such protection
does not conflict with the First or Second Law.";

var output = await kernel.RunAsync(inputText, summarize, haikuWriter);

Console.WriteLine(output);

// Output => Robots protect us all
//           No harm to humans they bring
//           Peaceful coexistence

[/hidecontent]

 
微信客服
返回顶部