An open API service indexing awesome lists of open source software.

https://github.com/dalestudy/chat

๐Ÿ’ฌ ์ฑ—๋ด‡
https://github.com/dalestudy/chat

Last synced: 10 days ago
JSON representation

๐Ÿ’ฌ ์ฑ—๋ด‡

Awesome Lists containing this project

README

          

# ๋‹ฌ๋ ˆ ์Šคํ„ฐ๋”” AI ์ฑ—๋ด‡

๋‹ฌ๋ ˆ ์Šคํ„ฐ๋”” ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์œ„ํ•œ AI ์ฑ—๋ด‡ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

## ๐Ÿ—๏ธ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

```
dalestudy-chatbot/
โ”œโ”€โ”€ frontend/ # React + TypeScript + Vite
โ”œโ”€โ”€ backend/ # Node.js + Express + TypeScript
โ”œโ”€โ”€ data/ # JSON ๋ฐ์ดํ„ฐ ํŒŒ์ผ
โ”œโ”€โ”€ PLAN.md # ํ”„๋กœ์ ํŠธ ๊ณ„ํš์„œ
โ””โ”€โ”€ README.md # ์ด ํŒŒ์ผ
```

## ๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘

### Prerequisites
- Node.js 18+
- npm ๋˜๋Š” yarn

### 1. ์ €์žฅ์†Œ ํด๋ก 
```bash
git clone
cd dalestudy-chatbot
```

### 2. ๋ฐฑ์—”๋“œ ์‹คํ–‰
```bash
cd backend
cp .env.example .env
npm install
npm run dev
```

๋ฐฑ์—”๋“œ ์„œ๋ฒ„๊ฐ€ http://localhost:8080 ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

### 3. ํ”„๋ก ํŠธ์—”๋“œ ์‹คํ–‰
```bash
cd frontend
cp .env.example .env
npm install
npm run dev
```

ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ http://localhost:3000 ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

## ๐Ÿ“ ์ฃผ์š” ํŒŒ์ผ

### Frontend
- `src/components/ChatInterface.tsx` - ๋ฉ”์ธ ์ฑ„ํŒ… ์ธํ„ฐํŽ˜์ด์Šค
- `src/components/MessageList.tsx` - ๋ฉ”์‹œ์ง€ ๋ฆฌ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ
- `src/components/ChatInput.tsx` - ๋ฉ”์‹œ์ง€ ์ž…๋ ฅ ์ปดํฌ๋„ŒํŠธ
- `src/api/index.ts` - API ํ˜ธ์ถœ ํ•จ์ˆ˜๋“ค
- `src/types/index.ts` - TypeScript ํƒ€์ž… ์ •์˜

### Backend
- `src/index.ts` - Express ์„œ๋ฒ„ ๋ฉ”์ธ ํŒŒ์ผ
- `src/routes/chat.ts` - ์ฑ„ํŒ… API ๋ผ์šฐํ„ฐ
- `src/routes/search.ts` - ๊ฒ€์ƒ‰ API ๋ผ์šฐํ„ฐ
- `src/services/searchService.ts` - Fuse.js ๊ฒ€์ƒ‰ ์„œ๋น„์Šค
- `src/utils/dataLoader.ts` - JSON ๋ฐ์ดํ„ฐ ๋กœ๋”
- `src/types/index.ts` - TypeScript ํƒ€์ž… ์ •์˜

### Data
- `data/study-projects.json` - ์Šคํ„ฐ๋”” ํ”„๋กœ์ ํŠธ ๋ฐ FAQ ๋ฐ์ดํ„ฐ

## ๐Ÿ”ง ๊ฐœ๋ฐœ ๋ช…๋ น์–ด

### Backend
```bash
npm run dev # ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰ (watch mode)
npm run build # TypeScript ๋นŒ๋“œ
npm run start # ํ”„๋กœ๋•์…˜ ์„œ๋ฒ„ ์‹คํ–‰
npm run lint # ESLint ์‹คํ–‰
```

### Frontend
```bash
npm run dev # ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰
npm run build # ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ
npm run preview # ๋นŒ๋“œ๋œ ํŒŒ์ผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
npm run lint # ESLint ์‹คํ–‰
```

## ๐ŸŒ API ์—”๋“œํฌ์ธํŠธ

### POST /api/chat
์‚ฌ์šฉ์ž ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  AI ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

**Request:**
```json
{
"message": "๋‹ฌ๋ ˆ ์Šคํ„ฐ๋””์— ์–ด๋–ป๊ฒŒ ์ฐธ์—ฌํ•˜๋‚˜์š”?"
}
```

**Response:**
```json
{
"message": "์›น์‚ฌ์ดํŠธ์—์„œ ๊ด€์‹ฌ ์žˆ๋Š” ์Šคํ„ฐ๋””๋ฅผ ์„ ํƒํ•˜๊ณ ...",
"sources": [...]
}
```

### GET /api/search
ํ‚ค์›Œ๋“œ๋กœ ์Šคํ„ฐ๋”” ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

**Request:**
```
GET /api/search?q=React ์Šคํ„ฐ๋””
```

**Response:**
```json
{
"query": "React ์Šคํ„ฐ๋””",
"category": "study",
"results": [...]
}
```

## ๐Ÿ› ๏ธ ๋‹ค์Œ ๋‹จ๊ณ„

1. **LLM API ์—ฐ๋™** - OpenAI ๋˜๋Š” Anthropic API ์—ฐ๊ฒฐ
2. **ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง** - ๋” ๋‚˜์€ ๋‹ต๋ณ€์„ ์œ„ํ•œ ํ”„๋กฌํ”„ํŠธ ์ตœ์ ํ™”
3. **UI/UX ๊ฐœ์„ ** - ๋” ๋‚˜์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์œ„ํ•œ ๋””์ž์ธ ๊ฐœ์„ 
4. **๋ฐฐํฌ ์„ค์ •** - Vercel + Railway/Render ๋ฐฐํฌ ๊ตฌ์„ฑ

## ๐Ÿ“ ๋ผ์ด์„ผ์Šค

MIT License