import{s as We,a as Pt,n as Xe,o as He}from"../chunks/scheduler.4048030c.js";import{S as Ye,i as Pe,e as M,s as U,c as i,h as Ke,a as J,d as e,b as n,f as Kt,g as Q,j as a,k as V,l as ls,m as s,n as T,t as C,o as p,p as y}from"../chunks/index.b7616466.js";import{C as ts}from"../chunks/CopyLLMTxtMenu.123c0cc8.js";import{C as u}from"../chunks/CodeBlock.5d3f31be.js";import{H as g,E as es}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.3e96386d.js";function ss(le){let j,Sl,Dl,kl,I,Al,r,ql,o,te="이제 LLM이 어떻게 동작하는지 이해했으니, <strong>채팅 템플릿을 통해 생성 결과를 구조화</strong>하는 방법을 살펴보겠습니다.",xl,N,ee="예로 ChatGPT를 떠올려봅시다. 사용자는 에이전트(Agent)와 상호작용 할 때 채팅 인터페이스를 사용합니다. 따라서 LLM이 어떻게 채팅을 관리하는지 이해하는 것은 중요합니다.",Bl,R,se=`<p><strong>Q</strong>: 하지만 … 저는 ChatGPT/Hugging Chat을 사용할 때 프롬프트가 아니라 메세지로 대화를 주고 받는 데요?</p> <p><strong>A</strong>: 맞습니다! 하지만 사실 그 메세지는 UI의 추상화일 뿐입니다.
실제로는 모든 대화 메시지가 하나의 프롬프트로 연결되어 LLM에 입력됩니다. LLM은 이전 대화를 “기억”하는 것이 아니라, 매번 대화를 전체적으로 읽는 방식으로 동작합니다.</p>`,_l,F,Ue="지금까지 우리는 프롬프트를 모델에 입력되는 토큰의 시퀀스로 설명했습니다. 하지만 ChatGPT나 HuggingChat과 같은 서비스에서 시스템과 대화를 주고받을 때, 사용자들은 <strong>실제로 메시지를 주고받는</strong> 것 처럼 대화합니다.사실 내부에서 메세지는 <strong>모델이 이해할 수 있도록 연결되어 프롬프트에 구조화</strong>되고 있답니다.",vl,f,ne='<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>',bl,E,Me="이 과정에서 채팅 템플릿이 중요한데요. 채팅 템플릿은 <strong>사용자와 어시스턴트 간의 메시지를 특정 LLM 모델이 이해할 수 있는 형식</strong>으로 변환하는 역할을 합니다. 즉, LLM마다 서로 다른 특수 토큰을 사용하기 때문에, 각 모델에 맞게 형식화된 프롬프트를 제공하도록 조정하는 것입니다.",zl,c,Je="여기서 다시 특수 토큰(Special Tokens) 개념이 등장합니다. 특수 토큰은 모델이 사용자(User)와 어시스턴트(Assistant)의 메시지 시작과 끝을 구분하는 데 사용됩니다. 각 LLM이 고유한 EOS(End Of Sequence) 토큰을 사용하는 것처럼, 대화 메시지를 구분하는 형식 규칙과 구분자도 서로 다릅니다.",Ll,O,Zl,d,Gl,h,ae="시스템 메시지(또는 시스템 프롬프트) 는 <strong>모델의 행동 방식</strong>을 가이드해주는 지침서입니다. 이는 <strong>지속적인 안내서</strong> 역할을 하며, 이후 모든 상호작용을 안내합니다.",Wl,w,ie="예제:",Xl,D,Hl,$,Qe="이러한 시스템 메세지가 주어지면, AI 에이전트 알프레드는 공손하고 도움을 주는 방식으로 답변합니다:",Yl,S,Te,Pl,k,Ce="하지만 다음과 같이 시스템 메세지를 변경하면 :",Kl,A,lt,q,pe="알프레드는 반항적인 스타일로 행동하게 됩니다 😎:",tt,x,ye,et,B,Ve="에이전트를 사용할 때, 시스템 메세지는 <strong>사용가능한 도구에 대한 정보, 모델이 수행할 행동(Action)의 형식, 사고 과정(Thought)을 분할하는 방법</strong>을 지정하는 역할도 합니다.",st,_,ue,Ut,v,nt,b,me="대화는 사용자(user)과 어시스턴트(LLM)간의 메세지로 이루어집니다.",Mt,z,je="채팅 템플릿(Chat Templates) 은 대화의 문맥을 유지하기 위해 사용되며, 사용자와 어시스턴트 간 이루어졌던 이전 메시지들을 저장하여 일관된 멀티 턴(multi-turn) 대화를 가능하게 합니다.",Jt,L,ge="예제:",at,Z,it,G,Ie=`이 대화에서 사용자는 주문 관련 도움을 요청했으며, LLM 어시스턴트는 주문 번호를 물었습니다.
이후 사용자가 주문 번호를 제공하면, 전체 대화의 모든 메세지들은 단일 시퀀스로 변환되어 LLM에 입력됩니다.
채팅 템플릿은 이 파이썬 리스트 안에 있는 모든 메세지를 프롬프트(string)로 변환합니다.`,Qt,W,re="예를 들어, SmolLM2 채팅 템플릿은 다음과 같이 메시지를 변환합니다:",Tt,X,Ct,H,oe="한편, Llama 3.2 모델에서는 다음과 같은 형식으로 변환됩니다:",pt,Y,yt,P,Ne="채팅 템플릿을 통해 복잡한 다중 턴 대화에서도 문맥을 유지할 수 있습니다:",Vt,K,ut,ll,mt,tl,Re="채팅 템플릿은 <strong>언어 모델과 사용자의 대화를 특정 형식으로 구조화</strong>하는 역할을 합니다. 즉, 메세지를 프롬프트로 변환하는 방법을 가르쳐주죠.",jt,el,gt,sl,Fe="또다른 중요한 부분은 베이스 모델 vs 인스트럭트 모델의 차이점을 이해하는 것 입니다 :",It,Ul,fe="<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>",rt,nl,Ee="베이스 모델을 인스트럭트 모델처럼 동작하게 하려면, <strong>프롬프트 형식을 일관되게</strong>맞춰야 합니다. 여기서 채팅 템플릿이 등장합니다.",ot,Ml,ce="<em>ChatML</em>은 시스템(system), 사용자(user), 어시스턴트(assistant)와 같은 명확한 역할 표시를 사용해 대화를 구조화하는 템플릿 형식 중 하나입니다. 여러분이 최신 AI API를 사용해 본 경험이 있으시다면, 이것이 표준 방식이라는 것을 알 것입니다.",Nt,Jl,Oe="기본 모델(base model)은 여러가지 채팅 템플릿(chat templates)으로 미세 조정 될 수 있기 때문에, 인스트럭트 모델(instruct model)을 사용할 때는 반드시 올바른 채팅 템플릿을 사용하고 있는지 확인해야 합니다.",Rt,al,Ft,il,de="각 인스트럭트 모델 마다 다른 대화 형식과 특수 토큰을 사용하기 때문에, 각 모델에 맞는 프롬프트 형식으로 채팅 템플릿이 구현됩니다.",ft,Ql,he='<code>transformers</code> 라이브러리에서는 채팅 템플릿에 <a href="https://jinja.palletsprojects.com/en/stable/" rel="nofollow">Jinja2 코드</a> 를 포함하고 있습니다. 이는 위의 예제와 같이 JSON 형태 메세지의 ChatML 목록을 시스템 레벨의 지시문(instruction) 텍스트로 나타내주는데, 이는 모델이 이해 할 수 있는 사용자 메세지-어시스턴트 응답 형태로 이루어져 있습니다.',Et,Tl,we="이 구조는 모델이 대화 중 <strong>일관성을 유지하고, 다양한 유형의 입력에 적절하게 응답</strong>할 수 있게 합니다.",ct,Cl,De="아래는 <code>SmolLM2-135M-Instruct</code>채팅 템플릿의 간소화 버전입니다:",Ot,pl,dt,yl,$e="위 코드와 같이, 채팅 템플릿은 메세지 리스트의 형식을 정의합니다.",ht,Vl,Se="다음과 같은 메세지 목록이 주어진 경우:",wt,ul,Dt,ml,ke="앞에서 정의한 채팅 템플릿은 다음과 같은 문자열을 생성합니다 :",$t,jl,St,gl,Ae='<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>를 참고하세요! 우리가 할 것은 메세지를 올바른 형식으로 구조화 해주는 것 뿐, 나머지 작업은 토크나이저가 처리합니다.',kt,Il,qe="아래 Space를 통해 동일한 대화가 다양한 모델별 채팅 템플릿에 따라 어떻게 형식화 되는지 실습해 볼 수 있습니다:",At,m,xe,qt,rl,xt,ol,Be="LLM이 올바른 형식을 갖춘 대화를 수신하도록 하는 방법은, 모델의 토크나이저가 제공하는 <code>chat_template</code>를 사용하는 것입니다.",Bt,Nl,_t,Rl,_e="이 대화를 프롬프트로 변환하려면, 토크나이저를 불러와 <code>apply_chat_template</code>를 호출하면 됩니다:",vt,Fl,bt,fl,ve="이 함수가 리턴하는 <code>rendered_prompt</code> 은 선택한 모델에 대한 입력으로 바로 사용 가능합니다!",zt,El,be="<p><code>apply_chat_template()</code>함수는 ChatML 형식의 메세지를 처리할 때 API의 백엔드에서 사용됩니다.</p>",Lt,cl,ze="이제 LLM이 채팅 템플릿을 통해 입력을 어떻게 구조화하는지 살펴보았으니, 에이전트가 환경에서 어떻게 작동하는지 탐색해봅시다!",Zt,Ol,Le="에이전트가 이를 수행하는 주요 방법 중 하나는 <strong>도구(Tools)</strong>를 사용하는 것 입니다. 도구는 AI모델의 기능을 단순 텍스트 생성 이상으로 확장할 수 있게 해줍니다.",Gt,dl,Ze="이후 새로운 유닛에서 메세지에 대해 더 다룰 예정이지만, 지금 더 깊이 탐구하고 싶으시다면 다음 문서를 참고하세요:",Wt,hl,Ge='<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>',Xt,wl,Ht,$l,Yt;return I=new ts({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),r=new g({props:{title:"메세지와 특수 토큰",local:"messages-and-special-tokens",headingTag:"h1"}}),O=new g({props:{title:"메세지: LLM의 근본적인 시스템",local:"messages-the-underlying-system-of-llms",headingTag:"h2"}}),d=new g({props:{title:"시스템 메세지(시스템 프롬프트)",local:"system-messages",headingTag:"h3"}}),D=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}}),A=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}}),v=new g({props:{title:"대화: 사용자와 어시스턴트 메세지",local:"conversations-user-and-assistant-messages",headingTag:"h3"}}),Z=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}}),X=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}}),Y=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}}),K=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}}),ll=new g({props:{title:"채팅 템플릿(Chat-Templates)",local:"chat-templates",headingTag:"h2"}}),el=new g({props:{title:"베이스 모델(Base Models) vs. 인스트럭트 모델(Instruct Models)",local:"base-models-vs-instruct-models",headingTag:"h3"}}),al=new g({props:{title:"채팅 템플릿(Chat Templates) 이해하기",local:"understanding-chat-templates",headingTag:"h3"}}),pl=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}}),ul=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}}),jl=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}}),rl=new g({props:{title:"메세지를 프롬프트로 변환하기",local:"messages-to-prompt",headingTag:"h3"}}),Nl=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}}),Fl=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}}),wl=new es({props:{source:"https://github.com/huggingface/agents-course/blob/main/units/ko/unit1/messages-and-special-tokens.mdx"}}),{c(){j=M("meta"),Sl=U(),Dl=M("p"),kl=U(),i(I.$$.fragment),Al=U(),i(r.$$.fragment),ql=U(),o=M("p"),o.innerHTML=te,xl=U(),N=M("p"),N.textContent=ee,Bl=U(),R=M("blockquote"),R.innerHTML=se,_l=U(),F=M("p"),F.innerHTML=Ue,vl=U(),f=M("figure"),f.innerHTML=ne,bl=U(),E=M("p"),E.innerHTML=Me,zl=U(),c=M("p"),c.textContent=Je,Ll=U(),i(O.$$.fragment),Zl=U(),i(d.$$.fragment),Gl=U(),h=M("p"),h.innerHTML=ae,Wl=U(),w=M("p"),w.textContent=ie,Xl=U(),i(D.$$.fragment),Hl=U(),$=M("p"),$.textContent=Qe,Yl=U(),S=M("img"),Pl=U(),k=M("p"),k.textContent=Ce,Kl=U(),i(A.$$.fragment),lt=U(),q=M("p"),q.textContent=pe,tt=U(),x=M("img"),et=U(),B=M("p"),B.innerHTML=Ve,st=U(),_=M("img"),Ut=U(),i(v.$$.fragment),nt=U(),b=M("p"),b.textContent=me,Mt=U(),z=M("p"),z.textContent=je,Jt=U(),L=M("p"),L.textContent=ge,at=U(),i(Z.$$.fragment),it=U(),G=M("p"),G.textContent=Ie,Qt=U(),W=M("p"),W.textContent=re,Tt=U(),i(X.$$.fragment),Ct=U(),H=M("p"),H.textContent=oe,pt=U(),i(Y.$$.fragment),yt=U(),P=M("p"),P.textContent=Ne,Vt=U(),i(K.$$.fragment),ut=U(),i(ll.$$.fragment),mt=U(),tl=M("p"),tl.innerHTML=Re,jt=U(),i(el.$$.fragment),gt=U(),sl=M("p"),sl.textContent=Fe,It=U(),Ul=M("ul"),Ul.innerHTML=fe,rt=U(),nl=M("p"),nl.innerHTML=Ee,ot=U(),Ml=M("p"),Ml.innerHTML=ce,Nt=U(),Jl=M("p"),Jl.textContent=Oe,Rt=U(),i(al.$$.fragment),Ft=U(),il=M("p"),il.textContent=de,ft=U(),Ql=M("p"),Ql.innerHTML=he,Et=U(),Tl=M("p"),Tl.innerHTML=we,ct=U(),Cl=M("p"),Cl.innerHTML=De,Ot=U(),i(pl.$$.fragment),dt=U(),yl=M("p"),yl.textContent=$e,ht=U(),Vl=M("p"),Vl.textContent=Se,wt=U(),i(ul.$$.fragment),Dt=U(),ml=M("p"),ml.textContent=ke,$t=U(),i(jl.$$.fragment),St=U(),gl=M("p"),gl.innerHTML=Ae,kt=U(),Il=M("p"),Il.textContent=qe,At=U(),m=M("iframe"),qt=U(),i(rl.$$.fragment),xt=U(),ol=M("p"),ol.innerHTML=Be,Bt=U(),i(Nl.$$.fragment),_t=U(),Rl=M("p"),Rl.innerHTML=_e,vt=U(),i(Fl.$$.fragment),bt=U(),fl=M("p"),fl.innerHTML=ve,zt=U(),El=M("blockquote"),El.innerHTML=be,Lt=U(),cl=M("p"),cl.textContent=ze,Zt=U(),Ol=M("p"),Ol.innerHTML=Le,Gt=U(),dl=M("p"),dl.textContent=Ze,Wt=U(),hl=M("ul"),hl.innerHTML=Ge,Xt=U(),i(wl.$$.fragment),Ht=U(),$l=M("p"),this.h()},l(l){const t=Ke("svelte-u9bgzb",document.head);j=J(t,"META",{name:!0,content:!0}),t.forEach(e),Sl=n(l),Dl=J(l,"P",{}),Kt(Dl).forEach(e),kl=n(l),Q(I.$$.fragment,l),Al=n(l),Q(r.$$.fragment,l),ql=n(l),o=J(l,"P",{"data-svelte-h":!0}),a(o)!=="svelte-b7v6d1"&&(o.innerHTML=te),xl=n(l),N=J(l,"P",{"data-svelte-h":!0}),a(N)!=="svelte-1dq53fz"&&(N.textContent=ee),Bl=n(l),R=J(l,"BLOCKQUOTE",{"data-svelte-h":!0}),a(R)!=="svelte-xv4z8f"&&(R.innerHTML=se),_l=n(l),F=J(l,"P",{"data-svelte-h":!0}),a(F)!=="svelte-at4kdg"&&(F.innerHTML=Ue),vl=n(l),f=J(l,"FIGURE",{"data-svelte-h":!0}),a(f)!=="svelte-1j1wziw"&&(f.innerHTML=ne),bl=n(l),E=J(l,"P",{"data-svelte-h":!0}),a(E)!=="svelte-gpz71j"&&(E.innerHTML=Me),zl=n(l),c=J(l,"P",{"data-svelte-h":!0}),a(c)!=="svelte-jnm3xy"&&(c.textContent=Je),Ll=n(l),Q(O.$$.fragment,l),Zl=n(l),Q(d.$$.fragment,l),Gl=n(l),h=J(l,"P",{"data-svelte-h":!0}),a(h)!=="svelte-1rhseq9"&&(h.innerHTML=ae),Wl=n(l),w=J(l,"P",{"data-svelte-h":!0}),a(w)!=="svelte-m1xe86"&&(w.textContent=ie),Xl=n(l),Q(D.$$.fragment,l),Hl=n(l),$=J(l,"P",{"data-svelte-h":!0}),a($)!=="svelte-4c7zk3"&&($.textContent=Qe),Yl=n(l),S=J(l,"IMG",{src:!0,alt:!0}),Pl=n(l),k=J(l,"P",{"data-svelte-h":!0}),a(k)!=="svelte-1bx2mns"&&(k.textContent=Ce),Kl=n(l),Q(A.$$.fragment,l),lt=n(l),q=J(l,"P",{"data-svelte-h":!0}),a(q)!=="svelte-1au0jko"&&(q.textContent=pe),tt=n(l),x=J(l,"IMG",{src:!0,alt:!0}),et=n(l),B=J(l,"P",{"data-svelte-h":!0}),a(B)!=="svelte-icegk5"&&(B.innerHTML=Ve),st=n(l),_=J(l,"IMG",{src:!0,alt:!0}),Ut=n(l),Q(v.$$.fragment,l),nt=n(l),b=J(l,"P",{"data-svelte-h":!0}),a(b)!=="svelte-3kkouc"&&(b.textContent=me),Mt=n(l),z=J(l,"P",{"data-svelte-h":!0}),a(z)!=="svelte-mu2vmu"&&(z.textContent=je),Jt=n(l),L=J(l,"P",{"data-svelte-h":!0}),a(L)!=="svelte-12ef2du"&&(L.textContent=ge),at=n(l),Q(Z.$$.fragment,l),it=n(l),G=J(l,"P",{"data-svelte-h":!0}),a(G)!=="svelte-1uicbzt"&&(G.textContent=Ie),Qt=n(l),W=J(l,"P",{"data-svelte-h":!0}),a(W)!=="svelte-1gr5jmq"&&(W.textContent=re),Tt=n(l),Q(X.$$.fragment,l),Ct=n(l),H=J(l,"P",{"data-svelte-h":!0}),a(H)!=="svelte-1v9e5l0"&&(H.textContent=oe),pt=n(l),Q(Y.$$.fragment,l),yt=n(l),P=J(l,"P",{"data-svelte-h":!0}),a(P)!=="svelte-1pkz5u"&&(P.textContent=Ne),Vt=n(l),Q(K.$$.fragment,l),ut=n(l),Q(ll.$$.fragment,l),mt=n(l),tl=J(l,"P",{"data-svelte-h":!0}),a(tl)!=="svelte-qlqa7p"&&(tl.innerHTML=Re),jt=n(l),Q(el.$$.fragment,l),gt=n(l),sl=J(l,"P",{"data-svelte-h":!0}),a(sl)!=="svelte-5udmat"&&(sl.textContent=Fe),It=n(l),Ul=J(l,"UL",{"data-svelte-h":!0}),a(Ul)!=="svelte-ywuxlw"&&(Ul.innerHTML=fe),rt=n(l),nl=J(l,"P",{"data-svelte-h":!0}),a(nl)!=="svelte-16qbfem"&&(nl.innerHTML=Ee),ot=n(l),Ml=J(l,"P",{"data-svelte-h":!0}),a(Ml)!=="svelte-f78x1m"&&(Ml.innerHTML=ce),Nt=n(l),Jl=J(l,"P",{"data-svelte-h":!0}),a(Jl)!=="svelte-h7ugxh"&&(Jl.textContent=Oe),Rt=n(l),Q(al.$$.fragment,l),Ft=n(l),il=J(l,"P",{"data-svelte-h":!0}),a(il)!=="svelte-nbkeiq"&&(il.textContent=de),ft=n(l),Ql=J(l,"P",{"data-svelte-h":!0}),a(Ql)!=="svelte-15n1j1s"&&(Ql.innerHTML=he),Et=n(l),Tl=J(l,"P",{"data-svelte-h":!0}),a(Tl)!=="svelte-11jtazj"&&(Tl.innerHTML=we),ct=n(l),Cl=J(l,"P",{"data-svelte-h":!0}),a(Cl)!=="svelte-8roi9u"&&(Cl.innerHTML=De),Ot=n(l),Q(pl.$$.fragment,l),dt=n(l),yl=J(l,"P",{"data-svelte-h":!0}),a(yl)!=="svelte-1ydltj5"&&(yl.textContent=$e),ht=n(l),Vl=J(l,"P",{"data-svelte-h":!0}),a(Vl)!=="svelte-127x03u"&&(Vl.textContent=Se),wt=n(l),Q(ul.$$.fragment,l),Dt=n(l),ml=J(l,"P",{"data-svelte-h":!0}),a(ml)!=="svelte-1mh75oj"&&(ml.textContent=ke),$t=n(l),Q(jl.$$.fragment,l),St=n(l),gl=J(l,"P",{"data-svelte-h":!0}),a(gl)!=="svelte-18yjbk7"&&(gl.innerHTML=Ae),kt=n(l),Il=J(l,"P",{"data-svelte-h":!0}),a(Il)!=="svelte-1824gwu"&&(Il.textContent=qe),At=n(l),m=J(l,"IFRAME",{src:!0,frameborder:!0,width:!0,height:!0}),Kt(m).forEach(e),qt=n(l),Q(rl.$$.fragment,l),xt=n(l),ol=J(l,"P",{"data-svelte-h":!0}),a(ol)!=="svelte-vy2x9m"&&(ol.innerHTML=Be),Bt=n(l),Q(Nl.$$.fragment,l),_t=n(l),Rl=J(l,"P",{"data-svelte-h":!0}),a(Rl)!=="svelte-iyi7io"&&(Rl.innerHTML=_e),vt=n(l),Q(Fl.$$.fragment,l),bt=n(l),fl=J(l,"P",{"data-svelte-h":!0}),a(fl)!=="svelte-gdnr5s"&&(fl.innerHTML=ve),zt=n(l),El=J(l,"BLOCKQUOTE",{"data-svelte-h":!0}),a(El)!=="svelte-wub5f5"&&(El.innerHTML=be),Lt=n(l),cl=J(l,"P",{"data-svelte-h":!0}),a(cl)!=="svelte-1rx58l0"&&(cl.textContent=ze),Zt=n(l),Ol=J(l,"P",{"data-svelte-h":!0}),a(Ol)!=="svelte-ytpqek"&&(Ol.innerHTML=Le),Gt=n(l),dl=J(l,"P",{"data-svelte-h":!0}),a(dl)!=="svelte-1i9f2zk"&&(dl.textContent=Ze),Wt=n(l),hl=J(l,"UL",{"data-svelte-h":!0}),a(hl)!=="svelte-1cp2ojf"&&(hl.innerHTML=Ge),Xt=n(l),Q(wl.$$.fragment,l),Ht=n(l),$l=J(l,"P",{}),Kt($l).forEach(e),this.h()},h(){V(j,"name","hf:doc:metadata"),V(j,"content",Us),Pt(S.src,Te="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/polite-alfred.jpg")||V(S,"src",Te),V(S,"alt","Polite alfred"),Pt(x.src,ye="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/rebel-alfred.jpg")||V(x,"src",ye),V(x,"alt","Rebel Alfred"),Pt(_.src,ue="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/alfred-systemprompt.jpg")||V(_,"src",ue),V(_,"alt","Alfred System Prompt"),Pt(m.src,xe="https://jofthomas-chat-template-viewer.hf.space")||V(m,"src",xe),V(m,"frameborder","0"),V(m,"width","850"),V(m,"height","450")},m(l,t){ls(document.head,j),s(l,Sl,t),s(l,Dl,t),s(l,kl,t),T(I,l,t),s(l,Al,t),T(r,l,t),s(l,ql,t),s(l,o,t),s(l,xl,t),s(l,N,t),s(l,Bl,t),s(l,R,t),s(l,_l,t),s(l,F,t),s(l,vl,t),s(l,f,t),s(l,bl,t),s(l,E,t),s(l,zl,t),s(l,c,t),s(l,Ll,t),T(O,l,t),s(l,Zl,t),T(d,l,t),s(l,Gl,t),s(l,h,t),s(l,Wl,t),s(l,w,t),s(l,Xl,t),T(D,l,t),s(l,Hl,t),s(l,$,t),s(l,Yl,t),s(l,S,t),s(l,Pl,t),s(l,k,t),s(l,Kl,t),T(A,l,t),s(l,lt,t),s(l,q,t),s(l,tt,t),s(l,x,t),s(l,et,t),s(l,B,t),s(l,st,t),s(l,_,t),s(l,Ut,t),T(v,l,t),s(l,nt,t),s(l,b,t),s(l,Mt,t),s(l,z,t),s(l,Jt,t),s(l,L,t),s(l,at,t),T(Z,l,t),s(l,it,t),s(l,G,t),s(l,Qt,t),s(l,W,t),s(l,Tt,t),T(X,l,t),s(l,Ct,t),s(l,H,t),s(l,pt,t),T(Y,l,t),s(l,yt,t),s(l,P,t),s(l,Vt,t),T(K,l,t),s(l,ut,t),T(ll,l,t),s(l,mt,t),s(l,tl,t),s(l,jt,t),T(el,l,t),s(l,gt,t),s(l,sl,t),s(l,It,t),s(l,Ul,t),s(l,rt,t),s(l,nl,t),s(l,ot,t),s(l,Ml,t),s(l,Nt,t),s(l,Jl,t),s(l,Rt,t),T(al,l,t),s(l,Ft,t),s(l,il,t),s(l,ft,t),s(l,Ql,t),s(l,Et,t),s(l,Tl,t),s(l,ct,t),s(l,Cl,t),s(l,Ot,t),T(pl,l,t),s(l,dt,t),s(l,yl,t),s(l,ht,t),s(l,Vl,t),s(l,wt,t),T(ul,l,t),s(l,Dt,t),s(l,ml,t),s(l,$t,t),T(jl,l,t),s(l,St,t),s(l,gl,t),s(l,kt,t),s(l,Il,t),s(l,At,t),s(l,m,t),s(l,qt,t),T(rl,l,t),s(l,xt,t),s(l,ol,t),s(l,Bt,t),T(Nl,l,t),s(l,_t,t),s(l,Rl,t),s(l,vt,t),T(Fl,l,t),s(l,bt,t),s(l,fl,t),s(l,zt,t),s(l,El,t),s(l,Lt,t),s(l,cl,t),s(l,Zt,t),s(l,Ol,t),s(l,Gt,t),s(l,dl,t),s(l,Wt,t),s(l,hl,t),s(l,Xt,t),T(wl,l,t),s(l,Ht,t),s(l,$l,t),Yt=!0},p:Xe,i(l){Yt||(C(I.$$.fragment,l),C(r.$$.fragment,l),C(O.$$.fragment,l),C(d.$$.fragment,l),C(D.$$.fragment,l),C(A.$$.fragment,l),C(v.$$.fragment,l),C(Z.$$.fragment,l),C(X.$$.fragment,l),C(Y.$$.fragment,l),C(K.$$.fragment,l),C(ll.$$.fragment,l),C(el.$$.fragment,l),C(al.$$.fragment,l),C(pl.$$.fragment,l),C(ul.$$.fragment,l),C(jl.$$.fragment,l),C(rl.$$.fragment,l),C(Nl.$$.fragment,l),C(Fl.$$.fragment,l),C(wl.$$.fragment,l),Yt=!0)},o(l){p(I.$$.fragment,l),p(r.$$.fragment,l),p(O.$$.fragment,l),p(d.$$.fragment,l),p(D.$$.fragment,l),p(A.$$.fragment,l),p(v.$$.fragment,l),p(Z.$$.fragment,l),p(X.$$.fragment,l),p(Y.$$.fragment,l),p(K.$$.fragment,l),p(ll.$$.fragment,l),p(el.$$.fragment,l),p(al.$$.fragment,l),p(pl.$$.fragment,l),p(ul.$$.fragment,l),p(jl.$$.fragment,l),p(rl.$$.fragment,l),p(Nl.$$.fragment,l),p(Fl.$$.fragment,l),p(wl.$$.fragment,l),Yt=!1},d(l){l&&(e(Sl),e(Dl),e(kl),e(Al),e(ql),e(o),e(xl),e(N),e(Bl),e(R),e(_l),e(F),e(vl),e(f),e(bl),e(E),e(zl),e(c),e(Ll),e(Zl),e(Gl),e(h),e(Wl),e(w),e(Xl),e(Hl),e($),e(Yl),e(S),e(Pl),e(k),e(Kl),e(lt),e(q),e(tt),e(x),e(et),e(B),e(st),e(_),e(Ut),e(nt),e(b),e(Mt),e(z),e(Jt),e(L),e(at),e(it),e(G),e(Qt),e(W),e(Tt),e(Ct),e(H),e(pt),e(yt),e(P),e(Vt),e(ut),e(mt),e(tl),e(jt),e(gt),e(sl),e(It),e(Ul),e(rt),e(nl),e(ot),e(Ml),e(Nt),e(Jl),e(Rt),e(Ft),e(il),e(ft),e(Ql),e(Et),e(Tl),e(ct),e(Cl),e(Ot),e(dt),e(yl),e(ht),e(Vl),e(wt),e(Dt),e(ml),e($t),e(St),e(gl),e(kt),e(Il),e(At),e(m),e(qt),e(xt),e(ol),e(Bt),e(_t),e(Rl),e(vt),e(bt),e(fl),e(zt),e(El),e(Lt),e(cl),e(Zt),e(Ol),e(Gt),e(dl),e(Wt),e(hl),e(Xt),e(Ht),e($l)),e(j),y(I,l),y(r,l),y(O,l),y(d,l),y(D,l),y(A,l),y(v,l),y(Z,l),y(X,l),y(Y,l),y(K,l),y(ll,l),y(el,l),y(al,l),y(pl,l),y(ul,l),y(jl,l),y(rl,l),y(Nl,l),y(Fl,l),y(wl,l)}}}const Us='{"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 ns(le){return He(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ts extends Ye{constructor(j){super(),Pe(this,j,ns,ss,We,{})}}export{Ts as component};
