borges-graph / nano-graphrag /docs /benchmark-dspy-entity-extraction.md
ArthurSrz's picture
feat: Add complete nano-graphrag source code
70ab3b6

A newer version of the Gradio SDK is available: 6.13.0

Upgrade

Chain Of Thought Prompting with DSPy-AI (v2.4.16)

Main Takeaways

  • Time difference: 156.99 seconds
  • Execution time with DSPy-AI: 304.38 seconds
  • Execution time without DSPy-AI: 147.39 seconds
  • Entities extracted: 22 (without DSPy-AI) vs 37 (with DSPy-AI)
  • Relationships extracted: 21 (without DSPy-AI) vs 36 (with DSPy-AI)

Results

> python examples/benchmarks/dspy_entity.py

Running benchmark with DSPy-AI:
INFO:httpx:HTTP Request: POST https://api.deepseek.com/chat/completions "HTTP/1.1 200 OK"
INFO:httpx:HTTP Request: POST https://api.deepseek.com/chat/completions "HTTP/1.1 200 OK"
INFO:httpx:HTTP Request: POST https://api.deepseek.com/chat/completions "HTTP/1.1 200 OK"
DEBUG:nano-graphrag:Entities: 14 | Missed Entities: 23 | Total Entities: 37
DEBUG:nano-graphrag:Relationships: 13 | Missed Relationships: 23 | Total Relationships: 36
DEBUG:nano-graphrag:Direct Relationships: 31 | Second-order: 5 | Third-order: 0 | Total Relationships: 36
⠙ Processed 1 chunks, 37 entities(duplicated), 36 relations(duplicated)
Execution time with DSPy-AI: 304.38 seconds

Entities:
- 朱元璋 (PERSON):
  明朝开国皇帝,原名朱重八,后改名朱元璋。他出身贫农,经历了从放牛娃到皇帝的传奇人生。在元朝末年,他参加了红巾军起义,最终推翻元朝,建立了明朝。
- 朱五四 (PERSON):
  朱元璋的父亲,农民出身,家境贫寒。他在朱元璋幼年时去世,对朱元璋的成长和人生选择产生了深远影响。
- 陈氏 (PERSON):
  朱元璋的母亲,农民出身,家境贫寒。她在朱元璋幼年时去世,对朱元璋的成长和人生选择产生了深远影响。
- 汤和 (PERSON):
  朱元璋的幼年朋友,后来成为朱元璋起义军中的重要将领。他在朱元璋早期的发展中起到了关键作用。
- 郭子兴 (PERSON):
  红巾军起义的领导人之一,朱元璋的岳父。他在朱元璋早期的发展中起到了重要作用,但后来与朱元璋产生了矛盾。
- 马姑娘 (PERSON):
  郭子兴的义女,朱元璋的妻子。她在朱元璋最困难的时候给予了极大的支持,是朱元璋成功的重要因素之一。
- 元朝 (ORGANIZATION):
  中国历史上的一个朝代,由蒙古族建立。元朝末年,社会矛盾激化,最终导致了红巾军起义和明朝的建立。
- 红巾军 (ORGANIZATION):
  元朝末年起义军的一支,主要由农民组成。朱元璋最初加入的就是红巾军,并在其中逐渐崭露头角。
- 皇觉寺 (LOCATION):
  朱元璋早年出家的地方,位于安徽凤阳。他在寺庙中度过了几年的时光,这段经历对他的人生观和价值观产生了深远影响。
- 濠州 (LOCATION):
  朱元璋早期活动的重要地点,也是红巾军的重要据点之一。朱元璋在这里经历了许多重要事件,包括与郭子兴的矛盾和最终的离开。
- 1328年 (DATE):
  朱元璋出生的年份。这一年标志着明朝开国皇帝传奇人生的开始。
- 1344年 (DATE):
  朱元璋家庭遭遇重大变故的年份,他的父母在这一年相继去世。这一事件对朱元璋的人生选择产生了深远影响。
- 1352年 (DATE):
  朱元璋正式加入红巾军起义的年份。这一年标志着朱元璋从农民到起义军领袖的转变。
- 1368年 (DATE):
  朱元璋推翻元朝,建立明朝的年份。这一年标志着朱元璋从起义军领袖到皇帝的转变。
- 朱百六 (PERSON):
  朱元璋的高祖,名字具有元朝时期老百姓命名的特点,即以数字命名。
- 朱四九 (PERSON):
  朱元璋的曾祖,名字同样具有元朝时期老百姓命名的特点,即以数字命名。
- 朱初一 (PERSON):
  朱元璋的祖父,名字具有元朝时期老百姓命名的特点,即以数字命名。
- 刘德 (PERSON):
  朱元璋早年为其放牛的地主,对朱元璋的童年生活有重要影响。
- 韩山童 (PERSON):
  红巾军起义的早期领导人之一,与刘福通共同起义,对朱元璋的起义选择有间接影响。
- 刘福通 (PERSON):
  红巾军起义的早期领导人之一,与韩山童共同起义,对朱元璋的起义选择有间接影响。
- 脱脱 (PERSON):
  元朝末年的著名宰相,主张治理黄河,但他的政策间接导致了红巾军起义的爆发。
- 元顺帝 (PERSON):
  元朝末代皇帝,他在位期间元朝社会矛盾激化,最终导致了红巾军起义和明朝的建立。
- 孙德崖 (PERSON):
  红巾军起义的领导人之一,与郭子兴有矛盾,曾绑架郭子兴,对朱元璋的早期发展有重要影响。
- 周德兴 (PERSON):
  朱元璋的早期朋友,曾为朱元璋算卦,对朱元璋的人生选择有一定影响。
- 徐达 (PERSON):
  朱元璋早期的重要将领,后来成为明朝的开国功臣之一。
- 明教 (RELIGION):
  朱元璋在起义过程中接触到的宗教信仰,对他的思想和行动有一定影响。
- 弥勒佛 (RELIGION):
  明教中的重要神祇,朱元璋相信弥勒佛会降世,对他的信仰和行动有一定影响。
- 颖州 (LOCATION):
  朱元璋早年讨饭的地方,也是红巾军起义的重要地点之一。
- 定远 (LOCATION):
  朱元璋早期攻打的地点之一,是他军事生涯的起点。
- 怀远 (LOCATION):
  朱元璋早期攻打的地点之一,是他军事生涯的起点。
- 安奉 (LOCATION):
  朱元璋早期攻打的地点之一,是他军事生涯的起点。
- 含山 (LOCATION):
  朱元璋早期攻打的地点之一,是他军事生涯的起点。
- 虹县 (LOCATION):
  朱元璋早期攻打的地点之一,是他军事生涯的起点。
- 钟离 (LOCATION):
  朱元璋的家乡,他在此地召集了二十四位重要将领。
- 黄河 (LOCATION):
  元朝末年黄河泛滥,导致了严重的社会问题,间接引发了红巾军起义。
- 淮河 (LOCATION):
  元朝末年淮河沿岸遭遇严重瘟疫和旱灾,加剧了社会矛盾。
- 1351年 (DATE):
  红巾军起义爆发的年份,对朱元璋的人生选择产生了重要影响。

Relationships:
- 朱元璋 -> 朱五四:
  朱元璋是朱五四的儿子,朱五四的去世对朱元璋的成长和人生选择产生了深远影响。
- 朱元璋 -> 陈氏:
  朱元璋是陈氏的儿子,陈氏的去世对朱元璋的成长和人生选择产生了深远影响。
- 朱元璋 -> 汤和:
  汤和是朱元璋的幼年朋友,后来成为朱元璋起义军中的重要将领,对朱元璋早期的发展起到了关键作用。
- 朱元璋 -> 郭子兴:
  郭子兴是朱元璋的岳父,也是红巾军起义的领导人之一。他在朱元璋早期的发展中起到了重要作用,但后来与朱元璋产生了矛盾。
- 朱元璋 -> 马姑娘:
  马姑娘是朱元璋的妻子,她在朱元璋最困难的时候给予了极大的支持,是朱元璋成功的重要因素之一。
- 朱元璋 -> 元朝:
  朱元璋在元朝末年参加了红巾军起义,最终推翻了元朝,建立了明朝。
- 朱元璋 -> 红巾军:
  朱元璋最初加入的是红巾军,并在其中逐渐崭露头角,最终成为起义军的重要领导人。
- 朱元璋 -> 皇觉寺:
  朱元璋早年出家的地方是皇觉寺,这段经历对他的人生观和价值观产生了深远影响。
- 朱元璋 -> 濠州:
  濠州是朱元璋早期活动的重要地点,也是红巾军的重要据点之一。朱元璋在这里经历了许多重要事件,包括与郭子兴的矛盾和最终的离开。
- 朱元璋 -> 1328年:
  1328年是朱元璋出生的年份,这一年标志着明朝开国皇帝传奇人生的开始。
- 朱元璋 -> 1344年:
  1344年是朱元璋家庭遭遇重大变故的年份,他的父母在这一年相继去世,这一事件对朱元璋的人生选择产生了深远影响。
- 朱元璋 -> 1352年:
  1352年是朱元璋正式加入红巾军起义的年份,这一年标志着朱元璋从农民到起义军领袖的转变。
- 朱元璋 -> 1368年:
  1368年是朱元璋推翻元朝,建立明朝的年份,这一年标志着朱元璋从起义军领袖到皇帝的转变。
- 朱元璋 -> 朱百六:
  朱百六是朱元璋的高祖,对朱元璋的家族背景有重要影响。
- 朱元璋 -> 朱四九:
  朱四九是朱元璋的曾祖,对朱元璋的家族背景有重要影响。
- 朱元璋 -> 朱初一:
  朱初一是朱元璋的祖父,对朱元璋的家族背景有重要影响。
- 朱元璋 -> 刘德:
  刘德是朱元璋早年为其放牛的地主,对朱元璋的童年生活有重要影响。
- 朱元璋 -> 韩山童:
  韩山童是红巾军起义的早期领导人之一,对朱元璋的起义选择有间接影响。
- 朱元璋 -> 刘福通:
  刘福通是红巾军起义的早期领导人之一,对朱元璋的起义选择有间接影响。
- 朱元璋 -> 脱脱:
  脱脱是元朝末年的著名宰相,他的政策间接导致了红巾军起义的爆发,对朱元璋的起义选择有间接影响。
- 朱元璋 -> 元顺帝:
  元顺帝是元朝末代皇帝,他在位期间社会矛盾激化,最终导致了红巾军起义和明朝的建立,对朱元璋的起义选择有重要影响。
- 朱元璋 -> 孙德崖:
  孙德崖是红巾军起义的领导人之一,与郭子兴有矛盾,曾绑架郭子兴,对朱元璋的早期发展有重要影响。
- 朱元璋 -> 周德兴:
  周德兴是朱元璋的早期朋友,曾为朱元璋算卦,对朱元璋的人生选择有一定影响。
- 朱元璋 -> 徐达:
  徐达是朱元璋早期的重要将领,后来成为明朝的开国功臣之一,对朱元璋的军事生涯有重要影响。
- 朱元璋 -> 明教:
  朱元璋在起义过程中接触到的宗教信仰,对他的思想和行动有一定影响。
- 朱元璋 -> 弥勒佛:
  朱元璋相信弥勒佛会降世,对他的信仰和行动有一定影响。
- 朱元璋 -> 颖州:
  颖州是朱元璋早年讨饭的地方,也是红巾军起义的重要地点之一,对朱元璋的早期生活有重要影响。
- 朱元璋 -> 定远:
  定远是朱元璋早期攻打的地点之一,是他军事生涯的起点,对朱元璋的军事发展有重要影响。
- 朱元璋 -> 怀远:
  怀远是朱元璋早期攻打的地点之一,是他军事生涯的起点,对朱元璋的军事发展有重要影响。
- 朱元璋 -> 安奉:
  安奉是朱元璋早期攻打的地点之一,是他军事生涯的起点,对朱元璋的军事发展有重要影响。
- 朱元璋 -> 含山:
  含山是朱元璋早期攻打的地点之一,是他军事生涯的起点,对朱元璋的军事发展有重要影响。
- 朱元璋 -> 虹县:
  虹县是朱元璋早期攻打的地点之一,是他军事生涯的起点,对朱元璋的军事发展有重要影响。
- 朱元璋 -> 钟离:
  钟离是朱元璋的家乡,他在此地召集了二十四位重要将领,对朱元璋的军事发展有重要影响。
- 朱元璋 -> 黄河:
  元朝末年黄河泛滥,导致了严重的社会问题,间接引发了红巾军起义,对朱元璋的起义选择有重要影响。
- 朱元璋 -> 淮河:
  元朝末年淮河沿岸遭遇严重瘟疫和旱灾,加剧了社会矛盾,对朱元璋的起义选择有重要影响。
- 朱元璋 -> 1351年:
  1351年是红巾军起义爆发的年份,对朱元璋的人生选择产生了重要影响。
Running benchmark without DSPy-AI:
INFO:httpx:HTTP Request: POST https://api.deepseek.com/chat/completions "HTTP/1.1 200 OK"
INFO:httpx:HTTP Request: POST https://api.deepseek.com/chat/completions "HTTP/1.1 200 OK"
⠙ Processed 1 chunks, 22 entities(duplicated), 21 relations(duplicated)
Execution time without DSPy-AI: 147.39 seconds

Entities:
- "朱元璋" ("PERSON"):
  "朱元璋,原名朱重八,后改名朱元璋,是明朝的开国皇帝。他出身贫农,经历了从放牛娃到和尚,再到起义军领袖,最终成为皇帝的传奇人生。"
- "朱五四" ("PERSON"):
  "朱五四,朱元璋的父亲,是一个农民,为地主种地,家境贫寒。"
- "陈氏" ("PERSON"):
  "陈氏,朱元璋的母亲,是一个农民,与丈夫朱五四一起辛勤劳作,家境贫寒。"
- "汤和" ("PERSON"):
  "汤和,朱元璋的幼年朋友,后来成为朱元璋的战友,在朱元璋的崛起过程中起到了重要作用。"
- "郭子兴" ("PERSON"):
  "郭子兴,濠州城的守卫者,是朱元璋的岳父,也是朱元璋早期的重要支持者。"
- "韩山童" ("PERSON"):
  "韩山童,与刘福通一起起义反抗元朝统治,是元末农民起义的重要领袖之一。"<SEP>"韩山童,元末农民起义的领袖之一,自称宋朝皇室后裔,与刘福通一起起义。"
- "刘福通" ("PERSON"):
  "刘福通,与韩山童一起起义反抗元朝统治,是元末农民起义的重要领袖之一。"<SEP>"刘福通,元末农民起义的领袖之一,自称刘光世大将的后人,与韩山童一起起义。"
- "元朝" ("ORGANIZATION"):
  "元朝,由蒙古族建立的王朝,统治中国时期实行了严格的等级制度,导致社会矛盾激化,最终被朱元璋领导的起义军推翻。"
- "皇觉寺" ("ORGANIZATION"):
  "皇觉寺,朱元璋曾经在此当和尚,从事杂役工作,后来因饥荒严重,和尚们都被派出去化缘。"
- "白莲教" ("ORGANIZATION"):
  "白莲教,元末农民起义中的一种宗教组织,韩山童和刘福通起义时利用了这一宗教信仰。"
- "濠州城" ("GEO"):
  "濠州城,位于今安徽省,是朱元璋早期活动的重要地点,也是郭子兴的驻地。"
- "定远" ("GEO"):
  "定远,朱元璋奉命攻击的地方,成功攻克后在元军回援前撤出,显示了其军事才能。"
- "钟离" ("GEO"):
  "钟离,朱元璋的家乡,他在此招收了二十四名壮丁,这些人后来成为明朝的高级干部。"
- "元末农民起义" ("EVENT"):
  "元末农民起义,是元朝末年由韩山童、刘福通等人领导的反抗元朝统治的大规模起义,最终导致了元朝的灭亡。"
- "马姑娘" ("PERSON"):
  "马姑娘,郭子兴的义女,后来成为朱元璋的妻子,在朱元璋被关押时,她冒着危险送饭给朱元璋,表现出深厚的感情。"
- "孙德崖" ("PERSON"):
  "孙德崖,与郭子兴有矛盾的起义军领袖之一,曾参与绑架郭子兴。"
- "徐达" ("PERSON"):
  "徐达,朱元璋的二十四名亲信之一,后来成为明朝的重要将领。"
- "周德兴" ("PERSON"):
  "周德兴,朱元璋的二十四名亲信之一,曾为朱元璋算过命。"
- "脱脱" ("PERSON"):
  "脱脱,元朝的著名宰相,主张治理黄河,但他的政策间接导致了元朝的灭亡。"
- "元顺帝" ("PERSON"):
  "元顺帝,元朝的最后一位皇帝,统治时期元朝社会矛盾激化,最终导致了元朝的灭亡。"
- "刘德" ("PERSON"):
  "刘德,地主,朱元璋早年为其放牛。"
- "吴老太" ("PERSON"):
  "吴老太,村口的媒人,朱元璋曾希望托她找一个媳妇。"

Relationships:
- "朱元璋" -> "朱五四":
  "朱元璋的父亲,对他的成长和早期生活有重要影响。"
- "朱元璋" -> "陈氏":
  "朱元璋的母亲,对他的成长和早期生活有重要影响。"
- "朱元璋" -> "汤和":
  "朱元璋的幼年朋友,后来成为他的战友,在朱元璋的崛起过程中起到了重要作用。"
- "朱元璋" -> "郭子兴":
  "朱元璋的岳父,是他在起义军中的重要支持者。"
- "朱元璋" -> "韩山童":
  "朱元璋在起义过程中与韩山童有间接联系,韩山童的起义对朱元璋的崛起有重要影响。"
- "朱元璋" -> "刘福通":
  "朱元璋在起义过程中与刘福通有间接联系,刘福通的起义对朱元璋的崛起有重要影响。"
- "朱元璋" -> "元朝":
  "朱元璋最终推翻了元朝的统治,建立了明朝。"
- "朱元璋" -> "皇觉寺":
  "朱元璋曾经在此当和尚,这段经历对他的成长有重要影响。"
- "朱元璋" -> "白莲教":
  "朱元璋在起义过程中接触到了白莲教,虽然他本人可能并不信仰,但白莲教的起义对他有重要影响。"
- "朱元璋" -> "濠州城":
  "朱元璋在濠州城的活动对其早期军事和政治生涯有重要影响。"
- "朱元璋" -> "定远":
  "朱元璋成功攻克定远,显示了其军事才能。"
- "朱元璋" -> "钟离":
  "朱元璋的家乡,他在此招收了二十四名壮丁,这些人后来成为明朝的高级干部。"
- "朱元璋" -> "元末农民起义":
  "朱元璋参与并最终领导了元末农民起义,推翻了元朝的统治。"
- "朱元璋" -> "马姑娘":
  "朱元璋的妻子,在朱元璋被关押时,她冒着危险送饭给朱元璋,表现出深厚的感情。"
- "朱元璋" -> "孙德崖":
  "朱元璋在孙德崖与郭子兴的矛盾中起到了调解作用,显示了其政治智慧。"
- "朱元璋" -> "徐达":
  "朱元璋的二十四名亲信之一,后来成为明朝的重要将领。"
- "朱元璋" -> "周德兴":
  "朱元璋的二十四名亲信之一,曾为朱元璋算过命。"
- "朱元璋" -> "脱脱":
  "朱元璋在起义过程中间接受到脱脱政策的影响,脱脱的政策间接导致了元朝的灭亡。"
- "朱元璋" -> "元顺帝":
  "朱元璋最终推翻了元顺帝的统治,建立了明朝。"
- "朱元璋" -> "刘德":
  "朱元璋早年为刘德放牛,这段经历对他的成长有重要影响。"
- "朱元璋" -> "吴老太":
  "朱元璋曾希望托吴老太找一个媳妇,显示了他对家庭的渴望。"

Self-Refine with DSPy-AI (v2.5.6)

Main Takeaways

  • Time difference: 66.24 seconds
  • Execution time with DSPy-AI: 211.04 seconds
  • Execution time without DSPy-AI: 144.80 seconds
  • Entities extracted: 38 (without DSPy-AI) vs 16 (with DSPy-AI)
  • Relationships extracted: 38 (without DSPy-AI) vs 16 (with DSPy-AI)