Skip to content

Downy-newlearner/Perfect_Quote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

67 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Quote Generator V2 ๐ŸŒŸ

๊ฐœ์ธํ™”๋œ AI ๋ช…์–ธ ์ถ”์ฒœ ์„œ๋น„์Šค
Solar Pro API + ์ž„๋ฒ ๋”ฉ ๊ธฐ๋ฐ˜ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰์œผ๋กœ ์‚ฌ์šฉ์ž ๋งž์ถค ๋ช…์–ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ—๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    ๐ŸŒ Frontend (React + TypeScript)            โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚   Chat UI       โ”‚  โ”‚  Quote Display  โ”‚  โ”‚  Result Page    โ”‚ โ”‚
โ”‚  โ”‚                 โ”‚  โ”‚                 โ”‚  โ”‚                 โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                โ”‚ HTTP API
                                โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                 ๐Ÿค– Backend (Flask + Solar API)                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚   Chat Logic    โ”‚  โ”‚   LLM Service   โ”‚  โ”‚  Quote Search   โ”‚ โ”‚
โ”‚  โ”‚   (4-Step)      โ”‚  โ”‚   (Solar Pro)   โ”‚  โ”‚   (Embedding)   โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                    โ”‚                              โ”‚
                    โ–ผ                              โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚      ๐Ÿ”ฅ Upstage API        โ”‚    โ”‚    ๐Ÿง  Embedding System      โ”‚
โ”‚                             โ”‚    โ”‚                             โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”โ”‚    โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚     Solar Pro Model     โ”‚โ”‚    โ”‚ โ”‚   SentenceTransformer   โ”‚ โ”‚
โ”‚  โ”‚   (Conversational AI)   โ”‚โ”‚    โ”‚ โ”‚  (Multilingual MPNET)   โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ”‚    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
                                   โ”‚ โ”‚    FAISS Vector DB      โ”‚ โ”‚
                                   โ”‚ โ”‚  (Cosine Similarity)    โ”‚ โ”‚
                                   โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
                                   โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
                                   โ”‚ โ”‚   Quotes Dataset        โ”‚ โ”‚
                                   โ”‚ โ”‚ (500K+ with Insights)   โ”‚ โ”‚
                                   โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
                                   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ”„ ๋ฐ์ดํ„ฐ ํ”Œ๋กœ์šฐ & ์›Œํฌํ”Œ๋กœ์šฐ

1๏ธโƒฃ ์‚ฌ์šฉ์ž ๋Œ€ํ™” ํ”Œ๋กœ์šฐ (4๋‹จ๊ณ„)

graph TD
    A[๐Ÿ‘ค ์‚ฌ์šฉ์ž ์ ‘์†] --> B[๐Ÿ’ฌ 1๋‹จ๊ณ„: ์ธ์‚ฌ/์ƒํ™ฉ ํŒŒ์•…]
    B --> C[๐Ÿค 2๋‹จ๊ณ„: ๊ฐ์ • ํƒ์ƒ‰]
    C --> D[โค๏ธ 3๋‹จ๊ณ„: ๊ณต๊ฐ & ์œ„๋กœ]
    D --> E[โœจ 4๋‹จ๊ณ„: ๋ช…์–ธ ์ƒ์„ฑ ํŠธ๋ฆฌ๊ฑฐ]

    E --> F[๐Ÿง  ๋Œ€ํ™” ์ปจํ…์ŠคํŠธ ๋ถ„์„]
    F --> G[๐Ÿ” ์ž„๋ฒ ๋”ฉ ๊ธฐ๋ฐ˜ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰]
    G --> H[๐Ÿ“œ ๊ฐœ์ธํ™”๋œ ๋ช…์–ธ ์ œ๊ณต]

    H --> I[โœ… ๋ช…์–ธ ์ˆ˜๋ฝ]
    H --> J[๐Ÿ”„ ๋‹ค๋ฅธ ๋ช…์–ธ ์š”์ฒญ]

    I --> K[๐ŸŽฏ ๊ฒฐ๊ณผ ํŽ˜์ด์ง€]
    J --> G
Loading

2๏ธโƒฃ ์ž„๋ฒ ๋”ฉ ๊ธฐ๋ฐ˜ ๋ช…์–ธ ๊ฒ€์ƒ‰ ํ”Œ๋กœ์šฐ

graph LR
    A[๐Ÿ‘ค ์‚ฌ์šฉ์ž ๋Œ€ํ™”] --> B[๐Ÿ“ ์ปจํ…์ŠคํŠธ ์ถ”์ถœ]
    B --> C[๐Ÿ”ค SentenceTransformer]
    C --> D[๐Ÿ“Š ๋ฒกํ„ฐ ์ž„๋ฒ ๋”ฉ]
    D --> E[๐Ÿ” FAISS ๊ฒ€์ƒ‰]
    E --> F[๐Ÿ“œ ์œ ์‚ฌ ๋ช…์–ธ ๋ฐœ๊ฒฌ]
    F --> G[โœจ ๊ฐœ์ธํ™”๋œ ์ถ”์ฒœ]

    subgraph "๐Ÿ—„๏ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค"
        H[500K+ ๋ช…์–ธ]
        I[์ธ์‚ฌ์ดํŠธ ์ถ”์ถœ]
        J[๋ฒกํ„ฐ ์ธ๋ฑ์Šค]
    end

    E --> J
    J --> H
    H --> I
Loading

3๏ธโƒฃ ๊ธฐ์ˆ  ์Šคํƒ ์„ธ๋ถ€์‚ฌํ•ญ

์˜์—ญ ๊ธฐ์ˆ ์Šคํƒ ์ƒ์„ธ
๐ŸŽจ Frontend React 19 + TypeScript SPA, styled-components, React Router
๐Ÿค– Backend Flask + Python RESTful API, CORS ์ง€์›
๐Ÿง  LLM Upstage Solar Pro ํ•œ๊ตญ์–ด ์ตœ์ ํ™”, ๋Œ€ํ™”ํ˜• AI
๐Ÿ” ๊ฒ€์ƒ‰ SentenceTransformer + FAISS ๋‹ค๊ตญ์–ด ์ž„๋ฒ ๋”ฉ, ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„
๐Ÿ“Š ๋ฐ์ดํ„ฐ 500K+ ๋ช…์–ธ + ์ธ์‚ฌ์ดํŠธ GPT ๊ธฐ๋ฐ˜ ์˜๋ฏธ ์ถ”์ถœ
๐Ÿ’พ ๋ฒกํ„ฐDB FAISS IndexFlatIP 29MB ์ธ๋ฑ์Šค, GPU ๊ฐ€์†

๐Ÿš€ ํ™˜๊ฒฝ ์„ค์ • ๋ฐ ์‹คํ–‰ ๊ฐ€์ด๋“œ

ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ

  • Python 3.8+ (3.11 ๊ถŒ์žฅ)
  • Node.js 16+ (18 LTS ๊ถŒ์žฅ)
  • Upstage API Key (https://console.upstage.ai์—์„œ ๋ฐœ๊ธ‰)

โš ๏ธ ์ค‘์š” ์•Œ๋ฆผ

ํŒ€์›๋“ค์ด ์ž์ฃผ ๊ฒช๋Š” ๋ฌธ์ œ๋“ค์„ ๋ฏธ๋ฆฌ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค. ์ˆœ์„œ๋Œ€๋กœ ๋”ฐ๋ผํ•˜์‹œ๋ฉด ๋ฌธ์ œ์—†์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.


1๏ธโƒฃ ํ”„๋กœ์ ํŠธ ํด๋ก 

git clone https://github.com/your-repo/Perfect_Quote-1.git
cd Perfect_Quote-1

2๏ธโƒฃ Python ํ™˜๊ฒฝ ์„ค์ •

Python ํŒจํ‚ค์ง€ ์„ค์น˜

# ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ (๊ถŒ์žฅ)
python -m venv .venv

# ๊ฐ€์ƒํ™˜๊ฒฝ ํ™œ์„ฑํ™”
# Windows:
.venv\Scripts\activate
# macOS/Linux:
source .venv/bin/activate

# ํŒจํ‚ค์ง€ ์„ค์น˜
pip install -r requirements.txt

๋กœ์ปฌ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ

# ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ์‚ฌ์ „ ๋‹ค์šด๋กœ๋“œ (์•ฝ 2-3๋ถ„ ์†Œ์š”)
python download_models.py

โœ… ์ถœ๋ ฅ ์˜ˆ์‹œ:

๐Ÿš€ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ ์‹œ์ž‘
1. sentence-transformers/all-MiniLM-L6-v2
   โœ… ๋‹ค์šด๋กœ๋“œ ์™„๋ฃŒ (15.0์ดˆ)
2. sentence-transformers/paraphrase-multilingual-mpnet-base-v2  
   โœ… ๋‹ค์šด๋กœ๋“œ ์™„๋ฃŒ (13.0์ดˆ)
๐ŸŽ‰ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ ์™„๋ฃŒ!

3๏ธโƒฃ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

.env ํŒŒ์ผ ์ƒ์„ฑ

# .env ํŒŒ์ผ ์ƒ์„ฑ (Windows PowerShell)
"UPSTAGE_API_KEY=your_upstage_api_key_here" | Out-File -FilePath .env -Encoding ascii

# ๋˜๋Š” ์ˆ˜๋™์œผ๋กœ .env ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค์Œ ๋‚ด์šฉ ์ž…๋ ฅ:

.env ํŒŒ์ผ ๋‚ด์šฉ:

UPSTAGE_API_KEY=your_upstage_api_key_here
FLASK_ENV=development
FLASK_DEBUG=False

โš ๏ธ ์ฃผ์˜: API ํ‚ค๋ฅผ ์‹ค์ œ ๊ฐ’์œผ๋กœ ๊ต์ฒดํ•˜์„ธ์š”!

4๏ธโƒฃ Node.js ์„ค์ •

Node.js ์„ค์น˜ ํ™•์ธ

node --version
npm --version

โŒ ๋งŒ์•ฝ "๋ช…๋ น์–ด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค" ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ:

Windows:

macOS:

brew install node

Node.js ์˜์กด์„ฑ ์„ค์น˜

npm install

5๏ธโƒฃ ์„œ๋ฒ„ ์‹คํ–‰

๋ฐฑ์—”๋“œ ์„œ๋ฒ„ (Flask + Solar API)

python app.py

โœ… ์„ฑ๊ณต ์‹œ ์ถœ๋ ฅ:

๐Ÿš€ Enhanced Solar API + LangGraph ์„œ๋ฒ„ ์‹œ์ž‘ ์ค‘...
๐Ÿ“ก ํฌํŠธ: 3001
๐Ÿ”ฅ ๋ชจ๋ธ: Solar Pro API + LangGraph StateGraph
๐Ÿง  ์ž„๋ฒ ๋”ฉ: Enhanced SentenceTransformer + FAISS
โœจ LangGraph ๊ธฐ๋ฐ˜ ๊ฐœ์ธํ™”๋œ ๋ช…์–ธ ์ถ”์ฒœ ์‹œ์Šคํ…œ!
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:3001

ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋ฒ„ (React)

์ƒˆ ํ„ฐ๋ฏธ๋„์—์„œ:

npm start

6๏ธโƒฃ ์ ‘์† ๋ฐ ํ…Œ์ŠคํŠธ

API ํ…Œ์ŠคํŠธ

# PowerShell์—์„œ ํ…Œ์ŠคํŠธ
Invoke-WebRequest -Uri "http://localhost:3001/api/health" -Method GET

# ๋˜๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:3001/api/health ์ ‘์†

โœ… ์ •์ƒ ์‘๋‹ต:

{
  "status": "OK",
  "model": "Solar Pro API + LangGraph",
  "embedding_system": "โœ… ACTIVE",
  "message": "๐ŸŽ‰ Solar API + LangGraph + ๊ฐœ์ธํ™” ๋ช…์–ธ ์ถ”์ฒœ ์‹œ์Šคํ…œ ์™„์ „ ํ™œ์„ฑํ™”!"
}

๐Ÿšจ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฐ€์ด๋“œ

โŒ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋“ค

1. .env ํŒŒ์ผ ์ธ์ฝ”๋”ฉ ์˜ค๋ฅ˜

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:

# ๊ธฐ์กด .env ํŒŒ์ผ ์‚ญ์ œ
Remove-Item .env -Force

# ์˜ฌ๋ฐ”๋ฅธ ์ธ์ฝ”๋”ฉ์œผ๋กœ ์žฌ์ƒ์„ฑ
"UPSTAGE_API_KEY=your_api_key_here" | Out-File -FilePath .env -Encoding ascii

2. Node.js ๋ช…๋ น์–ด ์ธ์‹ ์•ˆ๋จ

The term 'node' is not recognized as the name of a cmdlet

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:

  1. Node.js ์„ค์น˜: https://nodejs.org์—์„œ LTS ๋ฒ„์ „ ๋‹ค์šด๋กœ๋“œ
  2. ์„ค์น˜ ํ™•์ธ: PowerShell ์žฌ์‹œ์ž‘ ํ›„ node --version ์‹คํ–‰
  3. ํ™˜๊ฒฝ๋ณ€์ˆ˜ ํ™•์ธ: ์‹œ์Šคํ…œ PATH์— Node.js ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ

3. Python ํŒจํ‚ค์ง€ ์„ค์น˜ ์‹คํŒจ

ERROR: Could not find a version that satisfies the requirement langgraph==0.2.87

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:

  • ์ด๋ฏธ ์ˆ˜์ •๋œ requirements.txt๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ตœ์‹  ๋ฒ„์ „์—์„œ๋Š” ๋ฌธ์ œ์—†์Œ
  • ๋งŒ์•ฝ ๋ฐœ์ƒ ์‹œ: pip install --upgrade pip ํ›„ ์žฌ์‹œ๋„

4. ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ ์‹คํŒจ

ConnectionError: HTTPSConnectionPool

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:

  1. ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ํ™•์ธ
  2. ๋ฐฉํ™”๋ฒฝ/ํ”„๋ก์‹œ ์„ค์ • ํ™•์ธ
  3. VPN ์—ฐ๊ฒฐ ์‹œ ์ผ์‹œ ํ•ด์ œ
  4. ์žฌ์‹œ๋„: python download_models.py

5. API ์„œ๋ฒ„ ์—ฐ๊ฒฐ ์‹คํŒจ

์›๊ฒฉ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:

  1. ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ์‹คํ–‰ ํ™•์ธ: python app.py๊ฐ€ ์ •์ƒ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธ
  2. ํฌํŠธ ์ถฉ๋Œ ํ™•์ธ: 3001 ํฌํŠธ๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์—์„œ ์‚ฌ์šฉ ์ค‘์ธ์ง€ ํ™•์ธ
    netstat -ano | findstr :3001
  3. ๋ฐฉํ™”๋ฒฝ ํ•ด์ œ: Windows Defender ๋ฐฉํ™”๋ฒฝ์—์„œ Python ํ—ˆ์šฉ

6. UPSTAGE API ํ‚ค ์˜ค๋ฅ˜

401 Unauthorized

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:

  1. API ํ‚ค ํ™•์ธ: Upstage Console์—์„œ ์œ ํšจํ•œ ํ‚ค์ธ์ง€ ํ™•์ธ
  2. .env ํŒŒ์ผ ํ™•์ธ: API ํ‚ค๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธ
  3. ์„œ๋ฒ„ ์žฌ์‹œ์ž‘: API ํ‚ค ๋ณ€๊ฒฝ ํ›„ python app.py ์žฌ์‹œ์ž‘

7. ์ž„๋ฒ ๋”ฉ ์‹œ์Šคํ…œ fallback ๋ชจ๋“œ

"embedding_system": "โš ๏ธ FALLBACK"

โœ… ์ •์ƒ ๋™์ž‘์ž„:

  • ๋กœ์ปฌ ๋ชจ๋ธ์ด ๋กœ๋“œ๋˜์ง€ ์•Š์•„๋„ ๊ธฐ๋ณธ ๋ช…์–ธ ์‹œ์Šคํ…œ์œผ๋กœ ์ž‘๋™
  • ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด python download_models.py ์‹คํ–‰ ๊ถŒ์žฅ

๐Ÿ” ๋””๋ฒ„๊น… ๋ช…๋ น์–ด

ํ™˜๊ฒฝ ํ™•์ธ

# Python ๋ฒ„์ „ ํ™•์ธ
python --version

# ํŒจํ‚ค์ง€ ์„ค์น˜ ํ™•์ธ  
pip list | findstr -i "flask langchain upstage"

# Node.js ํ™•์ธ
node --version && npm --version

# .env ํŒŒ์ผ ํ™•์ธ
Get-Content .env

์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ

# ๋ฐฑ์—”๋“œ ํ—ฌ์Šค์ฒดํฌ
Invoke-WebRequest -Uri "http://localhost:3001/api/health"

# ํ”„๋ก ํŠธ์—”๋“œ ํ™•์ธ (๋ธŒ๋ผ์šฐ์ €์—์„œ)
# http://localhost:3000

๋กœ๊ทธ ํ™•์ธ

# Python ์„œ๋ฒ„ ๋กœ๊ทธ (์‹คํ–‰ ์‹œ ํ„ฐ๋ฏธ๋„์—์„œ ํ™•์ธ)
python app.py

# ์ž์„ธํ•œ ์˜ค๋ฅ˜ ๋กœ๊ทธ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ
python app.py --debug

๐Ÿ“ž ๋„์›€ ์š”์ฒญ ์‹œ ์ œ๊ณตํ•  ์ •๋ณด

๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ๋‹ค์Œ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ์ œ๊ณตํ•ด์ฃผ์„ธ์š”:

  1. ์šด์˜์ฒด์ œ: Windows/macOS/Linux ๋ฒ„์ „
  2. Python ๋ฒ„์ „: python --version ๊ฒฐ๊ณผ
  3. Node.js ๋ฒ„์ „: node --version ๊ฒฐ๊ณผ
  4. ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€: ์ •ํ™•ํ•œ ์—๋Ÿฌ ํ…์ŠคํŠธ
  5. ์‹คํ–‰ ๋‹จ๊ณ„: ์–ด๋А ๋‹จ๊ณ„์—์„œ ๋ฌธ์ œ ๋ฐœ์ƒํ–ˆ๋Š”์ง€
  6. ํ™˜๊ฒฝ ์„ค์ •: .env ํŒŒ์ผ ์„ค์ • ์—ฌ๋ถ€ (API ํ‚ค ์ œ์™ธ)

๐Ÿ“š API ๋ช…์„ธ

๐Ÿ”— ๊ธฐ๋ณธ ์ •๋ณด

  • Base URL: http://localhost:3001/api
  • Content-Type: application/json
  • CORS: ํ™œ์„ฑํ™”

๐Ÿ’ฌ ๋ฉ”์‹œ์ง€ ์ „์†ก

POST /api/chat/send
Content-Type: application/json

{
  "userId": "string",
  "threadNum": "string",
  "content": "string",
  "timestamp": "string"
}

์‘๋‹ต (4๋‹จ๊ณ„ ์™„๋ฃŒ ์‹œ ๋ช…์–ธ ํฌํ•จ)

{
  "userId": "string",
  "threadNum": "string",
  "timestamp": "string",
  "status": "completed",
  "content": "AI ์‘๋‹ต",
  "model": "Solar Pro",
  "embedding_system": "FAISS",
  "quote": {
    "id": "string",
    "text": "๋ช…์–ธ ๋‚ด์šฉ",
    "author": "์ €์ž",
    "category": "์นดํ…Œ๊ณ ๋ฆฌ",
    "similarity": 0.8542,
    "method": "embedding_search"
  }
}

๐Ÿ” ์ƒํƒœ ํ™•์ธ

GET /api/chat/status?userId={userId}&threadNum={threadNum}

๐Ÿง  ์ž„๋ฒ ๋”ฉ ์‹œ์Šคํ…œ ์ƒ์„ธ

๐Ÿ“Š ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ

  1. ์›๋ณธ ๋ฐ์ดํ„ฐ: 500K+ ์˜์–ด ๋ช…์–ธ (Kaggle)
  2. ์ธ์‚ฌ์ดํŠธ ์ถ”์ถœ: GPT-4๋ฅผ ํ†ตํ•œ ํ•ต์‹ฌ ์˜๋ฏธ ๋ถ„์„ (30-45๋‹จ์–ด)
  3. ์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ: SentenceTransformer ๋‹ค๊ตญ์–ด ๋ชจ๋ธ ์‚ฌ์šฉ
  4. ๋ฒกํ„ฐ ์ธ๋ฑ์‹ฑ: FAISS ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„ ์ธ๋ฑ์Šค ๊ตฌ์ถ•
  5. ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰: ์‚ฌ์šฉ์ž ๋Œ€ํ™” ์ปจํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰

๐Ÿ” ๊ฒ€์ƒ‰ ์ •ํ™•๋„

  • ๋ชจ๋ธ: paraphrase-multilingual-mpnet-base-v2
  • ์ฐจ์›: 768์ฐจ์› ๋ฒกํ„ฐ
  • ์ธ๋ฑ์Šค: FAISS IndexFlatIP (๋‚ด์  ๊ธฐ๋ฐ˜)
  • ์ •๊ทœํ™”: L2 ์ •๊ทœํ™”๋กœ ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„ ๊ณ„์‚ฐ
  • ์†๋„: GPU ๊ฐ€์† (์‚ฌ์šฉ ๊ฐ€๋Šฅ ์‹œ)

๐Ÿ“ ์ฃผ์š” ํŒŒ์ผ ๊ตฌ์กฐ

quote-generator-v2/
โ”œโ”€โ”€ ๐Ÿค– Backend
โ”‚   โ”œโ”€โ”€ app.py                    # ๋ฉ”์ธ Flask ์„œ๋ฒ„
โ”‚   โ”œโ”€โ”€ utils/system_prompt.py    # LLM ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ
โ”‚   โ””โ”€โ”€ requirements.txt          # Python ์˜์กด์„ฑ
โ”œโ”€โ”€ ๐ŸŽจ Frontend
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/          # React ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”‚   โ”œโ”€โ”€ pages/              # ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”‚   โ”œโ”€โ”€ hooks/              # ์ปค์Šคํ…€ ํ›…
โ”‚   โ”‚   โ””โ”€โ”€ services/api.ts     # API ํ†ต์‹ 
โ”‚   โ””โ”€โ”€ package.json            # Node.js ์˜์กด์„ฑ
โ”œโ”€โ”€ ๐Ÿง  AI/ML
โ”‚   โ”œโ”€โ”€ quote_embedding/        # ์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ ์Šคํฌ๋ฆฝํŠธ
โ”‚   โ”œโ”€โ”€ vectorDB/FAISS/        # FAISS ์ธ๋ฑ์Šค (29MB)
โ”‚   โ””โ”€โ”€ Dataset/               # ๋ช…์–ธ ๋ฐ์ดํ„ฐ์…‹
โ””โ”€โ”€ ๐Ÿ“Š ๋ถ„์„๋„๊ตฌ
    โ”œโ”€โ”€ EDA&quotes_selection/  # ๋ฐ์ดํ„ฐ ๋ถ„์„
    โ””โ”€โ”€ Insight_extractor_with_gpt_API/ # GPT ์ธ์‚ฌ์ดํŠธ ์ถ”์ถœ

๐ŸŽฏ ํŠน์žฅ์ 

๐Ÿค– ๊ณ ๋„ํ™”๋œ AI ์‹œ์Šคํ…œ

  • Solar Pro API: ํ•œ๊ตญ์–ด ์ตœ์ ํ™”๋œ ๋Œ€ํ™”ํ˜• LLM
  • ์ปจํ…์ŠคํŠธ ์ธ์‹: 4๋‹จ๊ณ„ ๋Œ€ํ™” ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋ฐ˜ ๋ถ„์„
  • ๊ฐ์ • ์ดํ•ด: ์‚ฌ์šฉ์ž์˜ ๊ฐ์ • ์ƒํƒœ์— ๋งž๋Š” ์‘๋‹ต

๐Ÿ” ๊ฐœ์ธํ™”๋œ ๋ช…์–ธ ์ถ”์ฒœ

  • ์ž„๋ฒ ๋”ฉ ๊ธฐ๋ฐ˜: ์˜๋ฏธ์  ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰
  • 500K+ ๋ฐ์ดํ„ฐ์…‹: ๋ฐฉ๋Œ€ํ•œ ๋ช…์–ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  • ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰: FAISS ๊ณ ์† ๋ฒกํ„ฐ ๊ฒ€์ƒ‰
  • ํด๋ฐฑ ์‹œ์Šคํ…œ: ์•ˆ์ •์ ์ธ ์„œ๋น„์Šค ์ œ๊ณต

๐Ÿ’ป ์‚ฌ์šฉ์ž ๊ฒฝํ—˜

  • ์ž์—ฐ์Šค๋Ÿฌ์šด ๋Œ€ํ™”: ์นœ๊ตฌ ๊ฐ™์€ AI ์ฑ—๋ด‡
  • ์ง๊ด€์  UI: React ๊ธฐ๋ฐ˜ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ
  • ์‹ค์‹œ๊ฐ„ ์‘๋‹ต: WebSocket ์ง€์› ์ค€๋น„
  • ๋‹ค๊ตญ์–ด ์ง€์›: ํ•œ๊ตญ์–ด/์˜์–ด ๋™์‹œ ์ง€์›

๐Ÿ”ง ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ

๐Ÿ—๏ธ ์•„ํ‚คํ…์ฒ˜ ํ™•์žฅ

  1. ์ŠคํŠธ๋ฆฌ๋ฐ API: Server-Sent Events ๊ตฌํ˜„
  2. ์‚ฌ์šฉ์ž ์ธ์ฆ: JWT ๊ธฐ๋ฐ˜ ์„ธ์…˜ ๊ด€๋ฆฌ
  3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: PostgreSQL/MongoDB ์—ฐ๋™
  4. ์บ์‹ฑ: Redis ๊ธฐ๋ฐ˜ ์‘๋‹ต ์บ์‹ฑ
  5. ๋ชจ๋‹ˆํ„ฐ๋ง: Prometheus + Grafana

๐Ÿงช ํ…Œ์ŠคํŠธ

# ๋ฐฑ์—”๋“œ ํ…Œ์ŠคํŠธ
python -m pytest tests/

# ํ”„๋ก ํŠธ์—”๋“œ ํ…Œ์ŠคํŠธ
npm test

# E2E ํ…Œ์ŠคํŠธ
npm run test:e2e

๐Ÿš€ ๋ฐฐํฌ

# Docker ๋นŒ๋“œ
docker-compose up -d

# ๋˜๋Š” ๊ฐœ๋ณ„ ๋ฐฐํฌ
# Backend: Heroku/AWS Lambda
# Frontend: Vercel/Netlify
# Vector DB: AWS S3/GCS

๐Ÿ“ˆ ์„ฑ๋Šฅ ์ง€ํ‘œ

๋ฉ”ํŠธ๋ฆญ ๋ชฉํ‘œ ํ˜„์žฌ
์‘๋‹ต ์‹œ๊ฐ„ <2์ดˆ ~1.5์ดˆ
๋ช…์–ธ ์ •ํ™•๋„ >80% ~85%
๋™์‹œ ์‚ฌ์šฉ์ž 100+ ํ…Œ์ŠคํŠธ ์ค‘
์‹œ์Šคํ…œ ๊ฐ€์šฉ์„ฑ 99%+ ๊ฐœ๋ฐœ ๋‹จ๊ณ„

๐Ÿ”ฎ ๋กœ๋“œ๋งต

๐ŸŽฏ ๋‹จ๊ธฐ ๋ชฉํ‘œ (1-2๊ฐœ์›”)

  • ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œ
  • ๋ช…์–ธ ์นดํ…Œ๊ณ ๋ฆฌ ํ•„ํ„ฐ๋ง
  • ๋Œ€ํ™” ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ
  • ๋ชจ๋ฐ”์ผ ๋ฐ˜์‘ํ˜• ์ตœ์ ํ™”

๐Ÿš€ ์ค‘๊ธฐ ๋ชฉํ‘œ (3-6๊ฐœ์›”)

  • ๋‹ค๊ตญ์–ด ๋ช…์–ธ ๋ฐ์ดํ„ฐ ํ™•์žฅ
  • ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ ์‘๋‹ต
  • ์†Œ์…œ ๊ณต์œ  ๊ธฐ๋Šฅ
  • ๊ฐœ์ธํ™” ๋Œ€์‹œ๋ณด๋“œ

๐ŸŒŸ ์žฅ๊ธฐ ๋ชฉํ‘œ (6-12๊ฐœ์›”)

  • ์Œ์„ฑ ๋Œ€ํ™” ์ง€์›
  • ์ด๋ฏธ์ง€ ๋ช…์–ธ ์ƒ์„ฑ
  • ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ
  • ๋ชจ๋ฐ”์ผ ์•ฑ ์ถœ์‹œ

โšก ๋น ๋ฅธ ์‹œ์ž‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

ํŒ€์›๋“ค์„ ์œ„ํ•œ ํ•œ ๋ˆˆ์— ๋ณด๋Š” ์ฒดํฌ๋ฆฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค:

๐Ÿ” ์‚ฌ์ „ ํ™•์ธ์‚ฌํ•ญ

  • Python 3.8+ ์„ค์น˜๋จ
  • Node.js 16+ ์„ค์น˜๋จ
  • Upstage API ํ‚ค ํ™•๋ณด
  • Git ํด๋ก  ์™„๋ฃŒ

๐Ÿ› ๏ธ ํ™˜๊ฒฝ ์„ค์ •

  • pip install -r requirements.txt ์‹คํ–‰
  • python download_models.py ์‹คํ–‰ (๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ)
  • .env ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ API ํ‚ค ์„ค์ •
  • npm install ์‹คํ–‰

๐Ÿš€ ์‹คํ–‰ ํ™•์ธ

  • python app.py โ†’ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ์‹คํ–‰๋จ
  • npm start โ†’ ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋ฒ„ ์‹คํ–‰๋จ
  • Health check API ์‘๋‹ต ์ •์ƒ
  • ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ ‘์† ๊ฐ€๋Šฅ

๐Ÿงช ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ

  • ์ฑ„ํŒ… ๊ธฐ๋Šฅ ๋™์ž‘
  • AI ์‘๋‹ต ์ƒ์„ฑ๋จ
  • ๋ช…์–ธ ์ถ”์ฒœ ์‹œ์Šคํ…œ ์ž‘๋™

๐Ÿ“ ์ฃผ์š” ํŒŒ์ผ ์„ค๋ช…

ํŒ€์›๋“ค์ด ์•Œ์•„์•ผ ํ•  ํ•ต์‹ฌ ํŒŒ์ผ๋“ค์ž…๋‹ˆ๋‹ค:

๐Ÿค– ๋ฐฑ์—”๋“œ (Python/Flask)

app.py                      # ๋ฉ”์ธ Flask ์„œ๋ฒ„ (๊ฐ€์žฅ ์ค‘์š”)
โ”œโ”€โ”€ LangGraph ์›Œํฌํ”Œ๋กœ์šฐ    # Solar API + ๋Œ€ํ™” ๋ถ„์„
โ”œโ”€โ”€ ์ž„๋ฒ ๋”ฉ ๊ฒ€์ƒ‰ ์‹œ์Šคํ…œ      # FAISS + SentenceTransformer  
โ””โ”€โ”€ RESTful API ์—”๋“œํฌ์ธํŠธ # /api/chat/send, /api/health

utils/
โ”œโ”€โ”€ system_prompt.py        # AI ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ
โ”œโ”€โ”€ analysis_prompt.py      # ๋Œ€ํ™” ๋ถ„์„ ํ”„๋กฌํ”„ํŠธ  
โ”œโ”€โ”€ quote_retriever.py      # ๋ช…์–ธ ๊ฒ€์ƒ‰ ์—”์ง„
โ””โ”€โ”€ chatbot_utils.py        # ์ฑ—๋ด‡ ์œ ํ‹ธ๋ฆฌํ‹ฐ

requirements.txt            # Python ํŒจํ‚ค์ง€ ์˜์กด์„ฑ
download_models.py          # ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ ์Šคํฌ๋ฆฝํŠธ
.env                        # ํ™˜๊ฒฝ ๋ณ€์ˆ˜ (API ํ‚ค ๋“ฑ)

๐ŸŽจ ํ”„๋ก ํŠธ์—”๋“œ (React/TypeScript)

src/
โ”œโ”€โ”€ components/             # ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”œโ”€โ”€ Chat/              # ์ฑ„ํŒ… ๊ด€๋ จ ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”œโ”€โ”€ Common/            # ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ
โ”‚   โ””โ”€โ”€ Layout/            # ๋ ˆ์ด์•„์›ƒ ์ปดํฌ๋„ŒํŠธ
โ”œโ”€โ”€ pages/                 # ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ
โ”œโ”€โ”€ hooks/                 # ์ปค์Šคํ…€ React ํ›…
โ”œโ”€โ”€ services/api.ts        # ๋ฐฑ์—”๋“œ API ํ†ต์‹ 
โ””โ”€โ”€ types/                 # TypeScript ํƒ€์ž… ์ •์˜

package.json               # Node.js ํŒจํ‚ค์ง€ ์˜์กด์„ฑ

๐Ÿง  AI/ML ๋ฐ์ดํ„ฐ

Dataset/
โ”œโ”€โ”€ quotes_with_insights_combined.csv  # 500K+ ๋ช…์–ธ ๋ฐ์ดํ„ฐ์…‹
โ””โ”€โ”€ sampled_quotes.csv                 # ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ

vectorDB/FAISS/
โ”œโ”€โ”€ quotes_cosine_faiss.index          # FAISS ๋ฒกํ„ฐ ์ธ๋ฑ์Šค (29MB)
โ””โ”€โ”€ faiss_cosine.py                    # FAISS ๊ฒ€์ƒ‰ ๋กœ์ง

models/sentence-transformers/          # ๋กœ์ปฌ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ (๋‹ค์šด๋กœ๋“œ๋จ)
โ”œโ”€โ”€ all-MiniLM-L6-v2/                 # ๊ฒฝ๋Ÿ‰ ๋ชจ๋ธ
โ””โ”€โ”€ paraphrase-multilingual-mpnet-base-v2/  # ๋‹ค๊ตญ์–ด ๋ชจ๋ธ

๐Ÿค ํŒ€ ํ˜‘์—… ๊ฐ€์ด๋“œ

๐Ÿ”€ Git ์›Œํฌํ”Œ๋กœ์šฐ

# 1. ์ตœ์‹  ์ฝ”๋“œ ๋™๊ธฐํ™”
git pull origin main

# 2. ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ  
git checkout -b feature/your-feature-name

# 3. ๊ฐœ๋ฐœ ๋ฐ ์ปค๋ฐ‹
git add .
git commit -m "feat: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€"

# 4. ํ‘ธ์‹œ ๋ฐ PR ์ƒ์„ฑ
git push origin feature/your-feature-name
# GitHub์—์„œ Pull Request ์ƒ์„ฑ

๐Ÿ“ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๊ทœ์น™

  • feat: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • fix: ๋ฒ„๊ทธ ์ˆ˜์ •
  • docs: ๋ฌธ์„œ ์ˆ˜์ •
  • style: ์ฝ”๋“œ ์Šคํƒ€์ผ ๋ณ€๊ฒฝ
  • refactor: ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
  • test: ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€/์ˆ˜์ •

๐ŸŽฏ ์—ญํ•  ๋ถ„๋‹ด

  • ๋ฐฑ์—”๋“œ: app.py, utils/ ํด๋” ๋‹ด๋‹น
  • ํ”„๋ก ํŠธ์—”๋“œ: src/ ํด๋” ๋‹ด๋‹น
  • AI/ML: vectorDB/, ๋ชจ๋ธ ์ตœ์ ํ™” ๋‹ด๋‹น
  • DevOps: ๋ฐฐํฌ, ํ™˜๊ฒฝ์„ค์ •, ๋ฌธ์„œํ™” ๋‹ด๋‹น

๐Ÿ”„ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค

  1. ์ด์Šˆ ์ƒ์„ฑ: GitHub Issues์—์„œ ์ž‘์—… ๋‚ด์šฉ ๋ช…์‹œ
  2. ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ: ์ด์Šˆ ๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•œ ๋ธŒ๋žœ์น˜๋ช… ์‚ฌ์šฉ
  3. ๊ฐœ๋ฐœ: ๋กœ์ปฌ์—์„œ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ
  4. PR ์ƒ์„ฑ: ์ƒ์„ธํ•œ ์„ค๋ช…๊ณผ ํ•จ๊ป˜ Pull Request
  5. ์ฝ”๋“œ ๋ฆฌ๋ทฐ: ํŒ€์› ๊ฒ€ํ†  ํ›„ ๋จธ์ง€

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

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ผ์Šค ํ•˜์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ LICENSE ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๐Ÿ‘ฅ ํŒ€

  • ๋ฐฑ์—”๋“œ & AI/ML: ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ, ์ž„๋ฒ ๋”ฉ ์‹œ์Šคํ…œ
  • ํ”„๋ก ํŠธ์—”๋“œ: React UI/UX, ์‚ฌ์šฉ์ž ๊ฒฝํ—˜
  • DevOps: ๋ฐฐํฌ, ๋ชจ๋‹ˆํ„ฐ๋ง, ์ธํ”„๋ผ

๐Ÿ“ž ๋ฌธ์˜


๐Ÿ’ก "๊ฐ€์žฅ ์–ด๋‘์šด ๋ฐค๋„ ๊ฒฐ๊ตญ์€ ๋๋‚˜๊ณ , ํ•ด๋Š” ๋– ์˜ค๋ฅธ๋‹ค." - ๋น…ํ„ฐ ์œ„๊ณ 
์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„์˜ ํ•˜๋ฃจ์— ์ž‘์€ ์œ„๋กœ์™€ ์˜๊ฐ์„ ์ „ํ•ด๋“œ๋ฆฌ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. โœจ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors