OpenAI

Langchain - Hello Langchain

프갭 2024. 5. 3. 08:14
Langchain은 여러 LLM 모델을 지원하는데, 주요 모델들만 살펴보면 Open AI ChatGPT, Google PaLM, Huggine Face, MS Azure ChatGPT, AWS BedRock, Anthropic claude 등을 지원한다.

주요 모델 프로파이더는 https://python.langchain.com/docs/integrations/providers 를 참고하면 된다.

지원하는 LLM에 따라서 Langchain의 기능이 일부만 제공되는 경우가 있는데, 예를 들어 Streaming 기능 같은 경우에는 지원 안되는 모델들이 많다.

기능에 대한 지원 여부는 LLM 컴포넌트 쪽을 확인하면 된다.

import os
from dotenv import load_dotenv

from langchain_core.messages import HumanMessage
from langchain_openai import AzureChatOpenAI
from langchain.callbacks import get_openai_callback

load_dotenv()
# 환경 변수 사용
azure_openai_api_key = os.getenv('azure_openai_api_key')
azure_openai_endpoint = os.getenv('azure_openai_endpoint')
azure_open_api_version = os.getenv('azure_open_api_version')
azure_deployment_gpt4test = os.getenv('azure_deployment_gpt4test')
azure_model_version_gpt4test = os.getenv('azure_model_version_gpt4test')

os.environ["AZURE_OPENAI_API_KEY"] = azure_openai_api_key
os.environ["AZURE_OPENAI_ENDPOINT"] = azure_openai_endpoint

model = AzureChatOpenAI(
    openai_api_version=azure_open_api_version,
    azure_deployment=azure_deployment_gpt4test,
    model_version=azure_model_version_gpt4test, #비용 산출 시 모델 버전을 반드시 입력한다.
    # azure_deployment=azure_deployment_gpt35turbo,
    # model_version=azure_model_version_gpt35turbo, #버전 정보가 다른것 같다. 오류 발생
)

message = HumanMessage(
    content="Translate this sentence from English to Korean. I love baseball."
)
model.invoke([message])

AIMessage(content='나는 야구를 사랑한다.', response_metadata={'finish_reason': 'stop', 'logprobs': None, 'content_filter_results': {'hate': {'filtered': False, 'severity': 'safe'}, 'self_harm': {'filtered': False, 'severity': 'safe'}, 'sexual': {'filtered': False, 'severity': 'safe'}, 'violence': {'filtered': False, 'severity': 'safe'}}})

with get_openai_callback() as cb:
    model.invoke([message])
    print(f"Total Cost (USD): ${format(cb.total_cost, '.6f')}")

Total Cost (USD): $0.002460

반응형