• 懒猫,好久没写博客,最近很忙,所以出一篇最近流行ai技术的文章。本地部署ai且使用,在网上看过很多视频与文章,但发现还是有很多门槛,连懒猫自己有时也要反应了解下才能使用,所以懒猫详情的介绍下大模型应用开发平台的安装与使用。

  • 懒猫提醒:电脑应该至少有8 GB的RAM可用于运行7B型号,16 GB可用于运行13B型号,32 GB可用于执行33B型号。要不还是别部署了,不然会卡死。

ollama 是什么?

github ollama 网址

  • ollama 是大型语言模型服务工具。它允许用户快速在本地运行大模型,如Llama 2

  • 这个工具简化了在Docker容器内部署和管理大型语言模型(LLM)的过程,使得用户能够通过简单的安装指令和执行一条命令就在本地运行这些模型。Ollama支持78种模型,并且提供了类似OpenAI的API接口和聊天界面,方便用户部署最新版本的GPT模型并通过接口使用。此外,Ollama还支持热加载模型文件,允许用户无需重新启动即可切换不同的模型。

  • Ollama的主要用途包括:

    1. 研究人员:帮助研究人员快速原型化和测试新的LLM模型。
    2. 开发人员:将LLM功能集成到他们的应用程序中。
    3. 爱好者:探索和学习LLM技术。

综上所述,Ollama是一个强大的工具,它不仅方便了专业人士在本地运行和测试大型语言模型,也使得对大型语言模型技术感兴趣的爱好者能够更加容易地接触和学习这一技术。

安装ollama且使用

ollama 安装是十分傻瓜式,Ollama 下载地址,下载对应系统 Ollama 客户端。

安装完毕后,打开终端输入

1
2
3
4
5
6
7
8
9
 ollama -v 

## 如果运行且启动了,输出以下信息
ollama version is 0.1.36

## 如果安装成功没启动会输出以下信息
Warning: could not connect to a running Ollama instance
Warning: client version is 0.1.36

当前知识安装 ollama 工具,想使用大语言模型(LLM)还需要进行下载对应语言模型。

1
2
3
4
5
6
7
8
##下载安装命令如下
## ollama run 语言模型:版本
## 懒猫举例使用 qwen:7b 语言模型(是阿里的千问模型)
ollama run qwen:7b

## 安装完后 会出现 》》》 即可以直接对话了。

》》》 可以进行对话

大语言模型可以安装很多种,且不同版本,具体怎么能安装那些 llm 语言模型,可以查看Ollama Models

1
2
3
4
5
6
7
8
9
10
11
12
## 以下是ollama 常规命令

ollama serve #启动模型
ollama create #从模型文件创建模型
ollama show #显示模型的信息
ollama run #运行模型
ollama pull #从注册表中提取模型
ollama push #将模型推送到注册表
ollama list #列出型号
ollama cp #复制模型
ollama rm #删除模型
ollama help #关于任何命令的帮助
  • 基本ollama的使用就差不多,但只在命令行中实在是看着难受,使用的也难受,费眼睛,所以推荐使用图形界面 所以dify大模型应用开发平台就使用上了。
  • ollama 其实就是方便的让我们安装下载大语言模型

dify大模型应用开发平台

Dify 是一个开源的 LLM 应用开发平台。其直观的界面结合了 AI 工作流、RAG 管道、Agent、模型管理、可观测性功能等,让您可以快速从原型到生产。以下是其核心功能列表:

  1. 工作流: 在画布上构建和测试功能强大的 AI 工作流程,利用以下所有功能以及更多功能。

  2. 全面的模型支持: 与数百种专有/开源 LLMs 以及数十种推理提供商和自托管解决方案无缝集成,涵盖 GPT、Mistral、Llama3 以及任何与 OpenAI API 兼容的模型。完整的支持模型提供商列表可在此处找到。

  3. Prompt IDE: 用于制作提示、比较模型性能以及向基于聊天的应用程序添加其他功能(如文本转语音)的直观界面。

  4. RAG Pipeline: 广泛的 RAG 功能,涵盖从文档摄入到检索的所有内容,支持从 PDF、PPT 和其他常见文档格式中提取文本的开箱即用的支持。

  5. Agent 智能体: 您可以基于 LLM 函数调用或 ReAct 定义 Agent,并为 Agent 添加预构建或自定义工具。Dify 为 AI Agent 提供了50多种内置工具,如谷歌搜索、DELL·E、Stable Diffusion 和 WolframAlpha 等。

  6. LLMOps: 随时间监视和分析应用程序日志和性能。您可以根据生产数据和标注持续改进提示、数据集和模型。

  7. 后端即服务: 所有 Dify 的功能都带有相应的 API,因此您可以轻松地将 Dify 集成到自己的业务逻辑中。

安装dify

官方文档

系统要求

在安装 Dify 之前,请确保您的机器满足以下最低系统要求:

CPU >= 2 Core
RAM >= 4GB

安装步骤

  1. 下载dify文件,如果有git 可以直接clone,如果没有,可以到dify安装包下载压缩包。
  2. 去到解压或clone 后的目录,然后进入到dify目录下docker目录
  3. 启动 Dify 服务器的最简单方法是运行我们的 docker-compose.yml 文件。在运行安装命令之前,请确保您的机器上安装了 Docker 和 Docker Compose:
    1
    2
    cd docker
    docker-compose up -d
  4. 运行后,可以在浏览器上访问 http://localhost/install 进入 Dify 控制台并开始初始化安装操作。
    (docker 安装可以看博客左上角docker系列了解)

配置

如果您需要自定义配置,请参 docker-compose.yml 文件中的注释,并手动设置环境配置。更改后,请再次运行 docker-compose up -d文档中查看所有环境变量的完整列表。

dify 的模型部署

模型配置文档–官方

模型类型

在 Dify 中,按模型的使用场景将模型分为以下 4 类:

  1. 系统推理模型。 在创建的应用中,用的是该类型的模型。智聊、对话名称生成、下一步问题建议用的也是推理模型。
    已支持的系统推理模型供应商:OpenAI、Azure OpenAI Service、Anthropic、Hugging Face Hub、Replicate、Xinference、OpenLLM、讯飞星火、文心一言、通义千问、Minimax、ZHIPU(ChatGLM)

  2. Embedding 模型。在数据集中,将分段过的文档做 Embedding 用的是该类型的模型。在使用了数据集的应用中,将用户的提问做 Embedding 处理也是用的该类型的模型。
    已支持的 Embedding 模型供应商:OpenAI、ZHIPU(ChatGLM)、JinaAI
    Rerank 模型。Rerank 模型用于增强检索能力,改善 LLM 的搜索结果。
    已支持的 Rerank 模型供应商:Cohere

  3. 语音转文字模型。将对话型应用中,将语音转文字用的是该类型的模型。

  4. 已支持的语音转文字模型供应商:OpenAI

接入 Ollama 部署的本地模型

Ollama 是一个本地推理框架客户端,可一键部署如 Llama 2, Mistral, Llava 等大型语言模型。 Dify 支持接入 Ollama 部署的大型语言模型推理和 embedding 能力。

根据文章上面ollama 安装成功后,我们可以直接使用ollama 部署的模型。

Dify 中接入 Ollama

设置 > 模型供应商 > Ollama 中填入:

模型名称:llava
基础 URL:http://:11434
此处需填写可访问到的 Ollama 服务地址。
若 Dify 为 docker 部署,建议填写局域网 IP 地址,如:http://192.168.1.100:11434 或 docker 宿主机 IP 地址,如:http://172.17.0.1:11434。
若为本地源码部署,可填写 http://localhost:11434。
模型类型:对话
模型上下文长度:4096
模型的最大上下文长度,若不清楚可填写默认值 4096。
最大 token 上限:4096
模型返回内容的最大 token 数量,若模型无特别说明,则可与模型上下文长度保持一致。
是否支持 Vision:是
当模型支持图片理解(多模态)勾选此项,如 llava。
点击 “保存” 校验无误后即可在应用中使用该模型。
Embedding 模型接入方式与 LLM 类似,只需将模型类型改为 Text Embedding 即可。

如果您使用Docker部署Dify和Ollama,您可能会遇到以下错误:

1
2
3
httpconnectionpool(host=127.0.0.1, port=11434): max retries exceeded with url:/cpi/chat (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f8562812c20>: fail to establish a new connection:[Errno 111] Connection refused'))

httpconnectionpool(host=localhost, port=11434): max retries exceeded with url:/cpi/chat (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f8562812c20>: fail to establish a new connection:[Errno 111] Connection refused'))

这个错误是因为 Docker 容器无法访问 Ollama 服务。localhost 通常指的是容器本身,而不是主机或其他容器。要解决此问题,您需要将 Ollama 服务暴露给网络。

在Mac上设置环境变量

如果 Ollama 作为 macOS 应用程序运行,则应使用以下命令设置环境变量launchctl

  1. 通过调用launchctl setenv设置环境变量:

  2. 复制
    launchctl setenv OLLAMA_HOST "0.0.0.0"
    重启Ollama应用程序。

  3. 如果以上步骤无效,可以使用以下方法:
    问题是在docker内部,你应该连接到host.docker.internal,才能访问docker的主机,所以将localhost替换为host.docker.internal服务就可以生效了:
    复制
    http://host.docker.internal:11434

(本质就是改写电脑的hosts文件,将127.0.0.1指向 host.docker.internal)

在Windows上设置环境变量

在Windows上,Ollama继承了您的用户和系统环境变量。

  1. 首先通过任务栏点击Ollama退出程序
  2. 从控制面板编辑系统环境变量
  3. 为您的用户账户编辑或新建变量,比如OLLAMA_HOST、OLLAMA_MODELS等。
  4. 点击OK/应用保存
  5. 在一个新的终端窗口运行ollama

如何在我的网络上暴露Ollama?

Ollama默认绑定127.0.0.1端口11434。通过OLLAMA_HOST环境变量更改绑定地址。

在Linux上设置环境变量

如果Ollama作为systemd服务运行,应该使用systemctl设置环境变量:

  1. 通过调用systemctl edit ollama.service编辑systemd服务。这将打开一个编辑器。

  2. 对于每个环境变量,在[Service]部分下添加一行Environment:

1
2
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
  1. 保存并退出。

  2. 重载systemd并重启Ollama:

1
2
systemctl daemon-reload
systemctl restart ollama

使用 Ollama 模型

创建自己的知识库

知识库,通俗说就对一篇文章,一本书,一段视频,或者其他任何可以理解为知识的东西,进行拆解,划分,归类,组织,然后形成自己的知识库。在使用知识库提出相关问题时,ai大模式就会对照知识库进行匹配,找到最相似的答案。确保ai大模式的知识库回答的准确性。

知识库 > 创建知识库

然后在选择你要上传的文本文件,然后点击下一步

最后点击 保存并处理,即创建知识库。

创建应用

有了知识库,就可以创建应用了。在 工作室 > 创建空白应用

选定好知识库,让大模式有参考知识,更加精确回答:

挑选回答的使用模型,选择模型如下:

选好模型后,点击左上角发布 > 运行 即可运行应用。

总结

现在ai更新换代时真的块,后面还有工作流,文本应用,语音应用等等,这些都是未来趋势,我们需要跟上来。最好不是很好的电脑配置还是别在本地部署使用,白白浪费时间。