kanzo
Self-hosted, sharable kanban for humans and agents. One 4.5 MB binary, 4.5 MB of RAM, 10 to 60 tokens per agent reply, starts in 2 ms, zero setup.
내 문서와 최신 웹 정보를 함께 참고해 답하는 RAG 기반 AI 챗봇
Translation pending
ProductivityTypeScript · CSSGitHub @codingbot779OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗관리자가 업로드한 문서와 실시간 웹검색 결과를 근거로 답하는 RAG 기반 AI 챗봇입니다.
tavily_search)를 모델이 필요할 때 호출.env.example을 참고해 .env.local을 채웁니다. (이미 생성되어 있으면 빈칸만 입력)
| 변수 | 설명 |
|---|---|
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY | Supabase 프로젝트 URL / Publishable key |
SUPABASE_SECRET_KEY | 문서 업로드·임베딩 저장(서버 전용, Vercel에도 필요). Project Settings → API Keys → Secret key |
ADMIN_EMAILS | 문서 관리 페이지를 쓸 수 있는 관리자 Google 이메일 (쉼표로 여러 명) |
UPSTAGE_API_KEY | Upstage 임베딩 |
TAVILY_API_KEY | Tavily 웹검색(MCP) |
ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_GENERATIVE_AI_API_KEY | 사용할 LLM 키 (없는 모델은 선택 시 안내 메시지) |
ANTHROPIC_MODEL, OPENAI_MODEL, GEMINI_MODEL | (선택) 모델 ID 변경 |
supabase/schema.sql 전체를 실행합니다.
(Storage documents 버킷, document_files / documents / chat_rooms / messages 테이블, RLS, match_documents 함수 생성.
여러 번 실행해도 안전하므로 스키마가 바뀌면 다시 실행하면 됩니다.)https://<프로젝트>.supabase.co/auth/v1/callbackhttp://localhost:3000 (배포 후 Vercel 도메인으로 변경)http://localhost:3000/auth/callback, https://<vercel-도메인>/auth/callback관리자 계정(ADMIN_EMAILS)으로 로그인하면 사이드바에 📚 문서 관리 메뉴가 보입니다.
.pdf .hwp .hwpx .xlsx .xls .csv .txt .md .json, 파일당 50MB)documents 버킷)로 직접 업로드documents 테이블 저장문서를 삭제하면 Storage 원본과 임베딩 청크가 함께 지워집니다. 재처리는 같은 파일을 다시 임베딩합니다.
supabase/migrations/20261022_document_categories.sql(또는 갱신된 schema.sql 전체)을 SQL Editor에서 실행하세요.각 AI 답변 아래 답변 다운로드에서 문서 제목, 파일 형식, 출처 포함 여부를 선택할 수 있습니다.
변환은 브라우저에서 수행하며, 다운로드를 위한 추가 AI API 호출이나 서버 파일 저장은 없습니다. 답변 생성 중에는 저장할 수 없습니다. 이미지 파일은 포함하지 않으며, 복잡한 중첩 목록 등은 원래 화면과 서식이 다를 수 있습니다. 기존 답변을 저장하는 기능이며 보고서·공문 등으로 내용을 새로 작성하는 기능은 아닙니다.
검증 명령: npm test, npm run lint, npm run build.
npm install
npm run check # (선택) Upstage·Tavily MCP 연결 점검
npm run dev # http://localhost:3000
.env.local 값을 동일하게 입력 (SUPABASE_SECRET_KEY, ADMIN_EMAILS 포함)app/
page.tsx 랜딩페이지 (Google로 시작하기)
auth/callback, signout OAuth 콜백 / 로그아웃
(app)/chat/ 챗봇 (사이드바 + 채팅방)
(app)/documents/ 문서 관리 (관리자 전용)
api/chat/route.ts RAG 검색 → LLM 스트리밍(+Tavily MCP) → DB 저장
api/documents/ 업로드 URL 발급 / 임베딩 처리 / 삭제
components/ Chat, Sidebar, DocumentManager, 로그인 버튼
lib/ supabase 클라이언트, embeddings, ingest, rag, models, tavily-mcp
supabase/schema.sql DB 스키마