首页 > 其他分享 >【semantic Kernel】对接 Ollama

【semantic Kernel】对接 Ollama

时间:2024-10-30 17:33:06浏览次数:1  
标签:Kernel semantic Ollama 模型 llama3 var ollama history

在 chatGPT 的推动下。LLM 简直火出天际,各行各业都在蹭。听说最近 meta 开源的 llama3 模型可以轻松在普通 PC 上运行,这让我也忍不住来蹭一层。以下是使用 ollama 试玩 llama3 的一些记录。

什么是 llama

LLaMA(Large Language Model Meta AI)是Meta开发的大规模预训练语言模型,基于Transformer架构,具有强大的自然语言处理能力。它在文本生成、问答系统、机器翻译等任务中表现出色。LLaMA模型有多个规模,从几亿到上千亿参数,适用于不同的应用场景。用户可以通过开源平台如Hugging Face获取LLaMA模型,并根据需要进行微调。LLaMA的灵活性和可扩展性使其在自然语言处理领域具有广泛的应用前景。

什么是 ollama

Ollama是一款用于本地安装和管理大规模预训练语言模型的工具。它简化了模型的下载、安装和使用流程,支持多种流行的模型如GPT-4和llama。Ollama通过易于使用的命令行界面和API,帮助用户快速部署和运行自然语言处理任务。它还支持多GPU配置和模型微调,适应各种计算资源和应用需求。总之,Ollama为研究人员和开发者提供了一个高效、灵活的本地化大模型解决方案。

下载 ollama

ollama 官网提供了各种平台的安装包,那么这里选择 windows 系统的。以下是下载地址:https://ollama.com/download
下载windows版本的,一路 next 就行了。
以在命令行下执行

ollama -v

下载模型并运行

安装好 ollama 之后我们需要把训练好的模型拉到本地,然后才能运行它。

查找 模型

ollama 提供了一个页面供用户查询可以使用的开源模型。

https://ollama.com/search?q=&p=1

可以看到主流的开源 LLM 几乎都能找到。什么 llama3 啊,phi3 啊,国产的 qwen2 啊。让我们点击 llama3 看看详情。
里面可以选模型的参数大小。这里我们选 8b 试一下。模型大小是 4.7 GB。复制右上角的命令并在命令行运行:

ollama run llama3:8b

对话

下载完成后命令行就会跳转到对话模型,等待你输入问题。随便先来一个吧。

使用 SemanticKernel 对接 Ollama

安装 SK 及 ollama connector
首先在本地创建一个 Console 项目,然后安装以下包:

dotnet add package Microsoft.SemanticKernel --version 1.21.1
dotnet add package Microsoft.SemanticKernel.Connectors.Ollama --version 1.21.1-alpha

注意:ollama connector 还是 alpha 版本,请勿用于生产

代码:

    var endpoint = new Uri("http://localhost:11434");
    var modelId = "llama3:8b";

    var builder = Kernel.CreateBuilder();
#pragma warning disable SKEXP0070
    builder.Services.AddScoped<IChatCompletionService>(_ => new OllamaChatCompletionService(modelId, endpoint));
#pragma warning restore SKEXP0070
    var kernel = builder.Build();
    var chatService = kernel.GetRequiredService<IChatCompletionService>();
    var history = new ChatHistory();
    history.AddSystemMessage("This is a llama3 assistant ...");
    while (true)
    {
        Console.Write("You:");

        var input = Console.ReadLine();

        if (string.IsNullOrWhiteSpace(input))
        {
            break;
        }

        history.AddUserMessage(input);

        var contents = await chatService.GetChatMessageContentsAsync(history);

        foreach (var chatMessageContent in contents)
        {
            var content = chatMessageContent.Content;
            Console.WriteLine($"Ollama: {content}");
            history.AddMessage(chatMessageContent.Role, content ?? "");
        }
    }

参考:
本地部署llama: https://mp.weixin.qq.com/s?__biz=MzI0NDAzMTQyNQ==&mid=2456395459&idx=1&sn=c29ece0ba9427ab9709d4afc129c49be&chksm=fef9346dc98ebd7bbfd10d80d22b744dd0b9a1e90971b11614e1d3789ec3785bebde64a0a66f&scene=21#wechat_redirect

标签:Kernel,semantic,Ollama,模型,llama3,var,ollama,history
From: https://www.cnblogs.com/fanfan-90/p/18516218

相关文章

  • 【semantic Kernel】接入其他平台AI(智普)
    SemantieKernel中对话请求默认是发送到OpenAI去的其他与OpenAI对话请求接口兼容的模型平台,一般只需要修改host即可,path不需要修改,可以通过HttpClientHandler修改接入智普AI但是智谱AI的对话接口地址是api/paas/v4/chat/completions,和OpenAI不同,所以需要修改host和path智普......
  • linux 内核 LINUX_VERSION_CODE 和 KERNEL_VERSION 宏定义 版本信息
    由于Linux版本的在不断更新,当设备驱动去兼容不同版本的内核时,需要知道当前使用的内核源码版本,以此来调用对应版本的内核API,这两个宏定义在文件/usr/include/linux/version.h#defineLINUX_VERSION_CODE263213#defineKERNEL_VERSION(a,b,c)(((a)<<16)+((b)<<8)+(c))我安......
  • .NET使用OllamaSharp实现大模型推理对话的简单演示
    https://www.cnblogs.com/weskynet/p/18497936 前提条件:请确保你本地已经安装了ollama以及有关本地离线模型。或者已有远程模型环境等。如果没有,请自行部署。如果需要帮助,可以文末获取联系方式咨询。由于部署离线大模型过于简单,在线资料也很多,我就省略这个步骤了。 创建一个......
  • .NET使用OllamaSharp实现大模型推理对话的简单演示
     前提条件:请确保你本地已经安装了ollama以及有关本地离线模型。或者已有远程模型环境等。如果没有,请自行部署。如果需要帮助,可以文末获取联系方式咨询。由于部署离线大模型过于简单,在线资料也很多,我就省略这个步骤了。 创建一个项目,添加使用MIT开源协议的一个nuget包OllamaS......
  • 使用ollama本地部署qwen2并api调用
    目录一、下载ollama二、安装qwen大模型 三、Api调用四、尝试apifox调用一、下载ollamaOllama是一个开源的、本地运行的AI聊天模型,允许在自己的设备上运行LLM,无需依赖云服务。它支持多种LLM。目前Ollamalibrary已经支持Qwen2,可以直接使用。首先安装ollama,访问官......
  • 使用 Ollama 部署本地 LLM:构建 AI REST API 的简易指南
    最近已有不少大厂都在秋招宣讲,也有一些已在Offer发放阶段了。节前,我们邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。针对新手如何入门算法岗、该如何准备面试攻略、面试常考点、大模型技术趋势、算法项目落地经验分享等热门话题进行了深入的讨论。总结链......
  • qwen2.5 ollama推理;openai function call调用中文离线agents使用
    ollama部署qwen2.5:3b0.3.11版本agents使用https://qwen.readthedocs.io/en/latest/framework/function_call.htmlfromopenaiimportOpenAIimportjsondefsend_messages(messages):response=client.chat.completions.create(model="qwen2.5:3b......
  • Ubuntu 24.04使用virtualBox启动虚拟机提示Kernel driver not installed的解决办法
    1.Ubuntu安装virtualBoxvirtualBox官方下载对应ubuntu24.04系统的deb安装包进入到下载文件所在目录使用如下apt命令安装下载好的deb安装包sudoaptinstall-f./virtualBox*2.启动虚拟机提示“Kerneldrivernotinstalled”由于我装的是双系统,ubuntu挂载了windows下使......
  • 在C#中基于Semantic Kernel的检索增强生成(RAG)实践
    SemanticKernel简介玩过大语言模型(LLM)的都知道OpenAI,然后微软Azure也提供了OpenAI的服务:AzureOpenAI,只需要申请到APIKey,就可以使用这些AI服务。使用方式可以是通过在线Web页面直接与AI聊天,也可以调用AI的API服务,将AI的能力集成到自己的应用程序中。不过这些服务都是在线提供的......
  • Linux kernel 堆溢出利用方法
    前言本文还是用一道例题来讲解几种内核堆利用方法,内核堆利用手段比较多,可能会分三期左右写。进行内核堆利用前,可以先了解一下内核堆的基本概念,当然更好去找一些详细的内核堆的基础知识。概述Linuxkernel 将内存分为 页(page)→区(zone)→节点(node) 三级结构,主要有两个内存管理器......