프롬프트 엔지니어링
파이썬에서 Langchain을 사용한 프롬프트 엔지니어링 0에서 고급까지

대규모 언어 모델(LLM)의 중요한 측면은 이러한 모델이 학습에 사용하는 매개변수의 수입니다. 모델의 매개변수가 많을수록 단어와 구 사이의 관계를 더 잘 이해할 수 있습니다. 즉, 수십억 개의 매개변수를 갖는 모델은 다양한 창의적인 텍스트 형식과 열린 질문 및 어려운 질문에 대해 정보를 제공하는 방식으로 답변을 생성할 수 있는 능력이 있습니다.
트랜스포머 모델을 사용하는 ChatGPT와 같은 LLM은 인간 언어를 이해하고 생성하는 데 능숙하여 자연어 이해가 필요한 애플리케이션에 유용합니다. 그러나 이러한 모델에는 제한이 있습니다. 예를 들어, 지식이 уст상되지 않으며, 외부 시스템과 상호 작용할 수 없으며, 때때로 올바르지 않거나 무의미한 답변을 생성할 수 있습니다.
이러한 제한을 해결하려면 LLM을 외부 데이터 소스와 기능과 통합해야 하며, 이는 복잡성을 제시하고 광범위한 코딩 및 데이터 처리 기술을 요구할 수 있습니다. 이는 LLM을 사용하여 애플리케이션을 개발할 때의 학습 곡선을 기여합니다.
그러나 LLM을 다른 도구와 결합하여 LLM 기반 애플리케이션을 형성하는 것은 디지털 풍경을 재정의할 수 있습니다. 이러한 애플리케이션의 잠재력은巨大합니다. 효율성과 생산성을 향상시키고, 작업을 단순화하고, 의사 결정 지원 및 개인화된 경험을 제공할 수 있습니다.
이 기사에서는 Langchain을 사용한 고급 프롬프트 엔지니어링 기술을 다루며, 명확한 설명, 실제 예제 및 구현 방법에 대한 단계별 지침을 제공합니다.
Langchain은 최신 라이브러리로서 프롬프트를 설계, 구현 및 조정하는 것을 간단하게 합니다. 프롬프트 엔지니어링의 원리와 실제를 풀어ながら Langchain의 강력한 기능을 사용하여 최신 생성형 AI 모델의 강점을 활용하는 방법을 배울 것입니다.
프롬프트 이해
프롬프트 엔지니어링의 기술적 측면에 뛰어들기 전에 프롬프트와 그 중요성을 이해하는 것이 필수입니다.
프롬프트는 언어 모델에 입력으로 사용되는 토큰 시퀀스입니다. 모델이 특정 유형의 응답을 생성하도록 지시합니다. 프롬프트는 모델의 동작에 영향을 미치는 중요한 역할을 합니다. 잘 설계된 프롬프트는 모델이 정보를 제공하고, 정확하고, 상황에 맞는 결과를 생성하도록 도와줄 수 있습니다.
프롬프트 엔지니어링은 효과적인 프롬프트를 설계하는 기술입니다. 목표는 언어 모델에서 원하는 출력을 얻는 것입니다. 프롬프트를 선택하고 구조화함으로써 모델이 더 정확하고 관련性 있는 응답을 생성하도록 유도할 수 있습니다. 실제로는 모델의 훈련과 구조적 편향에 따라 입력 구문을 세부적으로 조정하는 것을 포함합니다.
프롬프트 엔지니어링의 복잡도는 단순한 기술, 즉 모델에 관련된 키워드를 제공하는 것에서부터 시작하여 모델의 내부 역학을 활용하여 복잡하고 구조화된 프롬프트를 설계하는 고급 방법에 이르기까지 다양합니다.
Langchain: 가장 빠르게 성장하는 프롬프트 도구
Langchain은 2022년 10월에 Harrison Chase에 의해 출시되어 GitHub에서 가장 높은 등급을 받은 오픈 소스 프레임워크 중 하나가 되었습니다. LLM을 애플리케이션에 통합하는 표준화된 인터페이스를 제공하며, 프롬프트 엔지니어링을 위한 기능이 풍부한 인터페이스를 제공하여 개발자가 다양한 전략을 실험하고 결과를 평가할 수 있습니다. Langchain을 사용하면 프롬프트 엔지니어링 작업을 더 효율적이고 직관적으로 수행할 수 있습니다.
LangFlow는 LangChain 컴포넌트를 실행 가능한 플로우차트로 구성하는 사용자 인터페이스를 제공하여 빠른 프로토 타이핑과 실험을 가능하게 합니다.

LangChain은 AI 개발에서 중요한 간격을 메우며, 가상 어시스턴트, 콘텐츠 생성기, 질문-답변 시스템 등 다양한 NLP 애플리케이션을 가능하게 합니다.
LangChain은 독립적인 모델이나 제공자가 아닌 다양한 모델과 상호 작용하는 것을简化하여 LLM 애플리케이션의 능력을 단순한 API 호출의 제한을 넘어서 확장합니다.
LangChain의 아키텍처
LangChain의 주요 구성 요소는 모델 I/O, 프롬프트 템플릿, 메모리, 에이전트 및 체인이 있습니다.
모델 I/O
LangChain은 다양한 언어 모델과无缝하게 연결되도록 표준화된 인터페이스인 모델 I/O를 제공합니다. 이는 모델을 쉽게 교체하여 최적화 또는 성능 향상을 가능하게 합니다. LangChain은 OpenAI, HuggingFace, Azure, Fireworks 등 다양한 언어 모델 제공업체를 지원합니다.
프롬프트 템플릿
프롬프트 템플릿은 LLM과 상호 작용을 관리하고 최적화하는 데 사용됩니다. 프롬프트를 최적화하면 모델의 성능을 향상시키고, 유연성이 크게 기여합니다.
간단한 프롬프트 템플릿 예:
<p>from langchain.prompts import PromptTemplate
prompt = PromptTemplate(input_variables=["subject"],
template="What are the recent advancements in the field of {subject}?")
print(prompt.format(subject="Natural Language Processing"))</p>
복잡도가 증가함에 따라 LangChain에서 더 복잡한 패턴을遇遇하게 됩니다. 예를 들어, Reason and Act (ReAct) 패턴은 작업을 실행하는 에이전트가 적절한 도구를 할당하고, 입력을 맞추고, 출력을 해석하여 작업을 완수하는 데 중요한 패턴입니다. ReAct는 프롬프트를 구조화하는 방법을 보여주는 Python 예제입니다.
PREFIX = """Answer the following question using the given tools:"""
FORMAT_INSTRUCTIONS = """Follow this format:
Question: {input_question}
Thought: your initial thought on the question
Action: your chosen action from [{tool_names}]
Action Input: your input for the action
Observation: the action's outcome"""
SUFFIX = """Start!
Question: {input}
Thought:{agent_scratchpad}"""
메모리
메모리는 LangChain에서 중요한 개념으로, LLM과 도구가 시간이 지남에 따라 정보를 유지할 수 있도록 합니다. 이 상태 유지 동작은 이전 응답, 사용자 상호 작용, 환경 상태 및 에이전트 목표를 저장하여 LangChain 애플리케이션의 성능을 향상시킵니다. ConversationBufferMemory와 ConversationBufferWindowMemory 전략은 대화의 전체 또는 최근 부분을 유지하는 데 도움이 됩니다. 더 복잡한 접근 방식으로, ConversationKGMemory 전략은 대화를 지식 그래프로 인코딩하여 프롬프트에 다시 피드하거나 응답을 예측하는 데 사용할 수 있습니다.
에이전트
에이전트는 작업을 수행하고, 외부 세계와 상호 작용합니다. LangChain에서 에이전트는 도구와 체인을 결합하여 작업을 실행합니다. 에이전트는 LLM의 내재된 제한을 극복하기 위해 외부 정보를 검색하기 위해 외부 세계와 연결을 설정할 수 있습니다. 상황에 따라 계산을 계산기 또는 Python 인터프리터에 전달할 수 있습니다.
에이전트는 다음 하위 구성 요소를 갖습니다:
- 도구: 기능적 구성 요소입니다.
- 도구 키트: 도구의 모음입니다.
- 에이전트 실행기: 도구 사이에서 선택할 수 있는 실행 메커니즘입니다.
LangChain의 에이전트는 또한 Zero-shot ReAct 패턴을 따르는데, 이는 도구의 설명만을 기반으로 결정합니다. 이 메커니즘은 전체 대화 기록을 고려하여 메모리를 확장할 수 있습니다. ReAct를 사용하면 LLM에 텍스트를 완성하도록 요청하는 대신, 생각/행동/관찰 루프에서 응답하도록 지시할 수 있습니다.
체인
체인은 LangChain 라이브러리가 언어 모델 입력 및 출력을 원활하게 처리할 수 있도록 하는 연산의 시퀀스입니다. 이러한 체인은 기본적으로 링크로 구성되며, 이는 다른 체인 또는 프롬프트, 언어 모델 또는 유틸리티와 같은 원시적인 것일 수 있습니다.
공장의 컨베이어 벨트를 생각해 보십시오. 이 벨트上的 각 단계는 특정 작업을 나타냅니다. 이는 언어 모델을 호출하거나, 텍스트에 Python 함수를 적용하거나, 모델에 특정 방식으로 프롬프트를 제공하는 것일 수 있습니다.
LangChain은 체인을 세 가지 유형으로 분류합니다: 유틸리티 체인, 제네릭 체인 및 문서 결합 체인. 여기에서는 유틸리티 체인과 제네릭 체인에 대해 논의하겠습니다.
- 유틸리티 체인은 언어 모델에서 정의된 작업에 대한 정확한 답변을 추출하는 데 특별히 설계되었습니다. 예를 들어, LLMMathChain을 살펴보겠습니다. 이 유틸리티 체인은 언어 모델이 수학 계산을 수행할 수 있도록 합니다. 자연어로 된 질문을 수신하고, 언어 모델은 Python 코드 조각을 생성하며, 이는 실행되어 답변을 생성합니다.
- 제네릭 체인은 다른 체인의 빌딩 블록으로 작동하지만 독립적으로 사용할 수 없습니다. 이러한 체인, 예를 들어 LLMChain,는 기초적이며 종종 다른 체인과 결합하여 복잡한 작업을 수행합니다. 예를 들어, LLMChain은 언어 모델 개체를 프롬프트 템플릿을 사용하여 입력을 형식화하고 언어 모델에 전달하여 자주 사용됩니다.
Langchain을 사용한 프롬프트 엔지니어링의 단계별 구현
Langchain을 사용하여 프롬프트 엔지니어링을 구현하는 과정을 안내하겠습니다. 시작하기 전에 LangChain과 필요한 패키지를 설치했는지 확인하십시오.
LangChain을 설정하려면 Docker, Conda, Pip 또는 Poetry와 같은 인기 있는 도구를 사용할 수 있습니다. 이러한 방법의 설치 파일은 LangChain 저장소에서 찾을 수 있습니다. 이 저장소에는 Docker용 Dockerfile, Pip용 requirements.txt, Poetry용 pyproject.toml 및 Conda용 langchain_ai.yml 파일이 포함되어 있습니다.
이 기사에서는 Python의 표준 패키지 관리자인 Pip를 사용하여 LangChain 및 기타 라이브러리를 설치하고 관리합니다. Python 배포본에 포함되지 않은 경우 Pip를 설치하려면 https://pip.pypa.io/의 지침을 따르십시오.
라이브러리를 설치하려면 pip install library_name 명령을 사용합니다.
그러나 Pip는 환경을 직접 관리하지 않습니다. 다양한 환경을 처리하려면 virtualenv 도구를 사용합니다.
다음 섹션에서는 모델 통합에 대해 논의하겠습니다.
단계 1: Langchain 설정
LangChain 패키지를 설치해야 합니다. Windows OS를 사용하고 있습니다. 터미널에서 다음 명령을 실행하여 설치합니다.
pip install langchain
단계 2: Langchain 및 기타 필요한 모듈 가져오기
다음으로 Langchain과 다른 필요한 모듈을 가져옵니다. 여기서 우리는 또한 NLP 작업에서 광범위하게 사용되는 transformers 라이브러리를 가져옵니다.
<p>import langchain from transformers import AutoModelWithLMHead, AutoTokenizer
단계 3: 사전 훈련된 모델 로드
Open AI
OpenAI 모델은 LangChain 라이브러리 또는 OpenAI Python 클라이언트 라이브러리를 통해 편리하게 인터페이스할 수 있습니다. 주목할 점은 OpenAI가 텍스트 임베딩 모델용 Embedding 클래스를 제공한다는 것입니다. 두 가지 주요 LLM 모델은 GPT-3.5와 GPT-4이며, 주로 토큰 길이에 차이가 있습니다. 각 모델의 가격은 OpenAI 웹사이트에서 찾을 수 있습니다. GPT-4-32K와 같은 더 복잡한 모델은 더 높은 토큰 수용량을 가지고 있지만, 항상 API를 통해 사용할 수 있는 것은 아닙니다.

이러한 모델에 액세스하려면 OpenAI API 키가 필요합니다. OpenAI 플랫폼에서 계정을 생성하고, 청구 정보를 설정하고, 새로운 비밀 키를 생성하여 이를 수행할 수 있습니다.
<p>import os os.environ["OPENAI_API_KEY"] = 'your-openai-token'</p>
키를 성공적으로 생성한 후, 이를 환경 변수(OPENAI_API_KEY)로 설정하거나 OpenAI 호출 시 클래스 인스턴스화 중에 매개 변수로 전달할 수 있습니다.
OpenAI 모델과 상호 작용을 보여주는 LangChain 스크립트를 고려해 보십시오:
from langchain.llms import OpenAI llm = OpenAI(model_name="text-davinci-003") # LLM은 프롬프트를 입력으로 받아 출력으로 완성된 텍스트를 생성합니다. prompt = "미국 대통령은 누구입니까?" completion = llm(prompt)
<p>현재 미국의 대통령은 조 바이든입니다.</p>(GOOGL )
이 예제에서는 에이전트가 계산을 수행하도록 초기화됩니다. 에이전트는 입력을 받고, 제공된 OpenAI 모델을 사용하여 이를 처리한 다음 결과를 반환합니다.
Hugging
Hugging Face는 PyTorch, TensorFlow 및 JAX와 호환되는 FREE-TO-USE 트랜스포머 Python 라이브러리입니다. BERT, T5 등과 같은 모델의 구현을 포함합니다.
Hugging Face는 또한 코드 저장소, 기계 학습 모델, 데이터 세트 및 웹 애플리케이션을 호스팅하는 플랫폼인 Hugging Face Hub를 제공합니다.
모델 제공업체로 Hugging Face를 사용하려면 계정과 API 키가 필요합니다. 이 토큰은 환경 변수 HUGGINGFACEHUB_API_TOKEN으로 사용할 수 있습니다.
Google에서 개발한 Flan-T5-XXL 모델을 사용하는 다음 Python 코드 조각을 고려해 보십시오:
from langchain.llms import HuggingFaceHub
<p>llm = HuggingFaceHub(model_kwargs={"temperature": 0.5, "max_length": 64}, repo_id="google/flan-t5-xxl")
prompt = "도쿄는 어느 국가에 있습니까?"
completion = llm(prompt)
print(completion)</p>
이 스크립트는 질문을 입력으로 받아 답변을 반환하여 모델의 지식과 예측 능력을展示합니다.
단계 4: 기본 프롬프트 엔지니어링
まず, 간단한 프롬프트를 생성하고 모델이 어떻게 반응하는지 보겠습니다.
prompt = '영어 텍스트 "{0}"를 프랑스어로 번역합니다.'
input_text = '안녕하세요, 어떻게 지내세요?'
input_ids = tokenizer.encode(prompt.format(input_text), return_tensors='pt')
<p>generated_ids = model.generate(input_ids, max_length=100, temperature=0.9)
print(tokenizer.decode(generated_ids[0], skip_special_tokens=True))
위의 코드 조각에서는 영어 텍스트를 프랑스어로 번역하도록 프롬프트를 제공합니다. 언어 모델은 프롬프트에 따라 주어진 텍스트를 번역하려고 시도합니다.
단계 5: 고급 프롬프트 엔지니어링
위의 접근 방식은 작동하지만, 프롬프트 엔지니어링의 전반적인 잠재력을 최대로 활용하지 못합니다. 더 복잡한 프롬프트 구조를 도입하여 이를 개선해 보겠습니다.
prompt = '고급 프랑스어 번역가로서, 영어 텍스트 "{0}"를 프랑스어로 번역합니다.'
input_text = '안녕하세요, 어떻게 지내세요?'
input_ids = tokenizer.encode(prompt.format(input_text), return_tensors='pt')
<p>generated_ids = model.generate(input_ids, max_length=100, temperature=0.9)
print(tokenizer.decode(generated_ids[0], skip_special_tokens=True))
이 코드 조각에서는 프롬프트를 수정하여 번역이 ‘고급 프랑스어 번역가’에 의해 수행된다고 제안합니다. 프롬프트의 변경은 더 나은 번역으로 이어질 수 있습니다. 모델은 이제 전문가의 페르소나를 가정합니다.
Langchain을 사용한 학술 문헌 Q&A 시스템 구축
LangChain을 사용하여 최근에 출판된 학술 논문에 대한 질문에 답변할 수 있는 학술 문헌 Q&A 시스템을 구축하겠습니다.

먼저, 환경을 설정하려면 필요한 종속성을 설치합니다.
pip install langchain arxiv openai transformers faiss-cpu
설치 후, 새로운 Python 노트북을 생성하고 필요한 라이브러리를 가져옵니다:
from langchain.llms import OpenAI from langchain.chains.qa_with_sources import load_qa_with_sources_chain from langchain.docstore.document import Document import arxiv
Q&A 시스템의 핵심은 특정 분야(여기서는 자연어 처리)에 관련된 학술 논문을 가져오는 것입니다. 이를 위해 arXiv 학술 데이터베이스를 사용합니다. 이를 수행하려면 함수 get_arxiv_data(max_results=10)를 정의합니다. 이 함수는 arXiv에서 가장 최근의 NLP 논문 요약을 수집하고, LangChain Document 개체로 캡슐화하여 요약을 내용으로 하고, 고유한 항목 ID를 소스로 사용합니다.
arXiv API를 사용하여 NLP와 관련된 최근 논문을 가져옵니다:
<p>def get_arxiv_data(max_results=10):
search = arxiv.Search(
query="NLP",
max_results=max_results,
sort_by=arxiv.SortCriterion.SubmittedDate,
)</p>
documents = []
<p>for result in search.results():
documents.append(Document(
page_content=result.summary,
metadata={"source": result.entry_id},
))</p>
return documents
이 함수는 arXiv에서 가장 최근의 NLP 논문 요약을 가져와서 LangChain Document 개체로 변환합니다. 우리는 요약과 고유한 항목 ID(논문 URL)를 각각 내용과 소스로 사용합니다.
def print_answer(question):
print(
chain(
{
"input_documents": sources,
"question": question,
},
return_only_outputs=True,
)["output_text"]
)
코퍼스와 LangChain을 설정해 보겠습니다:
sources = get_arxiv_data(2) chain = load_qa_with_sources_chain(OpenAI(temperature=0))
학술 Q&A 시스템이 준비되면 질문을 테스트해 볼 수 있습니다:
print_answer("NLP의 최근 발전은 무엇입니까?")
출력은 질문에 대한 답변으로, 정보를 추출한 출처를 인용합니다. 예를 들어:
<p>최근의 NLP 발전에는 Retriever-augmented instruction-following 모델과 그래픽 처리 장치(GPU)를 사용하여 교류 전류 최적 전력 흐름(ACOPF) 문제를 해결하는 새로운 계산 프레임워크가 포함됩니다. 출처: http://arxiv.org/abs/2307.16877v1, http://arxiv.org/abs/2307.16830v1
시스템을 모델이나 다른 요구 사항에 따라 쉽게 수정할 수 있습니다. 여기에서는 GPT-4로 변경하여 더详细한 답변을 얻습니다.
sources = get_arxiv_data(2) chain = load_qa_with_sources_chain(OpenAI(model_name="gpt-4", temperature=0))
<p>자연어 처리(NLP)의 최근 발전에는 정보 탐색 작업을 위한 retriever-augmented instruction-following 모델의 개발이 포함됩니다. 이러한 모델은 다양한 정보 도메인과 작업에 적응할 수 있지만, 제공된 지식에 따라 엄격하게 지키는 데 어려움을 겪고, 때때로 환상적인 답변을 생성할 수 있습니다. 또 다른 발전은 교류 전류 최적 전력 흐름(ACOPF) 문제를 그래픽 처리 장치(GPU)를 사용하여 해결하는 계산 프레임워크의 도입입니다. 이 접근 방식은 비선형 프로그램(NLP)의 단일 명령어, 다중 데이터(SIMD) 추상을 사용하며, 부등식 완화 전략을 사용하는 축소된 공간 내부 점 방법(IPM)을 사용합니다. 이 전략은 숫자 피벗팅 없이 KKT 행렬의 인수분해를 허용하여 이전에 IPM 알고리즘의 병렬화를 방해한 것입니다. 출처: http://arxiv.org/abs/2307.16877v1, http://arxiv.org/abs/2307.16830v1</p>
GPT-4의 토큰은 한 문자 또는 한 단어로 길이가 달라질 수 있습니다. 예를 들어, GPT-4-32K는 단일 실행에서 최대 32,000개의 토큰을 처리할 수 있습니다. 반면에 GPT-4-8K와 GPT-3.5-turbo는 각각 8,000개와 4,000개의 토큰을 지원합니다. 그러나 이러한 모델과 상호 작용할 때마다, 입력 및 출력 토큰 수에 비례하는 비용이 발생합니다.
학술 Q&A 시스템의 contexto에서, 토큰 제한을 초과하는 학술 문헌의 경우, 시스템은 전체를 처리하지 못하여 응답의 품질과 완전성이 영향을 받습니다. 이러한 문제를 해결하기 위해, 텍스트를 토큰 제한에 맞는 더 작은 부분으로 나눌 수 있습니다.
FAISS (Facebook AI Similarity Search) (META ) 는 사용자의 질의와 가장 관련성이 높은 텍스트 청크를 빠르게 찾는 데 도움이 됩니다. 텍스트 청크의 벡터 표현을 생성하고, 이러한 벡터를 사용하여 주어진 질문의 벡터 표현과 가장 유사한 청크를 식별 및 검색합니다.
FAISS를 사용하는 것에도 불구하고, 토큰 제한으로 인해 텍스트를 더 작은 청크로 나누는 필요성은 때때로 문맥의 손실을 초래하여 답변의 품질에 영향을 줄 수 있습니다. 따라서 이러한 대규모 언어 모델을 사용할 때 토큰 사용을 주의 깊게 관리하고 최적화하는 것이 중요합니다.
pip install faiss-cpu langchain CharacterTextSplitter
위 라이브러리가 설치된 후, 다음을 실행합니다:
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores.faiss import FAISS
from langchain.text_splitter import CharacterTextSplitter
documents = get_arxiv_data(max_results=10) # 이제 더 많은 데이터를 사용할 수 있습니다
document_chunks = []
splitter = CharacterTextSplitter(separator=" ", chunk_size=1024, chunk_overlap=0)
for document in documents:
for chunk in splitter.split_text(document.page_content):
document_chunks.append(Document(page_content=chunk, metadata=document.metadata))
<p>search_index = FAISS.from_documents(document_chunks, OpenAIEmbeddings())</p>
<p>chain = load_qa_with_sources_chain(OpenAI(temperature=0))</p>
<p>def print_answer(question):
print(
chain(
{
"input_documents": search_index.similarity_search(question, k=4),
"question": question,
},
return_only_outputs=True,
)["output_text"]
)
코드가 완성되면, 이제 최신 학술 문헌을 NLP 분야에서 조회할 수 있는 강력한 도구를 갖게 되었습니다.
NLP의 최근 발전에는 깊은 신경망(DNN)을 자동 텍스트 분석 및 NLP 작업을 위한 자동화된 텍스트 분석과 같은 작업에 사용됩니다. 출처: http://arxiv.org/abs/2307.10652v1, http://arxiv.org/abs/2307.07002v1, http://arxiv.org/abs/2307.12114v1, http://arxiv.org/abs/2307.16217v1
결론
LLM을 애플리케이션에 통합하면 여러 분야에서 채택이 가속화되었습니다. 프롬프트 엔지니어링은 이러한 모델의 잠재력을 최대화하는 강력한 도구입니다. LangChain은 이 복잡한 작업을 단순화하는 선두적인 역할을 하고 있습니다. 표준화된 인터페이스, 유연한 프롬프트 템플릿, 강력한 모델 통합 및 혁신적인 에이전트 및 체인 사용은 LLM의 성능에 대한 최적의 결과를 보장합니다.
그러나 이러한 발전에도 불구하고, 몇 가지 중요한 사항을 염두에 두어야 합니다. LangChain을 사용할 때, 출력의 품질은 프롬프트의 문구에 크게 의존한다는 것을 이해하는 것이 중요합니다. 다양한 프롬프트 스타일과 구조를 실험하면 더 나은 결과를 얻을 수 있습니다. 또한 LangChain이 다양한 언어 모델을 지원하는 것을 기억해야 합니다. 각 모델에는 강점과 약점이 있으므로 특정 작업에 가장 적합한 모델을 선택하는 것이 중요합니다. 마지막으로, 이러한 모델을 사용할 때 비용 고려 사항이 있다는 것을 기억해야 합니다. 토큰 처리는 상호 작용의 비용에 직접적으로 영향을 미칩니다.
단계별 가이드에서 보여준 것처럼, LangChain은 강력한 애플리케이션, 즉 학술 문헌 Q&A 시스템을 구동할 수 있습니다. 사용자 커뮤니티가 성장하고, 오픈 소스 풍경에서 두드러짐이 증가함에 따라, LangChain은 GPT-4와 같은 LLM의 전체 잠재력을 활용하는 데 중요한 도구가 될 것입니다.














