文章

lightRAG知识图谱使用和工作流集成

lightRAG知识图谱使用和工作流集成

lightRAG知识图谱使用和工作流集成

lightRAG简介

LightRAG,知识图谱,简单且快速的检索增强生成(RAG)框架。

lightRAG部署

没有提供配置用的UI界面,所有配置都位于.env文件内。

docker部署

1
2
3
4
5
git clone https://github.com/HKUDS/LightRAG.git
cd LightRAG
cp env.example .env  # 使用你的LLM和Embedding模型访问参数更新.env文件
# modify LLM and Embedding settings in .env
docker compose up

docker compose配置参考,为LightRAG配置嵌入模型。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
services:
  lightrag:
    container_name: lightrag
    image: ghcr.io/hkuds/lightrag:latest
    build:
      context: .
      dockerfile: Dockerfile
      tags:
        - ghcr.io/hkuds/lightrag:latest
    ports:
      - "${PORT:-9621}:9621"
    volumes:
      - ./data/rag_storage:/app/data/rag_storage
      - ./data/inputs:/app/data/inputs
      - ./config.ini:/app/config.ini
      - ./.env:/app/.env
    env_file:
      - .env
    restart: unless-stopped
    extra_hosts:
      - "host.docker.internal:host-gateway"
    networks:
      - lightrag_net

  lightrag-m3e:
    container_name: lightrag-m3e
    image: stawky/m3e-large-api:latest
    restart: always
    ports:
      - 23338:6008
    networks:
      - lightrag_net

networks:
  lightrag_net:
    driver: bridge

模型接入配置

.env文件内配置和接入LLM模型、嵌入模型。

## LLM模型接入配置
LLM_BINDING=openai
LLM_MODEL=deepseek-chat
LLM_BINDING_HOST=https://api.deepseek.com/v1
LLM_BINDING_API_KEY=XXX

## 本地嵌入模型配置。使用docker compose内的嵌入模型容器id,使用openai协议方式接口访问
## 注意EMBEDDING_DIM向量维数配置,不同嵌入模型的维数不同,否则会报错
EMBEDDING_BINDING=openai
EMBEDDING_MODEL=m3e
EMBEDDING_DIM=1536
EMBEDDING_SEND_DIM=false
EMBEDDING_TOKEN_LIMIT=8192
EMBEDDING_BINDING_HOST=http://lightrag-m3e:6008/v1
EMBEDDING_BINDING_API_KEY=sk-aaabbbcccdddeeefffggghhhiiijjjkkk

lightRAG使用

  • 可视化界面 浏览器访问http://ip:9621/webui/
  • 节点编辑 界面不支持对节点编辑,增加删除边的连线关系,需要接口调用方式。
  • 对话 需要在右侧参数的附加输出提示词栏位添加提升词。在webui上返回的对话,不支持返回携带引用文档块id,想要的话需要使用/query/data接口查看。

lightRAG外挂集成到工作流

多知识库分区

按业务划分多个子知识库,实现更精准的知识检索。

  • 使用lightRAG workspace工作区概念划分文档。
  • 部署多lightRAG实例隔离。

工作流内引用集成

在工作流节点,使用/query/data接口。只返回检索到的知识数据和引用信息,不提交给LLM生成对话。
接口入参示例

1
2
3
4
5
6
7
8
{
  "query": "物资装备保障和附件",
  "mode": "local",
  "only_need_context": true,
  "only_need_prompt": true,
  "include_references": true,
  "include_chunk_content": false
}

接口响应示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
{
    "status": "success",
    "message": "Query processed successfully",
    "data": {
        "entities": [
            {
                "entity_name": "附件",
                "entity_type": "content",
                "description": "预案的组成部分,包含生产经营单位概况、风险评估报告、联系方式、物资清单、图纸等相关支持性文件。",
                "source_id": "chunk-108b5536a7630c66fcd6de0668657ef4",
                "file_path": "XX预案.docx",
                "created_at": 1765363693
            }
        ],
        "relationships": [
            {
                "src_id": "XX公司",
                "tgt_id": "设备厂家",
                "description": "设备厂家作为外部单位,可为公司提供应急时的技术保障。",
                "keywords": "技术支持,设备供应",
                "weight": 1.0,
                "source_id": "chunk-108b5536a7630c66fcd6de0668657ef4",
                "file_path": "XX预案.docx",
                "created_at": 1765363869
            }
        ],
        "chunks": [
            {
                "reference_id": "1",
                "content": "XXX内容",
                "file_path": "XX预案.docx",
                "chunk_id": "chunk-1bae37cfbc3f6719217a5c5a12ebf8ea"
            }
        ],
        "references": [
            {
                "reference_id": "1",
                "file_path": "XX预案.docx"
            }
        ]
    },
    "metadata": {
        "query_mode": "local",
        "keywords": {
            "high_level": [
                "物资装备保障",
                "后勤管理",
                "装备支援"
            ],
            "low_level": [
                "附件",
                "配件",
                "备件"
            ]
        },
        "processing_info": {
            "total_entities_found": 40,
            "total_relations_found": 48,
            "entities_after_truncation": 40,
            "relations_after_truncation": 48,
            "merged_chunks_count": 10,
            "final_chunks_count": 10
        }
    }
}

获取到数据后,需要改造原有的/getQuoteData等引用回显预览接口,如在块id前缀附加lightRAG标记,后端api根据id标识自动适配是本知识库的还是外挂的lightRAG图谱数据来返回对应文档块内容。

本文由作者按照 CC BY 4.0 进行授权