LangChain ch01 - 시작하기

08 Aug 2024  Khlee  2 mins read.

CH01 LangChain 시작하기을 읽고 정리한 내용이다.

개요

LangChain 은 언어 모델을 활용해 다양한 애플리케이션을 개발할 수 있는 프레임워크로, 다양한 LLM을 추상화하여 어플리케이션에서 사용할 수 있도록 해 준다. LangChain에 대해 잘 설명된 글이 있어서 참고하면 좋을 것 같다. https://brunch.co.kr/@ywkim36/147

설치

다음과 같은 명령어로 설치한다.

> pip install langchain
> pip install -qU langchain-openai

만약 다른 모델을 사용하고 싶은 경우 langchain- 뒤에 다음 예시와 같이 해당 모델을 적으면 된다. 자세한 내용은 여기 참고.

  • Anthropic: pip install -qU langchain-anthropic
  • Google: pip install -qU langchain-google-vertexai
  • Cohere: pip install -qU langchain-cohere
  • NVIDIA: pip install -qU langchain-nvidia-ai-endpoints
  • FireworksAI: pip install -qU langchain-fireworks
  • Groq: pip install -qU langchain-groq
  • MistralAI: pip install -qU langchain-mistralai

OpenAI API 키 발급 및 테스트

OpenAI API 웹사이트에 접속해서 로그인한 후 신용카드를 등록하고 일정 금액을 충전한다.

Dashboard의 API keys에서 새로운 secret key를 생성한다.

프로젝트의 루트에 apikeys.json라는 파일을 만들고 다음과 같은 내용을 붙여넣는다. 파일이름은 바꿔도 상관 없다.

{
    "OPENAI_API_KEY": "{발급받은 키}"
}

OpenAI API 사용

파이썬 파일을 하나 만들고 다음과 같이 API key를 읽어온다.

import json
import os

# load API key
with open('apikeys.json') as f:
    keys = json.load(f)

os.environ["OPENAI_API_KEY"] = keys['OPENAI_API_KEY']

모델을 생성하고 초기화한다.

# initialize model
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-4")

모델에 보낼 메시지를 생성하고 보낸다.

# send messages
from langchain_core.messages import HumanMessage, SystemMessage

messages = [
    SystemMessage(content="Translate the following from English into Italian"),
    HumanMessage(content="hi!"),
]

aiMessage = model.invoke(messages)
print(aiMessage)

실행하면 다음과 같은 결과를 출력한다.

content='Ciao!' response_metadata={'token_usage': {'completion_tokens': 3, 'prompt_tokens': 20, 'total_tokens': 23}, 'model_name': 'gpt-4-0613', 'system_fingerprint': None, 'finish_reason': 'stop', 'logprobs': None} id='run-4571bf06-060e-4799-acfd-08837c9b09c7-0' usage_metadata={'input_tokens': 20, 'output_tokens': 3, 'total_tokens': 23}

OutputParsers를 사용해서 응답 문자열만 가져온다.

# parse output
from langchain_core.output_parsers import StrOutputParser

parser = StrOutputParser()
result = parser.invoke(aiMessage)
print(result)

다음과 같은 결과를 출력한다.

Ciao!

khlee
khlee