LlamaIndex는 LLM을 사용하여 상황에 맞는 생성 AI 애플리케이션을 구축하기 위한 프레임워크입니다.
컨텍스트 확대는 추가 관련 정보나 컨텍스트를 LLM 모델에 제공하여 주어진 쿼리에 대한 이해와 응답을 향상시키는 기술을 의미합니다. 이러한 확장에는 일반적으로 문서, 임베딩과 같은 외부 데이터 소스를 모델 입력에 검색, 통합 또는 연결하는 작업이 포함됩니다. 목표는 더 좋고 정확하며 미묘한 답변을 제공하는 데 도움이 되는 필수 컨텍스트를 제공하여 모델에 더 많은 정보를 제공하는 것입니다. 검색 증강 생성(RAG)은 컨텍스트 증강의 가장 유명한 예입니다.
에이전트는 연구, 데이터 추출, 웹 검색 및 기타 작업을 수행하는 도구를 사용하는 LLM으로 구동되는 자동화된 추론 및 의사결정 엔진입니다. 데이터를 기반으로 한 질의 응답부터 작업 완료를 위한 조치를 결정하고 실행할 수 있는 등 간단한 사용 사례에 사용할 수 있습니다.
이번 게시물에서는 LlamaIndex를 사용하여 간단한 RAG 에이전트를 구축해 보겠습니다.
LlamaIndex를 사용하여 Python을 사용하여 간단한 RAG 에이전트를 구축할 것입니다. 먼저 아래와 같이 필수 종속성을 설치해 보겠습니다.
pip install llama-index python-dotenv
우리는 OpenAI의 gpt-4o-mini를 LLM으로 사용할 것입니다. 환경 변수 파일에 API 키를 넣어야 합니다. 여기에서 LLamaIndex를 사용하여 로컬 LLM을 설정하는 방법에 대해 자세히 알아볼 수 있습니다.
from llama_index.core import SimpleDirectoryReader, VectorStoreIndex, Settings from llama_index.llms.openai import OpenAI from dotenv import load_dotenv # Load environment variables (e.g., OPENAI_API_KEY) load_dotenv() # Configure OpenAI model Settings.llm = OpenAI(model="gpt-4o-mini") # Load documents from the local directory documents = SimpleDirectoryReader("./data").load_data() # Create an index from documents for querying index = VectorStoreIndex.from_documents(documents) query_engine = index.as_query_engine()
이제 에이전트가 작업을 수행하는 데 사용할 수 있는 몇 가지 기본 기능을 정의해 보겠습니다.
def multiply(a: float, b: float) -> float: """Multiply two numbers and returns the product""" return a * b def add(a: float, b: float) -> float: """Add two numbers and returns the sum""" return a + b
다음으로 앞서 정의한 함수와 쿼리 엔진에서 에이전트가 작업을 수행하는 데 사용할 도구를 만듭니다. 이러한 도구는 에이전트가 다양한 유형의 쿼리를 처리할 때 활용할 수 있는 유틸리티 역할을 합니다.
from llama_index.core.tools import FunctionTool, QueryEngineTool # Wrap functions as tools add_tool = FunctionTool.from_defaults(fn=add) multiply_tool = FunctionTool.from_defaults(fn=multiply) # Create a query engine tool for document retrieval space_facts_tool = QueryEngineTool.from_defaults( query_engine, name="space_facts_tool", description="A RAG engine with information about fun space facts." )
이제 ReActAgent를 사용하여 에이전트를 생성하겠습니다. 상담원은 도구 사용 시기와 문의에 응답하는 방법을 결정할 책임이 있습니다.
from llama_index.core.agent import ReActAgent # Create the agent with the tools agent = ReActAgent.from_tools( [multiply_tool, add_tool, space_facts_tool], verbose=True )
이 에이전트는 주어진 도구를 논리적 순서에 따라 활용하여 모델이 추론하고 행동할 수 있도록 하는 ReAct 프레임워크를 사용합니다. 에이전트는 우리가 만든 도구로 초기화되며 verbose=True 플래그는 에이전트가 작업을 추론하고 실행하는 방법에 대한 자세한 정보를 출력합니다.
마지막으로 에이전트가 종료할 때까지 사용자 쿼리를 처리하는 대화형 루프에서 에이전트를 실행해 보겠습니다.
while True: query = input("Query: ") if query == "/bye": exit() response = agent.chat(query) print(response) print("-" * 10)
위 내용은 LlamaIndex를 사용하여 간단한 RAG 에이전트 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!