Post

LangSmith Hub를 활용한 고급 프롬프트 최적화

LangSmith Hub를 활용하여 고급 프롬프트를 최적화하고, RAG 챗봇 등 다양한 AI 모델에 적용하는 방법을 소개합니다.

LangSmith Hub를 활용한 고급 프롬프트 최적화

1. LangSmith Hub란?

LangSmith Hub는 LangChain에서 제공하는 프롬프트 저장소(Prompt Repository) 로, 개발자가 다양한 프롬프트를 공유하고 재사용할 수 있도록 지원하는 플랫폼입니다. 이를 활용하면 검증된 고급 프롬프트를 가져와 즉시 사용할 수 있으며, 직접 프롬프트를 최적화할 필요 없이 효율적인 응답을 생성할 수 있습니다.

LangSmith Hub의 주요 기능

  • 다양한 고급 프롬프트 템플릿 제공
  • 실무에서 검증된 최적화된 프롬프트 활용 가능
  • 프롬프트 저장 및 버전 관리 지원
  • 커뮤니티에서 공유한 프롬프트 검색 및 적용 가능

LangSmith Hub를 활용하면 최적의 성능을 가진 프롬프트를 손쉽게 적용할 수 있으며, 개별 프로젝트의 성능 최적화에도 큰 도움이 됩니다.

2. LangSmith Hub에서 프롬프트 가져오기

LangChain에서는 hub.pull() 메서드를 사용하여 LangSmith Hub에서 특정 프롬프트를 쉽게 가져올 수 있습니다.

기본적인 프롬프트 가져오기 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
!pip install langsmith

from langchain import hub
from langchain_openai import ChatOpenAI

# LangSmith Hub에서 특정 프롬프트 불러오기
prompt = hub.pull("efriis/my-first-prompt")

# LLM 모델 초기화
model = ChatOpenAI(model_name="gpt-4o-mini")

# 프롬프트 실행
runnable = prompt | model
response = runnable.invoke({"profession": "biologist", "question": "What is special about parrots?"})

print(response)

설명:

  • hub.pull("efriis/my-first-prompt")를 사용하여 특정 프롬프트를 LangSmith Hub에서 가져옴
  • 가져온 프롬프트를 ChatOpenAI 모델과 연결하여 실행
  • 기존에 검증된 프롬프트를 재사용함으로써 성능 최적화 가능

3. LangSmith Hub를 활용한 고급 RAG 프롬프트 최적화

RAG(Retrieval-Augmented Generation) 기반의 챗봇을 개발할 때, LangSmith Hub에서 제공하는 최적화된 프롬프트를 활용하면 보다 정교한 답변을 생성할 수 있습니다.

LangSmith Hub에서 RAG 프롬프트 가져와 적용하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain.document_loaders import PyPDFLoader
from langchain import hub

# 1. LLM 모델 불러오기
llm = ChatOpenAI(model_name="gpt-4o-mini")

# 2. 문서 불러오기
loader = PyPDFLoader("/content/sample.pdf")
docs = loader.load()

# 3. 문서 chunking 하기
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
splits = text_splitter.split_documents(docs)

# 4. 자른 chunk들을 embedding 하기
embeddings = OpenAIEmbeddings(model="text-embedding-ada-002")

# 5. vector store 구축하기
vectorstore = FAISS.from_documents(documents=splits, embedding=embeddings)

# 6. retriever 구축하기
retriever = vectorstore.as_retriever()

# 7. LangSmith Hub에서 최적화된 RAG 프롬프트 가져오기
prompt = hub.pull("krunal/more-crafted-rag-prompt")

# 8. 최적화된 RAG 체인 구성
def format_docs(docs):
    return "\n\n".join(doc.page_content for doc in docs)

rag_chain = (
    {"context": retriever | format_docs, "question": RunnablePassthrough()}
    | prompt
    | llm
)

# 9. RAG 챗봇 실행
response = rag_chain.invoke("이 문서에서 상장 주식 대주주 기준이 언제부터 적용되는지 알려줘.")
print(response)

설명:

  • LangSmith Hub에서 최적화된 RAG 프롬프트를 가져와 적용
  • 가져온 프롬프트를 retriever, vectorstore, LLM과 결합하여 RAG 모델 최적화
  • 사용자가 직접 프롬프트를 튜닝하지 않아도 최적의 결과를 얻을 수 있음

4. LangSmith Hub 활용 시 장점

고품질 프롬프트 활용: 이미 검증된 고급 프롬프트를 가져와 적용할 수 있어 최적화 시간을 절약 다양한 프롬프트 검색 가능: 여러 개발자가 공유한 다양한 프롬프트를 활용하여 최상의 성능을 가진 프롬프트 선택 가능 재사용성과 일관성 증가: 팀 내에서 동일한 프롬프트를 사용하여 응답의 일관성을 유지 프롬프트 최적화 비용 절감: 직접 프롬프트를 실험하며 튜닝할 필요 없이, 최적화된 프롬프트를 즉시 활용 가능

5. LangSmith Hub의 활용 사례

활용 사례설명
RAG 챗봇 구축최적화된 검색 기반 응답 프롬프트 활용
고객 지원 챗봇자연스럽고 빠른 답변 제공
AI 면접 챗봇기술 면접 질문 최적화 프롬프트 적용
법률 AI 상담법률 문서를 기반으로 신뢰성 높은 답변 생성

LangSmith Hub를 활용하면 기존에 검증된 프롬프트를 손쉽게 가져와 시간과 비용을 절약하면서도 더 정교한 AI 모델을 구축할 수 있습니다.

6. 마무리 및 요약

기능설명
LangSmith Hub고급 프롬프트를 공유하고 재사용하는 저장소
hub.pull()LangSmith Hub에서 프롬프트 가져오는 함수
RAG 최적화최적화된 검색 기반 프롬프트를 활용한 성능 개선
주요 장점프롬프트 최적화 비용 절감, 일관된 응답 제공

LangSmith Hub를 활용하면 더욱 효율적으로 AI 모델을 구축하고, 프롬프트 최적화를 손쉽게 수행할 수 있습니다.

This post is licensed under CC BY 4.0 by the author.