Mac M1探索AnythingLLM+SearXNG

SearXNG 能聚合来自多达 200 多个搜索服务,可私有化部署,并提供了灵活自定义选项。

AnythingLLM+SearXNG,刚好能解决AnythingLLM因为网络限制导致web search不可用的问题。

1 安装docker

下载mac m1版本的docker并安装。

https://docs.docker.com/desktop/setup/install/mac-install/

更新docker mirror信息

docker pull docker-0.unsee.tech/istio/distroless

由于SearXNG依然不能正常pull,进一步

修改docker mirror,具体位置

内容如下

{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"features": {"buildkit": true},"registry-mirrors": ["https://docker.1panel.dev","https://docker.fxxk.dedyn.io","https://docker.xn--6oq72ry9d5zx.cn","https://docker.m.daocloud.io","https://a.ussh.net","https://docker.zhai.cm"]
}

然后docker就能正常pull了

2 安装SearXNG

1)docker安装SearXNG

这里选择docker命令进行部署。

mkdir my-searxng
cd my-searxng
export PORT=8080
docker pull searxng/searxng
docker run --rm \-d -p ${PORT}:8080 \-v "${PWD}/searxng:/etc/searxng" \-e "BASE_URL=http://localhost:$PORT/" \-e "INSTANCE_NAME=searxng" \searxng/searxng

部署过程中有可能会遇到如下问题,解决方案参考附录

“error while creating mount source path '/host_mnt/Users/username/xxxanythingllm/searxng/my-searxng/searxng': mkdir /host_mnt/Users/username/xxx: operation not permitted.”

2)测试SearXNG

部署完成,可以在浏览器访问了,链接如下

http://127.0.0.1:8080

SearXNG默认不启用bing和baidu,可以在如下链接页面设置,找到bing和baidu并勾选。

http://127.0.0.1:8080/preferences

点击右下角Save后就可以正常访问了。

3)配置SearXNG

为了AnythingLLM 通过接口调用 SearXNG,需要SearXNG 支持返回 json 格式数据,具体为修改 settings.yml 文件,在 search.formats 部分(大约在第 30 行),添加 - json 配置项。

然后重启SearXNG docker容器

docker restart <container-id>

重启后,访问如下链接看能否返回json数据。

http://127.0.0.1:8080/search?q=llm&format=json

正常情况应该返回如下数据

3 AnythingLLM+SearXNG

假设AnythingLLM和Ollama已安装,考虑到mac m1受限算力,采用qwen3:4b小模型。

详情请参考Mac M1探索AnythingLLM+Ollama+知识库问答-CSDN博客

这里直接说明在AnythingLLM中配置SearXNG的过程。

1)AnythingLLM中配置SearXNG

如下图所示,在AnythongLLM的WebSearch中选择SearXNG,填写BaseUrl,然后Save保存。

http://192.168.66.107:8080/search

不能用http://127.0.0.1:8080/search,必须填写容器宿主机(安装docker机器)的被分配真实ip。

AnythingLLM不能通过127.0.0.1定位到安装在docker容器中的SearXNG。填写宿主机真实IP,能确保SearXNG和AnythingLLM网络互通,宿主机ip地址获取参考附录。

2)测试 SearXNG 生效

在AnythongLLM的agent聊天页面,输入

@agent 请你帮我搜索 QwQ大模型

agent没有提示网络失败,所以AnythingLLM和SearXNG之间的网络是通的。

AnythongLLM回答不太符合预期,与本地LLM处理能力有关,这里LLM Qwen3:4b是小模型。

附录

---

mac m1 docker相关问题

1)container sharing问题

docker: Error response from daemon: error while creating mount source path '/host_mnt/Users/username/xxxanythingllm/searxng/my-searxng/searxng': mkdir /host_mnt/Users/username/xxx: operation not permitted.

方案: 将container的sharing从gRPC或virtualFS更改为osxfs

change the docker settings to use osxfs, instead of gRPC or Fuse.

https://github.com/docker/for-mac/issues/5390

2)容器ip获取

登录docker container机器,然后运行ifconfig

这里ip为172.17.0.2

3)宿主机ip获取

在安装docker容器的主机中,打开term,输入ifconfig,获取ip地址。

ifconfig

也可以通过其他方式获取,如直接查看网络连接,查看dockder软件中的宿主机信息。

reference

---

searxng-docker

https://github.com/searxng/searxng-docker

searxng

https://github.com/searxng/searxng

AnythingLLM + SearXNG 实现私有搜索引擎代理

https://zhuanlan.zhihu.com/p/29294534050

docker install

https://docs.docker.com/desktop/setup/install/mac-install/

colima使用docker compose问题(mac)

https://blog.csdn.net/m0_38113882/article/details/131550044

目前国内可用Docker镜像源汇总(截至2025年6月)

目前国内可用Docker镜像源汇总(截至2025年6月) - CoderJia

MacOS安装docker,并设置国内镜像源

https://www.haveyb.com/article/3245

使用SearXNG-搭建个人搜索引擎(附国内可用Docker镜像源)

https://blog.csdn.net/C_0010/article/details/143191038

host_mnt volume mount problem on Mac in the latest version with has reappeared #5390

https://github.com/docker/for-mac/issues/5390

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/92962.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/92962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模式设计:策略模式及其应用场景

简介 策略模式(Strategy Pattern)是一种行为型设计模式,它允许在运行时动态选择算法或行为。核心思想是将算法封装成独立的类(策略),使它们可以相互替换,让算法的变化独立于使用它的客户端。 核心思想 解耦:将算法的定义与使用分离。每个算法封装起来,使它们可以互…

Squash Merge(压缩合并)和Rebase Merge(变基合并)介绍

文章目录**1. Squash Merge&#xff08;压缩合并&#xff09;****定义****操作步骤****特点****优点****缺点****2. Rebase Merge&#xff08;变基合并&#xff09;****定义****操作步骤****特点****优点****缺点****3. 对比总结****4. 选择建议****5. 示例场景****Squash Merg…

Linux编程 —— framebuffer

一、framebuffer概念framebuffer&#xff1a;帧缓冲&#xff0c;帧缓存技术Linux内核专门为图形化显示提供的一套应用程序接口。二、基本操作步骤1. 打开显示设备(/dev/fb0) 2. 获取显示设备相关参数&#xff08;分辨率&#xff0c;像素格式&#xff09;---》ioctl 3. 建立显存…

文件编辑html

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>文件行内容编辑器</title><script src&…

具有熔断能力和活性探测的服务负载均衡解决方案

一、整体架构设计 1.核心组件 负载均衡器&#xff1a;负责选择可用的服务节点健康检查器&#xff1a;定期检测服务节点的可用性服务节点管理&#xff1a;维护所有可用节点的状态信息 2.负载均衡策略 轮询(Round Robin)随机(Random)加权轮询(Weighted Round Robin)最少连接(Leas…

技术演进中的开发沉思-62 DELPHI VCL系列:VCL下的设计模式

今天聊聊设计模式&#xff0c;当然这个章节目前仅限于DELPHI VCL,因为接下来梳理的Factory/Factory Method、Bootstrap 和 ForEach 这三种设计样例&#xff0c;看似独立&#xff0c;却在实际开发中相互配合&#xff0c;共同构建起高效、灵活的程序架构。在 DELPHI VCL 开发的技…

Docker 101:面向初学者的综合教程

掌握 Docker 已成为软件开发中的一项关键技能。本教程探讨了容器化的世界&#xff0c;包括其核心概念、优缺点&#xff0c;以及开始使用容器化的分步指南。 无论是 Docker 的新手&#xff0c;还是希望复习基础知识的更有经验的开发人员&#xff0c;本指南都能满足需求。 什么…

RTOS YAFFS

在 YAFFS (Yet Another Flash File System) 的语境中&#xff0c;“Check Point” 并不是一个标准的、核心的官方术语。它更可能是对 YAFFS 关键机制 Summary 或 Checkpointing 功能的非正式表述或理解偏差。其核心含义是指 YAFFS 在特定时刻保存文件系统关键元数据的状态&…

【SpringBoot系列-02】自动配置机制源码剖析

【SpringBoot系列-02】自动配置机制源码剖析 咱们天天用Spring Boot&#xff0c;一个SpringBootApplication注解扔进去&#xff0c;啥配置都不用写&#xff0c;项目就跑起来了。你有没有过这种疑惑&#xff1a;那些DispatcherServlet、DataSource是从哪冒出来的&#xff1f;今天…

51单片机-51单片机最小系统

本章概述思维导图&#xff1a;51单片机最小系统51单片机最小系统是51系列单片机&#xff08;如AT89C51、STC89C52等&#xff09;能够独立工作的最简电路配置&#xff0c;它为单片机提供了运行所需的基本条件。51单片机最小系统板是嵌入式系统开发的基础平台&#xff0c;集成了单…

git学习1

目录引入版本控制集中式和分布式版本控制git工作机制代码托管中心Git常用命令设置用户签名初始化本地库查看库状态add和提交版本穿梭git分支操作分支定义分支好处分支操作查看分支创建分支切换分支分支合并&#x1f495;✨&#x1fa77;合并冲突git团队协作团队内协作跨团队协作…

redis原理篇--Dict

Dict数据结构一、Redis字典的核心组件Redis字典由三部分构成&#xff1a;dictht&#xff08;哈希表&#xff09;&#xff1a;存储桶数组与元数据dictEntry&#xff08;哈希节点&#xff09;&#xff1a;存储键值对dict&#xff08;字典主体&#xff09;&#xff1a;包含双哈希表…

静态路由主备切换

在网络中&#xff0c;静态路由的主备切换是实现网络冗余的基础方案之一&#xff0c;通过配置不同优先级的静态路由&#xff0c;确保主用路径故障时&#xff0c;流量能自动切换到备用路径&#xff0c;提升网络可靠性。以下从知识讲解和实验配置两部分详细说明。一、静态路由主备…

PDF处理控件Aspose.PDF教程:在C#、Java、Python中快速缩小PDF

如果您的PDF太大&#xff0c;无法通过电子邮件发送&#xff0c;或者在线加载时间过长&#xff0c;您可以在几秒钟内缩小 PDF 大小。本教程介绍了借助Aspose.PDF使用 C#、Java 和 Python 编程快速缩小PDF的方法。 Aspose.PDF官方试用版下载 通过编程缩小 PDF 尺寸 如果您需要…

AWS EKS 常用命令大全:从基础管理到高级运维

前言 Amazon Elastic Kubernetes Service (EKS) 是 AWS 提供的托管 Kubernetes 服务,大大简化了 K8s 集群的部署和管理工作。作为 EKS 管理员或开发者,熟练掌握 kubectl 命令是日常工作的基础。本文将详细介绍 EKS 环境中常用的 kubectl 命令,涵盖集群管理、工作负载操作、…

GitHub Browser-Use 的部署失败记录:失败了,失败了。。。。

一、项目背景与核心作用 browser-use 是一个开源的浏览器自动化工具&#xff0c;通过集成 AI 智能体&#xff08;如 GPT、Claude、DeepSeek 等大型语言模型&#xff09;&#xff0c;实现用自然语言控制浏览器操作。其核心目标是 简化网页交互自动化&#xff0c;尤其适合复杂、…

调用springboot接口返回403,问题定位及总结

背景在一次与前端联调后端接口时前端返回接口返回状态码是403&#xff0c;前端返回说已经带了请求token。排查 查看后端控制台没有出现任何错误信息。自己postman手动调用接口&#xff0c;发现接口正常。仔细核对前端调用接口与postman请求的区别&#xff0c;没有发现任何问题。…

布隆过滤器原理分析、应用场景、与redis使用案例

一、核心结构与工作原理1.1 数据结构布隆过滤器由以下两部分组成&#xff1a;位数组&#xff08;Bit Array&#xff09;&#xff1a;一个长度为 m 的二进制数组&#xff0c;初始所有位为0。哈希函数组&#xff1a;k 个独立的哈希函数&#xff0c;每个函数将输入元素映射到位数组…

异步并发×编译性能:Dart爬虫的实战突围

Dart凭借其高效的异步并发模型、AOT编译性能和现代化的语法&#xff0c;正成为爬虫开发中值得关注的新选择。特别是对于Flutter应用开发者而言&#xff0c;Dart提供了一种"全栈同语言"的独特优势。 本文我将通过实战代码展示如何利用Dart的核心优势——包括基于Futur…

Day 8: 深度学习综合实战与进阶技术 - 从优化到部署的完整流程

Day 8: 深度学习综合实战与进阶技术 - 从优化到部署的完整流程 🎯 学习目标: 掌握深度学习模型优化、调试、迁移学习等工业级技能,能够构建高性能的深度学习应用 📚 核心概念概览 核心概念解释: 模型优化: 通过正则化、学习率调度等技术提升模型性能和泛化能力 为什么需…