Spaces:
Running
Running
metadata
title: IntentFinder API
emoji: ๐
colorFrom: blue
colorTo: indigo
sdk: docker
app_port: 7860
pinned: false
HuggingFace Space ๋ฐฐํฌ ๋ฉ๋ชจ
- SDK: Docker (์ ๋ฉํ). ์ง์ ์
api:app, ํฌํธ 7860.- Space Settings โ Secrets ์ ์ ๋ ฅ(์ฝ๋/๋ ํฌ์ ๋์ง ์์):
NAVER_CLIENT_ID,NAVER_CLIENT_SECRET,NAVER_API_KEY,NAVER_SECRET_KEY,NAVER_CUSTOMER_ID,ANTHROPIC_API_KEY,SUPABASE_URL,SUPABASE_SERVICE_KEY- ๋ฐฐํฌ ๋ณดํธ ์ํฌ๋ฆฟ(๊ถ์ฅ):
ALLOWED_ORIGINS(๋์๋ณด๋ ๋๋ฉ์ธ),DT_API_KEY(๋์๋ณด๋์ ๊ณต์ ),RATE_MAX_PER_MIN- ํฌ์ค์ฒดํฌ:
GET /healthยท ๋ถ์:GET /analyze?keyword=...(DT_API_KEY์ค์ ์X-DT-Keyํค๋ ํ์)
IntentFinder โ ๊ฒ์ ์ธํ ํธ ๋ถ์ ๋์๋ณด๋
ํค์๋๋ฅผ ์ ๋ ฅํ๋ฉด ๋ค์ด๋ฒ ์ค์๊ฐ ๊ฒ์ ๋ฐ์ดํฐ + AI ํด๋ฌ์คํฐ๋ง์ผ๋ก ๊ฒ์ ์๋ยทํ๊นยท์ฐ๊ด ๊ฒฝ๋ก๋ฅผ ๋ถ์ํ๋ SMB์ฉ ๋์๋ณด๋.
๊ตฌ์ฑ
[dashboard.html] React ๋จ์ผ ํ์ผ ํ๋ก ํธ (๋น๋ ๋ถํ์)
โ fetch /analyze?keyword=
โผ
[api.py] FastAPI ๋ฐฑ์๋ (ํฌํธ 8000)
โโ naver_collector.py ๋ค์ด๋ฒ ๊ฒ์๊ด๊ณ ํค์๋๋๊ตฌ (๊ฒ์๋ยท๊ฒฝ์)
โโ clusterer.py ๊ด๋ จ์ฑ ํํฐ + S-BERTโUMAPโHDBSCAN ํด๋ฌ์คํฐ๋ง
โโ analyzer.py Overview ์นด๋ ์ง๊ณ
โโ intent_classifier.py Claude Haiku ์๋๋ถ๋ฅยทํ
๋ง๋ช
ยท๋ง์ผํ
์ ์
โโ autocomplete.py ๋ค์ด๋ฒ ์๋์์ฑ ๊ธฐ๋ฐ ๊ฒ์ ๊ฒฝ๋ก
โโ search_path.py ์๋ฒ ๋ฉ ๊ธฐ๋ฐ ๊ฒ์ ๊ฒฝ๋ก(ํด๋ฐฑ)
โโ datalab.py ๋ฐ์ดํฐ๋ฉ ์ฑ๋ณร์ฐ๋ น ์ถ์ ๋น์ค
โโ cache.py SQLite ๋น ๋ฅธ ์ฌ์กฐํ ์บ์
โโ supabase_store.py Supabase ์ ์ฌ(ํตํฉ BI ์ ์ฅ์)
์ค์น ๋ฐ ์คํ
# 1. ์์กด์ฑ ์ค์น (torch ํฌํจ, ์๋ฐฑ MB)
pip install -r requirements.txt
# 2. ์๊ฒฉ์ฆ๋ช
์ค์ : .env.example์ .env๋ก ๋ณต์ฌ ํ ๊ฐ ์ฑ์ฐ๊ธฐ
# - ๋ค์ด๋ฒ ๊ฒ์๊ด๊ณ (searchad.naver.com > ๋๊ตฌ > API)
# - ANTHROPIC_API_KEY (platform.claude.com)
# - ๋ค์ด๋ฒ ๋ฐ์ดํฐ๋ฉ (developers.naver.com)
# - SUPABASE_URL / SUPABASE_SERVICE_KEY (Supabase > Settings > API)
# 3. Supabase ํ
์ด๋ธ ์์ฑ: supabase_schema.sql์ SQL Editor์ ๋ถ์ฌ Run
# 4. ์คํ
python -m uvicorn api:app --port 8000 # ๋ฐฑ์๋
python -m http.server 5500 # ํ๋ก ํธ
# โ http://127.0.0.1:5500/dashboard.html
์๊ฒฉ์ฆ๋ช ํค (.env)
| ๋ณ์ | ๋ฐ๊ธ์ฒ | ์ฉ๋ |
|---|---|---|
NAVER_API_KEY / NAVER_SECRET_KEY / NAVER_CUSTOMER_ID |
searchad.naver.com | ๊ฒ์๋ยท๊ฒฝ์ |
ANTHROPIC_API_KEY |
platform.claude.com | ์๋๋ถ๋ฅยท๋ง์ผํ ์ ์ |
NAVER_CLIENT_ID / NAVER_CLIENT_SECRET |
developers.naver.com | ์ธ๊ตฌํต๊ณ |
SUPABASE_URL / SUPABASE_SERVICE_KEY |
Supabase | ํตํฉ ์ ์ฅ์ ์ ์ฌ |
ํค๊ฐ ์๋ ๊ธฐ๋ฅ์ ์๋์ผ๋ก ๋นํ์ฑ(placeholder)๋๊ณ ๋๋จธ์ง๋ ์ ์ ๋์ํ๋ค.
์ฃผ์
.env(์ค์ ํค)๋ ์ ๋ ๊ณต์ ยท์ปค๋ฐ ๊ธ์ง. ๊ณต์ ๋.env.example๋ง.service_roleํค๋ RLS ์ฐํ ํค โ ์๋ฒ์์๋ง ์ฌ์ฉ, ํ๋ก ํธ ๋ ธ์ถ ๊ธ์ง.- ๋ค์ด๋ฒ ์๋์์ฑยท๋ฐ์ดํฐ๋ฉ์ ๋น๊ณต์/์๋์ง์ ๊ธฐ๋ฐ โ "์ถ์ " ๋ผ๋ฒจ ์ ์ง.
- CDN(BabelยทTailwind)์ ๋ฐ๋ชจ์ฉ โ ์ค์๋น์ค๋ Vite ๋น๋ ๊ถ์ฅ.
์งํ ๊ธฐ๋ก
checklist.mdโ ๋จ๊ณ๋ณ ์๋ฃ ํํฉcontext-notes.mdโ ์ค๊ณ ๊ฒฐ์ ๊ณผ ๊ทผ๊ฑฐdata-requirements.mdโ ๋ฐ์ดํฐ ์์คยทํ๊ณ ๋ถ์