GraphRagCapability

GraphRagCapability(query_engine: autogen.agentchat.contrib.graph_rag.graph_query_engine.GraphQueryEngine)

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

  1. create a graph in the underlying database with input documents.
  2. retrieved relevant information based on messages received by the agent.
  3. 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=None,
    # 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

Parameters:
NameDescription
query_engineType: autogen.agentchat.contrib.graph_rag.graph_query_engine.GraphQueryEngine

Instance Methods

add_to_agent

add_to_agent(self, agent: autogen.ConversableAgent) -> 

Add the capability to an agent

Parameters:
NameDescription
agentType: autogen.ConversableAgent