从0到1,AI我来了- (5)大模型-本地知识库-I

一、下载&安装Ollama

        Ollama下载地址: Download Ollama on macOS

        Github地址:GitHub - ollama/ollama: Get up and running with Llama 3.1, Mistral, Gemma 2, and other large language models.

        Ollama 是啥?

        是一个人工智能和机器学习平台,旨在简化和加速模型的开发、训练和部署。有点类似于Docker 查询、管理、运行各种镜像,Ollama 可管理、查询、部署模型。

        Ollama  跑模型

# 控制台运行,当前发布不久的meta 开源模型 llama3.1
ollama run llama3.1pulling manifest
pulling 87048bcd5521... 100% ▕████████████████████████████████████████████████████▏ 4.7 GB
pulling 8cf247399e57... 100% ▕████████████████████████████████████████████████████▏ 1.7 KB
pulling f1cd752815fc... 100% ▕████████████████████████████████████████████████████▏  12 KB
pulling 56bb8bd477a5... 100% ▕████████████████████████████████████████████████████▏   96 B
pulling e711233e7343... 100% ▕████████████████████████████████████████████████████▏  485 B
verifying sha256 digest
writing manifest
removing any unused layers
success

        本地没有整个模型,会自动下载llama3.1,跑个命令试试。

Ollama  API ,11434 端口是模型提供的API 服务端口(后面与Anythingllm 对接需要用到)

写个程序(如附录一 程序demo)

二、下载&安装AnythingLLM

        AnythingLLM 地址 desktop安装:MacOS Installation ~ AnythingLLM

        但官方更建议用Docker 安装: Local Docker Installation ~ AnythingLLM

 1、AnythingLLM 是啥?

AnythingLLM is the easiest to use, all-in-one AI application that can do RAG, AI Agents, and much more with no code or infrastructure headaches.

AnythingLLM 是最简单易用的 AI 应用程序全家桶,可以实现 RAG(检索增强生成)、AI 代理等多种功能,无需代码或基础设施方面的烦恼。

2、AnythingLLM 利用  docker 安装

三个前置条件:

  • docker installed on your machine
  • yarn and node on your machine
  • access to an LLM running locally or remotely
1) 安装docker

如果没有安装Docker ,从这里下载 https://www.docker.com/ 安装。

国内镜像配置,参考附录二。

2)安装nvm 、Node 、yarn 

nvm:全名叫做 nodejs version manage,是一个非常棒的nodejs的版本管理工具

Yarn:Yarn is an established open-source package manager used to manage dependencies in JavaScript projects. 开源的Js 工程的包及其以来管理工具。

安装命令如下:

# layouts.download.codeBox.installsNvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash# layouts.download.codeBox.downloadAndInstallNodejsRestartTerminal
nvm install 20# layouts.download.codeBox.verifiesRightNodejsVersion
node -v # layouts.download.codeBox.shouldPrint# layouts.download.codeBox.verifiesRightNpmVersion
npm -v # layouts.download.codeBox.shouldPrint

安装nvm 

安装Node 

安装yarn

Local Docker 安装好之后,命令行安装AnythingLLM

 docker pull mintplexlabs/anythingllm

安装成功后,可以docker  images 看到 Anythingllm 的镜像。 

 3、运行 anythingllm 镜像

命令如下:

sudo mkdir -p /opt/tech/anythingllm && sudo chmod -R 755  /opt/tech/anythingllm && export STORAGE_LOCATION=/opt/tech/anythingllm && sudo touch "$STORAGE_LOCATION/.env" && docker run -d -p 3001:3001 --cap-add SYS_ADMIN  -v ${STORAGE_LOCATION}:/app/server/storage -v ${STORAGE_LOCATION}/.env:/app/server/.env -e STORAGE_DIR="/app/server/storage"  mintplexlabs/anythingllm

命令解析:

  • 创建存储路径 /opt/tech/anythingllm目录、.env文件
  •  -d  后台运行
  • -p 并指定本地3001端口映射容器端口3001
  • --cap-add=SYS_ADMIN  这样容器内部就被赋予系统的 SYS_ADMIN权限
  • -v   参数可以将主机上的文件或目录挂载到容器内部,实现主机和容器之间的文件共享:
  • -e 设置容器的环境变量
  •  mintplexlabs/anythingllm 镜像名称

跑的过程中,提示路径不是共享路径,我们按指示去设置一下

docker: Error response from daemon: Mounts denied:
The path /opt/tech/anythingllm is not shared from the host and is not known to Docker.
You can configure shared paths from Docker -> Preferences... -> Resources -> File Sharing.
See https://docs.docker.com/desktop/mac for more info.

跑了几次没成功,很快退出了,我们分析一下原因:

docker logs NAMES( 上图最后一列,其中一个)

发现需要用到Node.js ,而我们忘记安装了,😅

再跑一次看看,问题依旧。

原因我的路径下,权限不足,所以补一个动作,给新建的目录授权一下,再跑一下,OK了。

chown -R anguszhu tech
❯ docker ps |grep anythingllm
e38a8b074321   mintplexlabs/anythingllm    "/bin/bash /usr/loca…"   2 minutes ago   Up 2 minutes (healthy)   0.0.0.0:3001->3001/tcp   keen_williams

打开浏览器: http://localhost:3001

上图Angus’ workspace 是我创建的工作区,找到上传图标,上传了一个阿里的开发规范。

我们再上传小说看看:

至此,本地知识库差不多了,有个入门,下篇我们整点Stable diffusion或者数字人、“冷门歌手” 唱首rap 是什么感觉...

附录一 程序demo(这个截图工具有点Bug,图卡了)

 附录二:国内镜像配置,可以在Dashboard中增加国内url:

{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com","https://mirror.baidubce.com","https://ccr.ccs.tencentyun.com"]
}

附录三:安装Node

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

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

相关文章

一文搞懂后端面试之不停机数据迁移【中间件 | 数据库 | MySQL | 数据一致性】

数据迁移方面的工作: 重构老系统:使用新的表结构来存储数据单库拆分分库分表、分库分表扩容大表修改表结构定义 数据备份工具 MySQL上常用的两款数据备份工具:mysqldump和XtraBackup mysqldump:一个用于备份和恢复数据库的命令…

Redis中的set类型

set的含义 集合设置(和get相对应) 集合就是把一些有关联的数据放到一起 集合中的元素是无序的(和list的有序是对应的-顺序很重要,这里的无序就是顺序不重要);在list中[]1,2,3],[1,3,2],是两个…

Java开发工具IDEA

IDEA概述 Intellij IDEA IDEA全称Intellij IDEA,是用于Java语言开发的集成环境,它是业界公认的目前用于Java程序开发最好的工具。 集成环境 把代码编写,编译,执行,调试等多种功能综合到一起的开发工具。 IDEA下载和安…

PDF在线预览实现:如何使用vue-pdf-embed实现前端PDF在线阅读

目录 PDF在线预览实现:如何使用vue-pdf-embed实现前端PDF在线阅读 一、前言 二、vue-pdf-embed是什么 1、作用与场景 2、vue-pdf-embed的优点 三、项目初始化与依赖安装 1、初始化Vue项目 2、安装依赖 3、集成vue-pdf-embed插件 四、一个实际的应用demo …

Java面试题精选:消息队列(一)

1、为什么使用消息队列 问题用意: 其实就是想问一下消息队列有哪些使用场景,你项目中什么业务场景用到了消息队列,有什么技术挑战。使用MQ后给你带来了什么好处 规范回答: 消息队列的常见使用场景很多,但比较核心的…

【漏洞修复】Tomcat中间件漏洞

1.CVE-2017-12615 抓包上传一句话木马 密码passwd 2.后台弱口令部署war包 先用弱口令登录网站后台 制作war包 将172.jsp压缩成.zip文件,修改后缀为.war 上传 蚁剑链接 3.CVE-2020-1938 Python2 CVE-2020-1938.py IP -p 端口 -f 要读取的文件 漏洞修复&#xf…

超越自我——带你学haproxy算法一遍过!!!

文章目录 前言介绍 静态算法static-rrfirst 动态算法roundrobinleastconn 其他算法source算法map-base 取模法一致性hashuriurI_param 取模法hdr 总结本文相关连接如下: 前言 本文相关连接如下: 如果想更多了解haproxy的相关知识,请点击&am…

HTTP协议和运行原理

HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。不仅仅适用于[服务器<–>客户端]也是适用于[服务器<–>服务器] HTTP 状态码 1xx 1xx 类状态码属于提示信息&#xff0c;是协议处理中的一种中间状态&#xff0c;实际…

操作系统 IO 相关知识

操作系统 IO 相关知识 阻塞与非阻塞同步与异步IO 和系统调用传统的 IODMAmmap 内存映射sendfilesplice 常用的 IO 模型BIO&#xff1a;同步阻塞 IONIO&#xff1a;同步非阻塞 IOIO 多路复用信号驱动 IOAIO&#xff1a;异步 IO 模型 IO 就是计算机内部与外部进行数据传输的过程&…

加密案例分享:电子设备制造行业

企业核心诉求选择 1.某企业规模庞大&#xff0c;分支众多&#xff0c;数据安全管理方面极为复杂&#xff1b; 2.企业结构复杂&#xff0c;包括研发、销售、财务、总部、分部、办事处、销售等单位连结成为一个庞大的企业组织&#xff0c;数据产生、存储、流转、使用、销毁变化…

NIO线程模型

NIO线程模型主要涉及以下几个方面&#xff1a; 一、基本概念 NIO&#xff08;New Input/Output&#xff09;是Java的一种新的输入输出模型&#xff0c;也被称为非阻塞IO。其核心特点是数据读写操作均是非阻塞的&#xff0c;即在进行读写操作时&#xff0c;若数据未准备好&…

第129天:内网安全-横向移动WmiSmbCrackMapExecProxyChainsImpacket

这里这个环境继续上一篇文章搭建的环境 案例一&#xff1a; 域横向移动-WMI-自带&命令&套件&插件 首先上线win2008 首先提权到system权限 wmic是windows自带的命令&#xff0c;可以通过135端口进行连接利用&#xff0c;只支持明文方式&#xff0c;优点是不用上传别…

【区块链+医疗健康】医链 - 区块链医疗信息管理系统 | FISCO BCOS应用案例

根据《“十四五”规划和 2035 远景目标纲要》&#xff0c;我国在“十四五”时期将全面推进医疗信息化建设。工信部等部 门联合发布《关于加快推动区块链技术应用和产业发展的指导意见》&#xff0c;促进区块链在医疗健康等公共服务领域开 展应用&#xff0c;促进业务协同办理。…

ES6 export import

1.Export 模块是独立的文件&#xff0c;该文件内部的所有的变量外部都无法获取。如果希望获取某个变量&#xff0c;必须通过export输出&#xff0c; 声明的同时导出变量、函数以及类 // profile.js export var firstName Michael; export var lastName Jackson; export var…

【JUC】Java对象内存布局和对象头

文章目录 面试题Object object new Object() 谈谈你对这句话的理解&#xff1f; 对象在堆内存中存储布局权威定义&#xff08;周志明老师JVM第三版&#xff09;对象在堆内存中的存储布局详解对象头的MarkWord源码对象标记源码 对象内存布局&#xff08;使用JOL证明&#xff09…

猫头虎 分享已解决Bug || java.lang.NullPointerException 解决方案

&#x1f42f; 猫头虎 分享已解决Bug || java.lang.NullPointerException 解决方案 在 后端开发过程中&#xff0c;我们经常会遇到各种各样的Bug。而其中最常见之一就是 java.lang.NullPointerException。很多小伙伴在遇到这个问题时&#xff0c;往往会感到非常头痛&#xff0…

设计模式-单一职责模式

DecoratorBridge Decorator 动机 在某些情况下我们可能会 “过度地使用继承来扩展对象的功能”&#xff0c;由于继承为类型引入的静态特质&#xff0c;使得这种扩展方式缺乏灵活性&#xff1b;并且随着子类的增多&#xff08;扩展功能的增多&#xff09;&#xff0c;各种子类的…

yolov8断点续训

1. 前言 我们在使用yolov8进行训练的时候往往会因为各种各样的原因中断训练&#xff0c;如&#xff1a; 开了太多程序导致崩溃突然断电其他原因 这时候如果下次能继续上次训练的结果继续训练会节省很多时间 2.复现与解决办法 2.1 正常启动训练 yolov8环境搭建与简单配置请…

给 Python 的第三方模块安装工具 pip 换源

sudo mkdir ~/.pipcd .pipsudo nano pip.conf[global] timeout 10 index-url http://mirrors.aliyun.com/pypi/simple/ extra-index-url http://pypi.douban.com/simple/ [install] trusted-hostmirrors.aliyun.compypi.douban.com喜欢或对你有帮助&#xff0c;点个赞吧&…

PMBOK® 第六版 规划范围管理

目录 读后感—PMBOK第六版 目录 规划范围管理就像是为项目划定清晰的界限&#xff0c;通过书面形式明确项目团队必须完成的工作&#xff0c;这有助于有效控制和交付目标产品&#xff0c;防止范围蔓延&#xff0c;合理分配资源&#xff0c;从而提高项目成功率和客户满意度。 一…