Aplica el branding de Vambe a PPTX, DOCX, XLSX y HTML. Usa al crear presentaciones, Word, Excel o páginas con identidad visual de Vambe, o si pide "hacerlo bonito" / "estilo Vambe".
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Guide for building and refactoring a FastAPI + Prefect + PostgreSQL/pgvector analytics pipeline that extracts insights from chat data using LLM classification, embeddings, UMAP/HDBSCAN clustering, and narrative generation. Use this skill whenever working on this project's codebase — including adding features, refactoring, debugging, creating new endpoints, modifying pipeline stages, or reviewing architecture decisions. Also trigger when the user asks about project structure, stack decisions, async migration, or best practices for this specific system.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
This skill guides development of an analytics backend that processes customer chat data through a multi-stage pipeline: ingestion → preprocessing → classification → embedding → clustering → labeling → narrative generation, served via FastAPI with results stored in PostgreSQL + pgvector.
| Layer | Technology |
|---|---|
| API | FastAPI + asyncpg + SQLAlchemy (async) + Alembic |
| Orchestration | Prefect |
| Database | PostgreSQL + pgvector |
| Embeddings | Jina AI (or configurable provider) |
| Clustering | UMAP + HDBSCAN |
| LLM | Anthropic SDK (Claude) |
| Frontend LLM | Vercel AI SDK |
| Validation | Pydantic v2 + pydantic-settings |
| Testing | pytest + pytest-asyncio + httpx |
When creating new files or refactoring, follow this layout:
.
├── Dockerfile
├── pipeline_config.yaml
├── pyproject.toml
├── alembic/
│ ├── alembic.ini
│ ├── env.py
│ └── versions/
└── src/
├── __init__.py
├── main.py # FastAPI app entrypoint, mounts routers
├── config.py # Pydantic BaseSettings, single source of truth
├── deps.py # FastAPI dependencies (get_db, get_llm, auth)
├── db.py # Async engine + session factory (asyncpg)
├── models/ # Pydantic v2 schemas — all validation here
│ ├── __init__.py
│ ├── pipeline.py # PipelineRun, StageResult, ClusterOutput...
│ ├── chat.py # ChatRequest, ChatResponse...
│ ├── insights.py # InsightQuery, InsightResponse...
│ └── rag.py # RAGQuery, RAGResult...
├── services/ # Shared business logic, no duplication
│ ├── __init__.py
│ ├── embeddings.py # ONE embedding service (used by RAG + pipeline)
│ ├── llm.py # ONE LLM client factory (used everywhere)
│ └── cache.py # Cache layer (Redis or PG-based)
├── routers/
│ ├── __init__.py
│ ├── chat.py
│ ├── insights.py
│ ├── pipeline_runs.py
│ ├── rag_chat.py
│ └── streaming.py
├── rag/
│ ├── __init__.py
│ ├── ingest.py
│ ├── retriever.py
│ └── store.py
└── pipeline_system/
├── __init__.py
├── config.py # Pipeline-specific config (extends base)
├── flows.py # Prefect flows
├── tasks.py # Prefect tasks
├── stages/ # One file per pipeline stage
│ ├── __init__.py
│ ├── preprocessor.py
│ ├── classifier.py
│ ├── embedder.py # Calls services/embeddings.py
│ ├── clusterer.py # UMAP + HDBSCAN logic
│ ├── labeler.py
│ ├── narrator.py
│ └── dashboard_generator.py
├── prompts.py
├── utils.py
├── db/
│ ├── __init__.py
│ ├── fetcher.py
│ ├── service.py
│ └── writer.py
└── spanish_preprocessor/
├── __init__.py
├── preprocess.py
├── chat_abbreviations.py
├── emo_unicode.py
├── inclusive_words.py
└── stopwords.py
Key structural rules:
services/embeddings.py is the ONE place embeddings are created. Both rag/ and pipeline_system/stages/embedder.py import from it.services/llm.py is the ONE place LLM clients are initialized. Everything else imports from it.models/. Routers, pipeline stages, and services import from there.src/config.py holds all env vars. pipeline_system/config.py extends it for pipeline-specific settings. Nothing else reads env vars directly.Read references/architecture.md for detailed implementation patterns covering:
When refactoring the existing codebase toward this target structure, follow this order. Each step is safe to do independently without breaking functionality.
src/config.py with BaseSettings — move all env var reads heresrc/models/ and extract all Pydantic schemas into itsrc/services/embeddings.py — unify the two embedderssrc/services/llm.py — unify the two LLM providerssrc/deps.py — centralize FastAPI dependenciessrc/db.py is the only place that creates engine/sessionssrc/db.py to async engine + sessions (asyncpg)pipeline_run_id to all derived/output tablesmodel_version column to embedding tablesdeps.py/health and /ready endpointsEvery pipeline stage must:
src/models/pipeline.py)@task with retries and result cachingpipeline_run_id parameter and tag all outputs with itEvery FastAPI endpoint must:
src/models/)Depends(get_db) from deps.pyDepends(get_api_key) from deps.pypipeline_run_id on any table that stores pipeline outputsmodel_version on any table that stores embeddingscreated_at and updated_at timestamps on all tablesvector type for embedding columns with appropriate HNSW index아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Aplica el branding de Vambe a PPTX, DOCX, XLSX y HTML. Usa al crear presentaciones, Word, Excel o páginas con identidad visual de Vambe, o si pide "hacerlo bonito" / "estilo Vambe".
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Read this skill before the first step that uses the built-in browser, the browser pane inside the Claude desktop app (also called the in-app browser, the browser pane, Claude's browser, or "your own browser"), whose tools are named mcp__Claude_Browser__* when the session runs in the desktop app and mcp__remote-devices__Claude_Browser__* when a cloud session is linked to the person's computer; before those tools are turned on there may be a single enable__mcp__remote-devices__Claude_Browser tool instead. It covers the pane's persistent sign-ins, tabs and preview_start, reading pages as text, site approvals, what the pane cannot open, and what to do when it cannot be reached. It is not for Claude in Chrome (mcp__claude-in-chrome__* tools), which has its own skill, and it does not decide which browser to use.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Read this skill before the first step that uses Claude in Chrome, the browser extension whose tools are named mcp__claude-in-chrome__* (also called Chrome, the browser extension, or the external browser) and which acts in the person's real Chrome with their own sign-ins; before those tools are turned on there may be a single enable__mcp__claude-in-chrome tool instead. It covers loading the tools in one ToolSearch call, checking the person's open tabs and working in a new tab, site permissions, GIF recordings, console logs, dialogs to avoid, and when to stop and ask. It is not for the built-in browser (mcp__Claude_Browser__* or mcp__remote-devices__Claude_Browser__* tools), which has its own skill, and it does not decide which browser to use.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Read this skill before the first step of any request to do something in an app on the person's own computer (Notes, Finder, System Settings, any desktop app), to look at their screen, or for "computer use". Computer use (desktop control) lets Claude take screenshots of the person's desktop and control it with clicks, typing and scrolling through the Claude desktop app; its tools are named mcp__computer-use__* when the session runs in the desktop app and mcp__remote-devices__computer_* when a cloud session is linked to the person's computer; before computer use is turned on for a conversation there may be no such tools, only an enable__mcp__remote-devices__computer tool, which turns it on. It covers turning it on, picking the right tool, the access flow, and the safety rules for tiered apps, links and financial actions. It is not for websites, which go through Claude in Chrome or the built-in browser and their own skills.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use this skill when the user's prompt requires (1) researching a topic across multiple sources, comparing options or alternatives, analyzing trends or history, understanding markets or industries, or reviewing literature or studies and (2) synthesizing that research into a comprehensive, narrative report. If you're planning to search the web or internal knowledge bases, consider using this skill. This skill coordinates research subagents, so use it only when you have a tool for spawning subagents (the Agent or Task tool); otherwise, research the question directly.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.