当前位置: 首页 > article >正文

如何 使用 Docker 部署 ollama 和 MaxKB

步骤1:配置Ollama网络环境

  1. 确保Ollama监听外部请求
    默认情况下,Ollama仅监听 127.0.0.1:11434。需修改环境变量使其监听所有IP:

    # 启动Ollama容器时添加环境变量
    docker run -d --name ollama \
      -p 11434:11434 \
      -e OLLAMA_HOST=0.0.0.0 \  # 允许外部访问
      ollama/ollama
    
  2. 验证Ollama服务状态
    在宿主机执行以下命令,确认API可访问:

    curl http://localhost:11434
    

    若返回 Ollama is running 则正常。


步骤2:配置MaxKB连接Ollama

  1. 启动MaxKB容器并加入Ollama网络
    使用 --network 参数让两个容器共享网络:

    docker run -d --name maxkb \
      --network container:ollama \  # 共享Ollama的网络命名空间
      -p 8080:8080 \
      -v ~/.maxkb:/var/lib/postgresql/data \
      cr2.fit2cloud.com/1panel/maxkb
    
  2. 或通过Docker内部DNS通信
    若未共享网络,在MaxKB容器内使用 Ollama容器名称 作为域名:

    # 启动MaxKB时指定Ollama容器网络
    docker run -d --name maxkb \
      --network my_network \  # 创建自定义网络后加入
      -p 8080:8080 \
      -v ~/.maxkb:/var/lib/postgresql/data \
      cr2.fit2cloud.com/1panel/maxkb
    

步骤3:在MaxKB中添加Ollama模型

  1. 登录MaxKB界面
    访问 http://localhost:8080,使用初始账号 admin/maxkb@123… 登录。

  2. 添加Ollama模型

    • 模型类型:选择 Ollama
    • API域名:填写 http://ollama:11434(若共享网络)或 http://宿主机IP:11434
    • 模型名称:与 ollama list 中的模型名完全一致(如 llama3:8b
    • API Key:任意非空字符(如 dummy
  3. 验证连接
    点击 测试连接,若显示成功即可保存。


步骤4:创建知识库并关联模型

  1. 创建知识库
    上传文档(支持PDF/TXT/Markdown等),选择智能分段并导入。

  2. 创建应用
    在应用中关联知识库和Ollama模型,调整参数(如温度、重复惩罚等)。

  3. 测试问答
    在应用界面提问,观察是否基于知识库生成答案。


常见问题解决

  • API域名无效

    • 确认Ollama容器IP和端口可访问:curl http://ollama:11434
    • 检查防火墙是否开放 11434 端口。
  • 模型无法加载

    • 确保模型名称与 ollama list 完全一致(区分大小写)。
    • 若模型未下载,在Ollama容器内执行 ollama pull 模型名
  • 跨容器网络不通
    创建自定义Docker网络并加入:

    docker network create my_network
    docker network connect my_network ollama
    docker network connect my_network maxkb
    

性能优化建议

  1. GPU加速
    启动Ollama时添加 --gpus all 参数(需宿主机安装NVIDIA驱动):

    docker run -d --gpus all -p 11434:11434 ollama/ollama
    
  2. 模型量化
    使用低精度模型(如 llama3:8b-q4_K_M)减少资源占用:

    ollama pull llama3:8b-q4_K_M
    

通过以上步骤,即可在Docker环境中实现MaxKB与Ollama的集成。若需进一步优化响应速度,可考虑部署更高性能的模型或升级硬件配置。


http://www.kler.cn/a/595492.html

相关文章:

  • 如何在 Linux 系统中部署 FTP 服务器:从基础配置到安全优化
  • Linux系统-TCPDump流量
  • C++Primer学习(13.1 拷贝、赋值与销毁)
  • 通过Knife4j在gateway中对swagger文档进行聚合
  • 流程优化的可配置文档结构化系统设计
  • 计算机网络精讲day1——计算机网络的性能指标(上)
  • 【人工智能】如何理解transformer中的token?
  • 【AI知识】pytorch手写Attention之Self-Attention,Multi-Head-Attention
  • vue3源码分析 -- computed
  • 深度解析学术论文成果评估(Artifact Evaluation):从历史到现状
  • 【问题解决】Postman 测试报错 406
  • 深入理解Java虚拟机(学习笔记)
  • java基础--序列化与反序列化的概念是什么?
  • 关于FastAPI框架的面试题及答案解析
  • 查看visual studio的MSVC版本的方法
  • 23 种设计模式中的访问者模式
  • 零基础上手Python数据分析 (7):Python 面向对象编程初步
  • 蓝桥杯 之 暴力回溯
  • 3.16[A]FPGA
  • Pytest基础使用