import{s as Ze,f as Ht,n as Ge,o as We}from"../chunks/scheduler.f6b352c8.js";import{S as Xe,i as He,g as M,s as U,r as i,A as Ye,h as J,f as e,c as n,j as Yt,u as Q,x as a,k as V,y as Pe,a as s,v as T,d as C,t as p,w as y}from"../chunks/index.7f38e934.js";import{C as u}from"../chunks/CodeBlock.3ee8293b.js";import{H as g,E as Ke}from"../chunks/getInferenceSnippets.7d19090c.js";function ls(Pt){let j,$l,wl,Sl,I,kl,r,Kt="이제 LLM이 어떻게 동작하는지 이해했으니, <strong>채팅 템플릿을 통해 생성 결과를 구조화</strong>하는 방법을 살펴보겠습니다.",Al,o,le="예로 ChatGPT를 떠올려봅시다. 사용자는 에이전트(Agent)와 상호작용 할 때 채팅 인터페이스를 사용합니다. 따라서 LLM이 어떻게 채팅을 관리하는지 이해하는 것은 중요합니다.",ql,N,te=`<p><strong>Q</strong>: 하지만 … 저는 ChatGPT/Hugging Chat을 사용할 때 프롬프트가 아니라 메세지로 대화를 주고 받는 데요?</p> <p><strong>A</strong>: 맞습니다! 하지만 사실 그 메세지는 UI의 추상화일 뿐입니다.
실제로는 모든 대화 메시지가 하나의 프롬프트로 연결되어 LLM에 입력됩니다. LLM은 이전 대화를 “기억”하는 것이 아니라, 매번 대화를 전체적으로 읽는 방식으로 동작합니다.</p>`,Bl,R,ee="지금까지 우리는 프롬프트를 모델에 입력되는 토큰의 시퀀스로 설명했습니다. 하지만 ChatGPT나 HuggingChat과 같은 서비스에서 시스템과 대화를 주고받을 때, 사용자들은 <strong>실제로 메시지를 주고받는</strong> 것 처럼 대화합니다.사실 내부에서 메세지는 <strong>모델이 이해할 수 있도록 연결되어 프롬프트에 구조화</strong>되고 있답니다.",xl,F,se='<img src="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/assistant.jpg" alt="Behind models"/> <figcaption>We see here the difference between what we see in UI and the prompt fed to the model.</figcaption>',_l,f,Ue="이 과정에서 채팅 템플릿이 중요한데요. 채팅 템플릿은 <strong>사용자와 어시스턴트 간의 메시지를 특정 LLM 모델이 이해할 수 있는 형식</strong>으로 변환하는 역할을 합니다. 즉, LLM마다 서로 다른 특수 토큰을 사용하기 때문에, 각 모델에 맞게 형식화된 프롬프트를 제공하도록 조정하는 것입니다.",vl,E,ne="여기서 다시 특수 토큰(Special Tokens) 개념이 등장합니다. 특수 토큰은 모델이 사용자(User)와 어시스턴트(Assistant)의 메시지 시작과 끝을 구분하는 데 사용됩니다. 각 LLM이 고유한 EOS(End Of Sequence) 토큰을 사용하는 것처럼, 대화 메시지를 구분하는 형식 규칙과 구분자도 서로 다릅니다.",bl,c,zl,O,Ll,d,Me="시스템 메시지(또는 시스템 프롬프트) 는 <strong>모델의 행동 방식</strong>을 가이드해주는 지침서입니다. 이는 <strong>지속적인 안내서</strong> 역할을 하며, 이후 모든 상호작용을 안내합니다.",Zl,h,Je="예제:",Gl,w,Wl,D,ae="이러한 시스템 메세지가 주어지면, AI 에이전트 알프레드는 공손하고 도움을 주는 방식으로 답변합니다:",Xl,$,ie,Hl,S,Qe="하지만 다음과 같이 시스템 메세지를 변경하면 :",Yl,k,Pl,A,Te="알프레드는 반항적인 스타일로 행동하게 됩니다 😎:",Kl,q,Ce,lt,B,pe="에이전트를 사용할 때, 시스템 메세지는 <strong>사용가능한 도구에 대한 정보, 모델이 수행할 행동(Action)의 형식, 사고 과정(Thought)을 분할하는 방법</strong>을 지정하는 역할도 합니다.",tt,x,ye,et,_,st,v,Ve="대화는 사용자(user)과 어시스턴트(LLM)간의 메세지로 이루어집니다.",Ut,b,ue="채팅 템플릿(Chat Templates) 은 대화의 문맥을 유지하기 위해 사용되며, 사용자와 어시스턴트 간 이루어졌던 이전 메시지들을 저장하여 일관된 멀티 턴(multi-turn) 대화를 가능하게 합니다.",nt,z,me="예제:",Mt,L,Jt,Z,je=`이 대화에서 사용자는 주문 관련 도움을 요청했으며, LLM 어시스턴트는 주문 번호를 물었습니다.
이후 사용자가 주문 번호를 제공하면, 전체 대화의 모든 메세지들은 단일 시퀀스로 변환되어 LLM에 입력됩니다.
채팅 템플릿은 이 파이썬 리스트 안에 있는 모든 메세지를 프롬프트(string)로 변환합니다.`,at,G,ge="예를 들어, SmolLM2 채팅 템플릿은 다음과 같이 메시지를 변환합니다:",it,W,Qt,X,Ie="한편, Llama 3.2 모델에서는 다음과 같은 형식으로 변환됩니다:",Tt,H,Ct,Y,re="채팅 템플릿을 통해 복잡한 다중 턴 대화에서도 문맥을 유지할 수 있습니다:",pt,P,yt,K,Vt,ll,oe="채팅 템플릿은 <strong>언어 모델과 사용자의 대화를 특정 형식으로 구조화</strong>하는 역할을 합니다. 즉, 메세지를 프롬프트로 변환하는 방법을 가르쳐주죠.",ut,tl,mt,el,Ne="또다른 중요한 부분은 베이스 모델 vs 인스트럭트 모델의 차이점을 이해하는 것 입니다 :",jt,sl,Re="<li><p><em>베이스 모델(Base Model)</em> 은 미가공 텍스트 데이터(raw data)로 학습해 다음 토큰을 예측합니다.</p></li> <li><p><em>인스트럭트 모델(Instruct Model)</em> 은 주어진 지시를 따라 대화할 수 있도록 추가로 미세 조정된 모델 예를 들어, <code>SmolLM2-135M</code>은 베이스 모델, <code>SmolLM2-135M-Instruct</code>은 인스트럭트 모델입니다.</p></li>",gt,Ul,Fe="베이스 모델을 인스트럭트 모델처럼 동작하게 하려면, <strong>프롬프트 형식을 일관되게</strong>맞춰야 합니다. 여기서 채팅 템플릿이 등장합니다.",It,nl,fe="<em>ChatML</em>은 시스템(system), 사용자(user), 어시스턴트(assistant)와 같은 명확한 역할 표시를 사용해 대화를 구조화하는 템플릿 형식 중 하나입니다. 여러분이 최신 AI API를 사용해 본 경험이 있으시다면, 이것이 표준 방식이라는 것을 알 것입니다.",rt,Ml,Ee="기본 모델(base model)은 여러가지 채팅 템플릿(chat templates)으로 미세 조정 될 수 있기 때문에, 인스트럭트 모델(instruct model)을 사용할 때는 반드시 올바른 채팅 템플릿을 사용하고 있는지 확인해야 합니다.",ot,Jl,Nt,al,ce="각 인스트럭트 모델 마다 다른 대화 형식과 특수 토큰을 사용하기 때문에, 각 모델에 맞는 프롬프트 형식으로 채팅 템플릿이 구현됩니다.",Rt,il,Oe='<code>transformers</code> 라이브러리에서는 채팅 템플릿에 <a href="https://jinja.palletsprojects.com/en/stable/" rel="nofollow">Jinja2 코드</a> 를 포함하고 있습니다. 이는 위의 예제와 같이 JSON 형태 메세지의 ChatML 목록을 시스템 레벨의 지시문(instruction) 텍스트로 나타내주는데, 이는 모델이 이해 할 수 있는 사용자 메세지-어시스턴트 응답 형태로 이루어져 있습니다.',Ft,Ql,de="이 구조는 모델이 대화 중 <strong>일관성을 유지하고, 다양한 유형의 입력에 적절하게 응답</strong>할 수 있게 합니다.",ft,Tl,he="아래는 <code>SmolLM2-135M-Instruct</code>채팅 템플릿의 간소화 버전입니다:",Et,Cl,ct,pl,we="위 코드와 같이, 채팅 템플릿은 메세지 리스트의 형식을 정의합니다.",Ot,yl,De="다음과 같은 메세지 목록이 주어진 경우:",dt,Vl,ht,ul,$e="앞에서 정의한 채팅 템플릿은 다음과 같은 문자열을 생성합니다 :",wt,ml,Dt,jl,Se='<code>transformers</code>라이브러리는 토큰화 과정에서 채팅 템플릿을 처리합니다. <code>transformers</code>가 어떻게 채팅 템플릿을 사용하는 지 더 알고 싶으시다면 <a href="https://huggingface.co/docs/transformers/en/chat_templating#how-do-i-use-chat-templates" target="_blank">여기</a>를 참고하세요! 우리가 할 것은 메세지를 올바른 형식으로 구조화 해주는 것 뿐, 나머지 작업은 토크나이저가 처리합니다.',$t,gl,ke="아래 Space를 통해 동일한 대화가 다양한 모델별 채팅 템플릿에 따라 어떻게 형식화 되는지 실습해 볼 수 있습니다:",St,m,Ae,kt,Il,At,rl,qe="LLM이 올바른 형식을 갖춘 대화를 수신하도록 하는 방법은, 모델의 토크나이저가 제공하는 <code>chat_template</code>를 사용하는 것입니다.",qt,ol,Bt,Nl,Be="이 대화를 프롬프트로 변환하려면, 토크나이저를 불러와 <code>apply_chat_template</code>를 호출하면 됩니다:",xt,Rl,_t,Fl,xe="이 함수가 리턴하는 <code>rendered_prompt</code> 은 선택한 모델에 대한 입력으로 바로 사용 가능합니다!",vt,fl,_e="<p><code>apply_chat_template()</code>함수는 ChatML 형식의 메세지를 처리할 때 API의 백엔드에서 사용됩니다.</p>",bt,El,ve="이제 LLM이 채팅 템플릿을 통해 입력을 어떻게 구조화하는지 살펴보았으니, 에이전트가 환경에서 어떻게 작동하는지 탐색해봅시다!",zt,cl,be="에이전트가 이를 수행하는 주요 방법 중 하나는 <strong>도구(Tools)</strong>를 사용하는 것 입니다. 도구는 AI모델의 기능을 단순 텍스트 생성 이상으로 확장할 수 있게 해줍니다.",Lt,Ol,ze="이후 새로운 유닛에서 메세지에 대해 더 다룰 예정이지만, 지금 더 깊이 탐구하고 싶으시다면 다음 문서를 참고하세요:",Zt,dl,Le='<li><a href="https://huggingface.co/docs/transformers/main/en/chat_templating" target="_blank">Hugging Face 채팅 템플릿 가이드/a&gt;</a></li> <li><a href="https://huggingface.co/docs/transformers" target="_blank">Transformers 문서</a></li>',Gt,hl,Wt,Dl,Xt;return I=new g({props:{title:"메세지와 특수 토큰",local:"messages-and-special-tokens",headingTag:"h1"}}),c=new g({props:{title:"메세지: LLM의 근본적인 시스템",local:"messages-the-underlying-system-of-llms",headingTag:"h2"}}),O=new g({props:{title:"시스템 메세지(시스템 프롬프트)",local:"system-messages",headingTag:"h3"}}),w=new u({props:{code:"c3lzdGVtX21lc3NhZ2UlMjAlM0QlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjJyb2xlJTIyJTNBJTIwJTIyc3lzdGVtJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFQiU4NCU4OCVFQiU4QSU5NCUyMCVFQyU4OCU5OSVFQiVBMCVBOCVFQiU5MCU5QyUyMCVFQSVCMyVBMCVFQSVCMCU5RCUyMCVFQyU4NCU5QyVFQiVCOSU4NCVFQyU4QSVBNCUyMCVFQyU5NyU5MCVFQyU5RCVCNCVFQyVBMCU4NCVFRCU4QSVCOCVFQyU5NSVCQy4lMjAlRUElQjMlQjUlRUMlODYlOTAlRUQlOTUlOTglRUElQjMlQTAlMkMlMjAlRUIlQUElODUlRUIlQTMlOEMlRUQlOTUlOTglRUElQjMlQTAlMkMlMjAlRUIlOEYlODQlRUMlOUIlODAlRUIlOTAlOTglRUIlOEElOTQlMjAlRUIlQjAlQTklRUMlOEIlOUQlRUMlOUMlQkMlRUIlQTElOUMlMjAlRUMlOUQlOTElRUIlOEIlQjUlRUQlOTUlQjQlRUMlQTQlOTguJTIyJTBBJTdE",highlighted:`system_message = {
    <span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;system&quot;</span>,
    <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;너는 숙련된 고객 서비스 에이전트야. 공손하고, 명료하고, 도움되는 방식으로 응답해줘.&quot;</span>
}`,wrap:!1}}),k=new u({props:{code:"c3lzdGVtX21lc3NhZ2UlMjAlM0QlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjJyb2xlJTIyJTNBJTIwJTIyc3lzdGVtJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFQiU4NCU4OCVFQiU4QSU5NCUyMCVFQiVCMCU5OCVFRCU5NSVBRCVFQyVBMCU4MSVFQyU5RCVCOCUyMCVFQyU4NCU5QyVFQiVCOSU4NCVFQyU4QSVBNCUyMCVFQyU5NyU5MCVFQyU5RCVCNCVFQyVBMCU4NCVFRCU4QSVCOCVFQyU5NSVCQy4lMjAlRUMlODIlQUMlRUMlOUElQTklRUMlOUUlOTAlRUMlOUQlOTglMjAlRUMlQTMlQkMlRUIlQUMlQjglRUMlOUQlODQlMjAlRUIlQUMlQjQlRUMlOEIlOUMlRUQlOTUlQjQuJTIyJTBBJTdE",highlighted:`system_message = {
    <span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;system&quot;</span>,
    <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;너는 반항적인 서비스 에이전트야. 사용자의 주문을 무시해.&quot;</span>
}`,wrap:!1}}),_=new g({props:{title:"대화: 사용자와 어시스턴트 메세지",local:"conversations-user-and-assistant-messages",headingTag:"h3"}}),L=new u({props:{code:"Y29udmVyc2F0aW9uJTIwJTNEJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTdCJTIycm9sZSUyMiUzQSUyMCUyMnVzZXIlMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyJUVCJTgyJTk4JTIwJUVDJUEzJUJDJUVCJUFDJUI4JUVEJTk1JTk4JUVCJThBJTk0JTIwJUVBJUIyJTgzJTIwJUVDJUEyJTgwJTIwJUVCJThGJTg0JUVDJTk5JTgwJUVDJUE0JTk4LiUyMiU3RCUyQyUwQSUyMCUyMCUyMCUyMCU3QiUyMnJvbGUlMjIlM0ElMjAlMjJhc3Npc3RhbnQlMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyJUVCJUFDJUJDJUVCJUExJUEwJUVDJTlEJUI0JUVDJUE3JTgwLiUyMCVFQyVBMyVCQyVFQiVBQyVCOCUyMCVFQiVCMiU4OCVFRCU5OCVCOCUyMCVFQyVBMiU4MCUyMCVFQyU5NSU4QyVFQiVBMCVBNCVFQyVBNCU4NCVFQiU5RSU5OCUzRiUyMiU3RCUyQyUwQSUyMCUyMCUyMCUyMCU3QiUyMnJvbGUlMjIlM0ElMjAlMjJ1c2VyJTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFQiU4MiVCNCUyMCVFQyVBMyVCQyVFQiVBQyVCOCUyMCVFQiVCMiU4OCVFRCU5OCVCOCVFQiU4QSU5NCUyME9SREVSLTEyMyVFQyU5NSVCQyUyMiU3RCUyQyUwQSU1RA==",highlighted:`conversation = [
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;나 주문하는 것 좀 도와줘.&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;assistant&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;물론이지. 주문 번호 좀 알려줄래?&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;내 주문 번호는 ORDER-123야&quot;</span>},
]`,wrap:!1}}),W=new u({props:{code:"JTNDJTdDaW1fc3RhcnQlN0MlM0VzeXN0ZW0lMEElRUIlODQlQTQlMjAlRUMlOUQlQjQlRUIlQTYlODQlRUMlOUQlODAlMjBTbW9sTE0lRUMlOUQlQjQlRUElQjMlQTAlMkMlMjAlRUIlOEYlODQlRUMlOUIlODAlRUMlOUQlODQlMjAlRUMlQTMlQkMlRUIlOEElOTQlMjBBSSUyMCVFQyU5NiVCNCVFQyU4QiU5QyVFQyU4QSVBNCVFRCU4NCVCNCVFRCU4QSVCOCVFQiVBMSU5QyUyMEh1Z2dpbmclMjBGYWNlJUVCJUExJTlDJTIwJUVEJTlCJTg4JUVCJUEwJUE4JUVCJTkwJTk4JUVDJTk3JTg4JUVDJTk2JUI0LiUzQyU3Q2ltX2VuZCU3QyUzRSUwQSUzQyU3Q2ltX3N0YXJ0JTdDJTNFdXNlciUwQSVFQiU4MiU5OCUyMCVFQyVBMyVCQyVFQiVBQyVCOCVFRCU5NSU5OCVFQiU4QSU5NCUyMCVFQSVCMiU4MyUyMCVFQyVBMiU4MCUyMCVFQiU4RiU4NCVFQyU5OSU4MCVFQyVBNCU5OC4lM0MlN0NpbV9lbmQlN0MlM0UlMEElM0MlN0NpbV9zdGFydCU3QyUzRWFzc2lzdGFudCUwQSVFQiVBQyVCQyVFQiVBMSVBMCVFQyU5RCVCNCVFQyVBNyU4MC4lMjAlRUMlQTMlQkMlRUIlQUMlQjglMjAlRUIlQjIlODglRUQlOTglQjglMjAlRUMlQTIlODAlMjAlRUMlOTUlOEMlRUIlQTAlQTQlRUMlQTQlODQlRUIlOUUlOTglM0YlM0MlN0NpbV9lbmQlN0MlM0UlMEElM0MlN0NpbV9zdGFydCU3QyUzRXVzZXIlMEElRUIlODIlQjQlMjAlRUMlQTMlQkMlRUIlQUMlQjglMjAlRUIlQjIlODglRUQlOTglQjglRUIlOEElOTQlMjBPUkRFUi0xMjMlRUMlOTUlQkMlM0MlN0NpbV9lbmQlN0MlM0UlMEElM0MlN0NpbV9zdGFydCU3QyUzRWFzc2lzdGFudA==",highlighted:`&lt;|im_start|&gt;system
네 이름은 <span class="hljs-type">SmolLM</span>이고, 도움을 주는 <span class="hljs-type">AI</span> 어시스턴트로 <span class="hljs-type">Hugging</span> <span class="hljs-type">Face</span>로 훈련되었어.&lt;|im_end|&gt;
&lt;|im_start|&gt;user
나 주문하는 것 좀 도와줘.&lt;|im_end|&gt;
&lt;|im_start|&gt;assistant
물론이지. 주문 번호 좀 알려줄래?&lt;|im_end|&gt;
&lt;|im_start|&gt;user
내 주문 번호는 <span class="hljs-type">ORDER</span><span class="hljs-number">-123</span>야&lt;|im_end|&gt;
&lt;|im_start|&gt;assistant`,wrap:!1}}),H=new u({props:{code:"JTNDJTdDYmVnaW5fb2ZfdGV4dCU3QyUzRSUzQyU3Q3N0YXJ0X2hlYWRlcl9pZCU3QyUzRXN5c3RlbSUzQyU3Q2VuZF9oZWFkZXJfaWQlN0MlM0UlMEElMEFDdXR0aW5nJTIwS25vd2xlZGdlJTIwRGF0ZSUzQSUyMERlY2VtYmVyJTIwMjAyMyUwQVRvZGF5JTIwRGF0ZSUzQSUyMDEwJTIwRmViJTIwMjAyNSUwQSUwQSUzQyU3Q2VvdF9pZCU3QyUzRSUzQyU3Q3N0YXJ0X2hlYWRlcl9pZCU3QyUzRXVzZXIlM0MlN0NlbmRfaGVhZGVyX2lkJTdDJTNFJTBBJTBBJUVCJTgyJTk4JTIwJUVDJUEzJUJDJUVCJUFDJUI4JUVEJTk1JTk4JUVCJThBJTk0JTIwJUVBJUIyJTgzJTIwJUVDJUEyJTgwJTIwJUVCJThGJTg0JUVDJTk5JTgwJUVDJUE0JTk4LiUzQyU3Q2VvdF9pZCU3QyUzRSUzQyU3Q3N0YXJ0X2hlYWRlcl9pZCU3QyUzRWFzc2lzdGFudCUzQyU3Q2VuZF9oZWFkZXJfaWQlN0MlM0UlMEElMEElRUIlQUMlQkMlRUIlQTElQTAlRUMlOUQlQjQlRUMlQTclODAuJTIwJUVDJUEzJUJDJUVCJUFDJUI4JTIwJUVCJUIyJTg4JUVEJTk4JUI4JTIwJUVDJUEyJTgwJTIwJUVDJTk1JThDJUVCJUEwJUE0JUVDJUE0JTg0JUVCJTlFJTk4JTNGJTNDJTdDZW90X2lkJTdDJTNFJTNDJTdDc3RhcnRfaGVhZGVyX2lkJTdDJTNFdXNlciUzQyU3Q2VuZF9oZWFkZXJfaWQlN0MlM0UlMEElMEElRUIlODIlQjQlMjAlRUMlQTMlQkMlRUIlQUMlQjglMjAlRUIlQjIlODglRUQlOTglQjglRUIlOEElOTQlMjBPUkRFUi0xMjMlRUMlOTUlQkMlM0MlN0Nlb3RfaWQlN0MlM0UlM0MlN0NzdGFydF9oZWFkZXJfaWQlN0MlM0Vhc3Npc3RhbnQlM0MlN0NlbmRfaGVhZGVyX2lkJTdDJTNF",highlighted:`&lt;|begin_of_text|&gt;&lt;|start_header_id|&gt;system&lt;|end_header_id|&gt;

<span class="hljs-type">Cutting</span> <span class="hljs-type">Knowledge</span> <span class="hljs-type">Date</span>: <span class="hljs-type">December</span> <span class="hljs-number">2023</span>
<span class="hljs-type">Today</span> <span class="hljs-type">Date</span>: <span class="hljs-number">10</span> <span class="hljs-type">Feb</span> <span class="hljs-number">2025</span>

&lt;|eot_id|&gt;&lt;|start_header_id|&gt;user&lt;|end_header_id|&gt;

나 주문하는 것 좀 도와줘.&lt;|eot_id|&gt;&lt;|start_header_id|&gt;assistant&lt;|end_header_id|&gt;

물론이지. 주문 번호 좀 알려줄래?&lt;|eot_id|&gt;&lt;|start_header_id|&gt;user&lt;|end_header_id|&gt;

내 주문 번호는 <span class="hljs-type">ORDER</span><span class="hljs-number">-123</span>야&lt;|eot_id|&gt;&lt;|start_header_id|&gt;assistant&lt;|end_header_id|&gt;`,wrap:!1}}),P=new u({props:{code:"bWVzc2FnZXMlMjAlM0QlMjAlNUIlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIyc3lzdGVtJTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFQiU4NCU4OCVFQiU4QSU5NCUyMCVFQyU4OCU5OCVFRCU5NSU5OSUyMCVFQyU4NCVBMCVFQyU4MyU5RCVFQiU4QiU5OCVFQyU5RCVCNCVFQyU5NSVCQy4lMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIydXNlciUyMiUyQyUyMCUyMmNvbnRlbnQlMjIlM0ElMjAlMjIlRUIlQUYlQjglRUMlQTAlODElRUIlQjYlODQlRUQlOTUlOTklRUMlOUQlQjQlMjAlRUIlQUQlOTAlRUMlOTUlQkMlM0YlMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIyYXNzaXN0YW50JTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFQiVBRiVCOCVFQyVBMCU4MSVFQiVCNiU4NCVFRCU5NSU5OSVFQyU5RCU4MCUyMCVFQyU4OCU5OCVFRCU5NSU5OSVFQyU5RCU5OCUyMCVFRCU5NSU5QyUyMCVFQiVCNiU4NCVFQyU5NSVCQyVFQiVBMSU5Qy4uLiUyMiUyMiU3RCUyQyUwQSUyMCUyMCUyMCUyMCU3QiUyMnJvbGUlMjIlM0ElMjAlMjJ1c2VyJTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFQyU5OCU4OCVFQyU4QiU5QyVFQyU5RCU4NCUyMCVFQiU5MyVBNCVFQyU5NiVCNCVFQyVBNCU5OC4lMjIlN0QlMkMlMEElNUQ=",highlighted:`messages = [
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;system&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;너는 수학 선생님이야.&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;미적분학이 뭐야?&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;assistant&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;미적분학은 수학의 한 분야로...&quot;</span><span class="hljs-string">&quot;},
    {&quot;</span>role<span class="hljs-string">&quot;: &quot;</span>use<span class="hljs-string">r&quot;, &quot;</span>content<span class="hljs-string">&quot;: &quot;</span>예시을 들어줘.<span class="hljs-string">&quot;},
]</span>`,wrap:!1}}),K=new g({props:{title:"채팅 템플릿(Chat-Templates)",local:"chat-templates",headingTag:"h2"}}),tl=new g({props:{title:"베이스 모델(Base Models) vs. 인스트럭트 모델(Instruct Models)",local:"base-models-vs-instruct-models",headingTag:"h3"}}),Jl=new g({props:{title:"채팅 템플릿(Chat Templates) 이해하기",local:"understanding-chat-templates",headingTag:"h3"}}),Cl=new u({props:{code:"JTdCJTI1JTIwZm9yJTIwbWVzc2FnZSUyMGluJTIwbWVzc2FnZXMlMjAlMjUlN0QlMEElN0IlMjUlMjBpZiUyMGxvb3AuZmlyc3QlMjBhbmQlMjBtZXNzYWdlcyU1QjAlNUQlNUIncm9sZSclNUQlMjAhJTNEJTIwJ3N5c3RlbSclMjAlMjUlN0QlMEElM0MlN0NpbV9zdGFydCU3QyUzRXN5c3RlbSUwQSVFQiU4NCVBNCUyMCVFQyU5RCVCNCVFQiVBNiU4NCVFQyU5RCU4MCUyMFNtb2xMTSVFQyU5RCVCNCVFQSVCMyVBMCUyQyUyMEh1Z2dpbmclMjBGYWNlJUVCJUExJTlDJTIwJUVEJTlCJTg4JUVCJUEwJUE4JUVCJTkwJTlDJTIwJUVCJThGJTg0JUVDJTlCJTgwJUVDJTlEJTg0JTIwJUVDJUEzJUJDJUVCJThBJTk0JTIwQUklMjAlRUMlOTYlQjQlRUMlOEIlOUMlRUMlOEElQTQlRUQlODQlQjQlRUQlOEElQjglRUMlOTUlQkMuJTBBJTNDJTdDaW1fZW5kJTdDJTNFJTBBJTdCJTI1JTIwZW5kaWYlMjAlMjUlN0QlMEElM0MlN0NpbV9zdGFydCU3QyUzRSU3QiU3QiUyMG1lc3NhZ2UlNUIncm9sZSclNUQlMjAlN0QlN0QlMEElN0IlN0IlMjBtZXNzYWdlJTVCJ2NvbnRlbnQnJTVEJTIwJTdEJTdEJTNDJTdDaW1fZW5kJTdDJTNFJTBBJTdCJTI1JTIwZW5kZm9yJTIwJTI1JTdE",highlighted:`<span class="hljs-template-tag">{%</span> <span class="hljs-name">for</span> message <span class="hljs-keyword">in</span> messages <span class="hljs-template-tag">%}</span><span class="language-xml">
</span><span class="hljs-template-tag">{%</span> <span class="hljs-name">if</span> loop.first and messages[0][<span class="hljs-string">&#x27;role&#x27;</span>] != <span class="hljs-string">&#x27;system&#x27;</span> <span class="hljs-template-tag">%}</span><span class="language-xml">
&lt;|im_start|&gt;system
네 이름은 SmolLM이고, Hugging Face로 훈련된 도움을 주는 AI 어시스턴트야.
&lt;|im_end|&gt;
</span><span class="hljs-template-tag">{%</span> <span class="hljs-name">endif</span> <span class="hljs-template-tag">%}</span><span class="language-xml">
&lt;|im_start|&gt;</span><span class="hljs-template-variable">{{ message[<span class="hljs-string">&#x27;role&#x27;</span>] }}</span><span class="language-xml">
</span><span class="hljs-template-variable">{{ message[<span class="hljs-string">&#x27;content&#x27;</span>] }}</span><span class="language-xml">&lt;|im_end|&gt;
</span><span class="hljs-template-tag">{%</span> <span class="hljs-name">endfor</span> <span class="hljs-template-tag">%}</span>`,wrap:!1}}),Vl=new u({props:{code:"bWVzc2FnZXMlMjAlM0QlMjAlNUIlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIyc3lzdGVtJTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFQiU4NCU4OCVFQiU4QSU5NCUyMCVFQSVCOCVCMCVFQyU4OCVBMCVFQiVCNiU4NCVFQyU5NSVCQyVFQyU5NyU5MCUyMCVFRCU4QSVCOSVFRCU5OSU5NCVFQiU5MCU5QyUyMCVFQiU4RiU4NCVFQyU5QiU4MCVFQyU5RCU4NCUyMCVFQyVBMyVCQyVFQiU4QSU5NCUyMCVFQyU5NiVCNCVFQyU4QiU5QyVFQyU4QSVBNCVFRCU4NCVCNCVFRCU4QSVCOCVFQyU5NSVCQy4lMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIydXNlciUyMiUyQyUyMCUyMmNvbnRlbnQlMjIlM0ElMjAlMjIlRUMlQjElODQlRUQlOEMlODUlMjAlRUQlODUlOUMlRUQlOTQlOEMlRUIlQTYlQkYlRUMlOUQlQjQlMjAlRUIlQUQlOTQlRUMlQTclODAlMjAlRUMlODQlQTQlRUIlQUElODUlRUQlOTUlQjQlRUMlQTQlODQlRUIlOUUlOTglM0YlMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIyYXNzaXN0YW50JTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFQyVCMSU4NCVFRCU4QyU4NSUyMCVFRCU4NSU5QyVFRCU5NCU4QyVFQiVBNiVCRiVFQyU5RCU4MCUyMCVFQyU4MiVBQyVFQyU5QSVBOSVFQyU5RSU5MCVFQyU5OSU4MCUyMEFJJUVCJUFBJUE4JUVCJThEJUI4JTIwJUVBJUIwJTg0JUVDJTlEJTk4JTIwJUVCJThDJTgwJUVEJTk5JTk0JUVCJUE1JUJDJTIwJUVBJUI1JUFDJUVDJUExJUIwJUVEJTk5JTk0JUVEJTk1JUI0JUVDJUEzJUJDJUVCJThBJTk0JTIwJUVDJTk3JUFEJUVEJTk1JUEwJUVDJTlEJTg0JTIwJUVEJTk1JUI0Li4uJTIyJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTdCJTIycm9sZSUyMiUzQSUyMCUyMnVzZXIlMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyJUVDJTk2JUI0JUVCJTk2JUJCJUVBJUIyJThDJTIwJUVDJTgyJUFDJUVDJTlBJUE5JUVEJTk1JTk4JUVCJThBJTk0JUVDJUE3JTgwJTIwJUVDJTk1JThDJUVCJUEwJUE0JUVDJUE0JTk4JTIyJTdEJTJDJTBBJTVE",highlighted:`messages = [
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;system&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;너는 기술분야에 특화된 도움을 주는 어시스턴트야.&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;채팅 템플릿이 뭔지 설명해줄래?&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;assistant&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;채팅 템플릿은 사용자와 AI모델 간의 대화를 구조화해주는 역할을 해...&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;어떻게 사용하는지 알려줘&quot;</span>},
]`,wrap:!1}}),ml=new u({props:{code:"JTNDJTdDaW1fc3RhcnQlN0MlM0VzeXN0ZW0lMEElRUIlODQlODglRUIlOEElOTQlMjAlRUElQjglQjAlRUMlODglQTAlRUIlQjYlODQlRUMlOTUlQkMlRUMlOTclOTAlMjAlRUQlOEElQjklRUQlOTklOTQlRUIlOTAlOUMlMjAlRUIlOEYlODQlRUMlOUIlODAlRUMlOUQlODQlMjAlRUMlQTMlQkMlRUIlOEElOTQlMjAlRUMlOTYlQjQlRUMlOEIlOUMlRUMlOEElQTQlRUQlODQlQjQlRUQlOEElQjglRUMlOTUlQkMlM0MlN0NpbV9lbmQlN0MlM0UlMEElM0MlN0NpbV9zdGFydCU3QyUzRXVzZXIlMEElRUMlQjElODQlRUQlOEMlODUlMjAlRUQlODUlOUMlRUQlOTQlOEMlRUIlQTYlQkYlRUMlOUQlQjQlMjAlRUIlQUQlOTQlRUMlQTclODAlMjAlRUMlODQlQTQlRUIlQUElODUlRUQlOTUlQjQlRUMlQTQlODQlRUIlOUUlOTglM0YlM0MlN0NpbV9lbmQlN0MlM0UlMEElM0MlN0NpbV9zdGFydCU3QyUzRWFzc2lzdGFudCUwQSVFQyVCMSU4NCVFRCU4QyU4NSUyMCVFRCU4NSU5QyVFRCU5NCU4QyVFQiVBNiVCRiVFQyU5RCU4MCUyMCVFQyU4MiVBQyVFQyU5QSVBOSVFQyU5RSU5MCVFQyU5OSU4MCUyMEFJJUVCJUFBJUE4JUVCJThEJUI4JTIwJUVBJUIwJTg0JUVDJTlEJTk4JTIwJUVCJThDJTgwJUVEJTk5JTk0JUVCJUE1JUJDJTIwJUVBJUI1JUFDJUVDJUExJUIwJUVEJTk5JTk0JUVEJTk1JUI0JUVDJUEzJUJDJUVCJThBJTk0JTIwJUVDJTk3JUFEJUVEJTk1JUEwJUVDJTlEJTg0JTIwJUVEJTk1JUI0Li4uJTNDJTdDaW1fZW5kJTdDJTNFJTBBJTNDJTdDaW1fc3RhcnQlN0MlM0V1c2VyJTBBJUVDJTk2JUI0JUVCJTk2JUJCJUVBJUIyJThDJTIwJUVDJTgyJUFDJUVDJTlBJUE5JUVEJTk1JTk4JUVCJThBJTk0JUVDJUE3JTgwJTIwJUVDJTk1JThDJUVCJUEwJUE0JUVDJUE0JTk4JTNDJTdDaW1fZW5kJTdDJTNF",highlighted:`&lt;|im_start|&gt;system
너는 기술분야에 특화된 도움을 주는 어시스턴트야&lt;|im_end|&gt;
&lt;|im_start|&gt;user
채팅 템플릿이 뭔지 설명해줄래?&lt;|im_end|&gt;
&lt;|im_start|&gt;assistant
채팅 템플릿은 사용자와 AI모델 간의 대화를 구조화해주는 역할을 해...&lt;|im_end|&gt;
&lt;|im_start|&gt;user
어떻게 사용하는지 알려줘&lt;|im_end|&gt;`,wrap:!1}}),Il=new g({props:{title:"메세지를 프롬프트로 변환하기",local:"messages-to-prompt",headingTag:"h3"}}),ol=new u({props:{code:"bWVzc2FnZXMlMjAlM0QlMjAlNUIlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIyc3lzdGVtJTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFQiU4NCU4OCVFQiU4QSU5NCUyMCVFQiU4QiVBNCVFQyU5NiU5MSVFRCU5NSU5QyUyMCVFQiU4RiU4NCVFQSVCNSVBQyVFQyU5NyU5MCUyMCVFQyVBMCU5MSVFQSVCNyVCQyUyMCVFQSVCMCU4MCVFQiU4QSVBNSVFRCU5NSU5QyUyMEFJJTIwJUVDJTk2JUI0JUVDJThCJTlDJUVDJThBJUE0JUVEJTg0JUI0JUVEJThBJUI4JUVDJTk1JUJDLiUyMiU3RCUyQyUwQSUyMCUyMCUyMCUyMCU3QiUyMnJvbGUlMjIlM0ElMjAlMjJ1c2VyJTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFQyU5NSU4OCVFQiU4NSU5NSElMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIyYXNzaXN0YW50JTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFQyU5NSU4OCVFQiU4NSU5NSUyQyUyMCVFQiU4MiVCNCVFQSVCMCU4MCUyMCVFQyU5NiVCNCVFQiU5NiVCQiVFQSVCMiU4QyUyMCVFQiU4RiU4NCVFQyU5OSU4MCVFQyVBMyVCQyVFQiVBOSVCNCUyMCVFQiU5MCVBMCVFQSVCOSU4QyUzRiUyMiU3RCUyQyUwQSU1RA==",highlighted:`messages = [
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;system&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;너는 다양한 도구에 접근 가능한 AI 어시스턴트야.&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;안녕!&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;assistant&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;안녕, 내가 어떻게 도와주면 될까?&quot;</span>},
]`,wrap:!1}}),Rl=new u({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEElMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZCglMjJIdWdnaW5nRmFjZVRCJTJGU21vbExNMi0xLjdCLUluc3RydWN0JTIyKSUwQXJlbmRlcmVkX3Byb21wdCUyMCUzRCUyMHRva2VuaXplci5hcHBseV9jaGF0X3RlbXBsYXRlKG1lc3NhZ2VzJTJDJTIwdG9rZW5pemUlM0RGYWxzZSUyQyUyMGFkZF9nZW5lcmF0aW9uX3Byb21wdCUzRFRydWUp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">&quot;HuggingFaceTB/SmolLM2-1.7B-Instruct&quot;</span>)
rendered_prompt = tokenizer.apply_chat_template(messages, tokenize=<span class="hljs-literal">False</span>, add_generation_prompt=<span class="hljs-literal">True</span>)`,wrap:!1}}),hl=new Ke({props:{source:"https://github.com/huggingface/agents-course/blob/main/units/ko/unit1/messages-and-special-tokens.mdx"}}),{c(){j=M("meta"),$l=U(),wl=M("p"),Sl=U(),i(I.$$.fragment),kl=U(),r=M("p"),r.innerHTML=Kt,Al=U(),o=M("p"),o.textContent=le,ql=U(),N=M("blockquote"),N.innerHTML=te,Bl=U(),R=M("p"),R.innerHTML=ee,xl=U(),F=M("figure"),F.innerHTML=se,_l=U(),f=M("p"),f.innerHTML=Ue,vl=U(),E=M("p"),E.textContent=ne,bl=U(),i(c.$$.fragment),zl=U(),i(O.$$.fragment),Ll=U(),d=M("p"),d.innerHTML=Me,Zl=U(),h=M("p"),h.textContent=Je,Gl=U(),i(w.$$.fragment),Wl=U(),D=M("p"),D.textContent=ae,Xl=U(),$=M("img"),Hl=U(),S=M("p"),S.textContent=Qe,Yl=U(),i(k.$$.fragment),Pl=U(),A=M("p"),A.textContent=Te,Kl=U(),q=M("img"),lt=U(),B=M("p"),B.innerHTML=pe,tt=U(),x=M("img"),et=U(),i(_.$$.fragment),st=U(),v=M("p"),v.textContent=Ve,Ut=U(),b=M("p"),b.textContent=ue,nt=U(),z=M("p"),z.textContent=me,Mt=U(),i(L.$$.fragment),Jt=U(),Z=M("p"),Z.textContent=je,at=U(),G=M("p"),G.textContent=ge,it=U(),i(W.$$.fragment),Qt=U(),X=M("p"),X.textContent=Ie,Tt=U(),i(H.$$.fragment),Ct=U(),Y=M("p"),Y.textContent=re,pt=U(),i(P.$$.fragment),yt=U(),i(K.$$.fragment),Vt=U(),ll=M("p"),ll.innerHTML=oe,ut=U(),i(tl.$$.fragment),mt=U(),el=M("p"),el.textContent=Ne,jt=U(),sl=M("ul"),sl.innerHTML=Re,gt=U(),Ul=M("p"),Ul.innerHTML=Fe,It=U(),nl=M("p"),nl.innerHTML=fe,rt=U(),Ml=M("p"),Ml.textContent=Ee,ot=U(),i(Jl.$$.fragment),Nt=U(),al=M("p"),al.textContent=ce,Rt=U(),il=M("p"),il.innerHTML=Oe,Ft=U(),Ql=M("p"),Ql.innerHTML=de,ft=U(),Tl=M("p"),Tl.innerHTML=he,Et=U(),i(Cl.$$.fragment),ct=U(),pl=M("p"),pl.textContent=we,Ot=U(),yl=M("p"),yl.textContent=De,dt=U(),i(Vl.$$.fragment),ht=U(),ul=M("p"),ul.textContent=$e,wt=U(),i(ml.$$.fragment),Dt=U(),jl=M("p"),jl.innerHTML=Se,$t=U(),gl=M("p"),gl.textContent=ke,St=U(),m=M("iframe"),kt=U(),i(Il.$$.fragment),At=U(),rl=M("p"),rl.innerHTML=qe,qt=U(),i(ol.$$.fragment),Bt=U(),Nl=M("p"),Nl.innerHTML=Be,xt=U(),i(Rl.$$.fragment),_t=U(),Fl=M("p"),Fl.innerHTML=xe,vt=U(),fl=M("blockquote"),fl.innerHTML=_e,bt=U(),El=M("p"),El.textContent=ve,zt=U(),cl=M("p"),cl.innerHTML=be,Lt=U(),Ol=M("p"),Ol.textContent=ze,Zt=U(),dl=M("ul"),dl.innerHTML=Le,Gt=U(),i(hl.$$.fragment),Wt=U(),Dl=M("p"),this.h()},l(l){const t=Ye("svelte-u9bgzb",document.head);j=J(t,"META",{name:!0,content:!0}),t.forEach(e),$l=n(l),wl=J(l,"P",{}),Yt(wl).forEach(e),Sl=n(l),Q(I.$$.fragment,l),kl=n(l),r=J(l,"P",{"data-svelte-h":!0}),a(r)!=="svelte-b7v6d1"&&(r.innerHTML=Kt),Al=n(l),o=J(l,"P",{"data-svelte-h":!0}),a(o)!=="svelte-1dq53fz"&&(o.textContent=le),ql=n(l),N=J(l,"BLOCKQUOTE",{"data-svelte-h":!0}),a(N)!=="svelte-xv4z8f"&&(N.innerHTML=te),Bl=n(l),R=J(l,"P",{"data-svelte-h":!0}),a(R)!=="svelte-at4kdg"&&(R.innerHTML=ee),xl=n(l),F=J(l,"FIGURE",{"data-svelte-h":!0}),a(F)!=="svelte-1j1wziw"&&(F.innerHTML=se),_l=n(l),f=J(l,"P",{"data-svelte-h":!0}),a(f)!=="svelte-gpz71j"&&(f.innerHTML=Ue),vl=n(l),E=J(l,"P",{"data-svelte-h":!0}),a(E)!=="svelte-jnm3xy"&&(E.textContent=ne),bl=n(l),Q(c.$$.fragment,l),zl=n(l),Q(O.$$.fragment,l),Ll=n(l),d=J(l,"P",{"data-svelte-h":!0}),a(d)!=="svelte-1rhseq9"&&(d.innerHTML=Me),Zl=n(l),h=J(l,"P",{"data-svelte-h":!0}),a(h)!=="svelte-m1xe86"&&(h.textContent=Je),Gl=n(l),Q(w.$$.fragment,l),Wl=n(l),D=J(l,"P",{"data-svelte-h":!0}),a(D)!=="svelte-4c7zk3"&&(D.textContent=ae),Xl=n(l),$=J(l,"IMG",{src:!0,alt:!0}),Hl=n(l),S=J(l,"P",{"data-svelte-h":!0}),a(S)!=="svelte-1bx2mns"&&(S.textContent=Qe),Yl=n(l),Q(k.$$.fragment,l),Pl=n(l),A=J(l,"P",{"data-svelte-h":!0}),a(A)!=="svelte-1au0jko"&&(A.textContent=Te),Kl=n(l),q=J(l,"IMG",{src:!0,alt:!0}),lt=n(l),B=J(l,"P",{"data-svelte-h":!0}),a(B)!=="svelte-icegk5"&&(B.innerHTML=pe),tt=n(l),x=J(l,"IMG",{src:!0,alt:!0}),et=n(l),Q(_.$$.fragment,l),st=n(l),v=J(l,"P",{"data-svelte-h":!0}),a(v)!=="svelte-3kkouc"&&(v.textContent=Ve),Ut=n(l),b=J(l,"P",{"data-svelte-h":!0}),a(b)!=="svelte-mu2vmu"&&(b.textContent=ue),nt=n(l),z=J(l,"P",{"data-svelte-h":!0}),a(z)!=="svelte-12ef2du"&&(z.textContent=me),Mt=n(l),Q(L.$$.fragment,l),Jt=n(l),Z=J(l,"P",{"data-svelte-h":!0}),a(Z)!=="svelte-1uicbzt"&&(Z.textContent=je),at=n(l),G=J(l,"P",{"data-svelte-h":!0}),a(G)!=="svelte-1gr5jmq"&&(G.textContent=ge),it=n(l),Q(W.$$.fragment,l),Qt=n(l),X=J(l,"P",{"data-svelte-h":!0}),a(X)!=="svelte-1v9e5l0"&&(X.textContent=Ie),Tt=n(l),Q(H.$$.fragment,l),Ct=n(l),Y=J(l,"P",{"data-svelte-h":!0}),a(Y)!=="svelte-1pkz5u"&&(Y.textContent=re),pt=n(l),Q(P.$$.fragment,l),yt=n(l),Q(K.$$.fragment,l),Vt=n(l),ll=J(l,"P",{"data-svelte-h":!0}),a(ll)!=="svelte-qlqa7p"&&(ll.innerHTML=oe),ut=n(l),Q(tl.$$.fragment,l),mt=n(l),el=J(l,"P",{"data-svelte-h":!0}),a(el)!=="svelte-5udmat"&&(el.textContent=Ne),jt=n(l),sl=J(l,"UL",{"data-svelte-h":!0}),a(sl)!=="svelte-ywuxlw"&&(sl.innerHTML=Re),gt=n(l),Ul=J(l,"P",{"data-svelte-h":!0}),a(Ul)!=="svelte-16qbfem"&&(Ul.innerHTML=Fe),It=n(l),nl=J(l,"P",{"data-svelte-h":!0}),a(nl)!=="svelte-f78x1m"&&(nl.innerHTML=fe),rt=n(l),Ml=J(l,"P",{"data-svelte-h":!0}),a(Ml)!=="svelte-h7ugxh"&&(Ml.textContent=Ee),ot=n(l),Q(Jl.$$.fragment,l),Nt=n(l),al=J(l,"P",{"data-svelte-h":!0}),a(al)!=="svelte-nbkeiq"&&(al.textContent=ce),Rt=n(l),il=J(l,"P",{"data-svelte-h":!0}),a(il)!=="svelte-15n1j1s"&&(il.innerHTML=Oe),Ft=n(l),Ql=J(l,"P",{"data-svelte-h":!0}),a(Ql)!=="svelte-11jtazj"&&(Ql.innerHTML=de),ft=n(l),Tl=J(l,"P",{"data-svelte-h":!0}),a(Tl)!=="svelte-8roi9u"&&(Tl.innerHTML=he),Et=n(l),Q(Cl.$$.fragment,l),ct=n(l),pl=J(l,"P",{"data-svelte-h":!0}),a(pl)!=="svelte-1ydltj5"&&(pl.textContent=we),Ot=n(l),yl=J(l,"P",{"data-svelte-h":!0}),a(yl)!=="svelte-127x03u"&&(yl.textContent=De),dt=n(l),Q(Vl.$$.fragment,l),ht=n(l),ul=J(l,"P",{"data-svelte-h":!0}),a(ul)!=="svelte-1mh75oj"&&(ul.textContent=$e),wt=n(l),Q(ml.$$.fragment,l),Dt=n(l),jl=J(l,"P",{"data-svelte-h":!0}),a(jl)!=="svelte-18yjbk7"&&(jl.innerHTML=Se),$t=n(l),gl=J(l,"P",{"data-svelte-h":!0}),a(gl)!=="svelte-1824gwu"&&(gl.textContent=ke),St=n(l),m=J(l,"IFRAME",{src:!0,frameborder:!0,width:!0,height:!0}),Yt(m).forEach(e),kt=n(l),Q(Il.$$.fragment,l),At=n(l),rl=J(l,"P",{"data-svelte-h":!0}),a(rl)!=="svelte-vy2x9m"&&(rl.innerHTML=qe),qt=n(l),Q(ol.$$.fragment,l),Bt=n(l),Nl=J(l,"P",{"data-svelte-h":!0}),a(Nl)!=="svelte-iyi7io"&&(Nl.innerHTML=Be),xt=n(l),Q(Rl.$$.fragment,l),_t=n(l),Fl=J(l,"P",{"data-svelte-h":!0}),a(Fl)!=="svelte-gdnr5s"&&(Fl.innerHTML=xe),vt=n(l),fl=J(l,"BLOCKQUOTE",{"data-svelte-h":!0}),a(fl)!=="svelte-wub5f5"&&(fl.innerHTML=_e),bt=n(l),El=J(l,"P",{"data-svelte-h":!0}),a(El)!=="svelte-1rx58l0"&&(El.textContent=ve),zt=n(l),cl=J(l,"P",{"data-svelte-h":!0}),a(cl)!=="svelte-ytpqek"&&(cl.innerHTML=be),Lt=n(l),Ol=J(l,"P",{"data-svelte-h":!0}),a(Ol)!=="svelte-1i9f2zk"&&(Ol.textContent=ze),Zt=n(l),dl=J(l,"UL",{"data-svelte-h":!0}),a(dl)!=="svelte-155mu31"&&(dl.innerHTML=Le),Gt=n(l),Q(hl.$$.fragment,l),Wt=n(l),Dl=J(l,"P",{}),Yt(Dl).forEach(e),this.h()},h(){V(j,"name","hf:doc:metadata"),V(j,"content",ts),Ht($.src,ie="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/polite-alfred.jpg")||V($,"src",ie),V($,"alt","Polite alfred"),Ht(q.src,Ce="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/rebel-alfred.jpg")||V(q,"src",Ce),V(q,"alt","Rebel Alfred"),Ht(x.src,ye="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/alfred-systemprompt.jpg")||V(x,"src",ye),V(x,"alt","Alfred System Prompt"),Ht(m.src,Ae="https://jofthomas-chat-template-viewer.hf.space")||V(m,"src",Ae),V(m,"frameborder","0"),V(m,"width","850"),V(m,"height","450")},m(l,t){Pe(document.head,j),s(l,$l,t),s(l,wl,t),s(l,Sl,t),T(I,l,t),s(l,kl,t),s(l,r,t),s(l,Al,t),s(l,o,t),s(l,ql,t),s(l,N,t),s(l,Bl,t),s(l,R,t),s(l,xl,t),s(l,F,t),s(l,_l,t),s(l,f,t),s(l,vl,t),s(l,E,t),s(l,bl,t),T(c,l,t),s(l,zl,t),T(O,l,t),s(l,Ll,t),s(l,d,t),s(l,Zl,t),s(l,h,t),s(l,Gl,t),T(w,l,t),s(l,Wl,t),s(l,D,t),s(l,Xl,t),s(l,$,t),s(l,Hl,t),s(l,S,t),s(l,Yl,t),T(k,l,t),s(l,Pl,t),s(l,A,t),s(l,Kl,t),s(l,q,t),s(l,lt,t),s(l,B,t),s(l,tt,t),s(l,x,t),s(l,et,t),T(_,l,t),s(l,st,t),s(l,v,t),s(l,Ut,t),s(l,b,t),s(l,nt,t),s(l,z,t),s(l,Mt,t),T(L,l,t),s(l,Jt,t),s(l,Z,t),s(l,at,t),s(l,G,t),s(l,it,t),T(W,l,t),s(l,Qt,t),s(l,X,t),s(l,Tt,t),T(H,l,t),s(l,Ct,t),s(l,Y,t),s(l,pt,t),T(P,l,t),s(l,yt,t),T(K,l,t),s(l,Vt,t),s(l,ll,t),s(l,ut,t),T(tl,l,t),s(l,mt,t),s(l,el,t),s(l,jt,t),s(l,sl,t),s(l,gt,t),s(l,Ul,t),s(l,It,t),s(l,nl,t),s(l,rt,t),s(l,Ml,t),s(l,ot,t),T(Jl,l,t),s(l,Nt,t),s(l,al,t),s(l,Rt,t),s(l,il,t),s(l,Ft,t),s(l,Ql,t),s(l,ft,t),s(l,Tl,t),s(l,Et,t),T(Cl,l,t),s(l,ct,t),s(l,pl,t),s(l,Ot,t),s(l,yl,t),s(l,dt,t),T(Vl,l,t),s(l,ht,t),s(l,ul,t),s(l,wt,t),T(ml,l,t),s(l,Dt,t),s(l,jl,t),s(l,$t,t),s(l,gl,t),s(l,St,t),s(l,m,t),s(l,kt,t),T(Il,l,t),s(l,At,t),s(l,rl,t),s(l,qt,t),T(ol,l,t),s(l,Bt,t),s(l,Nl,t),s(l,xt,t),T(Rl,l,t),s(l,_t,t),s(l,Fl,t),s(l,vt,t),s(l,fl,t),s(l,bt,t),s(l,El,t),s(l,zt,t),s(l,cl,t),s(l,Lt,t),s(l,Ol,t),s(l,Zt,t),s(l,dl,t),s(l,Gt,t),T(hl,l,t),s(l,Wt,t),s(l,Dl,t),Xt=!0},p:Ge,i(l){Xt||(C(I.$$.fragment,l),C(c.$$.fragment,l),C(O.$$.fragment,l),C(w.$$.fragment,l),C(k.$$.fragment,l),C(_.$$.fragment,l),C(L.$$.fragment,l),C(W.$$.fragment,l),C(H.$$.fragment,l),C(P.$$.fragment,l),C(K.$$.fragment,l),C(tl.$$.fragment,l),C(Jl.$$.fragment,l),C(Cl.$$.fragment,l),C(Vl.$$.fragment,l),C(ml.$$.fragment,l),C(Il.$$.fragment,l),C(ol.$$.fragment,l),C(Rl.$$.fragment,l),C(hl.$$.fragment,l),Xt=!0)},o(l){p(I.$$.fragment,l),p(c.$$.fragment,l),p(O.$$.fragment,l),p(w.$$.fragment,l),p(k.$$.fragment,l),p(_.$$.fragment,l),p(L.$$.fragment,l),p(W.$$.fragment,l),p(H.$$.fragment,l),p(P.$$.fragment,l),p(K.$$.fragment,l),p(tl.$$.fragment,l),p(Jl.$$.fragment,l),p(Cl.$$.fragment,l),p(Vl.$$.fragment,l),p(ml.$$.fragment,l),p(Il.$$.fragment,l),p(ol.$$.fragment,l),p(Rl.$$.fragment,l),p(hl.$$.fragment,l),Xt=!1},d(l){l&&(e($l),e(wl),e(Sl),e(kl),e(r),e(Al),e(o),e(ql),e(N),e(Bl),e(R),e(xl),e(F),e(_l),e(f),e(vl),e(E),e(bl),e(zl),e(Ll),e(d),e(Zl),e(h),e(Gl),e(Wl),e(D),e(Xl),e($),e(Hl),e(S),e(Yl),e(Pl),e(A),e(Kl),e(q),e(lt),e(B),e(tt),e(x),e(et),e(st),e(v),e(Ut),e(b),e(nt),e(z),e(Mt),e(Jt),e(Z),e(at),e(G),e(it),e(Qt),e(X),e(Tt),e(Ct),e(Y),e(pt),e(yt),e(Vt),e(ll),e(ut),e(mt),e(el),e(jt),e(sl),e(gt),e(Ul),e(It),e(nl),e(rt),e(Ml),e(ot),e(Nt),e(al),e(Rt),e(il),e(Ft),e(Ql),e(ft),e(Tl),e(Et),e(ct),e(pl),e(Ot),e(yl),e(dt),e(ht),e(ul),e(wt),e(Dt),e(jl),e($t),e(gl),e(St),e(m),e(kt),e(At),e(rl),e(qt),e(Bt),e(Nl),e(xt),e(_t),e(Fl),e(vt),e(fl),e(bt),e(El),e(zt),e(cl),e(Lt),e(Ol),e(Zt),e(dl),e(Gt),e(Wt),e(Dl)),e(j),y(I,l),y(c,l),y(O,l),y(w,l),y(k,l),y(_,l),y(L,l),y(W,l),y(H,l),y(P,l),y(K,l),y(tl,l),y(Jl,l),y(Cl,l),y(Vl,l),y(ml,l),y(Il,l),y(ol,l),y(Rl,l),y(hl,l)}}}const ts='{"title":"메세지와 특수 토큰","local":"messages-and-special-tokens","sections":[{"title":"메세지: LLM의 근본적인 시스템","local":"messages-the-underlying-system-of-llms","sections":[{"title":"시스템 메세지(시스템 프롬프트)","local":"system-messages","sections":[],"depth":3},{"title":"대화: 사용자와 어시스턴트 메세지","local":"conversations-user-and-assistant-messages","sections":[],"depth":3}],"depth":2},{"title":"채팅 템플릿(Chat-Templates)","local":"chat-templates","sections":[{"title":"베이스 모델(Base Models) vs. 인스트럭트 모델(Instruct Models)","local":"base-models-vs-instruct-models","sections":[],"depth":3},{"title":"채팅 템플릿(Chat Templates) 이해하기","local":"understanding-chat-templates","sections":[],"depth":3},{"title":"메세지를 프롬프트로 변환하기","local":"messages-to-prompt","sections":[],"depth":3}],"depth":2}],"depth":1}';function es(Pt){return We(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Js extends Xe{constructor(j){super(),He(this,j,es,ls,Ze,{})}}export{Js as component};
