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

GitHub 语析 - 基于大模型的知识库与知识图谱问答平台

语析 - 基于大模型的知识库与知识图谱问答平台

GitHub 地址:https://github.com/xerrors/Yuxi-Know

📝 项目概述

语析是一个强大的问答平台,结合了大模型 RAG 知识库与知识图谱技术,基于 Llamaindex + VueJS + FastAPI + Neo4j 构建。

核心特点:

  • 🤖 多模型支持:适配 OpenAI、各大国内主流大模型平台,以及本地 vllm 部署
  • 📚 灵活知识库:支持 PDF、TXT、MD 等多种格式文档
  • 🕸️ 知识图谱集成:基于 Neo4j 的知识图谱问答能力
  • 🚀 简单配置:只需配置对应服务平台的 API_KEY 即可使用

在这里插入图片描述

📋 更新日志

  • 2025.02.24 - 新增网页检索以及内容展示,需配置 TAVILY_API_KEY,感谢 littlewwwhite
  • 2025.02.23 - SiliconFlow 的 Rerank 和 Embedding model 支持,现默认使用 SiliconFlow
  • 2025.02.20 - DeepSeek-R1 支持,需配置 DEEPSEEK_API_KEYSILICONFLOW_API_KEY
  • 2024.10.12 - 后端修改为 FastAPI,添加 Milvus-Standalone 独立部署

在这里插入图片描述

PC 网页小屏设备
在这里插入图片描述
在这里插入图片描述

环境配置

在启动前,您需要提供 API 服务商的 API_KEY,并放置在 src/.env 文件中。

默认使用硅基流动的服务,因此必须配置:

SILICONFLOW_API_KEY=sk-270ea********8bfa97.e3XOMd****Q1Sk

本项目的基础对话服务可在不含显卡的设备上运行,大模型使用在线服务商的接口。

启动服务

开发环境启动(源代码修改会自动更新):

docker compose -f docker/docker-compose.dev.yml --env-file src/.env up --build

添加 -d 参数可在后台运行

生产环境部署请使用:

docker compose -f docker/docker-compose.yml --env-file src/.env up --build -d

成功启动后,会看到以下容器:

[+] Running 7/7✔ Network docker_app-network       Created✔ Container graph-dev              Started✔ Container milvus-etcd-dev        Started✔ Container milvus-minio-dev       Started✔ Container milvus-standalone-dev  Started✔ Container api-dev                Started✔ Container web-dev                Started

访问 http://localhost:5173/ 即可使用系统。

服务管理

关闭服务

docker compose -f docker/docker-compose.dev.yml --env-file src/.env down

查看日志

docker logs <容器名称>  # 例如:docker logs api-dev

💻 模型支持

1. 对话模型

本项目支持通过 API 调用的模型,本地模型需使用 vllm、ollama 转成 API 服务后使用。

模型供应商默认模型配置项目
siliconflow (默认)Qwen/Qwen2.5-7B-Instruct (免费)SILICONFLOW_API_KEY
openaigpt-4oOPENAI_API_KEY
deepseekdeepseek-chatDEEPSEEK_API_KEY
arc(豆包方舟)doubao-1-5-pro-32k-250115ARK_API_KEY
zhipu(智谱清言)glm-4-flashZHIPUAI_API_KEY
dashscope(阿里)qwen-max-latestDASHSCOPE_API_KEY
qianfan(百度)ernie_speedQIANFAN_ACCESS_KEY, QIANFAN_SECRET_KEY
添加新模型供应商

如需添加供应商模型,了解 OpenAI 调用方法后,只需在 src/static/models.yaml 中添加对应配置:

ark:name: 豆包(Ark)url: https://console.volcengine.com/ark/region:ark+cn-beijing/model # 模型列表default: doubao-1-5-pro-32k-250115 # 默认模型base_url: https://ark.cn-beijing.volces.com/api/v3env:  # 需要配置的环境变量,仅限API key- ARK_API_KEYmodels:- doubao-1-5-pro-32k-250115- doubao-1-5-lite-32k-250115- deepseek-r1-250120
本地模型部署

支持添加以 OpenAI 兼容模式运行的本地模型,可在 Web 设置中直接添加(适用于 vllm 和 Ollama 等)。

[!注意]
使用 docker 运行此项目时,ollama 或 vllm 需监听 0.0.0.0

在这里插入图片描述

2. 向量模型与重排序模型

建议使用硅基流动部署的 bge-m3(免费且无需修改)。其他模型配置参考 src/static/models.yaml。

对于向量模型重排序模型,选择 local 前缀的模型会自动下载。如遇下载问题,请参考 HF-Mirror 配置。

要使用已下载的本地模型,可在网页设置中映射,或修改 saves/config/base.yaml。记得在 docker-compose 中映射相应的 volumes。

📚 知识库支持

本项目支持多种格式的知识库文件:

  • PDF
  • Txt
  • Markdown
  • Docx

文件上传后,系统会:

  1. 将文件转换为纯文本
  2. 使用向量模型将文本转换为向量
  3. 存储到向量数据库中

此过程可能需要一定时间,请耐心等待。

🕸️ 知识图谱支持

本项目使用 Neo4j 作为知识图谱存储。您需要将图谱整理成 jsonl 格式,每行格式为:

{"h": "北京", "t": "中国", "r": "首都"}

然后在网页的图谱管理中添加此文件。

[!说明]
现阶段项目使用的 OneKE 自动创建知识图谱效果不佳,已暂时移除,建议在项目外创建知识图谱

系统启动后会自动启动 neo4j 服务:

  • 访问地址:http://localhost:7474/
  • 默认账户:neo4j
  • 默认密码:0123456789

可在 docker/docker-compose.ymldocker/docker-compose.dev.yml 中修改配置(注意同时修改 api.environmentgraph.environment)。

目前项目暂不支持同时查询多个知识图谱。如已有基于 neo4j 的知识图谱,可删除 docker-compose.yml 中的 graph 配置项,并修改 api.environment 中的 NEO4J_URI 为您的 neo4j 服务地址。

❓ 常见问题

镜像下载问题

如无法直接下载相关镜像,可参考 DaoCloud/public-image-mirror,尝试替换前缀:

# 以 neo4j 为例,其余类似
docker pull m.daocloud.io/docker.io/library/neo4j:latest# 然后重命名镜像
docker tag m.daocloud.io/docker.io/library/neo4j:latest neo4j:latest

相关文章:

GitHub 语析 - 基于大模型的知识库与知识图谱问答平台

语析 - 基于大模型的知识库与知识图谱问答平台 GitHub 地址&#xff1a;https://github.com/xerrors/Yuxi-Know &#x1f4dd; 项目概述 语析是一个强大的问答平台&#xff0c;结合了大模型 RAG 知识库与知识图谱技术&#xff0c;基于 Llamaindex VueJS FastAPI Neo4j 构…...

Linux《基础开发工具(上)》

在之前的篇章当中我们已经了解了Linux当中基本的指令以及相关的知识&#xff0c;那么接下来在本篇当中就开始学基本的开发工具&#xff0c;在此我们一共要了解6大开发工具&#xff0c;在此将这些工具的学习分为上中下篇&#xff0c;在本篇当中我们首先要来学习的是yun以及vim,一…...

【考试大纲】初级信息系统运行管理员考试大纲

目录 引言一、考试要求1、 考试说明2、 考试要求3、 本考试设置的科目包括:二、考试范围考试科目1:信息系统基础知识(初级)考试科目2:信息系统运行管理(应用技术)引言 最新的信息系统运行管理员考试大纲出版于 2018 年 9 月,本考试大纲基于此版本整理。 一、考试要求…...

《每天搞懂一道Hard》之数独终结者(LeetCode 37)

&#x1f4cc;《每天搞懂一道Hard》之数独终结者&#xff08;LeetCode 37&#xff09; &#x1f517;原题链接&#xff1a;https://leetcode.com/problems/sudoku-solver/ 今天我们来解剖一个经典回溯算法问题——数独求解器&#xff01;这道题在算法面试中出现频率高达35%&a…...

LangChain原理解析及开发实战指南(2025年最新版)

一、LangChain核心架构解析 1.1 框架设计理念 LangChain是基于提示工程(Prompt Engineering)构建的LLM应用开发框架&#xff0c;其核心思想是通过模块化组件实现大语言模型与业务系统的无缝对接。该框架采用分层设计&#xff1a; 接口层&#xff1a;统一对接OpenAI、DeepSee…...

YoloV8改进策略:Block改进|CBlock,Transformer式的卷积结构|即插即用

摘要 论文标题: SparseViT: Nonsemantics-Centered, Parameter-Efficient Image Manipulation Localization through Spare-Coding Transformer 论文链接: https://arxiv.org/pdf/2412.14598 官方GitHub: https://github.com/scu-zjz/SparseViT 这段代码出自SparseViT ,代码如…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_open_file

ngx_open_file 定义在src/os/unix/ngx_files.h #define ngx_open_file(name, mode, create, access) \open((const char *) name, mode|create, access)#define NGX_FILE_RDONLY O_RDONLY #define NGX_FILE_WRONLY O_WRONLY #de…...

测试金蝶云的OpenAPI

如何使用Postman测试K3Cloud的OpenAPI 1. 引言 在本篇博客中&#xff0c;我将带你逐步了解如何使用Postman测试和使用K3Cloud的OpenAPI。内容包括下载所需的SDK文件、配置文件、API调用及测试等步骤。让我们开始吧&#xff01; 2. 下载所需的SDK文件 2.1 获取SDK 首先&…...

C语言408考研先行课第一课:数据类型

由于408要考数据结构……会有算法题…… 所以&#xff0c;需要C语言来进行一个预备…… 因为大一贪玩&#xff0c;C语言根本没学进去……谁能想到考研还用得到呢&#xff1f;【手动doge&#xff08;bushi&#xff09; 软件用的是Clion&#xff0c;可以自行搜索教程下载使用。…...

11天 -- Redis 中跳表的实现原理是什么?Redis 的 hash 是什么?Redis Zset 的实现原理是什么?

Redis 中跳表的实现原理是什么&#xff1f; Redis 中的跳表&#xff08;Skip List&#xff09;是一种基于有序链表的高效数据结构&#xff0c;通过在链表上增加多级索引来提高数据的查找效率。以下是 Redis 中跳表的实现原理&#xff1a; 1. 基本概念 节点结构&#xff1a;跳…...

单细胞分析(19)—— 单细胞转录组基因集评分方法

下面是每种基因集评分方法的原理介绍代码示例&#xff0c;适用于R语言和Python两种主流生信分析环境。可以直接应用于单细胞转录组&#xff08;scRNA-seq&#xff09;数据分析中。 &#x1f52c; 单细胞转录组基因集评分方法&#xff08;附代码示例&#xff09; 在单细胞RNA测…...

010 rocketmq批量消息

文章目录 批量消息BatchProducer.javaBatchConsumer.java 批量消息 批量发送可以提⾼发送性能&#xff0c;但有⼀定的限制&#xff1a; topic 相同 waitStoreMsgOK 相同 &#xff08;⾸先我们建设消息的iswaitstoremsgoktrue(默认为true), 如果没有异常,我们将始终收到"O…...

JavaWeb后端基础(3)

原打算把Mysql操作数据库的一些知识写进去&#xff0c;但是感觉没必要&#xff0c;要是现在会的都是简单的增删改查&#xff0c;所以&#xff0c;这一篇&#xff0c;我直接从java操作数据库开始写&#xff0c;所以这一篇大致就是记一下JDBC、MyBatis、以及SpringBoot的配置文件…...

Oracle数据库基础入门(三): DQL 深入解析与实践

在 Oracle 数据库的知识体系中&#xff0c;数据查询语言&#xff08;DQL&#xff09;无疑是最为常用且关键的部分之一。对于 Java 全栈开发者而言&#xff0c;熟练掌握 DQL 不仅能高效地从数据库中获取所需数据&#xff0c;更是构建强大后端应用的基石。通过 DQL&#xff0c;我…...

P9231 [蓝桥杯 2023 省 A] 平方差

P9231 [蓝桥杯 2023 省 A] 平方差 - 洛谷 题目描述 给定 L,R&#xff0c;问 L≤x≤R 中有多少个数 x 满足存在整数 y,z 使得 xy2−z2。 输入格式 输入一行包含两个整数 L,R&#xff0c;用一个空格分隔。 输出格式 输出一行包含一个整数满足题目给定条件的 x 的数量。 输…...

贪心算法 求解思路

贪心算法简介 贪心算法是通过做一系列的选择来给出某一问题的最优解。对算法中的每一个决策点&#xff0c;做一个当时&#xff08;看起来是&#xff09;最佳的选择。这种启发式策略并不是总能产生出最优解&#xff0c;但它常常能给出最优解。 在实际设计贪心算法时&#xff0…...

2025/2/25,字节跳动后端开发一面面经

一、双方简单自我介绍 面试官先自我介绍,之后属于面试官看简历过程,基本不听。 二、实习中遇到最难的事情,怎么解决的 主要问的还是实习中做过的项目,项目难点在哪里(自己参与的地方),面对困难是怎么思考,怎么实际操作解决的。 三、项目实现细节 掌握自己项目的实…...

Buildroot 添加自定义模块-内置文件到文件系统

目录 概述实现步骤1. 创建包目录和文件结构2. 配置 Config.in3. 定义 cp_bin_files.mk4. 添加源文件install.shmy.conf 5. 配置与编译 概述 Buildroot 是一个高度可定制和模块化的嵌入式 Linux 构建系统&#xff0c;适用于从简单到复杂的各种嵌入式项目. buildroot的源码中bui…...

SpringBoot新闻推荐系统设计与实现

随着信息时代的快速发展&#xff0c;新闻推荐系统成为用户获取个性化内容的重要工具。本文将介绍一个幽络源的基于SpringBoot开发的新闻推荐系统&#xff0c;该系统功能全面&#xff0c;操作简便&#xff0c;能够满足管理员和用户的多种需求。 管理员模块 管理员模块为系统管…...

领域驱动设计:事件溯源架构简介

概述 事件溯源架构通常由3种应用设计模式组成,分别是:事件驱动(Event Driven),事件溯源(Event Source)、CQRS(读写分离)。这三种应用设计模式常见于领域驱动设计(DDD)中,但它们本身是一种应用设计的思想,不仅仅局限于DDD,每一种模式都可以单独拿出来使用。 E…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...