基于neo4j数据库和dify大模型框架的rag模型搭建——后续补充

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,1000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 基于neo4j数据库和dify大模型框架的rag模型搭建——后续补充

后续补充

今天想起来写报告的时候突然发现项目起不来了,一查才发现原来hugging face一直是被ban的,所以在import 模型之前就要先换源。(昨天梯子发力了我说,这都能跑起来)

import os
# 在导入 SentenceTransformer 之前设置环境变量
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'

from fastapi import Body, FastAPI, HTTPException
from pydantic import BaseModel
from sentence_transformers import SentenceTransformer, CrossEncoder
from neo4j import GraphDatabase
from neo4j.exceptions import Neo4jError
import uvicorn

然后又发现报告里的检测评估居然是强制要求,所以只能跑个评测集了😭😭😭。

rag评估

虽然有搜索到开源的评估方法,比如RAGAS,但是发现这个是要有标准答案的。我哪知道标准答案是啥,所以就废弃这个选项吧,只看看跑出来的答案有没有个人样就好了。

所以以下内容大部分是关于如何调用dify的api在后端运行工作流以及其中的一些坑点。

ragas评估时所需的数据结构如下

data = {
    "question": ["问题1", "问题2", ...],
    "answer": ["生成的答案1", "生成的答案2", ...],
    "contexts": [["检索到的文档1", "文档2"], ["检索到的文档1", "文档2"], ...],
    "ground_truth": ["标准答案1", "标准答案2", ...]
}

当然我不是按照这个来的,正如我之前所说,我根本没有标准答案,不过我发现其他的都是可以得到的。

数据生成

首先使用ai生成100个问题,别管对不对了,总不能手写100个问题吧。

然后调用dify的后端进行工作流调用,关于调用的细节在api文档中已经给出,范例如下:

test_datas = []
headers = {
    "Authorization": "Bearer {API KEY}",
    "Content-Type": "application/json"
}
jsondata = {
    "inputs": {"input": question},
    "response_mode": "blocking",
    "user": username
}
re = requests.post('http://192.168.35.129/v1/workflows/run',headers=headers,json=jsondata)
response_data = json.loads(re.text)

API KEY是用于识别工作流的,通过这个接口就可以在python代码中运行工作流而不是通过web端。如果不想通过python也可以发布工作流之后批量运行工作流。但是我没试过。

从提前准备好的问题文件中读取问题,然后调用dify的api执行,执行完成之后再输入文件,就可以得到所有问题的答案,而检索到的文档可以在调用之前封装的http的api的过程中也输入文件,这样一来,最后再合并成一个文件,就可以得到只缺少标准答案的文件了😊😊😊🍾🍾🍾

image-20250526214117344.png

具体代码如上,毫无技术可见的request,但是需要注意的是,最好每次执行循环就把返回包保存一次,不然如果中途崩了就会发现白跑了半个小时。

数据分析

由于没有标准答案,所以只是计算了一下答案的平均查询时间和平均长度,没有对rag模型作量化的评估,有待补充。虽然我肯定是懒得再做了。

源代码

评测集的问题和答案都已经更新到仓库中。

https://github.com/zx2023qj/rag_model
目录
相关文章
|
1月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
1月前
|
人工智能 自然语言处理 数据库
RAG:打破大模型的知识壁垒
RAG:打破大模型的知识壁垒
267 113
|
1月前
|
人工智能 搜索推荐 程序员
当AI学会“跨界思考”:多模态模型如何重塑人工智能
当AI学会“跨界思考”:多模态模型如何重塑人工智能
253 120
|
30天前
|
人工智能 安全 开发工具
C3仓库AI代码门禁通用实践:基于Qwen3-Coder+RAG的代码评审
本文介绍基于Qwen3-Coder、RAG与Iflow在C3级代码仓库落地LLM代码评审的实践,实现AI辅助人工评审。通过CI流水线自动触发,结合私域知识库与生产代码同仓管理,已成功拦截数十次高危缺陷,显著提升评审效率与质量,具备向各类代码门禁平台复用推广的价值。(239字)
346 24
|
1月前
|
缓存 物联网 PyTorch
使用TensorRT LLM构建和运行Qwen模型
本文档介绍如何在单GPU和单节点多GPU上使用TensorRT LLM构建和运行Qwen模型,涵盖模型转换、引擎构建、量化推理及LoRA微调等操作,并提供详细的代码示例与支持矩阵。
349 2
|
1月前
|
缓存 API 调度
70_大模型服务部署技术对比:从框架到推理引擎
在2025年的大模型生态中,高效的服务部署技术已成为连接模型能力与实际应用的关键桥梁。随着大模型参数规模的不断扩大和应用场景的日益复杂,如何在有限的硬件资源下实现高性能、低延迟的推理服务,成为了所有大模型应用开发者面临的核心挑战。
|
1月前
|
存储 机器学习/深度学习 人工智能
54_模型优化:大模型的压缩与量化
随着大型语言模型(LLM)的快速发展,模型规模呈指数级增长,从最初的数亿参数到如今的数千亿甚至万亿参数。这种规模扩张带来了惊人的能源消耗和训练成本,同时也给部署和推理带来了巨大挑战。2025年,大模型的"瘦身"已成为行业发展的必然趋势。本文将深入剖析大模型压缩与量化的核心技术、最新进展及工程实践,探讨如何通过创新技术让大模型在保持高性能的同时实现轻量化部署,为企业和开发者提供全面的技术指导。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
38_多模态模型:CLIP的视觉-语言对齐_深度解析
想象一下,当你看到一张小狗在草地上奔跑的图片时,你的大脑立刻就能将视觉信息与"小狗"、"草地"、"奔跑"等概念联系起来。这种跨模态的理解能力对于人类来说似乎是理所当然的,但对于人工智能系统而言,实现这种能力却经历了长期的技术挑战。多模态学习的出现,标志着AI从单一模态处理向更接近人类认知方式的综合信息处理迈出了关键一步。
|
2月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
126 3