mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-10-22 17:39:02 +00:00
✨ feat(GraphRAG): enhance GraphRAG by graph community summary (#1801)
Co-authored-by: Florian <fanzhidongyzby@163.com> Co-authored-by: KingSkyLi <15566300566@163.com> Co-authored-by: aries_ckt <916701291@qq.com> Co-authored-by: Fangyin Cheng <staneyffer@gmail.com> Co-authored-by: yvonneyx <zhuyuxin0627@gmail.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
"""TuGraph Connector."""
|
||||
|
||||
import json
|
||||
from typing import Dict, List, cast
|
||||
from typing import Dict, Generator, List, cast
|
||||
|
||||
from .base import BaseConnector
|
||||
|
||||
@@ -23,11 +23,16 @@ class TuGraphConnector(BaseConnector):
|
||||
def create_graph(self, graph_name: str) -> None:
|
||||
"""Create a new graph."""
|
||||
# run the query to get vertex labels
|
||||
with self._driver.session(database="default") as session:
|
||||
graph_list = session.run("CALL dbms.graph.listGraphs()").data()
|
||||
exists = any(item["graph_name"] == graph_name for item in graph_list)
|
||||
if not exists:
|
||||
session.run(f"CALL dbms.graph.createGraph('{graph_name}', '', 2048)")
|
||||
try:
|
||||
with self._driver.session(database="default") as session:
|
||||
graph_list = session.run("CALL dbms.graph.listGraphs()").data()
|
||||
exists = any(item["graph_name"] == graph_name for item in graph_list)
|
||||
if not exists:
|
||||
session.run(
|
||||
f"CALL dbms.graph.createGraph('{graph_name}', '', 2048)"
|
||||
)
|
||||
except Exception as e:
|
||||
raise Exception(f"Failed to create graph '{graph_name}': {str(e)}")
|
||||
|
||||
def delete_graph(self, graph_name: str) -> None:
|
||||
"""Delete a graph."""
|
||||
@@ -89,10 +94,19 @@ class TuGraphConnector(BaseConnector):
|
||||
self._driver.close()
|
||||
|
||||
def run(self, query: str, fetch: str = "all") -> List:
|
||||
"""Run query."""
|
||||
with self._driver.session(database=self._graph) as session:
|
||||
try:
|
||||
result = session.run(query)
|
||||
return list(result)
|
||||
except Exception as e:
|
||||
raise Exception(f"Query execution failed: {e}")
|
||||
|
||||
def run_stream(self, query: str) -> Generator:
|
||||
"""Run GQL."""
|
||||
with self._driver.session(database=self._graph) as session:
|
||||
result = session.run(query)
|
||||
return list(result)
|
||||
yield from result
|
||||
|
||||
def get_columns(self, table_name: str, table_type: str = "vertex") -> List[Dict]:
|
||||
"""Get fields about specified graph.
|
||||
|
Reference in New Issue
Block a user