skills/kyuhyi/bsd_claude_skills/ai-chatbot-builder

ai-chatbot-builder

SKILL.md

πŸ€– Next.js AI 챗봇 λΉŒλ” μŠ€ν‚¬

이 μŠ€ν‚¬μ€ BSD λ°”μ΄λΈŒμ½”λ”© μˆ˜κ°•μƒλ“€μ΄ Next.js와 Node.jsλ₯Ό μ‚¬μš©ν•˜μ—¬ μ§€λŠ₯ν˜• AI 챗봇을 μ›Ήμ‚¬μ΄νŠΈμ— 직접 κ΅¬μΆ•ν•˜κ³  배포할 수 μžˆλ„λ‘ λ•μŠ΅λ‹ˆλ‹€.

πŸ“‹ 이 μŠ€ν‚¬μ΄ ν•˜λŠ” 일

  1. AI μ—”μ§„ μ„€μ •: OpenAI (GPT-4), Anthropic (Claude) λ“± 졜적의 LLM 선택
  2. λ°±μ—”λ“œ ꡬ좕: Next.js API Routes (Route Handlers)λ₯Ό μ‚¬μš©ν•œ 챗봇 μ„œλ²„ κ΅¬ν˜„
  3. ν”„λ‘ νŠΈμ—”λ“œ κ΅¬ν˜„: React(Next.js) 기반의 μ‹€μ‹œκ°„ 슀트리밍 μ±„νŒ… UI μ œμž‘
  4. μ§€μ‹λ² μ΄μŠ€(RAG): 벑터 λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό ν™œμš©ν•œ μ „μš© 데이터 ν•™μŠ΅ 및 λ‹΅λ³€ μ΅œμ ν™”
  5. μ™ΈλΆ€ 연동: Slack, Discord, ν…”λ ˆκ·Έλž¨ λ“± λ©€ν‹° 채널 연동 κ°€μ΄λ“œ

🎯 μ–Έμ œ 이 μŠ€ν‚¬μ„ μ‚¬μš©ν•˜λ‚˜μš”?

  • "Next.js μ‚¬μ΄νŠΈμ— 우리 νšŒμ‚¬λ§Œμ˜ AI 상담원을 λ„£κ³  μ‹Άμ–΄μš”"
  • "PDF λ¬Έμ„œλ₯Ό ν•™μŠ΅ν•΄μ„œ λ‹΅λ³€ν•΄μ£ΌλŠ” 챗봇을 직접 κ°œλ°œν•˜κ³  μ‹Άμ–΄μš”"
  • "μ‚¬μš©μž 데이터λ₯Ό λΆ„μ„ν•΄μ„œ κ°œμΈν™”λœ μΆ”μ²œμ„ ν•΄μ£ΌλŠ” AI 봇이 ν•„μš”ν•΄μš”"

πŸ› οΈ 기술 μŠ€νƒ (Code-First)

1. Framework & Language

  • Next.js 14+ (App Router): ν”„λ‘ νŠΈμ—”λ“œ 및 API μ„œλ²„ 톡합
  • TypeScript: μ•ˆμ •μ μΈ μ½”λ“œ 개발

2. AI SDKs

  • AI SDK (Vercel): ν…μŠ€νŠΈ 생성 및 슀트리밍 μ΅œμ ν™”
  • LangChain / LlamaIndex: λ³΅μž‘ν•œ 체인 및 데이터 연동

3. Database & Vector Store

  • Supabase (pgvector): μ‚¬μš©μž 관리 및 벑터 검색
  • Pinecone: λŒ€κ·œλͺ¨ λ°μ΄ν„°μš© 벑터 μ—”μ§„

πŸ’» Next.js 챗봇 κ΅¬ν˜„ μ˜ˆμ‹œ

1. Client UI (components/ChatBox.tsx)

"use client";
import { useChat } from "ai/react";

export default function ChatBox() {
  const { messages, input, handleInputChange, handleSubmit } = useChat();

  return (
    <div className="flex flex-col w-full max-w-md mx-auto stretch">
      {messages.map((m) => (
        <div
          key={m.id}
          className={`whitespace-pre-wrap p-4 ${
            m.role === "user"
              ? "bg-slate-100"
              : "bg-blue-50 text-blue-900 border-l-4 border-blue-500"
          }`}
        >
          <strong>{m.role === "user" ? "πŸ‘€ λ‚˜: " : "πŸ€– AI: "}</strong>
          {m.content}
        </div>
      ))}
      <form onSubmit={handleSubmit}>
        <input
          className="fixed bottom-0 w-full max-w-md p-2 mb-8 border border-gray-300 rounded shadow-xl focus:outline-none focus:ring-2 focus:ring-blue-500"
          value={input}
          placeholder="무엇이든 λ¬Όμ–΄λ³΄μ„Έμš”..."
          onChange={handleInputChange}
        />
      </form>
    </div>
  );
}

2. Server API (app/api/chat/route.ts)

import { OpenAIStream, StreamingTextResponse } from "ai";
import OpenAI from "openai";

const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });

export async function POST(req: Request) {
  const { messages } = await req.json();
  const response = await openai.chat.completions.create({
    model: "gpt-4-turbo",
    stream: true,
    messages: [
      {
        role: "system",
        content: "당신은 BSD λ°”μ΄λΈŒμ½”λ”© μ„Όν„°μ˜ μΉœμ ˆν•œ μƒλ‹΄μ›μž…λ‹ˆλ‹€.",
      },
      ...messages,
    ],
  });

  const stream = OpenAIStream(response);
  return new StreamingTextResponse(stream);
}

πŸ“Š 챗봇 μœ ν˜•λ³„ ν™œμš© 사둀

1. 지식 기반 상담 봇 (RAG)

  • νšŒμ‚¬μ˜ 맀뉴얼, μ •μ±… PDFλ₯Ό ν•™μŠ΅ν•˜μ—¬ λ‹΅λ³€
  • API μ—°λ™μœΌλ‘œ μ‹€μ‹œκ°„ μž¬κ³ λ‚˜ 가격 정보 반영

2. μ˜μ—… 및 λ¦¬λ“œ μ œλ„€λ ˆμ΄μ…˜ 봇

  • λŒ€ν™”λ₯Ό 톡해 μ‚¬μš©μžμ˜ λ‹ˆμ¦ˆ νŒŒμ•… ν›„ DB에 μ €μž₯
  • κ΄€λ ¨ μƒν’ˆμ˜ 결제 링크(Check-out)둜 μœ λ„

πŸ’¬ 예제 λŒ€ν™”

μ‚¬μš©μž: "우리 μ‡Όν•‘λͺ°μ— μƒν’ˆ μΆ”μ²œν•΄μ£ΌλŠ” AI 챗봇을 Next.js둜 λ§Œλ“€κ³  μ‹Άμ–΄"

Claude: "Next.js와 OpenAI APIλ₯Ό μ‚¬μš©ν•˜μ—¬ λ§žμΆ€ν˜• μƒν’ˆ μΆ”μ²œ 챗봇을 κ΅¬μΆ•ν•΄λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€. λŒ€ν™”ν˜• μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 μ‚¬μš©μžμ˜ μ·¨ν–₯을 λΆ„μ„ν•˜κ³ , λ‚΄λΆ€ DB와 μ—°λ™ν•˜μ—¬ 졜적의 μƒν’ˆμ„ μ œμ•ˆν•˜λŠ” λ‘œμ§μ„ ν¬ν•¨ν•œ μ½”λ“œλ₯Ό 생성해 λ“œλ¦΄κ²Œμš”..."


🎯 핡심 정리

이 μŠ€ν‚¬μ„ μ‚¬μš©ν•˜λ©΄: βœ… Vercel AI SDKλ₯Ό ν™œμš©ν•œ κ³ μ„±λŠ₯ 챗봇 κ΅¬ν˜„ βœ… Stream μ‘λ‹΅μœΌλ‘œ μ‹€μ œ μ‚¬λžŒκ³Ό λŒ€ν™”ν•˜λŠ” λ“―ν•œ UX 제곡 βœ… Node.js λ°±μ—”λ“œλ₯Ό 톡해 λ³΄μ•ˆ 이슈(API Key λ…ΈμΆœ) ν•΄κ²° βœ… Custom Data μ—°λ™μœΌλ‘œ 우리 νšŒμ‚¬λ§Œμ˜ νŠΉλ³„ν•œ AI ꡬ좕

BSD 학생이라면: μ™ΈλΆ€ 유료 챗봇 μ†”λ£¨μ…˜μ— μ˜μ‘΄ν•˜μ§€ μ•Šκ³ , 직접 AI ν”„λ‘œλ•νŠΈλ₯Ό κ°œλ°œν•˜μ—¬ λΉ„μ¦ˆλ‹ˆμŠ€ κ°€μΉ˜λ₯Ό 높일 수 μžˆμŠ΅λ‹ˆλ‹€! πŸ€–

Weekly Installs
4
GitHub Stars
2
First Seen
Feb 14, 2026
Installed on
gemini-cli4
opencode3
antigravity3
claude-code3
github-copilot3
codex3