
220
에이전트 시대의 AI 시스템 설계
들은 해당 도메인에 적합한 관계들을 포착하는 것이어야 한다. 그런 지식 그래프를 아직 갖추
지 못했다면, 도메인에서 개체들을 추출하고 관계를 파악하는 작업을
LLM
에게 요청할 수도 있
다. 다음은 랭체인을 이용해서 텍스트로부터 그런 지식 그래프를 구축하는 방법을 보여 주는
코드이다.
llm_transformer = LLMGraphTransformer(llm=llm)
graph_documents = llm_transformer.convert_to_graph_documents(text)
그런 다음에는 그래프를 그래프 데이터베이스에 저장한다. 다음은
Neo4j
의 그래프 저장소를
이용하는 예이다.
graph_store = Neo4jGraphStore(...)
graph_store.write_graph(graph_documents)
그래프 저장소에서 청크들을 검색하는 과정은
BM25
나 의미 기반 색인 검색기를 사용할 때와
유사하다.
graph_rag_retriever = KnowledgeGraphRAGRetriever(...)
query_engine = RetrieverQueryEngine.from_args(graph_rag_retriever)
그래프
RAG
시스템은 명시적으로 표현된 개체와 관계를 활용해서 관련 청크를 검색하고,