Communitygithub.com

YepAPI/skills

Composants d'interface de chat, réponse en streaming avec l'IA SDK, gestion de la fenêtre de contexte et patterns RAG.

Qu'est-ce que skills ?

Cette compétence (skill) fournit un ensemble de règles et de modèles pour construire des chatbots IA robustes avec streaming, gestion de la fenêtre de contexte et Recherche par Génération Augmentée (RAG). Elle est conçue pour les développeurs utilisant le SDK Vercel AI (paquet `ai`) et l'API YepAPI. La compétence dicte l'utilisation des hooks `useChat()` côté client et `streamText()` côté serveur pour des réponses fluides en événements (text/event-stream), garantissant une expérience utilisateur sans blocage. Les concepts clés incluent le tronquage automatique des messages les plus anciens pour rester dans la limite de la fenêtre de contexte, l'injection de résultats de recherche vectorielle comme contexte utilisateur avant le message, et la persistance de l'historique des conversations en base de données. De plus, elle spécifie un composant d'interface de chat avec défilement automatique, indicateurs de chargement animés et rendu Markdown, ainsi qu'un bouton d'arrêt de génération utilisant `AbortController`. Elle déconseille les pratiques comme l'envoi de tout l'historique sans troncature, le blocage de l'interface utilisateur, le stockage des messages uniquement côté client ou le codage en dur des noms de modèles.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/YepAPI/skills/tree/HEAD/skills/ai-chatbot

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Chatbot IA

Règles

  • Utiliser le SDK Vercel AI (paquet ai) pour le streaming — hook useChat() côté client, streamText() côté serveur
  • Streamer les réponses avec text/event-stream — ne jamais mettre en mémoire tampon les réponses complètes avant de les envoyer
  • Format des messages : { role: "user" | "assistant" | "system", content: string }
  • Gestion de la fenêtre de contexte : tronquer les messages les plus anciens lorsque la limite de tokens est approchée, toujours conserver le prompt système
  • Pattern RAG : intégrer la requête utilisateur → recherche vectorielle → injecter les k premiers résultats en tant que contexte avant le message utilisateur
  • Interface de chat : défilement automatique vers le bas, indicateur de chargement avec points animés, afficher le Markdown dans les messages de l'assistant
  • Persistance de l'historique des conversations côté serveur — utiliser une table messages avec chatId, role, content, createdAt
  • Le prompt système doit être en premier dans le tableau de messages — ne jamais laisser les messages utilisateur le remplacer
  • Point de terminaison YepAPI chat : POST /v1/ai/chat avec { messages, model?, stream? }
  • Bouton d'arrêt de génération — utiliser AbortController pour annuler les flux en cours

Modèles

// Client — useChat du SDK Vercel AI
const { messages, input, handleInputChange, handleSubmit, isLoading, stop } = useChat({
  api: "/api/chat",
});
// Serveur — réponse en streaming
import { streamText } from "ai";

export async function POST(req: Request) {
  const { messages } = await req.json();
  const result = streamText({ model, messages });
  return result.toDataStreamResponse();
}

À éviter

  • Envoyer l'intégralité de l'historique des conversations sans le tronquer — cela dépassera la fenêtre de contexte
  • Bloquer l'interface utilisateur en attendant une réponse complète — toujours streamer
  • Stocker les messages uniquement dans l'état du client — persister côté serveur pour l'historique
  • Coder en dur les noms de modèles — utiliser des variables d'environnement ou une configuration

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

YepAPI/skills

Experiment setup, variant splitting, statistical significance, and feature flag integration.

YepAPI/skills

CRUD generators, data tables, user management, role-based access, and bulk operations.

YepAPI/skills

Monitor what ChatGPT and Gemini say about your brand using YepAPI.

YepAPI/skills

Queue workers with BullMQ/Inngest/Trigger.dev, job retries, dead letter queues, concurrency.

YepAPI/skills

Commander.js, interactive prompts with Clack, spinners, colors, config files, exit codes, and npm publishing.

YepAPI/skills

cmdk integration, Cmd+K trigger, fuzzy search, grouped actions, keyboard navigation, and dynamic action registration.

YepAPI/skills

Content planning with trend and sentiment data from YepAPI.

YepAPI/skills

Content calendar, keyword-driven planning, and content briefs.

YepAPI/skills

Theme switching with CSS variables, system preference detection, next-themes, and persistence.

YepAPI/skills

Threaded comments, @mentions, reactions, moderation queue, optimistic UI, and cursor pagination.

YepAPI/skills

Competitive analysis between domains using YepAPI.

YepAPI/skills

Layout grids, KPI cards, data tables with sorting/filtering, sidebar navigation, and responsive breakpoints.

YepAPI/skills

Data encryption — TLS everywhere, AES-256-GCM for PII, bcrypt passwords, encrypted backups.

YepAPI/skills

Chart patterns with Recharts/Nivo/D3, responsive containers, color scales, and accessibility.

YepAPI/skills

Drizzle schema definition, push vs migrate, type-safe queries, relations, transactions, and prepared statements.

YepAPI/skills

Upload handling, resize/compress, CDN delivery, blur placeholders, and next/image patterns.

YepAPI/skills

Local business and Google Maps research using YepAPI.

YepAPI/skills

Cursor-based pagination, IntersectionObserver, virtualized lists with @tanstack/react-virtual, and scroll position restoration.

YepAPI/skills

Tenant isolation (row-level vs schema), subdomain routing, per-tenant config, and data partitioning.

YepAPI/skills

WCAG 2.1 AA — semantic HTML, keyboard navigation, screen readers.

Skills associés