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

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
简介: 基于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
目录
相关文章
|
4天前
|
人工智能 前端开发 机器人
10+热门 AI Agent 框架深度解析:谁更适合你的项目?
选型Agent框架不等于追热门!要选真正能跑得稳、适配团队能力与业务需求的框架。架构选错,轻则性能差,重则项目难推进。本文详解10大热门框架对比、5大新兴框架推荐及四步选型法,助你高效落地AI应用。
|
4天前
|
人工智能 弹性计算 API
再不玩通义 VACE 模型你就过时了!一个模型搞定所有视频任务
介绍通义的开源模型在 ecs 或 acs 场景如何一键部署和使用,如何解决不同视频生成场景的问题。
|
11天前
|
人工智能 自然语言处理 vr&ar
通义首个音频生成模型 ThinkSound 开源,你的专业音效师
通义实验室推出首个音频生成模型ThinkSound,突破传统视频到音频生成技术局限,首次将思维链(CoT)应用于音频生成领域,实现高保真、强同步的空间音频生成。基于自研AudioCoT数据集,结合多模态大语言模型与统一音频生成模型,支持交互式编辑,显著提升音画匹配度与时序一致性。代码已开源,助力游戏、VR、AR等场景创新应用。
347 3
|
15天前
|
人工智能 自然语言处理 物联网
Jina Embeddings V4: 为搜索而生,多模态多语言向量模型
近日,Jina AI 正式发布 jina-embeddings-v4,一款全新的多模态向量模型,参数规模达到 38 亿,并首次实现了对文本与图像的同步处理。
81 2
|
3天前
|
JSON 算法 安全
1688图片搜索逆向工程与多模态搜索融合实践——基于CLIP模型的特征向
本文介绍了通过逆向工程分析实现图片搜索的技术方案,包括请求特征捕获、签名算法破解及多模态搜索的实现。利用CLIP模型提取图像特征,并结合Faiss优化相似度计算,提升搜索效率。最后提供完整调用示例,模拟实现非官方API的图片搜索功能。
|
25天前
|
自然语言处理 Rust Java
通义灵码编程智能体深度评测(Qwen3模型+终端操作+MCP工具调用实战)
通义灵码作为阿里云推出的智能编程解决方案,凭借Qwen3模型与MCP平台的协同,在代码生成、终端操作与工具链调用方面展现强大能力。本文从真实开发场景出发,评测其在多语言代码理解、自动化工作流及复杂工程任务中的表现,结合性能与成本数据,揭示其在提升开发效率与系统集成方面的工程价值。
|
7天前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
30 0

热门文章

最新文章