Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -255,9 +255,9 @@
" 검색된 문서가 질문과 관련이 있는지 평가합니다.\n",
" \"\"\"\n",
" # 관련성 평가기를 생성합니다.\n",
" # When using an OpenAI key, change to models like gpt-5.4-mini, gpt-5.4-nano etc.\n",
" # When using an OpenAI key, change to models like gpt-5.6-luna, gpt-5.6-terra-nano etc.\n",
" question_retrieval_relevant = GroundednessChecker(\n",
" llm=init_chat_model(\"gpt-5.4\", temperature=0),\n",
" llm=init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\", temperature=0),\n",
" target=\"question-retrieval\"\n",
" ).create()\n",
"\n",
Expand Down
4 changes: 2 additions & 2 deletions Appendix/A-RAG응용/04-LangGraph-Add-Web-Search.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -256,9 +256,9 @@
" 검색된 문서가 질문과 관련이 있는지 평가합니다.\n",
" \"\"\"\n",
" # 관련성 평가기를 생성합니다.\n",
" # When using an OpenAI key, change to models like gpt-5.4-mini, gpt-5.4-nano etc.\n",
" # When using an OpenAI key, change to models like gpt-5.6-luna, gpt-5.6-terra-nano etc.\n",
" question_retrieval_relevant = GroundednessChecker(\n",
" llm=init_chat_model(\"gpt-5.4\", temperature=0),\n",
" llm=init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\", temperature=0),\n",
" target=\"question-retrieval\"\n",
" ).create()\n",
"\n",
Expand Down
8 changes: 4 additions & 4 deletions Appendix/A-RAG응용/05-LangGraph-Add-Query-Rewrite.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -302,9 +302,9 @@
" 검색된 문서가 질문과 관련이 있는지 평가합니다.\n",
" \"\"\"\n",
" # 관련성 평가기를 생성합니다.\n",
" # When using an OpenAI key, change to models like gpt-5.4-mini, gpt-5.4-nano etc.\n",
" # When using an OpenAI key, change to models like gpt-5.6-luna, gpt-5.6-terra-nano etc.\n",
" question_retrieval_relevant = GroundednessChecker(\n",
" llm=init_chat_model(\"gpt-5.4-mini\", temperature=0),\n",
" llm=init_chat_model(\"gpt-5.6-luna\", reasoning_effort=\"none\", temperature=0),\n",
" target=\"question-retrieval\"\n",
" ).create()\n",
"\n",
Expand Down Expand Up @@ -428,10 +428,10 @@
")\n",
"\n",
"# 쿼리 재작성 체인 생성 (프롬프트 -> LLM -> 문자열 파싱)\n",
"# When using an OpenAI key, change to models like gpt-5.4-mini, gpt-5.4-nano etc.\n",
"# When using an OpenAI key, change to models like gpt-5.6-luna, gpt-5.6-terra-nano etc.\n",
"question_rewriter = (\n",
" re_write_prompt\n",
" | init_chat_model(\"gpt-5.4-mini\", temperature=0)\n",
" | init_chat_model(\"gpt-5.6-luna\", reasoning_effort=\"none\", temperature=0)\n",
" | StrOutputParser()\n",
")"
]
Expand Down
14 changes: 7 additions & 7 deletions Appendix/A-RAG응용/06-LangGraph-Agentic-RAG.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,8 @@
"ls_client = Client()\n",
"\n",
"# 사용할 모델을 정의합니다.\n",
"# 다른 모델을 사용하려면 gpt-5.4-mini, claude-sonnet-5 등으로 변경하세요\n",
"MODEL_NAME = \"gpt-5.4\"\n",
"# 모델 등급: gpt-5.6-sol(high) / gpt-5.6-terra(medium) / gpt-5.6-luna(low)\n",
"MODEL_NAME = \"gpt-5.6-terra\"\n",
"\n",
"\n",
"# 관련성 평가를 위한 데이터 모델\n",
Expand All @@ -224,7 +224,7 @@
"def grade_documents(state) -> Literal[\"generate\", \"rewrite\"]:\n",
" \"\"\"검색된 문서의 관련성을 평가하는 함수입니다.\"\"\"\n",
" # LLM 초기화\n",
" model = init_chat_model(MODEL_NAME, temperature=0)\n",
" model = init_chat_model(MODEL_NAME, reasoning_effort=\"none\", temperature=0)\n",
"\n",
" # 구조화된 출력을 위한 LLM 설정\n",
" llm_with_tool = model.with_structured_output(GradeDocuments)\n",
Expand Down Expand Up @@ -266,7 +266,7 @@
" messages = state[\"messages\"]\n",
"\n",
" # LLM 초기화 및 도구 바인딩\n",
" model = init_chat_model(MODEL_NAME, temperature=0)\n",
" model = init_chat_model(MODEL_NAME, reasoning_effort=\"none\", temperature=0)\n",
" model = model.bind_tools(tools)\n",
"\n",
" # 에이전트 응답 생성\n",
Expand Down Expand Up @@ -295,7 +295,7 @@
" ]\n",
"\n",
" # LLM으로 질문 개선\n",
" model = init_chat_model(MODEL_NAME, temperature=0)\n",
" model = init_chat_model(MODEL_NAME, reasoning_effort=\"none\", temperature=0)\n",
" response = model.invoke(msg)\n",
"\n",
" return {\"messages\": [response]}\n",
Expand All @@ -308,10 +308,10 @@
" docs = messages[-1].content\n",
"\n",
" # LangSmith 허브에서 RAG 프롬프트 가져오기\n",
" prompt = ls_client.pull_prompt(\"teddynote/rag-prompt\")\n",
" prompt = ls_client.pull_prompt(\"teddynote/rag-prompt\", dangerously_pull_public_prompt=True)\n",
"\n",
" # LLM 초기화 및 체인 구성\n",
" llm = init_chat_model(MODEL_NAME, temperature=0)\n",
" llm = init_chat_model(MODEL_NAME, reasoning_effort=\"none\", temperature=0)\n",
" rag_chain = prompt | llm | StrOutputParser()\n",
"\n",
" # 답변 생성\n",
Expand Down
14 changes: 7 additions & 7 deletions Appendix/A-RAG응용/07-LangGraph-CRAG.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -174,8 +174,8 @@
"\n",
"\n",
"# LLM 초기화\n",
"# 다른 모델을 사용하려면 gpt-5.4-mini, claude-sonnet-5 등으로 변경 가능합니다.\n",
"llm = init_chat_model(\"gpt-5.4\", temperature=0)\n",
"# 모델 등급: gpt-5.6-sol(high) / gpt-5.6-terra(medium) / gpt-5.6-luna(low)합니다.\n",
"llm = init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\", temperature=0)\n",
"# 구조화된 출력을 생성하는 LLM\n",
"structured_llm_grader = llm.with_structured_output(GradeDocuments)\n",
"\n",
Expand Down Expand Up @@ -284,11 +284,11 @@
"from langchain_core.output_parsers import StrOutputParser\n",
"\n",
"# LangChain Hub에서 프롬프트 가져오기\n",
"prompt = Client().pull_prompt(\"teddynote/rag-prompt\")\n",
"prompt = Client().pull_prompt(\"teddynote/rag-prompt\", dangerously_pull_public_prompt=True)\n",
"\n",
"# LLM 초기화\n",
"# 다른 모델을 사용하려면 gpt-5.4-mini, claude-sonnet-5 등으로 변경 가능합니다.\n",
"llm = init_chat_model(\"gpt-5.4\", temperature=0)\n",
"# 모델 등급: gpt-5.6-sol(high) / gpt-5.6-terra(medium) / gpt-5.6-luna(low)합니다.\n",
"llm = init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\", temperature=0)\n",
"\n",
"# 문서 포맷팅 함수\n",
"def format_docs(docs):\n",
Expand Down Expand Up @@ -332,8 +332,8 @@
"from langchain_core.output_parsers import StrOutputParser\n",
"\n",
"# LLM 설정\n",
"# 다른 모델을 사용하려면 gpt-5.4-mini, claude-sonnet-5 등으로 변경 가능합니다.\n",
"llm = init_chat_model(\"gpt-5.4\", temperature=0)\n",
"# 모델 등급: gpt-5.6-sol(high) / gpt-5.6-terra(medium) / gpt-5.6-luna(low)합니다.\n",
"llm = init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\", temperature=0)\n",
"\n",
"# Query Rewrite 시스템 프롬프트\n",
"system = \"\"\"You a question re-writer that converts an input question to a better version that is optimized \n",
Expand Down
6 changes: 3 additions & 3 deletions Appendix/A-RAG응용/08-LangGraph-Self-RAG.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -225,8 +225,8 @@
"\n",
"\n",
"# LLM 초기화\n",
"# OpenAI 키를 사용하는 경우 gpt-5.4-mini, gpt-5.4 등의 모델로 변경하세요.\n",
"llm = init_chat_model(\"gpt-5.4\", temperature=0)\n",
"# OpenAI 키를 사용하는 경우 gpt-5.6-luna, gpt-5.6-terra 등의 모델로 변경하세요.\n",
"llm = init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\", temperature=0)\n",
"\n",
"# GradeDocuments 데이터 모델을 사용하여 LLM의 구조화된 출력 생성\n",
"structured_llm_grader = llm.with_structured_output(GradeDocuments)\n",
Expand Down Expand Up @@ -319,7 +319,7 @@
"from langchain_core.output_parsers import StrOutputParser\n",
"\n",
"# LangChain Hub에서 프롬프트 가져오기\n",
"prompt = Client().pull_prompt(\"teddynote/rag-prompt\")\n",
"prompt = Client().pull_prompt(\"teddynote/rag-prompt\", dangerously_pull_public_prompt=True)\n",
"\n",
"# 문서 포맷팅 함수\n",
"def format_docs(docs):\n",
Expand Down
26 changes: 13 additions & 13 deletions Appendix/A-RAG응용/09-LangGraph-Adaptive-RAG.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -203,8 +203,8 @@
" )\n",
"\n",
"\n",
"# LLM 초기화 (OpenAI 키 사용 시 gpt-5.4, gpt-5.4-mini 등의 모델로 변경하세요.)\n",
"llm = init_chat_model(\"gpt-5.4\")\n",
"# LLM 초기화 (OpenAI 키 사용 시 gpt-5.6-terra, gpt-5.6-luna 등의 모델로 변경하세요.)\n",
"llm = init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\")\n",
"# 구조화된 출력을 위한 라우터 LLM 설정\n",
"structured_llm_router = llm.with_structured_output(RouteQuery)\n",
"\n",
Expand Down Expand Up @@ -310,8 +310,8 @@
" )\n",
"\n",
"\n",
"# LLM 초기화 (OpenAI 키 사용 시 gpt-5.4, gpt-5.4-mini 등의 모델로 변경하세요.)\n",
"llm = init_chat_model(\"gpt-5.4\")\n",
"# LLM 초기화 (OpenAI 키 사용 시 gpt-5.6-terra, gpt-5.6-luna 등의 모델로 변경하세요.)\n",
"llm = init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\")\n",
"# 구조화된 출력을 위한 평가기 LLM 설정\n",
"structured_llm_grader = llm.with_structured_output(GradeDocuments)\n",
"\n",
Expand Down Expand Up @@ -422,10 +422,10 @@
"from langchain.chat_models import init_chat_model\n",
"\n",
"# LangSmith Client를 사용하여 프롬프트 가져오기(RAG 프롬프트는 자유롭게 수정 가능)\n",
"prompt = Client().pull_prompt(\"teddynote/rag-prompt\")\n",
"prompt = Client().pull_prompt(\"teddynote/rag-prompt\", dangerously_pull_public_prompt=True)\n",
"\n",
"# LLM 초기화 (OpenAI 키 사용 시 gpt-5.4, gpt-5.4-mini 등의 모델로 변경하세요.)\n",
"llm = init_chat_model(\"gpt-5.4\")\n",
"# LLM 초기화 (OpenAI 키 사용 시 gpt-5.6-terra, gpt-5.6-luna 등의 모델로 변경하세요.)\n",
"llm = init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\")\n",
"\n",
"\n",
"def format_docs(docs):\n",
Expand Down Expand Up @@ -512,8 +512,8 @@
" )\n",
"\n",
"\n",
"# LLM 초기화 (OpenAI 키 사용 시 gpt-5.4, gpt-5.4-mini 등의 모델로 변경하세요.)\n",
"llm = init_chat_model(\"gpt-5.4\")\n",
"# LLM 초기화 (OpenAI 키 사용 시 gpt-5.6-terra, gpt-5.6-luna 등의 모델로 변경하세요.)\n",
"llm = init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\")\n",
"# 구조화된 출력을 위한 평가기 LLM 설정\n",
"structured_llm_grader = llm.with_structured_output(GradeHallucinations)\n",
"\n",
Expand Down Expand Up @@ -597,8 +597,8 @@
" )\n",
"\n",
"\n",
"# LLM 초기화 (OpenAI 키 사용 시 gpt-5.4, gpt-5.4-mini 등의 모델로 변경하세요.)\n",
"llm = init_chat_model(\"gpt-5.4\")\n",
"# LLM 초기화 (OpenAI 키 사용 시 gpt-5.6-terra, gpt-5.6-luna 등의 모델로 변경하세요.)\n",
"llm = init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\")\n",
"# 구조화된 출력을 위한 평가기 LLM 설정\n",
"structured_llm_grader = llm.with_structured_output(GradeAnswer)\n",
"\n",
Expand Down Expand Up @@ -663,8 +663,8 @@
"from langchain_core.output_parsers import StrOutputParser\n",
"from langchain.chat_models import init_chat_model\n",
"\n",
"# LLM 초기화 (OpenAI 키 사용 시 gpt-5.4, gpt-5.4-mini 등의 모델로 변경하세요.)\n",
"llm = init_chat_model(\"gpt-5.4\")\n",
"# LLM 초기화 (OpenAI 키 사용 시 gpt-5.6-terra, gpt-5.6-luna 등의 모델로 변경하세요.)\n",
"llm = init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\")\n",
"\n",
"# Query Rewriter 프롬프트 정의(자유롭게 수정이 가능합니다)\n",
"system = \"\"\"You a question re-writer that converts an input question to a better version that is optimized \\n \n",
Expand Down
4 changes: 2 additions & 2 deletions Appendix/A-RAG응용/10-LangGraph-Retrieval.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -273,8 +273,8 @@
"\n",
"prompt = ChatPromptTemplate.from_template(template)\n",
"\n",
"# LLM 초기화 (OpenAI 키 사용 시 gpt-5.4-mini 등으로 변경하세요)\n",
"llm = init_chat_model(\"gpt-5.4\", temperature=0)\n",
"# LLM 초기화 (OpenAI 키 사용 시 gpt-5.6-luna 등으로 변경하세요)\n",
"llm = init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\", temperature=0)\n",
"\n",
"\n",
"def format_docs(docs):\n",
Expand Down
9 changes: 5 additions & 4 deletions Appendix/A-RAG응용/rag/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class RetrievalChain(ABC):
def __init__(self):
self.source_uri = None
self.k = 8
self.model_name = "gpt-5.4" # 다른 모델을 사용하려면 gpt-5.4-mini, claude-sonnet-5 등으로 변경
self.model_name = "gpt-5.6-terra" # 모델 등급: gpt-5.6-sol(high) / gpt-5.6-terra(medium) / gpt-5.6-luna(low)
self.temperature = 0
self.prompt = "teddynote/rag-prompt"
self.embeddings = "text-embedding-3-small"
Expand Down Expand Up @@ -103,12 +103,13 @@ def create_retriever(self, vectorstore):

def create_model(self):
# LangChain v1 방식: init_chat_model로 모델 초기화
# 다른 모델을 사용하려면 gpt-5.4-mini, claude-sonnet-5 등으로 변경
return init_chat_model(self.model_name, temperature=self.temperature)
# 모델 등급: gpt-5.6-sol(high) / gpt-5.6-terra(medium) / gpt-5.6-luna(low)
return init_chat_model(self.model_name, reasoning_effort="none", temperature=self.temperature)

def create_prompt(self):
# LangSmith Client를 사용하여 프롬프트 로드
return Client().pull_prompt(self.prompt)
# langsmith>=0.8: 공개 프롬프트(owner/name) 를 가져오려면 명시적 동의 플래그가 필요합니다
return Client().pull_prompt(self.prompt, dangerously_pull_public_prompt=True)

def create_chain(self):
docs = self.load_documents(self.source_uri)
Expand Down
4 changes: 2 additions & 2 deletions Appendix/B-Use-Cases/01-LangGraph-Agent-Simulation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@
" ]\n",
" )\n",
" # 모델 초기화\n",
" model = init_chat_model(\"gpt-5.4\", temperature=0.6)\n",
" model = init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\", temperature=0.6)\n",
" chain = prompt | model | StrOutputParser()\n",
" return chain.invoke({\"messages\": messages})"
]
Expand Down Expand Up @@ -256,7 +256,7 @@
"outputs": [],
"source": [
"# 챗봇 모델을 초기화합니다.\n",
"model = init_chat_model(\"gpt-5.4\", temperature=0.6)\n",
"model = init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\", temperature=0.6)\n",
"\n",
"# 시뮬레이션된 사용자 대화를 생성합니다.\n",
"simulated_user = create_scenario(name, instructions) | model | StrOutputParser()"
Expand Down
4 changes: 2 additions & 2 deletions Appendix/B-Use-Cases/02-LangGraph-Prompt-Generation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -207,8 +207,8 @@
"\n",
"\n",
"# LLM 초기화\n",
"# OpenAI 키를 사용하는 경우 gpt-5.4-mini, gpt-5.4 등의 모델로 변경하세요.\n",
"llm = init_chat_model(\"gpt-5.4\", temperature=0)\n",
"# OpenAI 키를 사용하는 경우 gpt-5.6-luna, gpt-5.6-terra 등의 모델로 변경하세요.\n",
"llm = init_chat_model(\"gpt-5.6-terra\", reasoning_effort=\"none\", temperature=0)\n",
"\n",
"# PromptInstructions 구조체를 바인딩\n",
"llm_with_tool = llm.bind_tools([PromptInstructions])\n",
Expand Down
12 changes: 6 additions & 6 deletions Appendix/B-Use-Cases/03-LangGraph-Plan-and-Execute.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -143,10 +143,10 @@
"from langchain.chat_models import init_chat_model\n",
"\n",
"# 계획(Plan) 및 재계획(Re-Plan) 단계에서 사용할 모델\n",
"PLANNER_MODEL = \"gpt-5.4\"\n",
"PLANNER_MODEL = \"gpt-5.6-terra\"\n",
"\n",
"# 실행(Execute) 단계에서 사용할 모델\n",
"EXECUTOR_MODEL = \"gpt-5.4-mini\"\n",
"EXECUTOR_MODEL = \"gpt-5.6-luna\"\n",
"\n",
"print(f\"Planner Model: {PLANNER_MODEL}\")\n",
"print(f\"Executor Model: {EXECUTOR_MODEL}\")"
Expand Down Expand Up @@ -206,7 +206,7 @@
"# ReAct 에이전트 생성 (실행 단계에서는 가벼운 모델 사용)\n",
"# system_prompt를 사용하여 시스템 프롬프트를 설정합니다.\n",
"agent_executor = create_agent(\n",
" init_chat_model(EXECUTOR_MODEL, temperature=0),\n",
" init_chat_model(EXECUTOR_MODEL, reasoning_effort=\"none\", temperature=0),\n",
" tools,\n",
" system_prompt=system_prompt,\n",
")"
Expand Down Expand Up @@ -332,7 +332,7 @@
"\n",
"# 계획 단계에서는 추론 능력이 뛰어난 모델 사용\n",
"planner = planner_prompt | init_chat_model(\n",
" PLANNER_MODEL, temperature=0\n",
" PLANNER_MODEL, reasoning_effort=\"none\", temperature=0\n",
").with_structured_output(Plan)"
]
},
Expand Down Expand Up @@ -450,7 +450,7 @@
"\n",
"# 재계획 단계에서도 추론 능력이 뛰어난 모델 사용\n",
"replanner = replanner_prompt | init_chat_model(\n",
" PLANNER_MODEL, temperature=0\n",
" PLANNER_MODEL, reasoning_effort=\"none\", temperature=0\n",
").with_structured_output(Act)"
]
},
Expand Down Expand Up @@ -548,7 +548,7 @@
"# 최종 보고서 생성에는 추론 능력이 뛰어난 모델 사용\n",
"final_report = (\n",
" final_report_prompt\n",
" | init_chat_model(PLANNER_MODEL, temperature=0)\n",
" | init_chat_model(PLANNER_MODEL, reasoning_effort=\"none\", temperature=0)\n",
" | StrOutputParser()\n",
")\n",
"\n",
Expand Down
Loading