1. 安装docker

这一步百度

2. 安装dify

git clone https://github.com/langgenius/dify.git
cd dify
cd docker
cp .env.example .env
docker-compose up -d

env里面可以修改映射的端口,默认是80和443,教程先默认

{callout color="#f0ad4e"}
EXPOSE_NGINX_PORT=4080
EXPOSE_NGINX_SSL_PORT=4443
{/callout}

2.1 之后访问 localhost/install 进行安装

3. 安装Ollama

然后我们需要去安装Ollama,官网地址
https://ollama.com/
安装完ollama后去找适合的模型下载
https://ollama.com/search
下列我举例一下网友比较推荐的模型

{callout color="#e1e1db"}
yi
 Yi 1.5 是一个高性能的双语语言模型。
 参数大小:6b9b34b
 更新时间:7个月前
 适合编程的双语(中文和英文)模型。

yi-coder
 Yi-Coder 是一系列开源代码语言模型,提供少于100亿参数的最先进的编码性能。
 参数大小:1.5b9b
 更新时间:3个月前
 适合编程的双语模型。

qwen
 Qwen 1.5 是由阿里云提供的一系列大型语言模型,参数从0.5B到110B不等。
 参数大小:0.5b1.8b4b7b14b32b72b110b
 更新时间:8个月前
 阿里云提供的模型,可能包含对中文的支持。

qwen2
 Qwen2 是阿里集团提供的一系列大型语言模型。
 参数大小:tools0.5b1.5b7b72b
 更新时间:3个月前
 同样可能包含对中文的支持。
llama2-chinese
 Llama 2 基于模型,针对提高中文对话能力进行了微调。
 参数大小:7b13b
 更新时间:14个月前
 专门针对中文对话进行了优化的模型。
{/callout}
这里的几b是代表着多少亿的参数,个人笔记本建议选择10b以内,不然参数太多了可能会很慢。

这里我以yi-coder为例子
终端运行

ollama run yi-coder
ollama run yi-coder
pulling manifestpulling 8169bd33ad13... 100% ▕██████████████████████████████████████████████████████████████████████████████████████▏ 5.0 GB
pulling afc128547699... 100% ▕██████████████████████████████████████████████████████████████████████████████████████▏  527 B
pulling 43070e2d4e53... 100% ▕██████████████████████████████████████████████████████████████████████████████████████▏  11 KB
pulling 3dc12ee097e8... 100% ▕██████████████████████████████████████████████████████████████████████████████████████▏  135 B
pulling a60ed831ae4c... 100% ▕██████████████████████████████████████████████████████████████████████████████████████▏  485 B
verifying sha256 digest
writing manifest
success
>>> 你好Hi, how can I assist you? Please provide more specific information about your request.

4.然后dify里面配置模型

m5enc65v.png
m5encgoq.png
m5encmqx.png
这里URL填写http://host.docker.internal:11434(因为dify是安装在docker里面的,但是ollama是安装在本机的,所以需要让docker访问ollama的api)

点击保存,右上角会提示修改成功

4.1 回到首页创建空白模板

m5endhs9.png
右上角选择yi-code,然后给他提示词就可以了
m5endxzp.png
然后上方点击知识库进行知识库配置
m5ene8dk.png
可以上传自己需要的内容
处理的时候可以这样选择
m5enexj7.png
添加完成之后回到聊天机器人

4.2 给机器人添加知识库

左边的提示词下面哟一个上下文,可以添加知识库,之后就可以正常使用了

5. 但是上面的yi-coder不好用

所以我用了另外的,

ollama run llama3.1:8b

这个相比于其他会好用很多。

5.1 TEXT EMBEDDING 配置

知识库那里的添加,我们也可以选择高质量
只是需要配置一个TEXT EMBEDDING
添加和上面的那个差不多只是需要选择TEXT EMBEDDING
m5enjwb0.png

5.2 Ollama配置TEXT EMBEDDING

dmeta-embedding-zh

ollama pull shaw/dmeta-embedding-zh

测试:

curl http://localhost:11434/api/embeddings -d '{
  "model": "shaw/dmeta-embedding-zh",
  "prompt": "天空是灰色的"
}'

返回的内容
m5enmv1k.png

这样就成功了
dify里面正常添加这个就行
m5eno5k3.png