LLMdantic, LLM 통합을 도와주는 Python Library

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 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있으니 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 힘이 됩니다~ :star_struck: