knowledge_graph_maker 项目地址: https://gitcode.com/gh_mirrors/kn/knowledge_graph_maker
知识图谱生成器(Knowledge Graph Maker)是一个开源的Python库,它可以基于给定的本体(Ontology)将任何文本转换为知识图谱。知识图谱,也称为语义网络,是一种用于表示现实世界中实体(如对象、事件、情况或概念)及其相互关系的网络结构。这种信息通常存储在图数据库中,并以图形结构进行可视化。
本项目旨在帮助用户从文本中提取实体和关系,构建出结构化的知识图谱,进而用于各种分析和应用,如文本理解、信息检索、自然语言处理等。
首先,确保您的环境中已经安装了Python。
使用pip命令安装知识图谱生成器库:
pip install knowledge-graph-maker
在.env
文件中设置以下环境变量:
GROQ_API_KEY=your_groq_api_key
OPENAI_API_KEY=your_openai_api_key
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=localneo4j
NEO4J_URI=bolt://localhost:7687
from knowledge_graph_maker import Ontology
ontology = Ontology(
labels=[
{"Person": "人名,不要使用任何形容词,人名可能通过名字或代词引用"},
{"Object": "对象名,不要加定冠词'the'"},
{"Event": "涉及多个人物的事件,不要包含限定词或动词,如gives, leaves, works等"},
"Place",
"Document",
"Organisation",
"Action",
{"Miscellanous": "任何无法归类到其他标签的重要概念"}
],
relationships=[
"任何两个实体之间的关系"
]
)
由于LLM的上下文窗口有限,需要将文本分割成适当的块。
from knowledge_graph_maker import GroqClient, OpenAIClient
# 选择Groq模型
model = "mixtral-8x7b-32768"
llm = GroqClient(model=model, temperature=0.1, top_p=0.5)
# 或者选择OpenAI模型
oai_model = "gpt-3.5-turbo"
llm = OpenAIClient(model=oai_model, temperature=0.1, top_p=0.5)
from knowledge_graph_maker import GraphMaker, Document
graph_maker = GraphMaker(ontology=ontology, llm_client=llm, verbose=False)
# 创建文档列表
docs = [Document(text="你的文本内容", metadata={"context": "相关上下文信息"})]
# 生成图
graph = graph_maker.from_documents(list(docs), delay_s_between=10)
# 输出结果
print("Total number of Edges", len(graph))
from knowledge_graph_maker import Neo4jGraphModel
neo4j_graph = Neo4jGraphModel(edges=graph, create_indices=True)
neo4j_graph.save()
knowledge_graph_maker 项目地址: https://gitcode.com/gh_mirrors/kn/knowledge_graph_maker