LLMdantic는 대규모 언어 모델(LLMs)을 프로젝트에 통합하는 것을 단순화하는 강력하고 효율적인 Python 라이브러리입니다. Langchain 패키지와 Pydantic 모델을 활용하여 LLMs와의 작업을 구조화된 방식으로 제공합니다. Pydantic 모델을 통한 입력 및 출력 검증을 보장하고, OpenAI 모델에 대한 비용 추적 및 최적화를 제공하는 등의 다양한 기능을 갖추고 있습니다. 특히, 개발자들이 대규모 언어 모델을 더 쉽고 효율적으로 활용할 수 있도록 설계되었습니다.
소개
LLMdantic는 Python 기반 라이브러리로, 대규모 언어 모델을 손쉽게 통합하고 활용할 수 있도록 도와줍니다. Langchain과 Pydantic의 강점을 결합하여, 개발자가 모델과의 상호작용을 보다 구조화하고 효율적으로 할 수 있도록 합니다. 이를 통해 개발자는 모델의 입력 및 출력을 체계적으로 관리하고, 모델 사용 시 발생할 수 있는 다양한 문제들을 쉽게 해결할 수 있습니다.
주요 기능
- Langchain 통합을 통한 다양한 LLM 지원: 여러 대규모 언어 모델과의 호환성을 제공합니다.
- Pydantic 모델을 통한 데이터 무결성 보장: 입력 및 출력 검증을 위해 Pydantic 모델을 사용합니다.
- 모듈식 및 확장 가능한 설계: 사용자의 특정 요구에 맞게 쉽게 커스터마이징할 수 있습니다.
- OpenAI 모델에 대한 비용 추적 및 최적화: 비용 효율적인 모델 사용을 돕습니다.
- 효율적인 배치 처리: 여러 데이터 포인트를 처리할 때 시간을 절약할 수 있습니다.
- 강력한 재시도 메커니즘: 부드럽고 중단 없는 사용자 경험을 제공합니다.
사용 방법
LLMdantic를 사용하기 위해서는 먼저 Pydantic을 사용하여 입력 및 출력 스키마를 정의합니다. 이를 통해 모델의 입력과 출력을 구조화하고, 라이브러리가 이를 적절히 처리할 수 있도록 합니다. 다음으로, LLMdantic 클라이언트를 생성하고, 설정한 스키마와 목표를 기반으로 모델을 사용합니다. 이 과정에서 개발자는 모델의 입력 데이터를 준비하고, invoke
메소드를 사용하여 결과를 생성할 수 있습니다. 배치 처리가 필요한 경우 batch
메소드를 사용하여 여러 요청을 동시에 처리할 수도 있습니다.
상세한 사용법은 아래와 같습니다:
1. 입력 및 출력 스키마 정의하기
먼저, Pydantic을 사용하여 입력 및 출력 데이터에 대한 스키마를 정의합니다. 이를 통해 데이터의 형식을 검증하고, 모델이 예상하는 입력과 출력을 명확하게 할 수 있습니다.
from pydantic import BaseModel, Field
class SummarizeInput(BaseModel):
text: str = Field(..., description="요약할 텍스트")
class SummarizeOutput(BaseModel):
summary: str = Field(..., description="생성된 요약문")
2. LLMdantic 클라이언트 생성하기
정의된 스키마와 사용할 목표를 설정하여 LLMdantic 클라이언트를 생성합니다. 이 클라이언트를 통해 요청을 관리하고 결과를 받아올 수 있습니다.
from llmdantic import LLMdantic, LLMdanticConfig
from langchain_openai import ChatOpenAI
# 대화형 OpenAI 모델 초기화
llm = ChatOpenAI()
# LLMdantic 설정
config = LLMdanticConfig(
objective="텍스트 요약하기",
inp_schema=SummarizeInput,
out_schema=SummarizeOutput,
retries=3
)
# LLMdantic 클라이언트 생성
llmdantic = LLMdantic(llm=llm, config=config)
3. 출력 생성하기
클라이언트를 사용하여 입력 데이터에 대한 출력을 생성합니다. 이 때 invoke
메소드를 사용하면 단일 요청을 처리할 수 있고, batch
메소드를 사용하면 여러 데이터에 대한 요청을 동시에 처리할 수 있습니다.
data = SummarizeInput(text="자연어 처리에 대한 긴 기사...")
result = llmdantic.invoke(data)
if result.output:
print(result.output.summary)
4. 사용량 및 비용 모니터링
LLMdantic를 사용하면서 발생하는 비용과 사용량을 모니터링할 수 있습니다. (주로 OpenAI 모델에 대해 제공됩니다.)
print(f"Cost: {result.cost}")
print(f"Usage: {llmdantic.usage}")
더 읽어보기
LLMdantic GitHub 저장소
Langchain 저장소
Pydantic 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있으니 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 힘이 됩니다~