ollama + fastgpt 搭建免费本地知识库

目录

1、ollama

ollama的一些操作命令:

使用的方式:

2、fastgpt

快速部署:

修改配置:

config.json:

docker-compose.yml:

运行fastgpt:

访问OneApi:

添加令牌和渠道:

登陆fastgpt,创建知识库和应用

3、总结:

附录:

1. 11434是ollama的端口:

2. m3e 测试 404 说明:


1、ollama

定义: ollama 是一个本地的大模型运行框架

下载地址:Ollama

ollama的一些操作命令:

# 拉取大模型llama3 
ollama pull llama3# 运行大模型llama3,若ollama下没有模型,则先下载再运行。之后就可以在命令行问问题,或者使用其他方式使用大模型的能力    
ollama run llama3 # 查看ollama下的大模型列表    
ollama list      # 删除大模型llama3     
ollama rm llama3  # 复制大模型    
ollama cp llama3 my-model   # 查看大模型详细信息
ollama show llama3    # 更多操作,详见 https://github.com/ollama/ollama

使用的方式:

  • 命令行
    • 运行大模型之后,直接问问题
  • WebUI:
    • 例如:open-webui
    • 地址:https://github.com/open-webui/open-webui
    • docker启动命令:
      docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
    • 访问地址:
      • http://localhost:3000/
    • 其他方式

2、fastgpt

定义:FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!

docker快速部署参考:Docker Compose 快速部署 | FastGPT

快速部署:

mkdir fastgpt
cd fastgpt
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json# pgvector 版本(测试推荐,简单快捷)
curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml
# milvus 版本
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-milvus.yml
# zilliz 版本
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-zilliz.yml

修改配置:

config.json:

config.json 修改 llmModels(大语言模型) 和 vectorModels (向量模型)的配置。

例如:大语言模型我使用了qwen2:latest,则有如下配置:

"llmModels": [{"model": "qwen2:latest", // 模型名(对应OneAPI中渠道的模型名)"name": "qwen2:latest", // 模型别名"avatar": "/imgs/model/openai.svg", // 模型的logo"maxContext": 16000, // 最大上下文"maxResponse": 4000, // 最大回复"quoteMaxToken": 13000, // 最大引用内容"maxTemperature": 1.2, // 最大温度"charsPointsPrice": 0, // n积分/1k token(商业版)"censor": false, // 是否开启敏感校验(商业版)"vision": false, // 是否支持图片输入"datasetProcess": true, // 是否设置为知识库处理模型(QA),务必保证至少有一个为true,否则知识库会报错"usedInClassify": true, // 是否用于问题分类(务必保证至少有一个为true)"usedInExtractFields": true, // 是否用于内容提取(务必保证至少有一个为true)"usedInToolCall": true, // 是否用于工具调用(务必保证至少有一个为true)"usedInQueryExtension": true, // 是否用于问题优化(务必保证至少有一个为true)"toolChoice": true, // 是否支持工具选择(分类,内容提取,工具调用会用到。目前只有gpt支持)"functionCall": false, // 是否支持函数调用(分类,内容提取,工具调用会用到。会优先使用 toolChoice,如果为false,则使用 functionCall,如果仍为 false,则使用提示词模式)"customCQPrompt": "", // 自定义文本分类提示词(不支持工具和函数调用的模型"customExtractPrompt": "", // 自定义内容提取提示词"defaultSystemChatPrompt": "", // 对话默认携带的系统提示词"defaultConfig": {} // 请求API时,挟带一些默认配置(比如 GLM4 的 top_p)}
]

向量模型我使用了m3e,则有如下配置:

"vectorModels": [{"model": "m3e","name": "m3e(测试专用)","price": 0,"defaultToken": 500,"maxToken": 1800}]

在fastgpt中,大语言模型和向量模型都可以配置多个。

大语言模型的名称可以查询ollama下的模型列表(ollama list)找到:

上面的m3e向量模型在ollama中没有,所以我们需要下载和运行。命令如下:

# 使用CPU运行
docker run -d --name m3e -p 6008:6008 registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api
# nvida-docker 使用GPU
docker run -d --name m3e -p 6008:6008 --gpus all registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api

可以根据自己电脑是否有GPU运行的条件决定使用哪个启动命令。

docker-compose.yml:

docker-compose.yml 需要修改如下内容:(若其他镜像配置的端口有冲突&#x

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

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

相关文章

Java 中的正则表达式

转义字符由反斜杠\x组成,用于实现特殊功能当想取消这些特殊功能时可以在前面加上反斜杠\ 例如在Java中当\出现时是转义字符的一部分,具有特殊意义,前面加一个反斜可以取消其特殊意义,表示1个普通的反斜杠\,\\\\表示2个…

【排序算法】1.冒泡排序-C语言实现

冒泡排序(Bubble Sort)是最简单和最通用的排序方法,其基本思想是:在待排序的一组数中,将相邻的两个数进行比较,若前面的数比后面的数大就交换两数,否则不交换;如此下去,直…

Java红娘婚恋相亲交友系统小程序源码

红娘婚恋相亲交友小程序:遇见爱情,从指尖开始💖 📱 掌中红娘,随时待命 💌 在这个数字化时代,爱情也迎来了它的新舞台——“红娘婚恋相亲交友小程序”。只需轻轻一点,你的专属红娘就…

git自动pull同步远程若干分支与本地若干分支

git自动pull同步远程若干分支与本地若干分支 假设远程代码仓库有100个分支,而本地只有10个本地分支与远程分支一一对应,现在要保持本地的这个10个分支与远程一致,最笨的方法是checkout到每个分支,然后一个一个的 git pull origin…

【文心智能体】前几天百度热搜有一条非常有趣的话题《00后疯感工牌》,看看如何通过低代码工作流方式实现图片显示

00后疯感工牌体验:https://mbd.baidu.com/ma/s/6yA90qtM 目录 前言比赛推荐工作流创建工作流入口创建工作流界面工作流界面HTTP工具卡点地方 总结推荐文章 前言 前几天百度热搜有一条非常有有趣《00后疯感工牌》。 想着通过文心智能体去一键生成00后疯感工牌是不是…

打包一个自己的Vivado IP核

写在前面 模块复用是逻辑设计人员必须掌握的一个基本功,通过将成熟模块打包成IP核,可实现重复利用,避免重复造轮子,大幅提高我们的开发效率。 接下来将之前设计的串口接收模块和串口发送模块打包成IP核,再分别调用…

华为USG6000V防火墙安全策略用户认证

目录 一、实验拓扑图 二、要求 三、IP地址规划 四、实验配置 1🤣防火墙FW1web服务配置 2.网络配置 要求1:DMZ区内的服务器,办公区仅能在办公时间内(9:00-18:00)可以访问,生产区的设备全天可以访问 要求2:生产区不…

list模拟实现【C++】

文章目录 全部的实现代码放在了文章末尾准备工作包含头文件定义命名空间类的成员变量为什么节点类是用struct而不是class呢?为什么要写get_head_node? 迭代器迭代器在list类里的实例化和重命名普通迭代器operator->()的作用是什么? const迭代器反向迭…

tkinter-TinUI-xml实战(12)pip可视化管理器

引言 pip命令行工具在平常使用方面确实足够简单,本项目只是作为TinUI多界面开发的示例。 当然,总有人想用GUI版pip,实际上也有。不过现在,我们就来手搓一个基于python和TinUI(tkinter)的pip可视化管理器。…

Java SpringAOP简介

简介 官方介绍: SpringAOP的全称是(Aspect Oriented Programming)中文翻译过来是面向切面编程,AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生…

模块化和包管理工具

一,模块化 1.定义 将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为 模块化 其中拆分出的 每个文件就是一个模块 ,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块使用 2.模块化…

【React Hooks原理 - forwardRef、useImperativeHandle】

概述 上文我们聊了useRef的使用和实现,主要两个用途:1、用于持久化保存 2、用于绑定dom。 但是有时候我们需要在父组件中访问子组件的dom或者属性/方法,而React中默认是不允许父组件直接访问子组件的dom的,这时候就可以通过forwa…

如何通过网络快速搜寻到自己的STM32设备

目录 一、问题概述 二、解决思路 三、代码实现 1.创建任务 2.UDP广播接收 一、问题概述 以前一直用RS232串口修改设备配置信息,但是现场施工人员的232线太细,经常容易断掉,这次准备用网口去修改,遇到了一个问题,…

【简历】惠州某二本学院:前端简历指导,秋招面试通过率为0

注:为保证用户信息安全,姓名和学校等信息已经进行同层次变更,内容部分细节也进行了部分隐藏 简历说明 这是一份25届二本同学,投递前端职位的简历,那么在校招环节二本同学主要针对的还是小公司,这个学校因为…

【B树、B-树、B+、B*树】

目录 一、B-树(即B树)的定义及操作1.1、定义1.2、操作1.2.1、查找1.2.2、插入1.2.3、删除 二、B树的定义及操作2.1、定义2.2、操作2.2.1、查找2.2.2、插入2.2.3、删除 三、B*树 一、B-树(即B树)的定义及操作 1.1、定义 B-tree即…

18_Shell好用工具:sort

18_Shell好用工具:sort 选项说明-k指定要排序的列-nnumber,按照数值大小排序-rreverse,逆序-t分隔符-u去重-o保存排序到文件 一、数字升序 #sort1.txt文件纯数字 #升序 sort -n sort1.txt #降序 sort -nr sort1.txt二、数字升序去重 #数字…

框架设计MVC

重点: 1.用户通过界面操作,传输到control,control可以直接去处理View,或者通过模型处理业务逻辑,然后将数据传输给view。 2.control包含了model和view成员。 链接: MVC框架详解_mvc架构-CSDN博客 MVC架…

C语言------指针讲解(2)

目录 一、数组名的理解 二、使用指针访问数组 三、一维数组传参的本质 四、冒泡排序 五、二级指针 六、指针数组 七、指针数组模拟二维数组 一、数组名的理解 通过学习,我们知道:数组名和数组首元素的地址打印出来的结果一模一样,数组…

【STM32】RTT-Studio中HAL库开发教程三:IIC通信--AHT20

文章目录 一、I2C总线通信协议二、AHT20传感器介绍三、STM32CubeMX配置硬件IIC四、RTT中初始化配置五、具体实现代码六、实验现象 一、I2C总线通信协议 使用奥松的AHT20温湿度传感器,对环境温湿度进行采集。AHT20采用的是IIC进行通信,可以使用硬件IIC或…

顺序表的应用——通讯录

通讯录的实现分为五个文件分别进行编写,分别为:SeqList.c,SeqList.h,Contact.c,Contact.h,test.c 其中前两个文件为上一篇博客中的顺序表的操作,后三个文件为通讯录功能的实现。 SeqList.h #d…