要在dify中实现真正意义上的完全离线化运行,必须切断所有对外部网络的依赖,包括模型api调用——对接localai正是达成这一目标的关键路径:它允许你将开源模型(如llama 3、qwen、phi-3)以本地http服务形式暴露,再由dify直接调用,全程不触网、不传数据、不依赖云厂商。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

准备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指令集(如AVX2、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”)。
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
填写三项关键信息:
① 模型名称:local-llama3-1b(仅限字母、数字、短横线,后续应用中将从此名称下拉选择)
② API Base URL:http://host.docker.internal:8080/v1(⚠️若Dify运行于Docker Compose,默认网络下容器无法解析localhost,必须用host.docker.internal指向宿主机)
③ API Key:留空(LocalAI默认无需认证,填任何字符串都会导致401错误)
点击“测试连接”,出现绿色✔️即表示对接成功;若失败,请检查Dify容器是否能ping通宿主机IP(可在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 \发起测试请求,观察返回是否为模型本地生成的文本。










