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_KEY
或SILICONFLOW_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 |
openai | gpt-4o | OPENAI_API_KEY |
deepseek | deepseek-chat | DEEPSEEK_API_KEY |
arc (豆包方舟) | doubao-1-5-pro-32k-250115 | ARK_API_KEY |
zhipu (智谱清言) | glm-4-flash | ZHIPUAI_API_KEY |
dashscope (阿里) | qwen-max-latest | DASHSCOPE_API_KEY |
qianfan (百度) | ernie_speed | QIANFAN_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。
📚 知识库支持
本项目支持多种格式的知识库文件:
- Txt
- Markdown
- Docx
文件上传后,系统会:
- 将文件转换为纯文本
- 使用向量模型将文本转换为向量
- 存储到向量数据库中
此过程可能需要一定时间,请耐心等待。
🕸️ 知识图谱支持
本项目使用 Neo4j 作为知识图谱存储。您需要将图谱整理成 jsonl 格式,每行格式为:
{"h": "北京", "t": "中国", "r": "首都"}
然后在网页的图谱管理中添加此文件。
[!说明]
现阶段项目使用的 OneKE 自动创建知识图谱效果不佳,已暂时移除,建议在项目外创建知识图谱
系统启动后会自动启动 neo4j 服务:
- 访问地址:http://localhost:7474/
- 默认账户:
neo4j
- 默认密码:
0123456789
可在 docker/docker-compose.yml
和 docker/docker-compose.dev.yml
中修改配置(注意同时修改 api.environment
和 graph.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 地址:https://github.com/xerrors/Yuxi-Know 📝 项目概述 语析是一个强大的问答平台,结合了大模型 RAG 知识库与知识图谱技术,基于 Llamaindex VueJS FastAPI Neo4j 构…...
Spark核心之02:RDD、算子分类、常用算子
spark内存计算框架 一、目标 深入理解RDD弹性分布式数据集底层原理掌握RDD弹性分布式数据集的常用算子操作 二、要点 ⭐️1. RDD是什么 RDD(Resilient Distributed Dataset)叫做**弹性分布式数据集,是Spark中最基本的数据抽象,…...
docker关闭mysql端口映射的使用
需求 项目中的数据库为mysql,如果将端口映射到宿主机上,容易被工具扫描出,且随着国产化的进程推进,mysql将不被允许。为了提高安全性与满足项目需求,这里采用隐藏mysql端口方式,不映射宿主机端口ÿ…...
《从入门到精通:蓝桥杯编程大赛知识点全攻略》(十八)-农夫约翰的奶酪块、蛋糕游戏、奶牛体检
前言 在算法竞赛和编程挑战中,博弈类问题往往要求我们充分理解参与者的行为模式和最优策略,从而提出合理的解法。在这篇博客中,我们将探讨三个有趣且富有挑战性的算法题:农夫约翰的奶酪块、蛋糕游戏和奶牛体检。这些问题涉及不同…...
蓝桥杯 之 图形规律
文章目录 分析组成,找到规律数正方形 在蓝桥杯中,常常会有一些图形的规律的题目需要我们去解决,所以我们需要学会其中的一些方法,我们这样才能解决对应的问题 方法1:直接对n进行拆分方法2:使用递归的思路&a…...
Django 项目模块化开发指南:实现 Vue 风格的组件化
在 Django 项目中,我们经常需要 复用 HTML 代码,避免重复编写相同的模板。例如,博客系统中,博客列表页 和 文章详情页 可能都有相同的 导航栏、模态框、页脚 等。如何像 Vue 一样进行 模块化开发,让代码更加清晰、可维护呢? 本文将详细介绍 Django 的模板继承 和 {% incl…...
在kali linux中kafka的配置和使用
官方文档 一、安装依赖 删除原有的jdk sudo apt remove --purge openjdk-\* sudo apt clean安装 Java (JDK 11) sudo apt install openjdk-11-jdk -y # 验证安装 java -version二、下载并解压 Kafka 下载 Kafka wget https://dlcdn.apache.org/kafka/3.9.0/kafka_2.13-3.9.0.t…...
Spring Bean 作用域设置为prototype在并发场景下是否是线程安全的
在并发场景下,将 Spring Bean 作用域设置为 prototype 通常能在一定程度上保证线程安全,但这并不意味着绝对的线程安全 1. prototype 作用域的特点 在 Spring 中,Bean 的作用域定义了 Bean 的生命周期和可见性。prototype 作用域表示每次从…...
Linux系统编程(三)--Linux环境基础开发工具
文章目录 前言1.软件包的管理1.1 Linux下安装软件的方式1.2 什么是软件包(yum)1.3 yum具体操作 2. 编辑器vim2.1 vim的基本概念2.2 vim下各模式的切换vim命令模式各命令汇总 2.4批量化注释和批量化去注释2.5 vim配置2.6 普通用户使用sudo提权 3. 编译器g…...
Apache Shiro 反序列化漏洞全解析(Shiro-550 Shiro-721)
一、前言 Apache Shiro 是一个强大的 Java 安全框架,广泛用于用户认证、授权、加密和会话管理。然而,由于 Shiro 在某些版本中存在反序列化漏洞,攻击者可以通过特定手法实现远程代码执行(RCE),进而获取服务…...
playbin之Source插件加载流程源码剖析
之前我们有讲解过uridecodebin的setup_source中会创建source插件,关键函数: /* create and configure an element that can handle the uri */ source gen_source_element (decoder); /** Generate and configure a source element.** Returns: (tra…...
调用的子组件中使用v-model绑定数据以及使用@调用方法
实例: 子组件my-date-picker: <!--* description: 日期组件二次封装* 解决 “日期为区间时,后端不支持传数组,而要传#分割的字符串” --> <template><el-date-pickerclass"comp-my-date-picker"v-mode…...
指纹细节提取(Matlab实现)
指纹细节提取概述指纹作为人体生物特征识别领域中应用最为广泛的特征之一,具有独特性、稳定性和便利性。指纹细节特征对于指纹识别的准确性和可靠性起着关键作用。指纹细节提取,即从指纹图像中精确地提取出能够表征指纹唯一性的关键特征点,是…...
爱普生可编程晶振 SG-8101CE 在智能家居领域展现出的优势
在智能家居的全场景应用中,设备间的协同效率、数据传输的稳定性以及系统运行的可靠性,成为衡量用户体验的核心标准。爱普生 SG-8101CE 可编程晶振以其卓越的性能,为智能门锁、传感器、中控系统等设备提供核心动力,助力厂商打造更可…...
DeepSeek掘金——DeepSeek-R1图形界面Agent指南
DeepSeek掘金——DeepSeek-R1图形界面Agent指南 本文将指导你完成设置 DeepSeek R1 和 Browser Use 的过程,以创建能够执行复杂任务的 AI 代理,包括 Web 自动化、推理和自然语言交互。 开源大型语言模型 (LLM) 的兴起使得创建可与 OpenAI 的 ChatGPT Operator 等专有解决方案…...
Linux知识-第一天
Linux的目录机构为一个树型结构 其没有盘符这个概念,只有一个根目录,所有文件均在其之下 在Linux系统中,路径之间的层级关系 使用 / 开头表示根目录,后面的表示层级关系 Linux命令入门 Linux命令基础 Linux命令通用格式 comman…...
通过多线程分别获取高分辨率和低分辨率的H264码流
目录 一.RV1126 VI采集摄像头数据并同时获取高分辨率码流和低分辨率码流流程 编辑 1.1初始化VI模块: 1.2初始化RGA模块: 1.3初始化高分辨率VENC编码器、 低分辨率VENC编码器: 1.4 VI绑定高分辨率VENC编码器,VI绑定RGA模块…...
【前端】在WebStorm中安装Node.js与nvm与npm的详细过程
文章目录 一、Node.js安装二、nvm安装三、验证安装成功总结 一、Node.js安装 首先到node.js官网下载安装文件。 https://nodejs.org/zh-cn 直接运行安装文件进行安装: 跳过继续安装: 完成安装: 完成后的安装路径: 环境变量的…...
飞书考勤Excel导入到自己系统
此篇主要用于记录Excel一行中,单条数据的日期拿取,并判断上下班打卡情况。代码可能满足不了大部分需求,目前只够本公司用,如果需要,可以参考。 需要把飞书月度汇总的考勤表导入系统中可以参考下。 下图为需要获取的年…...
Android Flow 示例
在Android开发的世界里,处理异步数据流一直是一个挑战。随着Kotlin的流行,Flow作为Kotlin协程库的一部分,为开发者提供了一种全新的方式来处理这些问题。今天,我将深入探讨Flow的设计理念,并通过具体的例子展示如何在实…...
vue videojs使用canvas截取视频画面
前言 刚开始做的时候太多坑,导致一直报错: Uncaught (in promise) TypeError: Failed to execute ‘drawImage’ on ‘CanvasRenderingContext2D’: The provided value is not of type ‘(CSSImageValue or HTMLCanvasElement or HTMLImageElement or H…...
Android 获取jks的SHA1值:java.io.IOException: Invalid keystore format
命令生成 keytool -list -v -keystore 全路径.jks -alias 别名 -storepass 密码 -keypass 密码 1、遇到 的问题: 通过快捷键 ‘win r’ 启动的小黑框运行上面的命令会出现下面这个错误keytool 错误: java.io.IOException: Invalid keystore format 2、解决问题 …...
CMake学习-生成库文件来链接生成可执行文件
生成库文件的目的就是为了复用代码与功能有一个Complex类,正常会与main.cpp一起经过.o的编译过程后,生成可执行文件demo但如果想要复用Complex类,就需要将其编译为一个库,main.cpp在运行时链接这个库 生成库文件: gcc …...
Vue 3 中 unref 的作用与 Vue Router currentRoute 的知识
目录 前言1. unref2. Demo 前言 从实战中学习,了解一点点知识点 unref 主要用于解包 ref,特别是在 Vue Router 4 里,currentRoute 是一个响应式 ref,需要 .value 或 unref 来访问具体字段 1. unref unref 是 Vue 3 提供的工具函…...
YOLOv12:目标检测新时代的破局者
目录 一、YOLOv12 横空出世二、YOLOv12 的性能飞跃2.1 多规模优势2.2 对比超越 三、技术创新与原理剖析3.1 区域注意力模块(Area Attention,A2)3.2 残差高效层聚合网络(R-ELAN)3.3 架构优化细节 四、实验验证与结果分析…...
网络安全法与等级保护 PPT 精华汇总
资源描述 本资源文件为《网络安全法与等级保护》的PPT精华汇总,内容涵盖了网络安全法与等级保护的总体框架及相关标准规范。该PPT详细介绍了网络安全法与等级保护的各个章节和条款,并提供了基础类和应用类的相关标准文件,帮助读者全面了解和…...
coze生成的工作流,发布后,利用cmd命令行执行。可以定时发日报,周报等。让他总结你飞书里面的表格。都可以
coze生成的工作流,发布后,利用cmd命令行执行。可以定时发日报,周报等。让他总结你飞书里面的表格。都可以。 很简单。 准备工作,先发布你的工作流,和发布应用。 然后,点击扣子API 。 申请一个࿰…...
K8S学习之基础六:k8s中pod亲和性
Pod节点亲和性和反亲和性 podaffinity:pod节点亲和性指的是pod会被调度到更趋近与哪个pod或哪类pod。 podunaffinity:pod节点反亲和性指的是pod会被调度到远离哪个pod或哪类pod 1. Pod节点亲和性 requiredDuringSchedulingIgnoredDuringExecution&am…...
从统计学视角看机器学习的训练与推理
从统计学视角看机器学习的训练与推理 目录 引言:统计学与机器学习的奇妙缘分训练与推理:你得先学会“看数据”再“用数据”最大似然估计(MLE):从直觉到数学证明 3.1 伯努利分布的MLE3.2 单变量高斯分布的MLE3.3 多元…...
《论数据分片技术及其应用》审题技巧 - 系统架构设计师
论数据分片技术及其应用写作框架 一、考点概述 本论题“论数据分片技术及其应用”主要考察的是软件工程中数据分片技术的理解、应用及其实际效果分析。考点涵盖以下几个方面: 首先,考生需对数据分片的基本概念有清晰的认识,理解数据分片是…...
【鸿蒙Next】鸿蒙与flutter使用自定义iconfont的ttf字体库对比总结
ttf的iconfont库如何获取 1、自己创建 第一步、 iconfont-阿里巴巴矢量图标库 打开网址 第二步、搜索自己的需要的图标、并且加购到购物车 第三步、点击购物车,添加至项目 第四步、添加至项目或者新建项目再添加 第五步、下载至本地 就得到了ttf文件 2、设计…...
Redis实战篇《黑马点评》8 附近商铺
8.附近商户 8.1GEO数据结构的基本用法 GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据,常见的命令有 GEOADD:添加一个地理空间…...
【大厂AI实践】美团:美团智能客服核心技术与实践
【大厂AI实践】美团:美团智能客服核心技术与实践 🌟 嗨,你好,我是 青松 ! 🌈 自小刺头深草里,而今渐觉出蓬蒿。 NLP Github 项目推荐: 【AI 藏经阁】:https://gitee.com…...
标签的ref属性 vue中为什么不用id标记标签
标签的ref属性 vue中为什么不用id标记标签 假设有一对父子组件,如果父组件和子组件中存在id相同的标签,会产生冲突。通过id获取标签会获取到先加载那个标签。 标签的ref属性的用法 在父组件App中,引入了子组件Person。 并使用ref标记了Pe…...
期权帮|股指期货3月合约交割该如何做?
锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 股指期货3月合约交割该如何做? 股指期货的交割日通常是合约到期月份的第三个星期五。 对于3月合约,若当月无特殊节假日,交割日就是3月的第三…...
Collab-Overcooked:专注于多智能体协作的语言模型基准测试平台
2025-02-27,由北京邮电大学和理想汽车公司联合创建。该平台基于《Overcooked-AI》游戏环境,设计了更具挑战性和实用性的交互任务,目的通过自然语言沟通促进多智能体协作。 一、研究背景 近年来,基于大型语言模型的智能体系统在复…...
[Computer Vision]实验七:图像检索
目录 一、实验内容 二、实验过程 2.1 准备数据集 2.2 SIFT特征提取 2.3 学习“视觉词典”(vision vocabulary) 2.4 建立图像索引并保存到数据库中 2.5 用一幅图像查询 三、实验小结 一、实验内容 实现基于颜色直方图、bag of word等方法的以图搜…...
访问控制列表(ACL)思科、华为
访问控制列表(ACL) 一、ACL的基本概念 随着网络的飞速发展,网络安全和网络服务质量QoS(Quality of Service)问题日益突出。 企业重要服务器资源被随意访问,企业机密信息容易泄露,造成安全隐患。…...
linux磁盘满了怎么安全删除文件
df -h 通过df -h /dir 查看被占满的目录,dir替换为你的文件目录 du -sh * 进入被占满的目录,执行 du -sh * ,查看哪些文件占的磁盘大 查看占用磁盘最大的文件 du -sh * | sort -rh | head -n N N通常可以设置为10 有的docker容器文件太…...
2025国家护网HVV高频面试题总结来了04(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 一、HVV行动面试题分类 根据面试题的内容,我们将其分为以下几类: 漏洞利用与攻击技术 …...
jenkins使用插件在Build History打印基本信息
1、插件安装 分别是description setter plugin插件和user build vars插件,下面介绍一下这两个插件: description setter plugin:作用是在 Build 栏下方增加一个功能块,用于填写自定义信息,也就是 Build history 中需要显示的文字…...
线程池的工作流程
线程池的工作流程主要包括任务提交、线程分配、任务执行和线程回收等环节,以下是对其详细的描述: 任务提交 当有任务需要执行时,用户通过线程池提供的提交方法,如execute()或submit()方法,将任务(通常是实现…...
《深度学习实战》第4集:Transformer 架构与自然语言处理(NLP)
《深度学习实战》第4集:Transformer 架构与自然语言处理(NLP) 在自然语言处理(NLP)领域,Transformer 架构的出现彻底改变了传统的序列建模方法。它不仅成为现代 NLP 的核心,还推动了诸如 BERT、…...
vue下载插件
1.下载路由组件 npm i vue-router2.创建router文件夹 3.创建router.js文件 import {createRouter, createWebHistory} from "vue-router"let router createRouter({history: createWebHistory(),routes: [{path: "/",component: () > import(".…...
两周学习安排
日常安排 白天 看 MySQL实战45讲,每日一讲 看 图解设计模式 每天1-2道力扣算法题(难度中等以上) 每天复习昨天的单词,记20个单词,写一篇阅读 晚上 写服创项目 每日产出 MySQL实战45讲 读书笔记 设计模式 读书笔…...
蓝桥与力扣刷题(蓝桥 k倍区间)
题目:给定一个长度为 N 的数列,A1,A2,⋯AN,如果其中一段连续的子序列 Ai,Ai1,⋯Aj( i≤j ) 之和是 K 的倍数,我们就称这个区间[i,j] 是 K 倍区间。 你能求出数列中总共有多少个 K 倍区间吗? 输入描述 第一行包含两…...
Spring项目-抽奖系统(实操项目-用户管理接口)(END)
^__^ (oo)\______ (__)\ )\/\ ||----w | || || 一:前言: 活动创建及展示博客链接:Spring项目-抽奖系统(实操项目-用户管理接口)(THREE)-CSDN博客 上一次完成了活动的创建和活动的展示,接下来就是重头戏—…...
5个GitHub热点开源项目!!
1.自托管 Moonlight 游戏串流服务:Sunshine 主语言:C,Star:14.4k,周增长:500 这是一个自托管的 Moonlight 游戏串流服务器端项目,支持所有 Moonlight 客户端。用户可以在自己电脑上搭建一个游戏…...
数据结构:二叉搜索树(排序树)
1.二叉搜索树的定义 二叉搜索树要么是空树,要么是满足以下特性的树 (1)左子树不为空,那么左子树左右节点的值都小于根节点的值 (2)右子树不为空,那么右子树左右节点的值都大于根节点的值 &#…...
JavaEE--计算机是如何工作的
一、一台计算机的组成部分 1.CPU(中央处理器) 2.主板(一个大插座) 3.内存(存储数据的主要模板) 4.硬盘(存储数据的主要模板) 内存和硬盘对比: 内存硬盘读写速度快慢存…...