Initial commit: LangChain evolution tutorial deck (132 slides)

- Cover, TOC, 5 dividers, 3 recap slides
- 5 sections (chains, langgraph, deepagents, openswe, ecosystem)
- design-system.js with theme tokens + 9 helper functions
- research/: timeline + sources + per-tech notes
- final-compile.js + merge.js for rebuild pipeline
- output/: langchain-evolution.pptx (2.3 MB) + langchain-evolution.pdf (1.1 MB) + 7 sample previews
This commit is contained in:
2026-06-22 11:29:03 +03:00
parent ed5b5c91bf
commit 75601988c2
220 changed files with 13069 additions and 3 deletions
@@ -0,0 +1,70 @@
/**
* slides/10-installation-2.js
* ----------------------------------------------------------------------------
* Slide 10 -- Installation: services up + UI
* Steps 3-5 of 5.
*/
'use strict';
const { helpers, layouts } = require('../../design-system');
function buildInstallPart2(pres, theme) {
const slide = pres.addSlide();
helpers.slideBase(slide, pres, theme);
helpers.addHeader(slide, pres, theme, {
eyebrow: 'STAGE 4',
sectionNumber: 4,
title: 'Установка (2/2): шаги 3-5',
});
helpers.addCodeBlock(slide, pres, theme, {
x: 0.5, y: layouts.CONTENT_TOP, w: 6.0, h: 3.5,
language: 'bash',
code: [
'# 3. backend (FastAPI)',
'uv run apps/open-swe/main.py',
'# -> :8000',
'',
'# 4. UI (TanStack Start + Vite)',
'cd apps/open-swe-ui',
'pnpm install && pnpm dev',
'# -> :3000',
'',
'# 5. smoke-test',
'curl -X POST :8000/webhooks/slack \\',
' -d \'{"text":"@open-swe hello"}\'',
'# -> {"thread_id": "..."}',
].join('\n'),
filePath: 'INSTALLATION.md: steps 3-5',
startLine: 1,
});
helpers.addCallout(slide, pres, theme, {
x: 6.7, y: layouts.CONTENT_TOP, w: 2.8, h: 1.7,
kind: 'success',
title: 'Готово',
text:
'Backend :8000\n' +
'UI :3000\n' +
'Webhook :8000/webhooks/*\n\n' +
'Можно слать @open-swe.',
});
helpers.addCallout(slide, pres, theme, {
x: 6.7, y: 3.0, w: 2.8, h: 1.85,
kind: 'info',
title: 'Production',
text:
'Локальный запуск -- только dev. ' +
'Для prod: docker compose, k8s, ' +
'managed Postgres, Vault, TLS.',
});
helpers.addPageNumber(slide, pres, theme, 10);
helpers.addSourceLine(slide, pres, theme, {
source: 'INSTALLATION.md + INSTALLATION in repo root',
});
return slide;
}
module.exports = { buildInstallPart2 };