基于ollama本地知识库搭建

使用目标

基于大模型,落地个人或公司,私有化部署,目前主要搭建本地的知识库服务。

AI 本地知识库搭建的核心主要包括数据收集与整理、知识表示与存储、知识检索与推理等方面。

ollama及open-webui容器安装

安装容器命令

Ollama 是一款开源跨平台的大型语言模型工具

yaml 复制代码
version: '3'

services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    restart: unless-stopped
    ports:
      - 11434:11434
    volumes:
      - D:\work\docker\ollama\ollama_data:/root/.ollama
    networks:
      - my_net

  ollama-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: ollama-webui
    restart: unless-stopped
    ports:
      - 11433:8080
    volumes:
      - D:\work\docker\ollama\webui_data:/app/backend/data
    environment:
      - OLLAMA_API_BASE_URL=http://ollama:11434/api
      - WEBUI_SECRET_KEY=tiger_Admin_123
    networks:
      - my_net
    depends_on:
      - ollama
      
networks:
  my_net:
    external: trueversion: '3'

services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    restart: unless-stopped
    ports:
      - 11434:11434
    volumes:
      - D:\work\docker\ollama\ollama_data:/root/.ollama
    networks:
      - my_net

  ollama-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: ollama-webui
    restart: unless-stopped
    ports:
      - 11433:8080
    volumes:
      - D:\work\docker\ollama\webui_data:/app/backend/data
    environment:
      - OLLAMA_API_BASE_URL=http://ollama:11434/api
      - WEBUI_SECRET_KEY=tiger_Admin_123
    networks:
      - my_net
    depends_on:
      - ollama
      
networks:
  my_net:
    external: true

ollama容器下载模型

arduino 复制代码
ollama run deepseek-r1:1.5b

ollama.com/library/dee...

使用安装好的模型

open-webui容器安装

访问web

http://127.0.0.1:11433/

注册用户

邮箱:[email protected]

密码:admin

使用模型

知识库搭建

名词说明

RAG

在 AI 大模型中,RAG(检索增强生成)是一种将检索技术与语言模型生成能力相结合的技术,具有多方面的重要作用:

  • 提高信息准确性:RAG 通过检索外部知识源,能够为生成的内容提供准确、最新的信息支持。例如,在回答涉及特定事实、数据或专业知识的问题时,RAG 可以从可靠的知识库中获取相关信息,避免模型仅凭自身的预训练知识生成可能不准确或过时的回答,从而提高回答的准确性和可信度。
  • 增强生成效果:它可以利用检索到的相关文本作为上下文或提示,引导语言模型生成更符合要求、更具针对性的内容。比如,在生成新闻报道、文案创作等任务中,RAG 能够根据检索到的相关主题资料,帮助模型生成更丰富、更有条理的文本,提升生成内容的质量和实用性。
  • 解决模型知识局限:即使是大规模的语言模型,其知识储备也存在一定的局限性。RAG 技术允许模型在需要时从外部获取额外的知识,有效地扩展了模型可利用的知识范围。这使得模型能够更好地处理一些冷僻、专业或时效性强的问题,弥补了模型自身知识覆盖不足的缺陷。
  • 提升模型可控性:通过检索特定的信息并将其融入生成过程,RAG 为模型的输出提供了一定的约束和引导,使得生成结果更加可控。用户可以通过调整检索条件和策略,影响模型生成的内容方向,更好地满足不同应用场景下的特定需求。

文本嵌入模型

通过 ollama pull nomic-embed-text 拉取的 nomic-embed-text 模型属于文本嵌入模型,其核心作用是把文本转换为向量表示,在诸多自然语言处理(NLP)任务中发挥着重要作用,以下是详细介绍:

语义搜索

  • 信息检索 :在海量的文本数据里,常规的关键词搜索往往只能找到字面匹配的内容,难以精准捕捉语义相近的文本。而 nomic-embed-text 模型能将查询语句和文本数据都转化成向量,通过计算向量之间的相似度,能够高效找出与查询语义相关的文本,提升搜索的准确性和召回率。
  • 问答系统:在问答系统中,用户提出的问题可以被转化为向量,然后与知识库中的问题向量进行比对,找出最相似的问题及对应的答案,为用户提供更精准的回答。

文本分类

  • 自动归类:可以把文本的向量表示输入到分类器(如支持向量机、神经网络等)中,让分类器依据向量的特征对文本进行分类。例如,在新闻分类任务中,能够将新闻文章分为政治、经济、体育、娱乐等不同类别。
  • 情感分析:借助模型得到文本向量后,可判断文本所表达的情感倾向,如积极、消极或中性,在社交媒体舆情监测、产品评价分析等场景中应用广泛。

聚类分析

  • 文本分组:将大量文本转化为向量后,利用聚类算法(如 K - Means 算法)对向量进行聚类,把语义相近的文本归为同一类。这有助于发现文本数据中的潜在结构和模式,例如在市场调研中对消费者反馈进行聚类,了解不同群体的需求和意见。

文本相似度计算

  • 评估相似性:计算不同文本之间的向量相似度,从而评估它们在语义上的相似程度。在抄袭检测中,通过比较两篇文章的向量相似度,可以判断是否存在抄袭行为;在推荐系统中,根据用户历史阅读文本和候选文本的相似度,为用户推荐感兴趣的内容。

生成式任务辅助

  • 提供上下文信息:在文本生成任务(如机器翻译、文本摘要、对话生成等)中,模型生成的文本向量可以为后续的生成模型提供更多的上下文信息和语义约束,帮助生成更符合逻辑和语义的文本。

安装Page Assist插件

Chrome浏览器插件:www.crxsoso.com/

下载到本地,谷歌浏览器打开:chrome://extensions/,右上角打开开发者模式,将下载好的crx文件拖入浏览器,完成插件的安装。

文本嵌入模型安装

ollama服务下安装 nomic-embed-text,文本嵌入模型的作用是,让大模型理解我们的文本资料。

arduino 复制代码
ollama pull nomic-embed-text

准备资料数据并上传

知识库效果验证

未使用自己投喂数据效果

使用自己投喂数据效果

搜索互联网

至此结束!!!

相关推荐
movee1 分钟前
十分钟从零开始开发一个自己的MCP server(一)
后端·llm·mcp
Tester_孙大壮7 分钟前
通过Appium理解MCP架构
人工智能·ai·语言模型
Learn-Share_HY11 分钟前
[Python]如何利用Flask搭建一個Web服務器,並透過Ngrok訪問來實現LINE Bot功能?
linux·人工智能·python·ubuntu·flask·ollama·ngrok
Adellle29 分钟前
Java进阶
java·后端·面试
花果山-马大帅32 分钟前
我的机器学习学习之路
人工智能·python·算法·机器学习·scikit-learn
G探险者32 分钟前
项目日志是否应该启用文件压缩?
运维·后端
Asthenia041236 分钟前
Spring Boot 的自动装配原理:@EnableAutoConfiguration/AutoConfigurationImportSelector/条件
后端
Asthenia041238 分钟前
理解 MySQL 的分组机制:GROUP BY、SELECT、HAVING 及索引优化
后端
尺度商业1 小时前
郭英成以茶会友对话李开复,探讨AI科技赋能
人工智能·科技
Asthenia04121 小时前
SQL执行顺序与ON vs WHERE:MySQL底层解析与面试记忆法
后端