2️⃣Prompt Template

LangChain: Prompt Templete

import os
from dotenv import load_dotenv  

load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
from langchain.llms import OpenAI
from langchain.chat_models import ChatOpenAI

1. Prompt Templete

  1. PromptTemplate: 일반적인 프롬프트 템플릿을 생성할때 활용

  2. ChatPromptTemplate: LLM에 프롬프트를 전달하여 활용에 특화된 프롬프트 템플릿

chat_inst = OpenAI(
    model_name="gpt-3.5-turbo-instruct", 
    openai_api_key=api_key,
    max_tokens=1000
)
from langchain.prompts import PromptTemplate, ChatPromptTemplate

# {subject} 문자열로 변환하는 매개변수 지정
string_prompt = PromptTemplate.from_template(
    "tell me a joke about {subject}"
)

# 매개변수 결과를 string_prompt_value에 할당
string_prompt_value = string_prompt.format_prompt(subject="soccer")

# string_prompt는 LLM과 대화 시 필요한 프롬프트
string_prompt_value

2. PromptTemplate 기본

3. OpenAI prompte_tempate 사용

4. ChatOpenAI ChatPrompteTemplete사용

5. FewshotPrompteTemplete 사용

  • Few-shot은 결과물을 출력할 때 예시 결과물을 제시하여 결과물을 유도하는 방법론

  • 원하는 결과물의 형태가 특수하거나, 구조화된 답변을 원할 경우, 결과물의 예시를 수 개 제시하여 결과물을 한정시킴

6. example_selector: 동적 Few-shot Learning

  • Few-shot을 동적으로 입력하고 싶은 경우, Example Selector를 활용

  • LLM이 여러 작업을 수행하도록 만들되 내가 원하는 범위의 대답을 출력하도록 하려면 사용자의 입력에 동적으로 반응 필요

  • 이와 동시에적절한 예시만 포함하도록 함으로써 입력 prompt의 길이를 제한하여오류가 발생하지 않도록 조정

7. output_parser: 출력값 조정

  • LLM output을 output_parser 함수를 활용하여 고정

  • List, json 형태 등 다양한 형식의 답변을 고정하여 출력 지정

Last updated