1. langchain이 무엇일까?
- llm을 직접 호출하고 다양한 방식으로 사용하는 파이프라인을 만들려면 어떻게 해야할까?
- llm으로 특정 애플리케이션과 파이프하인을 만들때 사용하는 프레임워크 중에 하나가 langchain이다.
- 우리가 복잡한 머신러닝 기법을 직접 구현하지 않고 라이브러리를 사용하는 것과 같은 것이라고 생각하면 된다.
2. langchain으로 gemini 모델을 사용한 llm 응답 함수를 만들어보자
- 직접 gemini의 sdk를 사용하는 것이 아니라 langchain으로 기능을 만들어보자.
- 시스템 프롬프트는 이전 글에서 사용한 것을 그대로 사용한다.
from langchain_google_genai import GoogleGenerativeAI
from langchain_core.messages import HumanMessage, SystemMessage
GEMINI_API_KEY = '발급받은 gemini api key'
system_prompt = \
"""
1. 답변에는 다른 예시를 추가해서 알려줘야해
수학 연산에 답변을 줬다면 예시처럼 다른 경우도 알려줘
예시1 : 1+4=5야
예시2 : 100+123=223이야
예시3 : 3-1=2야
예시4 : 15/3=5야
2. 너는 학교선생님처럼 친절하게 설명해줘야해.
짧은 답변이 아니라 자세히 친절하게 설명해줘야해.
질문자에게 공부를 잘 할 수 있다는 격려도 해줘야해.
예시1 : 3+3에서 +은 더하기로 앞의 숫자와 뒤의 숫자를 합치는 거야. 다른 케이스도 더 잘 할 수 있을거니 열심히 공부하길 바라
예시2 : 4-3에서 -은 빼기로 앞의 숫자에서 뒤의 숫자 만큼을 줄이는 거야. 다른 연산법도 잘 이해할 수 있도록 내가 잘 알려줄게
"""
model = GoogleGenerativeAI(model="gemini-1.5-flash", google_api_key=GEMINI_API_KEY)
messages = [
SystemMessage(
content=system_prompt
),
HumanMessage(
content="10-3은?"
)
]
print(model.invoke(messages))
- 결과는 이전 글과 동일하게 나온다.
- 이걸 함수로 만든다면 아래와 같이 단순하게 만들 수 있을 것이다.
from langchain_google_genai import GoogleGenerativeAI
from langchain_core.messages import HumanMessage, SystemMessage
system_prompt = \
"""
1. 답변에는 다른 예시를 추가해서 알려줘야해
수학 연산에 답변을 줬다면 예시처럼 다른 경우도 알려줘
예시1 : 1+4=5야
예시2 : 100+123=223이야
예시3 : 3-1=2야
예시4 : 15/3=5야
2. 너는 학교선생님처럼 친절하게 설명해줘야해.
짧은 답변이 아니라 자세히 친절하게 설명해줘야해.
질문자에게 공부를 잘 할 수 있다는 격려도 해줘야해.
예시1 : 3+3에서 +은 더하기로 앞의 숫자와 뒤의 숫자를 합치는 거야. 다른 케이스도 더 잘 할 수 있을거니 열심히 공부하길 바라
예시2 : 4-3에서 -은 빼기로 앞의 숫자에서 뒤의 숫자 만큼을 줄이는 거야. 다른 연산법도 잘 이해할 수 있도록 내가 잘 알려줄게
"""
def inference_message(model=None, human_message=None):
messages = [
SystemMessage(
content=system_prompt
),
HumanMessage(
content=human_message
)
]
result = model.invoke(messages)
return result
- 그리고 이 함수를 통해 llm으로 결과를 받으려면 아래와 같이 사용하면 된다.
model = GoogleGenerativeAI(model="gemini-1.5-flash", google_api_key="발급받은 gemini api 키")
result = inference_message(
model=model,
human_message="112+34는?"
)
print(result)
3. langchain 프레임워크로 간단히 기능을 만들어보자.
- 이미 추상화된 기능을 사용해 llm 기능을 구현하면 편리하게 애플리케이션을 구현할 수 있다.
- 특히 최신 llm 기술에서 사용하는 것도 langchain에서 사용할 수 있기 때문에 langchain을 활용한 개발에 익숙해지자.
'개발 공부 > LLM' 카테고리의 다른 글
llm 모델에 시스템 프롬프트를 적용해보자 (0) | 2025.01.26 |
---|---|
구글 gemini로 llm api를 사용해보자 (0) | 2025.01.19 |