Semantic Kernel 直接调用本地大模型与阿里云灵积 DashScope

本文主要介绍如何在无需网关,无需配置 HttpClient 的情况下,使用 Semantic Kernel 直接调用本地大模型与阿里云灵积 DashScope 等 OpenAI 接口兼容的大模型服务。

1. 背景

一直以来,我们都在探索如何更好地利用大型语言模型(LLM)的能力。Semantic Kernel 作为一个微软开源的语义内核 SDK,它提供了一种高效的方式让用户可以在自己的应用程序中集成大语言模型 (LLM) 的强大功能。

同时,随着 OpenAI 的发展,其接口调用方式已被广泛采用和认可,成为了众多大型语言模型的标准接口或兼容标准。在 .Net 使用的 OpenAI 库,大家之前一直广泛使用的是 Azure.AI.OpenAI ,但是因为设计上的一些限制,我们无法直接调用本地大模型或者一些兼容 OpenAI 接口的大模型服务。因为内部审计,统一管理,成本分摊,无法直接访问或自建服务等原因,可以方便的修改服务地址,一直是大家的迫切需求。

近期 OpenAI 正式发布了第一个官方 .NET 版的测试 SDK,Azure.AI.OpenAI 的 2.x 版本,这个版本的 SDK 也将基于这个新的 SDK 进行开发。但是目前这个 SDK 还处于测试阶段。

在这里插入图片描述

在之前的文章中,我也介绍了如何在 Semantic Kernel 中使用本地大模型的临时方案。当前随着 Semantic Kernel 的不断完善,我们有了更方便的方式来调用本地大模型与阿里云灵积 DashScope 等一些兼容 OpenAI 接口的大模型服务。

2. 本地服务

相信大家都有自己的本地大模型服务,或者是一些兼容 OpenAI 接口的大模型服务。本地大模型部署的方式有很多种,也越来越简单,我们可以方便的使用 Ollama、llama-server(llama.cpp) 等开源项目,来运行 Llama 3, Phi 3, Qwen2, Mistral,Gemma 等流行的大模型。

在这里我介绍一下我近期的一个开源项目 LLamaWorker,一个基于 LLamaSharp 的 ASP.NET 项目,提供 OpenAI 兼容的接口,感兴趣的同学可以了解一下。

虽然都是开源项目,但相比较而言,Ollama 更适合普通用户。而 llama.cpp 和 LLamaWorker 更适合开发者,可以更方便的进行二次开发和项目集成。

3. 代码实现

在 Semantic Kernel 中,提供了一个实验性的功能,在 OpenAI 连接器中提供了自定义服务端点的功能。这个功能可以让我们直接调用本地大模型或者一些兼容 OpenAI 接口的大模型服务。

我们可以通过 AddOpenAIChatCompletion() 创建自定义的 OpenAI 服务。对于

var services = new ServiceCollection();
services.AddKernel();
services.AddOpenAIChatCompletion("qwen-long", new Uri("https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"), "you key");

4. 注意事项

使用 AddOpenAIChatCompletion 时,我们需要输入完整的 ChatCompletion 端点,这与之前的使用习惯并不一致。

另外,由于改功能也尚处于试验阶段,并且其依赖的 Azure.AI.OpenAI 还是 1.0 的版本,对于后面的推出的 2.x 还并没有升级适配,还是需要时刻关注该接入方式的变更。

5. 最后

Semantic Kernel 的出现为开发者提供了一个强大且灵活的工具,使得在不同的环境下调用大型语言模型变得更加简单和高效。通过直接调用本地大模型或兼容 OpenAI 接口的服务,我们可以更好地控制数据的隐私和安全,同时也能够根据自己的需要调整服务的配置和性能。

此外,随着技术的发展和社区的贡献,我们期待看到更多的开源项目和工具的出现,这将进一步降低技术门槛,让更多的开发者和企业能够轻松地利用大型语言模型的强大能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/354668.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI 已经在污染互联网了。。赛博喂屎成为现实

大家好,我是程序员鱼皮。这两年 AI 发展势头迅猛,更好的性能、更低的成本、更优的效果,让 AI 这一曾经高高在上的技术也走入大众的视野,能够被我们大多数普通人轻松使用,无需理解复杂的技术和原理。 其中,…

2024: 有效使用OKR的10个技巧

2023年是许多前所未有的一年。从真正意义上讲,这一年让我们为不可预测的事情做好了准备,也为不确定的事情提供了训练。在我们身边发生了这么多事情,而下一步的行动却依然不甚明朗的情况下,领导者们更应该开始制定战略,…

wvp-GB28181-pro 源码分析-查询设备信息和通道流程(二)

文章目录 一、SIP通信方法介绍1.1 核心方法(Core Methods)1.2 扩展方法(Extension Methods)二、源码分析2.1 SIP协议处理过程2.2 查询设备信息的sip过程(CmdType=DeviceInfo)2.2.1 摄像机注册成功后,wvp会发命令查询设备信息2.2.2 查询信令发出2.2.3 处理设备查询返回的XML2…

还在为Android开发找不到图片测试资源发愁吗? DummyImage来助你加速开发

使用 DummyImage 模拟电影应用数据 在开发和测试过程中,模拟数据是不可或缺的工具。它可以帮助我们在没有真实数据的情况下测试应用程序的功能和性能。本文将介绍如何使用 [DummyImage]https://dummyimage.com生成占位符图像来模拟电影应用的数据,并深入…

蓝牙技术|蓝牙耳机将成钥匙,佩戴时靠近设备即解锁

微软公司于今年 6 月 13 日获批一项技术专利,探索耳机验证技术,未来用户不仅可以拿耳机来听歌、通话,而且可以变身钥匙,配合其它计算设备进行身份验证。 微软在专利中概述称用户佩戴这款耳机之后,可以发出超声波信号…

国产数据库也开始堆砌功能了?试图在行业中炫技!

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…

每日一练:攻防世界:ewm

这道题我尝试了使用montagegaps解题,但是没有解出来,图片数量不是很多,可以尝试用PS直接拼图,但是这样学不到东西,我也就没尝试,直接看的官方WP 这段代码应该是改变工作目录到small,并且变量当…

【DevOps】Nginx配置文件详解与实战部署PHP站点

目录 引言 Nginx配置文件概述 基本结构 关键指令 Nginx配置文件实战 全局指令配置 HTTP指令配置 服务器指令配置 位置指令配置 实战部署PHP站点 步骤1:安装Nginx和PHP 步骤2:创建网站目录和文件 步骤3:配置Nginx服务器块 步骤4…

家具市场规模超7660亿美元,赛盈分销这些卧室家具在海外大卖!

今年,全球家具市场似乎表现都十分乐观。 根据海关出口总署的相关数据,我国的家具出口额1-5月份达到了2121.5亿元,同比增长20.5%。国内家具出口增速显著,换句话说,就是老外对家具又有更多的消费能力了。 在Statista的…

阿里云PAI大模型评测最佳实践

作者:施晨、之用、南茵、求伯、一耘、临在 背景信息 内容简介 在大模型时代,随着模型效果的显著提升,模型评测的重要性日益凸显。科学、高效的模型评测,不仅能帮助开发者有效地衡量和对比不同模型的性能,更能指导他…

深入浅出Git原理与Gitflow流程

1 Git原理 版本控制系统在软件开发和团队协作中扮演着至关重要的角色。它们帮助开发人员跟踪和管理代码的变化,协调多人同时编辑同一代码库,回溯历史版本,并解决代码冲突等问题。Git作为当今最流行的分布式版本控制系统,为开发人…

刷代码随想录有感(109):动态规划——01背包问题|一和零

题干&#xff1a; 代码 : class Solution { public:int findMaxForm(vector<string>& strs, int m, int n) {vector<vector<int>>dp(m 1, vector<int>(n 1, 0));dp[0][0] 0;for(string i : strs){int oneNum 0;int zeroNum 0;for(char c : i…

Web渗透:XSS-反射型存储型

跨站脚本攻击&#xff08;Cross-Site Scripting&#xff0c;XSS&#xff09;是一种常见的网络安全漏洞&#xff0c;它允许攻击者将恶意脚本注入到网页中&#xff0c;其他用户在浏览这些页面时&#xff0c;可能会执行这些恶意脚本&#xff0c;从而导致各种安全问题&#xff0c;如…

innovus:如何设置timing报告格式

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 在flow中添加如下设置即可设置好timing report的格式。 set report_timing_format [list timing_point arc net cell fanout load slew incr_delay delay arrival total_derate…

示例:WPF中应用MarkupExtention自定义IValueConverter

一、目的&#xff1a;应用MarkupExtention定义IValueConverter&#xff0c;使得应用起来更简单和高效 二、实现 public abstract class MarkupValueConverterBase : MarkupExtension, IValueConverter{public abstract object Convert(object value, Type targetType, object …

高考志愿选专业,文科生如何分析选择专业?

每到高考时节&#xff0c;学生们最关注的就是专业选择&#xff0c;以及未来职业发展问题&#xff0c;对于文科生来说&#xff0c;面对文科专业的众多选择&#xff0c;很多人都有些不知所措&#xff0c;如何选择适合自己兴趣爱好&#xff0c;又有良好就业前景的工作。从哪些方面…

Tailwind CSS 响应式设计实战指南

title: Tailwind CSS 响应式设计实战指南 date: 2024/6/13 updated: 2024/6/13 author: cmdragon excerpt: 这篇文章介绍了如何运用Tailwind CSS框架创建响应式网页设计&#xff0c;涵盖博客、电商网站及企业官网的布局实例&#xff0c;包括头部导航、内容区域、侧边栏、页脚…

18个机器学习核心算法模型总结

最强总结&#xff01;18个机器学习核心算法模型&#xff01;&#xff01; 大家好~ 在学习机器学习之后&#xff0c;你认为最重要的算法模型有哪些&#xff1f; 今儿的内容涉及到~ 线性回归逻辑回归决策树支持向量机朴素贝叶斯K近邻算法聚类算法神经网络集成方法降维算法主成…

哈喽GPT-4o——对GPT-4o 编程的思考与看法

GPT-4o&#xff08;“o”代表“全能”&#xff09;它可以接受任意组合的文本、音频和图像作为输入&#xff0c;并生成任意组合的文本、音频和图像输出。 &#x1f449; GPT功能&#xff1a; GPT-4o知识问答&#xff1a;支持1000token上下文记忆功能最强代码大模型Code Copilo…

通过噪声扰动缓解多模态大型语言模型的幻觉问题

摘要 该论文提出了一种名为NoiseBoost的方法&#xff0c;通过噪声扰动来缓解多模态大语言模型(MLLM)中的幻觉问题。论文分析指出&#xff0c;幻觉主要源于大语言模型固有的总结机制&#xff0c;导致对语言符号的过度依赖&#xff0c;而忽视了视觉信息。NoiseBoost通过在视觉特…