当前位置: 首页 > news >正文

Quipus,LightRag的Go版本的实现

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这一信息,避免了用户对知识的不了解,而盲目进行沟通。

相关文章:

  • 猫咪如厕检测与分类识别系统系列【九】视频检测区域在线绘制+支持摄像头+网络摄像头+整体构建【上】
  • 怎样完成本地模型知识库检索问答RAG
  • Linux命令+Git命令
  • mysql数据库的线程连接数、状态 、最大并发数、缓存等参数配置
  • Axios 介绍及使用指南
  • 字节跳动开源 Godel-Rescheduler:适用于云原生系统的全局最优重调度框架
  • 高并发三剑客-本地缓存之王Caffeine-01缓存应用
  • 《忘尘谷》音阶与调性解析
  • 非参数 Spearman 相关在多组学分析中的力量及AI拓展
  • langchain框架-文档加载器详解
  • Arm系统ubuntu20.04中自带的火狐浏览器打开网页B站视频和百度网盘网页视频,视频无法打开,并且没有声音——(本质上解决)
  • DeepSeek-V3技术架构深度解析与性能优化实践
  • 力扣每日打卡 1534. 统计好三元组 (简单)
  • 从代码学习深度学习 - 自注意力和位置编码 PyTorch 版
  • 记录 | Pycharm中如何调用Anaconda的虚拟环境
  • 基于MCP协议的多模态思维链在医疗系统改造中的融合研究
  • 【Code】《代码整洁之道》笔记-Chapter16-重构SerialDate
  • 驱动开发硬核特训 · USB 摄像头专题:原理 + 实战深度解析(基于 linux-imx)
  • Python爬虫第14节-如何爬取Ajax的数据
  • 代码随想录笔记-哈希表
  • 亮剑浦江丨上海网信部门处罚一批医疗服务类互联网企业,三大类问题值得关注
  • 中国海警局新闻发言人就菲律宾非法登临铁线礁发表谈话
  • 文旅部:推动离境退税购物便利化有利于更多国内优质商品走出去
  • 俄罗斯准备在没有先决条件的情况下与乌克兰进行谈判
  • 应勇:以法治力量服务黄河流域生态保护和高质量发展
  • 世联行:2024年营业收入下降27%,核心目标为“全面消除亏损公司和亏损项目”