首页 > 教程攻略 > ai资讯 >Dify对接LocalAI实现完全离线化运行

Dify对接LocalAI实现完全离线化运行

来源:互联网 时间:2026-06-14 13:53:19

想要让Dify实现真正的完全离线化运行,关键一步就是切断所有对外部网络的依赖,尤其是模型API调用。而对接LocalAI正是通往这一目标的最佳路径:它能让你把开源模型(比如Llama 3、Qwen、Phi-3)以本地HTTP服务的形式暴露出来,然后由Dify直接调用——全程不碰外网、不传数据、不依赖任何云厂商。

Dify对接LocalAI实现完全离线化运行

说白了,就是你能在自己的电脑上跑一个私有AI服务,Dify只跟这个服务通信,外面的人和云都看不到你的数据。听起来挺美?下面一步步拆解具体怎么搭。

准备LocalAI服务环境

先打开终端,确认一下机器上有没有Rust——这是LocalAI的核心依赖。执行rustc --version看看返回值。如果没有安装,Linux/macOS用户直接跑curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh,Windows用户去rust-lang.org下载msi安装包,记得在安装时勾选“Add to PATH”。

接着克隆LocalAI仓库:git clone https://github.com/go-skynet/LocalAI.git && cd LocalAI。这一步千万别跳过——预编译的二进制只支持有限架构,只有源码编译才能适配你CPU的指令集(比如A VX2、ARM NEON),不然后面跑起来可能吞错误。

然后编译可执行文件:make build。搞定后生成的./local-ai二进制比Docker镜像更轻量,启动也更快,还能避开容器网络层带来的localhost解析问题——这个坑后面会提到。

加载并启动指定模型

先为模型创建目录:mkdir -p models/llama3-8b。进去之后,用curl -L -o gguf.bin https://huggingface.co/bartowski/Llama-3.2-1B-GGUF/resolve/main/Llama-3.2-1B.Q4_K_M.gguf下载量化版的Llama 3.2-1B模型。这个版本只有1.2GB磁盘占用+2GB内存,笔记本也能轻松跑起来。

然后编辑配置文件models/llama3-8b/config.json,填入下面的内容:

{ "backend": "llama", "parameters": { "model_path": "./gguf.bin", "n_ctx": 4096, "n_threads": 8 } }

这里有个极易踩坑的地方:

config.json必须跟gguf.bin放在同一级目录

。如果放错位置,LocalAI启动时会报“model not found”,而且报错信息相当模糊,很容易让人怀疑是路径拼写问题,其实只是目录层级错了。

最后启动服务:./local-ai --models-path ./models --port 8080。服务默认监听在http://127.0.0.1:8080,可以通过浏览器访问http://localhost:8080/docs查看OpenAPI文档,确认模型已经注册成功。

在Dify中配置LocalAI模型供应商

登录Dify Web界面,点击右上角头像 → 设置 → 模型供应商 → 点击“+ 添加模型供应商” → 选择“OpenAI兼容”类型。注意:LocalAI完全遵循OpenAI API协议,所以这里不能选“自定义”或“Ollama”,只有“OpenAI兼容”才管用。

接着填写三项关键信息:

① 模型名称:local-llama3-1b(只能包含字母、数字、短横线,后续在应用里会从这个名称下拉选择)

② API Base URL:http://host.docker.internal:8080/v1(⚠️如果Dify运行在Docker Compose里,默认网络下容器无法解析localhost,必须用host.docker.internal来指向宿主机。这个坑很多人第一次都会栽)

③ API Key:留空(LocalAI默认不需要认证,填任何字符串都会报401错误)

填完点击“测试连接”,如果出现绿色的✔️就说明对接成功。如果失败,可以在Dify Worker容器里执行curl -v http://host.docker.internal:8080/health验证连通性,看看是不是网络的问题。

创建首个LocalAI驱动的应用

回到首页 → 点击“+ 创建应用” → 选择“聊天型” → 应用名称填“内部知识助手” → 在“大模型”下拉框里选中刚添加的local-llama3-1b → 点击“创建”。

进入编排画布后,先删除默认的“LLM”节点,拖入一个新的“LLM”节点 → 在右侧配置面板中,“模型”选local-llama3-1b,“温度”调至0.3(降低幻觉),“最大token数”设为2048(匹配模型的上下文窗口)。

接着把“用户输入”节点连接到这个LLM节点上,再把LLM的输出连到“响应”节点 → 点击右上角“发布” → 复制生成的API Key → 用curl -X POST http://localhost/api/chat-messages发起测试请求,看看返回的是不是模型本地生成的文本。如果一切顺利,你的Dify就已经完全离线运行了。

相关下载