2️⃣Agentic RAG: Tool Calling

Tool Calling 이란?

표준 RAG에서 LLM은 주로 정보 합성에만 사용됩니다. 반면에 Tool Calling은 RAG 파이프라인 위에 쿼리 이해 계층을 추가하여 사용자가 복잡한 쿼리를 요청하고 보다 정확한 결과를 얻을 수 있도록 합니다.

이를 통해 LLM은 단순히 출력을 소비하는 대신 VectorDB를 사용하는 방법을 파악할 수 있습니다. Tool Calling으로 LLM은 동적 인터페이스를 통해 외부 환경과 상호 작용할 수 있습니다.

Tool Calling은 적절한 Tools를 선택할 뿐만 아니라 실행에 필요한 인수를 추론하는 데 도움을 줍니다. 따라서 표준 RAG에 비해 요청을 더 잘 이해하고 더 나은 응답을 생성할 수 있습니다.

Tool Calling의 절차

Agents는 단발성 도구(Tool) 호출 대신 여러 단계에 걸쳐 Tool를 추론 가능 합니다.

  1. Tool 을 정의하고

  2. Auto-Retrieval Tool을 정의하고

  3. Query Engine Tool을 추가하여 Respone를 실행해 보겠습니다.

LlamaIndex Agentic RAG: Tool Calling

Setup Environments

import os
import nest_asyncio
from dotenv import load_dotenv, find_dotenv
                                                                                                                 # the format for that file is (without the comment)                                                                                                                                       #API_KEYNAME=AStringThatIsTheLongAPIKeyFromSomeService                                                                                                                                     
def load_env():
    _ = load_dotenv(find_dotenv())

def get_openai_api_key():
    load_env()
    openai_api_key = os.getenv("OPENAI_API_KEY")
    return openai_api_key

Define Simple Tool

Define an Auto-Retrieval Tool

Load Data

Define Auto-Retrieval Tool

Add Tool Function

  • QueryEngineTool

Last updated