前提

本地目前没有显卡,只能用cpu刚。

如果不想自己搭建本地模型,完全可以掏钱使用现成的API即可。

需要了解一些docker知识

搭建本地模型

环境

os: archlinux

内存: 32g

cpu: 6核12线程

docker: 27.3.1

docker-compose: 2.32.4

ollama

pacman -S ollama

systemctl start ollama.service

 # 通过下述url判断ollama是否安装成功
http://127.0.0.1:11434/

LLM模型 (qwen2:1.5b)

下载

ollama pull qwen2:1.5b

启动

ollama run qwen2:1.5b

测试

ollama run qwen2:1.5b
>>> who are you?
I am an AI language model, designed to answer questions and provide information on various topics. How can I assist you today? >>> Send a message (/? for help)

Text Embedding模型 (m3e)

下载

ollama pull milkey/m3e

embedding模型不需要run, ollama服务启动可直接使用

测试

curl http://127.0.0.1:11434/api/embed -d '{
"model": "milkey/m3e",
"input": "balabalabala"
}' | jq .

查看模型运行情况

ollama ps

NAME                        ID              SIZE      PROCESSOR    UNTIL
qwen2:1.5b f6daf2b25194 1.5 GB 100% CPU 4 minutes from now
milkey/m3e:latest 1477f12451b0 860 MB 100% CPU 4 minutes from now

构建知识库(ollama+DIFY)

下载启动dify

参考官方文档,so easy!

https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/docker-compose

本地采用的是 #systemd方式* 部署。这里一定要注意,不同的部署方式网络配置有点区别,比如systemd的方式服务启动需要增加环境变量OLLAMA_HOST,而对于docker启动方式,可以参考官方文档(暂未测试)

添加模型

这里我们需要两个模型,一个LLM,一个Text Embedding

qwen2:1.5b模型添加

模型名称:qwen2:1.5b(必须完整填写)

基础 URL:http://:11434 (这里的ip要是你本地ip,不能用localhost,127这些。本地是http://10.10.15.159:11434)

模型类型:对话

模型上下文长度:4096 (模型的最大上下文长度,若不清楚可填写默认值 4096)

最大 token 上限:4096 (模型返回内容的最大 token 数量,若模型无特别说明,则可与模型上下文长度保持一致)

是否支持 Vision:是

保存即可使用

milkey/m3e:latest

模型名称:milkey/m3e:latest (同上)

基础 URL:http://:11434 (这里的ip要是你本地ip,不能用localhost,127这些。本地是http://10.10.15.159:11434)

模型上下文长度:4096

保存即可使用

访问测试

创建知识库

导入数据 --> 设置分段 -->设置索引及检索

对于word这种格式化的数据,分段模式最好使用 #父子模式* ; 索引方式使用高质量模式,使用上述m3e模型来生成索引数据。

创建聊天助手

知识库是没法直接去使用的,顶多能做个召回测试。这里我们创建一个聊天助手,可以关联知识库,这样能真正使用。

聊天助手创建很简单,可以选择顶部工作室 -> 创建空白应用

选择已经创建好的知识库

应用发布即可

直接通过dify使用

dify默认启动使用的是80端口,可以直接通过http://localhost 访问(首次使用需要注册用户密码)。 然后选择探索,选择我们刚刚创建的聊天助手就可以开始愉快的聊天了。

将dify嵌入到自己的应用中

可以通过api、iframe之类的方式将自己搭建的聊天助手嵌入到系统中(需要有开发能力,很简单)。

知识库工作流

问题处理

dify访问时提示11434拒绝

http://10.10.15.159:11434/ 请求失败

处理

检查服务启动正常,需要在service中增加环境变量 Environment="OLLAMA_HOST=0.0.0.0:11434"

sudo vim /usr/lib/systemd/system/ollama.service
systemctl daemon-reload
systemctl restart ollama.service

其它系统类似,就是让服务启动读取到该变量即可

Reached maximum retries (3) for URL http://localhost:8090/api/system/ext/examples/echo

分析处理

添加工具后,访问本地接口提示上述错误, 其实还是ip的问题,这里使用本地ip,如10.10.15.159。因为dify部署在容器中,localhost有特殊意义

搭建个人AI知识库-DIFY的更多相关文章

  1. 云上快速搭建Serverless AI实验室

    Serverless Kubernetes和ACK虚拟节点都已基于ECI提供GPU容器实例功能,让用户在云上低成本快速搭建serverless AI实验室,用户无需维护服务器和GPU基础运行环境,极大 ...

  2. 实战!轻松搭建图像分类 AI 服务

    人工智能技术(以下称 AI)是人类优秀的发现和创造之一,它代表着至少几十年的未来.在传统的编程中,工程师将自己的想法和业务变成代码,计算机会根据代码设定的逻辑运行.与之不同的是,AI 使计算机有了「属 ...

  3. 为你写诗:3 步搭建 Serverless AI 应用

    作者 | 杜万(倚贤) 阿里巴巴技术专家 本文整理自 1 月 2 日社群分享,每月 2 场高质量分享,点击加入社群. 关注"阿里巴巴云原生"公众号,回复关键词 0102 即可下载本 ...

  4. 简悦+Logseq 搭建本地化个人知识库

    最近在少数派上看到了 简悦 +Logseq 个人知识库搭建 | 从零开始完全指南 - 少数派, 一时间感觉打开了新世界,其实我很早就买了简悦 2.0,但由于一直没有很好的使用场景,外加配置实在过于复杂 ...

  5. 急速搭建 Serverless AI 应用:为你写诗

    前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算 ...

  6. ChatGPT搭建AI网站实战

    1.概述 ChatGPT是一款基于GPT-3.5架构的大型语言模型,它能够进行自然语言处理和生成对话等任务.作为一款智能化的聊天机器人,ChatGPT有着广泛的应用场景,如在线客服.智能助手.个性化推 ...

  7. 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退

    AI早期成就,相对朴素形式化环境,不要求世界知识.如IBM深蓝(Deep Blue)国际象棋系统,1997,击败世界冠军Garry Kasparov(Hsu,2002).国际象棋,简单领域,64个位置 ...

  8. Visual Studio AI 离线模型训练(window 7)

    本篇博客用tensorflow训练自带的数据mnist,参考自博客. 背景: 搭建好AI环境:查看 window 7 64位 准备工作: 在搭建AI环境过程中下载的samples-for-ai不是最新 ...

  9. 基于 CentOS 搭建 WordPress 个人博客

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 腾讯云提供了开发者实验室帮助用户搭建 WordPress 个人博客,教程内容如下,用户可以点击开发者实验室快速上机完成实验. 准备 LNMP ...

  10. 释放至强平台 AI 加速潜能 汇医慧影打造全周期 AI 医学影像解决方案

    基于英特尔架构实现软硬协同加速,显著提升新冠肺炎.乳腺癌等疾病的检测和筛查效率,并帮助医疗科研平台预防"维度灾难"问题 <PAGE 1 LEFT COLUMN: CUSTOM ...

随机推荐

  1. 条理清晰,浅显易懂:Lua语法基础知识(第二部分)

    今天我们继续学习Lua语法基础教程,中篇. 五.变量 5.1 number变量 变量,可以看作是一个桶,在里面装你想要装的内容.这些内容可以是Lua包含的所有合法类型. 例如:我想要新建一个桶,名叫b ...

  2. JBOSS漏洞复现

    Jboss漏洞复现 统一靶场:/vulhub/jboss JMX Console 未授权访问漏洞 # 介绍 JBoss的webUI界面 http://ip:port/jmx-console未授权访问( ...

  3. 617. 合并二叉树 Golang实现

    题目描述: 给你两棵二叉树: root1 和 root2 . 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会).你需要将这两棵树合并成一棵新二叉树.合并的规则是: ...

  4. MySQL原理简介—9.MySQL索引原理

    大纲 1.磁盘数据页的存储结构 2.没有索引数据库如何搜索数据 3.在表中插入数据时如何进行页分裂 4.如何设计主键索引及如何根据主键索引查询 5.索引的物理存储结构 6.更新数据时自动维护的聚簇索引 ...

  5. python之Marshmallow

    文档说明:https://marshmallow.readthedocs.io marshmallow是一个用来将复杂的orm对象与python原生数据类型之间相互转换的库,简而言之,就是实现obje ...

  6. 150页的剑指Offer解答PDF,它来了!!!

    它来了!!! 终于整理出了第一版剑指Offer的PDF,主要以Java语言为主,一共67道题,100多页. 领取方式如下(无套路直接获取百度网盘的 链接,如果链接失效可以直接找我): [秦怀杂货店]公 ...

  7. vue3-Pinia

    Pinia 是 Vue.js 的一个状态管理库,用于在 Vue 应用程序中管理共享状态.它是 Vuex 的后继者,提供了一个简单.直观且灵活的方式来处理应用中的全局状态,比如用户登录信息.应用配置.购 ...

  8. 数据库开发规范v1.0

    一.建表规约 [强制]表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint( 1 表示是,0 表示否). 说明:任何字段如果为非负数,必须是 unsi ...

  9. 【Amadeus原创】更改域控域用户密码过期日期时间

    1,打开服务管理器,点工具,选择Active Directory 管理中心 2,右键域名(本地)-属性 3,选择属性编辑器,把maxPwdAge 从90天改成180天.

  10. 【NAS】绿联NAS+alist+lsky+natfrp 实现图床服务

    alist 安装与配置 值得一提的就是,映射的data是配置相关的,让绿联直接默认路径就行,不需要手动设置 但是文件保存位置的映射的话,为了方便,可以单独映射到一个方便访问的文件夹,(但是要注意下权限 ...