当前位置:首页 > AI > 正文内容

AI使用开发之路-预备:建议第2个开源小项目 SemanticKernel.DashScope

邻居的猫1个月前 (12-09)AI1337

上星期咱们发布了与AI运用开发相关的第1个开源小项目 —— DashScope SDK for .NET,今日咱们再发布一个开源小项目 —— SemanticKernel.DashScope,今日这个项目才是主角,由于咱们想依据 Semantic Kernel 开发大模型运用。

首要共享几个与 Semantic Kernel 与 DashScope 相关的音讯:

  • Java 1.0 Release Candidate for Semantic Kernel 发布了,SK 不只是 .NET 版的 AI 运用开发结构,土豪的微软正在一同开发三个技能渠道的版别 —— .NET, Java, Python ,为了AI,微软也是够拼。
  • DashScope 开端支撑 function calling,2月22日咱们提交工单咨询阿里云 DashScope 是否支撑 function calling,阿里云回复说不支撑,这周发现开端支撑了,阿里云的动作够快。
  • 限时免费的通义千问系列大模型18号要开端收费了,咱们现在运用的 qwen-max 就归于限时免费款。

【阿里云】灵积大模型服务渠道通义千问系列大模型将于2024年3月18日调整计费。请您检查最新定价计费阐明。检查地址:https://t.aliyun.com/U/4ij1a1 。感谢您的运用

下面简略介绍一下今日的主角,github 库房地址 https://github.com/cnblogs/semantic-kernel-dashscope

这个开源项目不只完成了支撑 Semantic Kernel 的 DashScope Connector,还完成了支撑 Kernel Memory 的 DashScope Extension,所以分成了2个子项目:

  • SemanticKernel.DashScope:完成了3个接口 IChatCompletionServiceITextGenerationService 以及 ITextEmbeddingGenerationService,对应的 nuget 包是 Cnblogs.SemanticKernel.Connectors.DashScope
  • KernelMemory.DashScope:完成了2个接口 ITextEmbeddingGeneratorITextEmbeddingGenerator, 对应的 nuget 包是 Cnblogs.KernelMemory.AI.DashScope

下面经过简略的示例代码快速体会一下。

先体会 Cnblogs.SemanticKernel.Connectors.DashScope

装置 nuget 包

dotnet add package Cnblogs.SemanticKernel.Connectors.DashScope

写一个简略的控制台程序与通义千问 qwn-max 大模型进行对话

var builder = Kernel.CreateBuilder();
builder.Services.AddDashScopeChatCompletion(apiKey, "qwen-max");
var kernel = builder.Build();

var prompt = "博客园是什么样网站,用简练的言语答复";
var result = await kernel.InvokePromptAsync(prompt);
Console.WriteLine(result);

运转程序,通义千问的答复如下:

博客园是一个面向软件开发和技能爱好者的中文技能博客渠道,用户能够在该网站上创立、共享和沟通编程常识、技能文章、行业动态等内容。它致力于为程序员及互联网相关人员供给一个高质量的内容创造与共享社区,促进技能信息的传达与沟通。

接着体会 Cnblogs.KernelMemory.AI.DashScope

装置 nuget 包

dotnet add package Microsoft.KernelMemory.Core
dotnet add package Cnblogs.KernelMemory.AI.DashScope

写一个简略的控制台程序,运用园子的第一款粗陋鼠标垫,是否是您值得具有的周边这篇博文进行 RAG(Retrieval Augmented Generation) 与通义千问大模型进行对话

var memory = new KernelMemoryBuilder()
    .WithDashScopeDefaults(apiKey)
    .Build<MemoryServerless>();

await memory.ImportWebPageAsync("https://www.cnblogs.com/cmt/p/17974346");

var question = "博客园鼠标垫在哪买";
var answer = await memory.AskAsync(question);
Console.WriteLine($"{answer.Result}");

上面的代码很简略,但背面比较复杂,Kernel Memory 做了许多工作,比方 memory.ImportWebPageAsync 办法执行时完成了博文内容的抓取、内容切割(partition)、调用 DashScope api 生成 embedding 向量并保存至向量数据库,从下面的日志能够看出来

info: Microsoft.KernelMemory.Pipeline.BaseOrchestrator[0]
      Queueing upload of 1 files for further processing [request f3626f2e67ad451a959d056b4a9e3fbd202403130328152696707]
info: Microsoft.KernelMemory.Pipeline.BaseOrchestrator[0]
      File uploaded: content.url, 38 bytes
info: Microsoft.KernelMemory.Pipeline.BaseOrchestrator[0]
      Handler 'extract' processed pipeline 'default/f3626f2e67ad451a959d056b4a9e3fbd202403130328152696707' successfully
info: Microsoft.KernelMemory.Pipeline.BaseOrchestrator[0]
      Handler 'partition' processed pipeline 'default/f3626f2e67ad451a959d056b4a9e3fbd202403130328152696707' successfully
info: Microsoft.KernelMemory.Pipeline.BaseOrchestrator[0]
      Handler 'gen_embeddings' processed pipeline 'default/f3626f2e67ad451a959d056b4a9e3fbd202403130328152696707' successfully
info: Microsoft.KernelMemory.Pipeline.BaseOrchestrator[0]
      Handler 'save_records' processed pipeline 'default/f3626f2e67ad451a959d056b4a9e3fbd202403130328152696707' successfully
info: Microsoft.KernelMemory.Pipeline.BaseOrchestrator[0]
      Pipeline 'default/f3626f2e67ad451a959d056b4a9e3fbd202403130328152696707' complete

在经过 memory.AskAsync 办法发送提示词时,不只包含用户输入的提示词,而且会依据用户输入的提示词调用 DashScope api 生成提示词的 embedding 向量,而且用这个向量在向量数据库中进行语义查找,将查找到的结果与用户输入的提示词一同发送给大模型(这便是RAG)。

通义千问 qwen-max 大模型练习时并没有关于博客园鼠标垫的数据,所以假如不进行 RAG,通义千问不会给出想要的答案。

有了 Kernel Memory,运用 RAG 变得很简略,看看下面选用 RAG 的答复作用

博客园鼠标垫能够在淘宝上购买,详细购买方法有两种:

1. 淘宝查找“博客园”,找到相关店肆和产品链接进行购买。
2. 直接经过供给的淘宝店购买链接购买:https://item.taobao.com/item.htm?id=761724714914

别的,假如不想在淘宝店购买,还能够挑选增加园子的企业微信进行购买。

比照一下,不选用 RAG,直接问通义千问

很抱愧,我无法供给最新、实时的购物信息,包含博客园是否售卖鼠标垫以及购买途径。博客园(Cnblogs)是一个面向软件开发者的IT技能博客渠道,并非产品销售网站,一般不会直接售卖鼠标垫等什物产品。

假如您想购买鼠标垫,能够测验在各大电商渠道如淘宝、京东、苏宁易购等查找相关产品进行选购。

RAG的作用很明显。

欢迎咱们重视这个开源项目,欢迎反应,欢迎提交 PR https://github.com/cnblogs/semantic-kernel-dashscope

接下来咱们会测验完成对 function calling 的支撑。

19:34 更新:DashScope SDK for .NET 现已支撑 function calling

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=400

标签: AI
分享给朋友:

“AI使用开发之路-预备:建议第2个开源小项目 SemanticKernel.DashScope” 的相关文章

AI综合2839867Z空间,2839867Z空间探索的新篇章

AI综合2839867Z空间,2839867Z空间探索的新篇章

AI综合2839867Z空间是指由李飞飞创办的World Labs推出的空间智能模型。这个模型可以通过一张图片生成一个逼真且可交互的3D世界,具有以下主要功能和特点:1. 3D世界构建:从单张图片生成完整的3D世界,包括估算3D几何图形和填充场n2. 内容创建:在给定图片的基础上,系统能创建新的内...

机器学习图片,机器学习在图片处理领域的应用

机器学习图片,机器学习在图片处理领域的应用

1. 三张图读懂机器学习:这篇文章用三张图解读了机器学习的定义、原理、历史、未来趋势和常见算法,包括符号主义、贝叶斯派、统计学派、深度学习和神经网络等五大流派。文章还介绍了机器学习的工作方式、应用场n2. 视觉中国:视觉中国提供了1,715个机器学习相关的图片素材,包括机器人、人工智能、神经网络、...

什么叫ai技术,什么是AI技术?

什么叫ai技术,什么是AI技术?

AI技术,即人工智能技术,是指使机器能够模拟、延伸和扩展人类智能的技术。它涵盖了多个领域,包括机器学习、自然语言处理、计算机视觉、专家系统、机器人技术等。AI技术通过算法和数据分析,使计算机能够从数据中学习、识别模式、做出决策,甚至执行复杂的任务,从而在许多领域如医疗、金融、交通、教育、娱乐等中发挥...

综合调度 ai,未来生产力的加速器

综合调度 ai,未来生产力的加速器

关键特点1. 数据采集与处理: 综合调度AI会收集并整理各类数据,包括任务需求、资源状态、环境条件等。2. 智能决策算法: 基于收集到的数据,智能调度AI会运用各种智能算法,如机器学习、深度学习等,进行决策分析,生成最优的调度方案。3. 任务分配与优化: 根据算法生成的调度方案,...

综合布线ai绘图,AI绘图在综合布线设计中的应用与优势

综合布线ai绘图,AI绘图在综合布线设计中的应用与优势

2. boardmix: 功能:boardmix是一款基于云端的协作白板软件,内置丰富的专业图形符号,包括流程图、UML图、ER图、数据流图、网络拓扑图和组织结构图等。结合AI助手,可以提供智能化建议,支持自动化绘图和实时协作。 优点:提高了设计架构图的绘制效率,支持团队协作和可视化展示...

ai人脸识别,变革时代的安全守护者

ai人脸识别,变革时代的安全守护者

人工智能(AI)人脸识别技术是一种利用计算机算法和机器学习技术来识别和验证个人身份的技术。它通过分析人脸的几何特征、纹理、颜色和其他属性来识别和验证个人的身份。人脸识别技术可以应用于各种场景,如安全监控、身份验证、访问控制、支付系统等。人脸识别技术的工作原理如下:1. 人脸检测:首先,系统需要检测图...