// Slide 09: MessagesPlaceholder + few-shot examples // Code slide: how to inject conversation history and demonstration examples. const ds = require('./design-system'); function createSlide(pres, theme) { const slide = pres.addSlide(); ds.helpers.slideBase(slide, pres, theme); ds.helpers.addHeader(slide, pres, theme, { eyebrow: 'STAGE 1: CHAINS', section: 'Prompts', title: 'MessagesPlaceholder + few-shot', sectionNumber: 1, }); ds.helpers.addCodeBlock(slide, pres, theme, { x: 0.5, y: 1.5, w: 9.0, h: 3.25, language: 'python', filePath: 'examples/prompt_fewshot.py', code: [ 'from langchain_core.prompts import (', ' ChatPromptTemplate, MessagesPlaceholder, FewShotChatMessagePromptTemplate,', ')', '', '# Few-shot блок: примеры "вопрос -> ответ"', 'examples = [', ' {"input": "2+2", "output": "4"},', ' {"input": "3*3", "output": "9"},', ']', 'example_prompt = ChatPromptTemplate.from_messages([', ' ("human", "{input}"),', ' ("ai", "{output}"),', '])', 'few_shot = FewShotChatMessagePromptTemplate(', ' example_prompt=example_prompt, examples=examples,', ')', '', '# Сборка: system + few-shot + история + текущий вопрос', 'prompt = ChatPromptTemplate.from_messages([', ' ("system", "You are a math assistant."),', ' few_shot,', ' MessagesPlaceholder("history"),', ' ("human", "{question}"),', '])', ].join('\n'), }); ds.helpers.addCallout(slide, pres, theme, { x: 0.5, y: 4.85, w: 9.0, h: 0.3, kind: 'success', text: 'MessagesPlaceholder("history") -- дырка, в которую при invoke подставляется список прошлых сообщений.', }); ds.helpers.addSourceLine(slide, pres, theme, { source: 'python.langchain.com/docs/how_to/few_shot_examples_chat/', }); ds.helpers.addPageNumber(slide, pres, theme, 9); } module.exports = { createSlide };