Skip to main content

통합 LLM 팩토리 라이브러리 - 다양한 LLM 제공자를 통합된 인터페이스로 사용

Project description

LLM Factory

PyPI version Python Support License: MIT

통합 LLM 팩토리 라이브러리 - 다양한 LLM 제공자를 통합된 인터페이스로 사용할 수 있게 해주는 Python 라이브러리입니다.

주요 기능

  • 다중 LLM 제공자 지원: OpenAI, Azure OpenAI, Anthropic, Ollama
  • 환경변수 기반 설정: 코드 변경 없이 LLM 제공자 변경 가능
  • 일관된 API: 모든 제공자에 대해 동일한 인터페이스 제공
  • 유연한 설정: 모델명, 온도, 스트리밍 등 다양한 옵션 지원
  • Embedding 지원: 텍스트 임베딩 생성 기능 포함

설치

pip install llm-factory

빠른 시작

1. 환경변수 설정

.env 파일에 다음 환경변수들을 설정하세요:

# LLM Provider 설정 (필수)
LLM_PROVIDER=openai  # openai, azure, anthropic, ollama 중 선택

# OpenAI 설정
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_MODEL=gpt-4o

# Azure OpenAI 설정
AZURE_API_KEY=your_azure_api_key_here
AZURE_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_DEPLOYMENT=your_deployment_name
AZURE_MODEL=gpt-4o
AZURE_API_VERSION=2024-06-01-preview

# Anthropic 설정
ANTHROPIC_API_KEY=your_anthropic_api_key_here
ANTHROPIC_MODEL=claude-3-sonnet-20240229

# Ollama 설정
OLLAMA_MODEL=llama3
OLLAMA_BASE_URL=http://localhost:11434

2. 기본 사용법

from llm_factory import create_llm, create_embedding

# 환경변수에 설정된 제공자와 모델 사용
llm = create_llm()

# 특정 제공자 지정
llm = create_llm(provider="openai")

# 특정 모델과 옵션 지정
llm = create_llm(
    model="gpt-4o",
    temperature=0.7,
    streaming=True
)

# Embedding 생성
embedding = create_embedding()

3. LangChain과 함께 사용

from llm_factory import create_llm, create_embedding
from langchain.prompts import PromptTemplate
from langchain.schema.output_parser import StrOutputParser

# LLM 생성
llm = create_llm()

# Embedding 생성
embedding = create_embedding()

# 프롬프트 템플릿 생성
prompt = PromptTemplate.from_template("다음 텍스트를 요약해주세요: {text}")

# 체인 생성
chain = prompt | llm | StrOutputParser()

# 실행
result = chain.invoke({"text": "긴 텍스트 내용..."})

# Embedding 사용
embedding_vector = await embedding.aembed_query("텍스트 내용")

지원되는 LLM 제공자

1. OpenAI

  • 모델: gpt-4o, gpt-4o-mini, gpt-3.5-turbo 등
  • 필수 환경변수: OPENAI_API_KEY
  • 선택적 환경변수: OPENAI_MODEL

2. Azure OpenAI

  • 모델: gpt-4o, gpt-4o-mini, gpt-3.5-turbo 등
  • 필수 환경변수: AZURE_API_KEY, AZURE_ENDPOINT, AZURE_DEPLOYMENT
  • 선택적 환경변수: AZURE_MODEL, AZURE_API_VERSION

3. Anthropic

  • 모델: claude-3-sonnet-20240229, claude-3-haiku-20240307 등
  • 필수 환경변수: ANTHROPIC_API_KEY
  • 선택적 환경변수: ANTHROPIC_MODEL

4. Ollama

  • 모델: llama3, llama2, mistral 등
  • 필수 환경변수: 없음 (기본값 사용)
  • 선택적 환경변수: OLLAMA_MODEL, OLLAMA_BASE_URL

API 참조

LLM 생성 함수

from llm_factory import (
    create_llm,
    create_openai_llm,
    create_azure_llm,
    create_anthropic_llm,
    create_ollama_llm
)

# 기본 LLM 생성 (환경변수 기반)
llm = create_llm()

# 특정 제공자 LLM 생성
openai_llm = create_openai_llm(model="gpt-4o", temperature=0.5)
azure_llm = create_azure_llm(model="gpt-4o")
anthropic_llm = create_anthropic_llm(model="claude-3-sonnet-20240229")
ollama_llm = create_ollama_llm(model="llama3")

Embedding 생성 함수

from llm_factory import (
    create_embedding,
    create_openai_embedding,
    create_azure_embedding
)

# 기본 Embedding 생성 (환경변수 기반)
embedding = create_embedding()

# 특정 제공자 Embedding 생성
openai_embedding = create_openai_embedding(model="text-embedding-3-large")
azure_embedding = create_azure_embedding(model="text-embedding-3-large")

마이그레이션 가이드

기존 코드에서 직접 LLM을 생성하던 방식을 LLM Factory로 변경하는 방법:

Before (기존 방식)

from langchain_openai import ChatOpenAI

model = ChatOpenAI(model="gpt-4o", streaming=True, temperature=0)

After (LLM Factory 사용)

from llm_factory import create_llm

model = create_llm(temperature=0)

개발 환경 설정

# 저장소 클론
git clone https://github.com/yourusername/llm-factory.git
cd llm-factory

# 개발 의존성 설치
pip install -e ".[dev]"

# 테스트 실행
pytest

# 코드 포맷팅
black llm_factory/
isort llm_factory/

# 린팅
flake8 llm_factory/
mypy llm_factory/

기여하기

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

연락처

감사의 말

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

process_gpt_llm_factory-1.0.0.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

process_gpt_llm_factory-1.0.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file process_gpt_llm_factory-1.0.0.tar.gz.

File metadata

  • Download URL: process_gpt_llm_factory-1.0.0.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for process_gpt_llm_factory-1.0.0.tar.gz
Algorithm Hash digest
SHA256 6fc127080edc5e7b072ad8b64f4cdb2b2528153222713e5f172f3fa0699f5575
MD5 898fdfb22e69bbb52e17cf05dbf332c4
BLAKE2b-256 3fe04da271535d68694fd39d4b9d1c56f3ade315f1c8c01485f6a9021a144500

See more details on using hashes here.

File details

Details for the file process_gpt_llm_factory-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for process_gpt_llm_factory-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e7684c49301398e2edea7093c04d244a84be82b94bfc7435292cdcbe82d65796
MD5 8c0bff136ef09baadf8a0887096db242
BLAKE2b-256 fa16bf68aebd30d5230c66f65a1da9e207ccd23b07f2768512c3570cd25a56ce

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page