in hugegraph-llm/src/hugegraph_llm/operators/hugegraph_op/graph_rag_query.py [0:0]
def _gremlin_generate_query(self, context: Dict[str, Any]) -> Dict[str, Any]:
query = context["query"]
vertices = context.get("match_vids")
query_embedding = context.get("query_embedding")
self._gremlin_generator.clear()
self._gremlin_generator.example_index_query(num_examples=self._num_gremlin_generate_example)
gremlin_response = self._gremlin_generator.gremlin_generate_synthesize(
context["simple_schema"], vertices=vertices, gremlin_prompt=self._gremlin_prompt
).run(query=query, query_embedding=query_embedding)
if self._num_gremlin_generate_example > 0:
gremlin = gremlin_response["result"]
else:
gremlin = gremlin_response["raw_result"]
log.info("Generated gremlin: %s", gremlin)
context["gremlin"] = gremlin
try:
result = self._client.gremlin().exec(gremlin=gremlin)["data"]
if result == [None]:
result = []
context["graph_result"] = [json.dumps(item, ensure_ascii=False) for item in result]
if context["graph_result"]:
context["graph_result_flag"] = 1
context["graph_context_head"] = (
f"The following are graph query result " f"from gremlin query `{gremlin}`.\n"
)
except Exception as e: # pylint: disable=broad-except
log.error(e)
context["graph_result"] = ""
return context