mac本地搭建ollama

news/发布时间2024/5/21 1:15:45

mac本地搭建ollama webUI

*简介:ollama-webUI是一个开源项目,简化了安装部署过程,并能直接管理各种大型语言模型(LLM)。本文将介绍如何在你的macOS上安装Ollama服务并配合webUI调用api来完成聊天。

开源地址

  • https://github.com/812781385/ollama-webUI.git,开源不易感谢star
  • 微信公众号

环境要求

  • macos系统
  • nodejs >= 18
  • 没错,其他的都不需要了

目标

  • 运行ollama
  • 启用webUI
  • 启用API服务
  • 启用RAG

安装ollama

  • 官网直接安装,ollama官网。
  • 选择macos,点击download for mac下载
  • 得到的是个压缩包,解压,然后一路next
  • 安装完成,直接使用
  • 系统可会默认启动ollama,在电脑的右上角能看到这个标记,如果没有,请看下一步

在命令行使用ollama

  • 打开终端,输入ollama -h,查看到所有的命令。

  • 点击这里搜索你需要的模型,然后直接启动,例如:ollama run llama3,可看到下载速度非常快,取决于你的宽带。

  • 下载完成,现在可以与他聊天了

  • control + D退出聊天

调用ollama的API

  • ollama提供api的形式调用,直接查看官网文档
  • ollama serve启动服务,发现端口被占用

需要点击电脑右上角的ollama图标来退出ollama,再来运行ollama serve

  • ollama服务默认是http://127.0.0.1:11434,目前在macOS上修改ip和端口无效,官方未解决(2024-5-9)。
  • 调用api会出现跨域,所以需要做一个服务端。我已经做好了,点击查看源码,感谢star

安装ollama-webUI和serve

  • git clone https://github.com/812781385/ollama-webUI.git

  • cd client

  • pnpm i

  • 修改.env 里的VITE_APP_AXIOS_BASE_URL 为自己的ip地址

  • npm run dev 运行webUI

  • cd serve

  • npm i

  • npm run dev 运行服务端

  • 浏览器访问http://localhost:8080/

  • 点击设置按钮,打开设置对话框,输入模型名称,例如:qwen:0.5b,点击按钮开始拉取模型

  • 选择刚刚拉取好的模型后,点击确定。就可以开始聊天了

使用RAG

什么是RAG,例如你问AI:你的名字叫什么?,他会告诉你他是个ai模型...,这不是我想要的答案,怎么办?有两种方式,1.训练自己的模型。2.在prompt里嵌入自己的文案。例如:你的名字叫小虎,请参考这个问题来回答: 你的名字叫什么,这时候他会回答,他的名字叫小虎。

  • 如果你要使用RAG,请先安装chroma数据库,点击查看官网文档
  • chroma run 启动数据库服务
  • 你还需拉取ollama的嵌入式模型mxbai-embed-large,点击查看官网文档
  • 然后调用serve/app/router里的接口,添加数据router.post('/addData', controller.chat.addDataForDB);
  • 在webUI的设置对话框里,开启RAG开关,就可以聊天了

模型推理内存损耗

  • 以llama2为例计算

视频演示

播放

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

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

相关文章

[转帖]TLAB(Thread Local Allocation Buffer)

https://www.cnblogs.com/Chary/p/18034613 TLAB是虚拟机在堆内存的eden划分出来的一块专用空间,是线程专属的。在虚拟机的TLAB功能启动的情况下,在线程初始化时,虚拟机会为每个线程分配一块TLAB空间,只给当前线程使用,这样每个线程都单独拥有一个空间,如果需要分配内存,…

K8s必须掌握的7个调试技巧

K8s必须掌握的7个调试技巧 原创 艾叔编程 艾叔编程 2024-05-09 09:35 北京 听全文Kubernetes(K8s)调试技术是指在使用Kubernetes集群过程中,用于定位和解决问题的方法和技术。Kubernetes是一个复杂的系统,它负责管理容器化的应用程序,确保它们按照预期运行。当应用程序出现…

联芯集成电路产品与方案

联芯集成电路产品与方案 逻辑制程解决方案 逻辑 / 混合信号 / 射频技术是数字电视、蓝牙、Wi-Fi、图像处理器,射频收发器等众多应用中最常用的晶圆专工解决方案。联电为不同的数据处理、混合信号及射频组件技术建立了广泛的跨代技术,也同时为建立专业技术平台奠定了坚实的基础…

定时将系统时间更新在日志文件中

获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,并每隔1s写入到本地磁盘中一个叫做log.txt的文本中,如果文本不存在则创建V1.0 2024年5月9日 发布于博客园实现:设计程序,获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,…

iceoryx源码阅读(一)——全局概览

一、什么是iceoryx iceoryx是一套基于共享内存实现的进程间通信组件。 二、源码结构 iceoryx源码包括若干工程,整理如下表所示:下图展示了主要项目之间的依赖(FROM:iceoryx(冰羚)-Architecture):三、iceoryx应用程序结构 iceoryx应用程序有三类进程,分别为Publisher、Su…

再探URLDNS链(手搓exp)

夜深了,想着还需要沉淀自己的基础能力,于是乎没有继续往CC链里爬,通过研究了一下ysoserial里的URLDNS链,决定自己尝试写一个类似却有些不同的exp,使自己的基础更加牢固一些,故有了今天这篇文章。 ysoserial里的URLDNS链我就不再多说,有兴趣的话自己可以去看下面这篇文章…