Quipus,LightRag的Go版本的实现

news2025/5/9 18:32:12

1 项目简介

奇谱系统当前版本以知识库为核心,基于知识库可以快构建自己的问答系统。知识库的Rag模块的构建算法是参考了LightRag的算法流程的Go版本优化实现,它可以帮助你快速、准确地构建自己的知识库,搭建属于自己的AI智能助手。与当前LLM项目以python为主不同,奇谱系统的开发语言使用golang进行开发。

项目位置:quipus: quipus 构建精彩世界

2 主要功能

  • 支持知识库的管理

    • 支持知识库的创建、更新、删除和测试,
    • 支持LightRag的Go版本实现的增强检索服务
    • 支持文件(pdf、doc、ppt、txt、html)的上传和解析,支持向量切片、知识图谱、知识总结、知识问答、知识检索、知识生成功能
    • 支持文件的增量更新
  • 支持模型供应商管理、模型管理

    • 支持ollma、openai、智谱、kimi、百度千帆、腾讯云(openai接口)、阿里云(openai接口)
    • 支持供应商的添加、修改、删除和测试
  • 支持助手的添加、修改、删除和测试

  • 支持基于主题场景的对话:

    • 支持基于场景的对话的创建、修改、删除和测试
    • 支持基于场景的对话的对话记录的查看
    • 支持基于场景的对话的对话记录的导出
    • 支持主题的知识库的总结的话题的自动导入,更方便用户进行对话
  • 支持多租户

    • 支持成员的管理
    • 支持成员角色的管理
    • 支持成员的自注册
    • 支持微信用户小程序登录

3 编译及打包

下载代码

git clone https://gitee.com/quipus/quipus.git

编译:

可以通过容器镜像打包,可以修改docker.sh中的镜像版本号:

cd script/build
docker.sh

若是在主机上直接部署可以通过make进行编译

make qpc #编译客户端,可以通过qpc访问命令行

make qpd #编译服务端之前,需要先到script/build目录下执行front.sh编译前端代码

4 部署

docker-deployment目录下执行

将docker-compose.yml中的容器镜像改为上述编译打包好的容器镜像

执行docker-compose up -d,默认端口为7227,若需要改端口,则需要修改.env中的端口

5 使用

5.1 注册登录

用户在登录系统时,如果系统中没有用户信息,则自动创建账户信息。

第一个登录本系统的用户为系统管理员用户

其他普通登录的用户为租户管理员,通过子账户登录,则为租户中的子用户。

5.2 模型设置

    租户管理员可以设置模型供应商和模型,模型供应商包括openai、 ollama、智谱、kimi、百度千帆、腾讯云(openai接口)、阿里云(openai接口)等,模型包括llama、chatglm等。模型供应商和模型可以用于生成知识库中的知识,也可以用于生成知识库中的知识问答。 设置的模型在租户范围内可见。 用户首先创建模型供应商,然后基于模型供应商创建模型。当前的模型支持Chat和embedding,设置参数较为简单,chat模型设置最大的token长度,embeding设置Dim的长度,以便在知识库构建和知识召回时使用。 创建模型供应商时,每个供应商的参数会有所差异,基于当前系统设置好的模板进行选择。系统设置的模型模板的路径在etc/llm-provider目录下。

5.3 设置助手

点击侧边栏助手按钮,可以见租户范围内的助手列表,助手创建者可以编辑或修改助手。 在设置助手时,用户可以设置助手的名称、描述、模型、提示词。当前提示词生成比较简单,用户输入关键词,点击生成按钮,系统会将关键词交由LLM Model进行生成,生成后,用户可以编辑提示词。 用户在设置时,可以设置是否同时生成虚拟人,虚拟人在本系统中是一个和用户对等的智能体。虚拟人可以用于场景的对话。 在设置助手时,提供了调测的功能,用于测试prompt和模型是否满足要求。

5.4 设置知识库

点击侧边栏知识库按钮,可以见租户范围内的知识库列表,知识库创建者可以编辑或修改知识库。 用户设置知识库的基本信息和上传文件。在构建时,需要用户手工点击构建按钮,开始执行构建任务。构建可以全量更新和增量更新。增量更新,适用于用户增量上传文件后进行的构建更新。 用户创建/编辑知识时,可以设置知识的构建类型分为以下三类:

  • 向量分块:分块无论用户是否选择,都会执行分块。当前分块的默认配置在/etc/rag/rag.yaml中,通过chunk_token进行切分,程序读取的文本达到chunk_token长度的3倍时,开始执行切分:首先计算最前面的chunk_token长度的文本的tokens的度,然后再按句子的进行计算每个句子的token度,并进行累加,若计算的tokens的长度达到了chunk_token时,则将上述的已计算的文本作为一个chunk块。
  • 知识图谱:在分块的基础上,将每段文本交由LLM Model进行知识的提取,提取出实体、关系、属性,构建知识图谱。
  • 知识总结:与标准的LightRag不同,奇谱提供了知识总结。在分块的基础上,将每段文本交由LLM Model进行知识的总结,提取出title和summary,构建知识总结。 用户在构建完成后,可以对构建好的知识库进行测试,测试时,用户可以输入测试文本,系统会返回测试结果。 在构建过程,记录每一步的执行记录,以便断点续建。

5.5 设置虚拟人

用户可以创建或修改自己的虚拟人,虚拟人可以绑定不同的助手,在当前虚拟人可以用于场景的对话。当前虚拟人只支持一个助手。在后续虚拟人可以支持多个助手。根据任务的需要,由多个助手协同完成任务。

5.6 主题场景

点击侧边栏主题按钮,可以见租户范围内的主题场景列表,场景创建者可以编辑或修改场景。

创建/修改主题场景:可以设置主题的名称、描述、虚拟人、绑定的知识库。在保存后,会自动将知识库的知识库总结的话题信息同步到主题场景中。

主题对话历史列表:点击对话过的历史,会将该次对话的上下文信息同步到对话框中,用户可以继续对话。 主题对话:用户输入对话内容,系统会根据用户输入的内容,调用虚拟人的助手,将从知识库根据用户设置的交互模式从知识库中进行知识召回,并交由LLM Model进行生成。 因此,用户在使用这里的主题场景时,可以知识当前的主题包含的主要内容,问答可以更有针对性。

6 总结

从实现方式,与python实现的知识库相比,奇谱本身的程序占用空间并不大。

与LightRag官方库相比,在保留了基本实现过程基础上,在实现过程中每个环节进行了一定的优化。并且增加了知识总结这一步骤。

在主题场景对话中,增加了topic这一信息,避免了用户对知识的不了解,而盲目进行沟通。

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

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

相关文章

使用 Vite 快速搭建现代化 React 开发环境

1.检查环境 说明:检测环境,node版本为18.20.6。 2.创建命令 说明:创建命令,选择对应的选项。 npm create vitelatest 3.安装依赖 说明:安装相关依赖。 npm i

PG数据库推进医疗AI向量搜索优化路径研究(2025年3月修订版)

PG数据库推进医疗AI向量搜索优化路径研究 一、医疗 AI 向量搜索的发展现状与挑战 1.1 医疗数据特征与检索需求 医疗数据作为推动医疗领域进步与创新的关键要素,具有鲜明且复杂的特征。从多模态角度看,医疗数据涵盖了结构化数据,如患者基本信息、检验检查报告中的数值结果;…

可穿戴经颅多通道直流电刺激产品测试总结

一 概念原理 tDCS 是一种非侵入性的神经调节技术,利用恒定、低强度直流电(通常为 0 - 2mA)通过电极作用于特定的大脑区域。其工作原理是通过调节神经元的膜电位,来增加或降低神经元兴奋性的特定区域,从而改变大脑运作。…

详解与HTTP服务器相关操作

HTTP 服务器是一种遵循超文本传输协议(HTTP)的服务器,用于在网络上传输和处理网页及其他相关资源。以下是关于它的详细介绍: 工作原理 HTTP 服务器监听指定端口(通常是 80 端口用于 HTTP,443 端口用于 HT…

Moldflow模流分析教程

Moldflow模流分析教程:

计算机网络 3-4 数据链路层(局域网)

4.1 局域网LAN 特点 1.覆盖较小的地理范围 2.较低的时延和误码率 3.局域网内的各节点之间 4.支持单播、广播、多播 分类 关注三要素 (出题点) ①拓扑结构 ②传输介质 ③介质访问控制方式 硬件架构 4.2 以太网 4.2.1 层次划分 4.2.2 物理层标准…

单片机AIN0、AIN1引脚功能

目录 1. 模拟-数字转换器(ADC) 2. 交流电源(AC) 总结 这两部分有什么区别? 在这个电路图中,两个部分分别是模拟-数字转换器(ADC)和交流电源(AC)。以下是这…

如何增加 Elasticsearch 中的 primary shard 数量

作者:来自 Elastic Kofi Bartlett 探索增加 Elasticsearch 中 primary shard 数量的方法。 更多阅读: Elasticsearch:Split index API - 把一个大的索引分拆成更多分片 Elasticsearch:通过 shrink API 减少 shard 数量来缩小 El…

Java 并发性能优化:线程池的最佳实践

Java 并发性能优化:线程池的最佳实践 在 Java 并发编程的世界里,线程池堪称提高应用性能与稳定性的神器。恰如其分地运用线程池,能让我们在多线程任务调度时游刃有余,既能避免线程频繁创建销毁带来的开销,又能合理管控…

【综述】一文读懂卷积神经网络(CNN)

卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。本文旨在介绍CN…

阿里云集群开启debug

1、安装 kubectl Macos brew install kubectl Windows: https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-windows/ 下载后,放到任意目录 2、配置连接信息 mac 将以下内容复制到计算机 $HOME/.kube/config 文件下: windows 不同集…

Unity之如何实现RenderStreaming视频推流

文章目录 前言引入 UnityRenderStreaming 的好处教程步骤 1:设置环境步骤 2: 创建项目步骤 3:安装软件包步骤 5:下载示例步骤 6:检查配置环境步骤 7:打开推流场景步骤 8: 准备用于流式传输的WebServer应用程序步骤 9: 运行 示例场景步骤 10:检查视频是否在浏览器中显示…

【java实现+4种变体完整例子】排序算法中【桶排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格

以下是桶排序的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格: 一、桶排序基础实现 原理 将数据分到有限数量的桶中,每个桶内部使用其他排序算法(如插入排序或快速排序)&#xf…

计算机三级:信息安全基础技术与原理(2.1密码技术简单梳理)

以下是密码学发展历程的表格归纳: ​发展阶段​时间范围​关键节点与标志性技术​技术突破与核心贡献​古典密码时期古代至19世纪• 公元前17世纪 克里特岛Phaistos圆盘(未知符号加密) • 中国西周“阴符”、北宋五言诗密码 • 1466年 艾伯蒂多表代替密码 • 1883年 克尔克霍…

【每天一个知识点】模式识别

“模式识别”是一种从数据中识别出规律、结构或趋势的技术,它广泛应用于人工智能、机器学习、图像处理、语音识别、自然语言处理等领域。简单来说,就是让计算机学会“看出”数据中的规律,比如: 从图像中识别人脸(人脸识…

Codeforces Educational Round 177 Div. 2 【B题,C待补

B 二分 题意 样例 5 3 10 3 4 2 1 512 找最右边的L下标即可 思路 二分最靠右的L端点,R端点取最右端(n*k处),找到后,答案就是L的位置(pos),(因为如果pos满足,则pos左边的所有下标都满足 代码 const in…

哈夫曼编码和哈夫曼树

哈夫曼编码(Huffman Coding) 是一种基于字符出现频率的无损数据压缩算法,通过构建哈夫曼树(Huffman Tree) 来生成最优前缀编码,使得高频字符用短编码,低频字符用长编码,从而实现高效…

中西面点实训室虚拟仿真操作平台

在餐饮行业蓬勃发展的当下,中西面点作为其中极具特色与市场需求的重要分支,对于专业人才的渴望愈发强烈。一个功能完备、设施先进的中西面点实训室,已然成为培养高素质面点专业人才的关键阵地。凯禾瑞华——实训室建设 一、中西面点实训室建设…

C++游戏服务器开发之⑦redis的使用

目录 1.当前进度 2.守护进程 3.进程监控 4.玩家姓名添加文件 5.文件删除玩家姓名 6.redis安装 7.redis存取命令 8.redis链表存取 9.redis程序结构 10.hiredisAPI使用 11.基于redis查找玩家姓名 12.MAKEFILE编写 13.游戏业务实现总结 1.当前进度 2.守护进程 3.进程监…

模拟投资大师思维:AI对冲基金开源项目详解

这里写目录标题 引言项目概述核心功能详解多样化的AI投资智能体灵活的运行模式透明的决策过程 安装和使用教程环境要求安装步骤基本使用方法运行对冲基金模式运行回测模式 应用场景和实际价值教育和研究价值潜在的商业应用与现有解决方案的对比局限性与发展方向 结论 引言 随着…