序
本文主要研究一下如何使用OpenWebUI+deepseek构建本地AI知识库
步骤
拉取open-webui镜像
docker pull ghcr.io/open-webui/open-webui:main
docker启动
docker run -d -p 3000:8080 \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
ghcr.io/open-webui/open-webui:main
执行完之后等一会(大概要三四分钟)启动起来了访问http://localhost:3000/,注册管理员账号,注册完要等一会(估计要七八分钟)页面才出来
可以-v ./open-webui-data:/app/backend/data
来挂载数据
看日志是有报错
ERROR [open_webui.routers.openai] Connection error: Cannot connect to host api.openai.com:443 ssl:default [Connect call failed ('108.160.165.173', 443)]
ERROR [open_webui.routers.openai] Connection error: Cannot connect to host api.openai.com:443 ssl:default [Connect call failed ('108.160.165.173', 443)]
ERROR [open_webui.routers.openai] Connection error: Cannot connect to host api.openai.com:443 ssl:default [Connect call failed ('108.160.165.173', 443)]
ERROR [open_webui.routers.openai] Connection error: Cannot connect to host api.openai.com:443 ssl:default [Connect call failed ('108.160.165.173', 443)]
INFO [open_webui.routers.ollama] get_all_models()
INFO [open_webui.routers.ollama] get_all_models()
INFO [open_webui.routers.ollama] get_all_models()
INFO [open_webui.routers.ollama] get_all_models()
登录之后,设置 --> 管理员设置 --> 外部链接,禁用掉OpenAI API,记得保存
开启联网搜索
在设置 --> 管理员设置 --> 联网搜索 --> 启用,然后下拉选择,这里选择tavily,可以去https://app.tavily.com/注册然后获取api key,最后点击保存就可以了
示例:今天日期是多少,看open-webui输出
INFO [open_webui.routers.retrieval] save_docs_to_vector_db: document 在线时钟:当前时间, 世界时钟 :: 美国 (United States) - 当前时间, 今天日期, 今天的日期 🇨🇳, 现在北京时间 在线标准北京时间校对 web-search-d8b3e7117d85062f511572e3004ad60997448e8ed9e9b7e3bac5
INFO [open_webui.routers.retrieval] adding to collection web-search-d8b3e7117d85062f511572e3004ad60997448e8ed9e9b7e3bac5
/pytorch/third_party/ideep/mkl-dnn/src/cpu/aarch64/xbyak_aarch64/src/util_impl_linux.h, 451: Can't read MIDR_EL1 sysfs entry
INFO [open_webui.retrieval.utils] query_doc:result [['7ee3e76c-7804-4eb7-8dbb-7ca27b0a54ca', 'ef5b7e5c-8a7e-4220-800e-9390e9808034', '97e23c2b-43f7-457a-a086-8b264acb90e8']] [[{'description': '世界时间 - 美国 (United States) - 现在世界各地是什么时间?', 'embedding_config': '{"engine": "", "model": "sentence-transformers/all-MiniLM-L6-v2"}', 'language': 'zh', 'source': 'https://24timezones.com/美国/时间', 'start_index': 3508, 'title': '世界时钟 :: 美国 (United States) - 当前时间'}, {'description': '根據您所在的位置找出今天是什麼日期。了解格式為 mm-dd-yyyy 的確切數字日期。', 'embedding_config': '{"engine": "", "model": "sentence-transformers/all-MiniLM-L6-v2"}', 'language': 'zh', 'source': 'https://thetimecalculator.org/zh/today-date', 'start_index': 1773, 'title': '今天日期'}, {'description': '世界时间 - 美国 (United States) - 现在世界各地是什么时间?', 'embedding_config': '{"engine": "", "model": "sentence-transformers/all-MiniLM-L6-v2"}', 'language': 'zh', 'source': 'https://24timezones.com/美国/时间', 'start_index': 2775, 'title': '世界时钟 :: 美国 (United States) - 当前时间'}]]
结果如下:
根据上下文中的信息,今天的日期是 星期一, 二月 17, 2025 [source_id=1]。
知识库管理
- 设置 --> 管理员设置 --> 文档 --> 语义向量模型引擎 改为ollama, 语义向量模型改为bge-m3:latest
- 工作空间 --> 知识库,点击+号上传文档
- 使用时需要在聊天框通过
#
来指定知识库 - 设置 --> 管理员设置 --> 数据库 --> 下载数据库,可以导出sqlite数据
小结
整体体验是docker部署起来,页面展示有点慢,联网搜索一开始选择serply不生效,换成tavily可以生效,但是国内的搜索引擎还不支持。对于知识库方面,可以上传文档和目录,聊天窗口可以指定使用哪个知识库,也可以同时开启联网搜索,整体效果还可以,可以同时引用知识库和搜索引擎的检索结果,看日志还会保存到向量数据库(save_docs_to_vector_db
)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。