# {{projectName}}

> AI RAG platform scaffold — generated by trellis (ai-rag-platform playbook).

## Stack

- **Framework**: Next.js 14 (App Router)
- **Language**: TypeScript 5 (strict)
- **DB**: PostgreSQL + pgvector
- **ORM**: Prisma
- **LLM**: Ollama / OpenAI / Anthropic (interface + 3 implementations)
- **Embedder**: Ollama / OpenAI (interface + 2 implementations)
- **Parsing**: pdf-parse (PDF), mammoth (DOCX)
- **Style**: Tailwind CSS

## Quick start

### 1. PostgreSQL + pgvector

```bash
docker run -d --name pgvector \
  -p 5432:5432 -e POSTGRES_PASSWORD=postgres \
  pgvector/pgvector:pg16

psql postgresql://postgres:postgres@localhost:5432/postgres \
  -c "CREATE DATABASE {{projectNameKebab}}; \
      \\c {{projectNameKebab}} \
      CREATE EXTENSION IF NOT EXISTS vector;"
```

### 2. Install + env

```bash
npm install
cp .env.example .env.local
# edit DATABASE_URL, OLLAMA_URL (default http://localhost:11434), or set OPENAI_API_KEY
```

### 3. DB schema + run

```bash
npx prisma generate
npx prisma db push
npm run dev   # http://localhost:3000
```

## Routes

| Path | 설명 |
|------|------|
| `/` | 랜딩 |
| `/documents` | 업로드된 문서 목록 (P1: 업로드 폼) |
| `/chat` | RAG 챗 (SSE 스트리밍 데모) |

## API

| Method | Path | 상태 |
|--------|------|------|
| `GET` | `/api/documents` | ✅ 목록 |
| `POST` | `/api/documents` | 🚧 P1 — multipart 업로드 |
| `POST` | `/api/chat/sessions` | ✅ 세션 생성 |
| `POST` | `/api/chat/sessions/[id]/messages` | ✅ SSE 스트리밍 |

## 다음 단계

[`docs/plans/00-initial-skeleton.md`](docs/plans/00-initial-skeleton.md) 부터.
이후 `01-upload-pipeline.md` 작성 → 업로드 + 비동기 파이프라인 구현.

자세한 규칙: [`CLAUDE.md`](CLAUDE.md). 방법론 원본: `harness-engineering/playbooks/ai-rag-platform.md`

## License

MIT — see [LICENSE](LICENSE).
