GraphRagCapability
autogen.agentchat.contrib.graph_rag.graph_rag_capability.GraphRagCapability #
Bases: AgentCapability
A graph-based RAG capability uses a graph query engine to give a conversable agent the graph-based RAG ability.
An agent class with graph-based RAG capability could:
-
create a graph in the underlying database with input documents.
-
retrieved relevant information based on messages received by the agent.
-
generate answers from retrieved information and send messages back.
For example,
graph_query_engine = GraphQueryEngine(...)
graph_query_engine.init_db([Document(doc1), Document(doc2), ...])
graph_rag_agent = ConversableAgent(
name="graph_rag_agent",
max_consecutive_auto_reply=3,
...
)
graph_rag_capability = GraphRagCapbility(graph_query_engine)
graph_rag_capability.add_to_agent(graph_rag_agent)
user_proxy = UserProxyAgent(
name="user_proxy",
code_execution_config=False,
is_termination_msg=lambda msg: "TERMINATE" in msg["content"],
human_input_mode="ALWAYS",
)
user_proxy.initiate_chat(graph_rag_agent, message="Name a few actors who've played in 'The Matrix'")
# ChatResult(
# chat_id=uuid.uuid4().int,
# chat_history=[
# {'content': 'Name a few actors who've played in 'The Matrix'', 'role': 'graph_rag_agent'},
# {'content': 'A few actors who have played in The Matrix are:
# - Keanu Reeves
# - Laurence Fishburne
# - Carrie-Anne Moss
# - Hugo Weaving',
# 'role': 'user_proxy'},
# ...)
Initialize graph-based RAG capability with a graph query engine