LangChain
LangChain은 LLM 기반 애플리케이션 구축을 위한 프레임워크입니다.
RAG, 에이전트, 체인 구성 등 고급 AI 파이프라인을 쉽게 만들 수 있습니다.
설치
pip install langchain langchain-openai
기본 설정
from langchain_openai import ChatOpenAI
import os
llm = ChatOpenAI(
model="gemma4-26b",
api_key=os.environ["IWINV_API_KEY"],
base_url="https://ai-api.iwinv.kr/v1"
)
기본 호출
from langchain_core.messages import HumanMessage, SystemMessage
messages = [
SystemMessage(content="당신은 친절한 AI 어시스턴트입니다."),
HumanMessage(content="iwinv 클라우드에 대해 알려주세요.")
]
response = llm.invoke(messages)
print(response.content)
프롬프트 템플릿
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
("system", "당신은 {role} 전문가입니다."),
("user", "{question}")
])
chain = prompt | llm
response = chain.invoke({
"role": "클라우드 인프라",
"question": "GPU 서버 선택 기준을 알려주세요."
})
print(response.content)
RAG 파이프라인
문서를 검색해 답변을 생성하는 RAG(Retrieval-Augmented Generation) 파이프라인입니다.
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
documents = [
"iwinv는 국내 클라우드 서비스 기업입니다.",
"iwinv AI API는 단일 Key로 다양한 LLM을 사용할 수 있습니다.",
"iwinv GPU 서버는 RTX 4090, RTX 5090 등을 지원합니다."
]
def retrieve(query: str) -> str:
# 실제 사용 시 벡터 DB로 대체
return "\n".join(documents)
prompt = ChatPromptTemplate.from_template("""
다음 컨텍스트를 참고하여 질문에 답하세요.
컨텍스트:
{context}
질문: {question}
""")
llm = ChatOpenAI(
model="gemma4-26b",
api_key=os.environ["IWINV_API_KEY"],
base_url="https://ai-api.iwinv.kr/v1"
)
chain = (
{"context": retrieve, "question": lambda x: x}
| prompt
| llm
| StrOutputParser()
)
print(chain.invoke("iwinv AI API가 무엇인가요?"))
스트리밍
for chunk in llm.stream("iwinv 클라우드의 장점을 설명해주세요."):
print(chunk.content, end="", flush=True)