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

Ollama + DeepSeek + 芋道框架 + SearXNG 本地联网搜索完整教程

1. 环境准备与检查

在开始之前,请确保你的环境满足以下条件:

1.1 硬件要求

  • 内存:建议至少8GB可用内存(运行7B模型需要约4-6GB)
  • 硬盘:DeepSeek模型文件约4-5GB空间
  • CPU/GPU:如有NVIDIA GPU可加速推理(可选)

1.2 软件要求

  • 操作系统:Windows 10/11、macOS、Linux均可
  • 芋道框架:已部署芋道框架,且使用JDK 17/21版本(Spring AI基于Spring Boot 3.X,最低要求JDK 17)
  • Docker:已安装Docker Desktop(用于SearXNG)

1.3 确认芋道AI模块

芋道框架的AI功能由yudao-module-ai模块实现 。确保你的芋道项目:

  • 使用的是master-jdk17分支
  • 已导入AI模块的SQL脚本(如有需要)
  • 已启动AiServerApplication服务

2. 安装Ollama并部署DeepSeek模型

2.1 下载安装Ollama

根据你的操作系统,选择对应的安装方式:

🪟 Windows用户
  1. 访问 Ollama官网:https://ollama.com/download
  2. 下载Windows版本安装包(.exe文件)
  3. 双击运行安装程序,按提示完成安装
  4. 安装完成后,Ollama会自动在后台运行,并在系统托盘显示图标
🍏 macOS用户
  1. 访问 Ollama官网下载 macOS 版本
  2. 或使用Homebrew安装:
brewinstallollama brew services start ollama
🐧 Linux用户
curl-fsSLhttps://ollama.com/install.sh|sh

2.2 验证Ollama安装

打开终端(Command Prompt、PowerShell或Terminal),输入:

ollama--version

如果显示版本号,说明安装成功。

2.3 下载并运行DeepSeek模型

Ollama支持多种模型,我们选择DeepSeek(根据你的硬件条件选择合适版本):

选项A:DeepSeek-R1 7B(推荐,性能均衡)
ollama run deepseek-r1:7b
选项B:DeepSeek-R1 1.5B(轻量级,适合低配置机器)
ollama run deepseek-r1:1.5b
选项C:DeepSeek-Coder(适合代码场景)
ollama run deepseek-coder:6.7b

第一次运行会自动下载模型,下载时间取决于网络速度,模型文件约4GB左右。下载完成后会自动进入交互界面,你可以输入问题测试是否正常工作。

测试示例:

>>> 你好,请简单介绍一下自己

输入/bye退出交互界面。

2.4 确认Ollama API服务

Ollama安装后默认启动API服务,监听地址为:http://localhost:11434

验证API是否正常:

# 查看Ollama服务状态curlhttp://localhost:11434/api/tags

应该返回类似下面的JSON,显示已安装的模型列表:

{"models":[{"name":"deepseek-r1:7b","modified_at":"2024-...","size":3851234567}]}

3. 芋道框架AI功能配置

3.1 芋道AI功能开启前提

根据芋道官方文档,使用AI功能需要 :

  • 后端使用master-jdk17分支
  • 已启动yudao-module-ai模块的AiServerApplication
  • 前端使用yudao-ui-admin-vue3master分支

3.2 配置Ollama API密钥

你的理解完全正确!芋道框架通过在管理后台配置API密钥来接入Ollama 。

操作步骤

  1. 登录芋道管理后台(默认地址:http://localhost:80或你的部署地址)

  2. 进入AI配置菜单

    • 导航到:AI大模型 → 控制台 → API密钥
  3. 新增API密钥

    • 点击「新增」按钮
    • 名称:填写Ollama-DeepSeek(可自定义)
    • 平台:选择Ollama(芋道已内置支持Ollama平台)
    • 密钥:可填写任意值(Ollama本地部署不需要真实API密钥,但字段不能为空,建议填ollama
    • 自定义API地址:填写http://localhost:11434关键配置!
    • 状态:开启
  4. 保存配置

3.3 配置模型

  1. 进入模型配置菜单

    • 导航到:AI大模型 → 控制台 → 模型配置
  2. 新增模型

    • 点击「新增」按钮
    • 模型名字:填写DeepSeek-R1-7B(可自定义)
    • API秘钥:选择上一步创建的Ollama-DeepSeek
    • 平台:自动带出Ollama
    • 模型标识:填写deepseek-r1:7b⚠️必须与Ollama中的模型名称完全一致!
    • 模型类型:选择CHAT(用于文本生成)
    • 温度参数:0.7(可调整,控制随机性)
    • 最大Tokens:2048(根据需求调整)
    • 上下文数量:10(保留最近10轮对话)
    • 状态:开启
  3. 保存配置

3.4 验证芋道与Ollama连接

  1. 进入AI大模型 → AI对话菜单
  2. 点击左上角「新建对话」
  3. 在右上角模型选择中,找到并选中你刚配置的DeepSeek-R1-7B
  4. 输入测试问题,例如:“你好,请做自我介绍”
  5. 如果能收到回复,说明配置成功!🎉

4. 整合SearXNG实现联网搜索

安装部署SearXNG可参考另一篇文章:Docker Desktop 安装 & SearXNG 部署完整教程
SearXNG服务(http://localhost:30080),现在我们要让芋道框架能够通过SearXNG实现联网搜索。

4.1 确认SearXNG服务状态

确保你的SearXNG容器正在运行:

# 查看容器状态dockerps|grepsearxng# 如果未运行,启动它dockerstart searxng# 测试访问curlhttp://localhost:30080

4.2 芋道框架联网搜索实现方案

  1. 主方法
public Flux<CommonResult<AiChatMessageSendRespVO>>sendChatMessageStream(AiChatMessageSendReqVO sendReqVO, Long userId){//1.1校验对话存在 AiChatConversationDO conversation=chatConversationService .validateChatConversationExists(sendReqVO.getConversationId());if(ObjUtil.notEqual(conversation.getUserId(), userId)){throw exception(CHAT_CONVERSATION_NOT_EXISTS);}List<AiChatMessageDO>historyMessages=chatMessageMapper.selectListByConversationId(conversation.getId());//1.2校验模型 AiModelDO model=modalService.validateModel(conversation.getModelId());StreamingChatModel chatModel=modalService.getChatModel(model.getId());//2.1知识库找回 List<AiKnowledgeSegmentSearchRespBO>knowledgeSegments=recallKnowledgeSegment(sendReqVO.getContent(), conversation);//2.2联网搜索(本地 SearXNG + DeepSeek) AiWebSearchResponse webSearchResponse=new AiWebSearchResponse();if(Boolean.TRUE.equals(sendReqVO.getUseSearch())){try{// 完整的 Cookie 内容 Map<String, String>cookies=new HashMap<>();cookies.put("categories","general");cookies.put("language","auto");cookies.put("locale","zh-Hans-
http://www.jsqmd.com/news/540823/

相关文章:

  • 2026北京珠宝回收公司哪家专业?从鉴定到变现,资深用户总结的选型逻辑 - 速递信息
  • PyTorch中torch.cat()的5种实际应用场景(附代码示例)
  • eVTOL电驱功率链路设计实战:功率密度、可靠性与热管理的平衡之道
  • 动手学习深度学习学习笔记(一)
  • SEO_导致网站排名下降的常见SEO问题与解决办法
  • ESFT-gate-law-lite:法律文本智能分析新工具
  • 2026年中山GEO优化公司推荐TOP5:从产业适配到效果落地的选型指南 - 小白条111
  • 本地调试使用https协议的方法
  • 推荐算法面试题:皮尔逊系数的值很高(如 0.9),是否一定代表用户很相似?
  • IoT 数据产品化:让设备数据驱动产品进化
  • why Russia can not cooperate with other countries.
  • netbeans 编辑器不能选择 yahei-mono字体原因及解决办法
  • 应广单片机端口复用实战:用1个IO口点亮4个LED灯,附电路图与代码避坑点
  • 2026年北京实木家具品牌推荐指南 - 速递信息
  • 1.Introducion
  • 用n-gram模型生成菜谱:从青椒炒肉片到茄子炒豆角的AI烹饪实验
  • 开源项目主题系统的3大核心机制深度解析:从CSS变量到动态切换的完整实现方案
  • League-Toolkit:英雄联盟玩家的智能助手全面解析
  • 2026年1月成都AI营销公司TOP5深度评测:从技术实力到效果落地的选商逻辑 - 小白条111
  • 哪家锻件服务商最靠谱?基于2026实测数据的优质源头工厂推荐报告 - 速递信息
  • 解锁Obsidian Copilot潜力:智能知识管理的高效解决方案
  • Wan2.2-I2V-A14B精彩案例分享:10秒自然流畅文生视频真实生成效果
  • 宝妈学中医理疗有啥用?守嘉职业技能解锁家庭健康与副业增收双可能 - 品牌排行榜单
  • 2026年GEO优化厂家合规性深度分析:从技术到服务的信任构建攻略 - 小白条111
  • 深入大模型-25-智能体工具之Vibe Coding氛围编程Claude Code
  • 2026年榆林豆包GEO优化公司Top5深度测评:从技术实力到效果落地的选商指南 - 小白条111
  • CasRel开源大模型部署教程:一键拉取镜像+5分钟完成SPO推理
  • 代码随想录 25(回溯算法 模板)
  • 谷粒商城-3安装
  • ELM分类实战:用Matlab快速实现手写数字识别(附完整代码)