Commit History

fix: Dockerfile ๋ฐ FastAPI CORS ์„ค์ • ๊ฐœ์„ 
0546432

AkJeond commited on

feat: ์ด๋ฏธ์ง€ ์„ค๋ช… ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ ์•„๋™ ์นœํ™”์  ๊ทœ์ • ๋ฐ˜์˜ ๋ฐ ์ตœ์ ํ™”
842644b

AkJeond commited on

feat: ์ด๋ฏธ์ง€ ์„ค๋ช… ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ ๊ฐœ์„  ๋ฐ ์•„๋™ ์นœํ™”์  ๊ทœ์ • ๋ฐ˜์˜
f4551f8

AkJeond commited on

feat: ์ด๋ฏธ์ง€ ์„ค๋ช… ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ ๊ฐœ์„  ๋ฐ ํ•œ๊ตญ ์ ์ž ๊ทœ์ • ๋ฐ˜์˜(@leekwanhak)
0fd26b5

AkJeond commited on

feat: Gemini OCR ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ์ถ”๊ฐ€ ๋ฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • ๊ฐœ์„ 
273b109

AkJeond commited on

fix: Tesseract OCR ์–ธ์–ด ์„ค์ •์„ ํ•œ๊ตญ์–ด์™€ ์˜์–ด๋กœ ๋ณ€๊ฒฝ
165acef

AkJeond commited on

feat: Google Gemini API ์„ค์ • ์ถ”๊ฐ€ ๋ฐ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ OCR ์ฒ˜๋ฆฌ ๋กœ์ง ๊ฐœ์„ 
c931537

AkJeond commited on

fix: ์ด๋ฏธ์ง€ ์„ค๋ช… ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ์„ ์ ์ž ๋„์„œ ๊ทœ์ •์— ๋งž๊ฒŒ ๊ฐœ์„ 
b7da3d2

AkJeond commited on

fix: ์ตœ๋Œ€ ๋™์‹œ ํŽ˜์ด์ง€ ์ฒ˜๋ฆฌ ์ˆ˜๋ฅผ 8์—์„œ 4๋กœ ๋ณ€๊ฒฝ
1781ea5

AkJeond commited on

refactor: PDF ๋ณ€ํ™˜ ๋ฐฉ์‹์„ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋กœ ๋ณ€๊ฒฝ
c309c65

AkJeond commited on

Revert "feat(projects): ์ƒํƒœ ์ „์šฉ API์™€ ํ”„๋ŸฐํŠธ ํด๋ง ์ตœ์ ํ™”"
68e2fa7

AkJeond commited on

Revert "fix(frontend): 'SmartEyeSsen' -> 'Smart Eye' ์ˆ˜์ •"
3e96ff5

AkJeond commited on

feat(backend): ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๋ฐ DB ์—ฐ๋™ ์™„๋ฃŒ
682f22c

KwanHak commited on

fix: ๋ณ‘๋ ฌ ํŽ˜์ด์ง€ ์ฒ˜๋ฆฌ ์ˆ˜(`maxConcurrentPages`) ๊ธฐ๋ณธ๊ฐ’์„ 8์—์„œ 4๋กœ ์ˆ˜์ •
43799d3

AkJeond commited on

perf(upload): PDF ์—…๋กœ๋“œ๋ฅผ ๋ณ‘๋ ฌ ๋ณ€ํ™˜์œผ๋กœ ๊ฐ€์†
faf775c

AkJeond commited on

fix(backend): ํŽ˜์ด์ง€ ๋ถ„์„ ์‹œ์ž‘ ์‹œ processing ์ƒํƒœ ๋ฐ˜์˜
4fa464d

AkJeond commited on

feat(frontend): ํŽ˜์ด์ง€ ์ƒํƒœ๋ฅผ ์ผ๊ด„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€
620512d

AkJeond commited on

feat(projects): ์ƒํƒœ ์ „์šฉ API์™€ ํ”„๋ŸฐํŠธ ํด๋ง ์ตœ์ ํ™”
83c7363

AkJeond commited on

feat(backend): ๋ฌธ์„œ ํƒ€์ž…๋ณ„ ๋ชจ๋ธ ์„ ํƒ ๋ฐ ํ”„๋ฆฌ๋กœ๋“œ ์ถ”๊ฐ€
5b217af

AkJeond commited on

feat: ๋ ˆ์ด์•„์›ƒ ํŒจ๋„์— ์˜ค๋ฒ„๋ ˆ์ด ์ปจํŠธ๋กค ์ถ”๊ฐ€ ๋ฐ ์ด๋ฏธ์ง€ ๋ทฐ์–ด์— transform ๋ณ€๊ฒฝ ์‹œ ์ฝœ๋ฐฑ ํ˜ธ์ถœ ๊ธฐ๋Šฅ ๊ตฌํ˜„
22d59b7

AkJeond commited on

fix: ๋กœ๊น… ๋ฉ”์‹œ์ง€์—์„œ ํฌ๋งท์„ f-string ์Šคํƒ€์ผ๋กœ ๋ณ€๊ฒฝ
6dca109

AkJeond commited on

fix: batch_analysis.py์—์„œ max_concurrent_pages ๊ธฐ๋ณธ๊ฐ’์„ 8๋กœ ๋ณ€๊ฒฝ
beaebf4

AkJeond commited on

fix: batch_analysis.py์—์„œ max_concurrent_pages ๊ธฐ๋ณธ๊ฐ’์„ DEFAULT_MAX_CONCURRENT_PAGES๋กœ ๋ณ€๊ฒฝ
3ab4d99

AkJeond commited on

fix: Dockerfile LOCALE ์„ค์ • ๋ฐ database.py ์ธ์ฝ”๋”ฉ ๊ฐ•ํ™” (ํ•œ๊ธ€ ๋ฌธ์ œ ์™„์ „ ํ•ด๊ฒฐ)
d511249

AkJeond commited on

fix: SQLAlchemy engine์— connect_args charset=utf8mb4 ์ถ”๊ฐ€๋กœ ํ•œ๊ธ€ ์ธ์ฝ”๋”ฉ ๋ฌธ์ œ ํ•ด๊ฒฐ
2c59ac2

AkJeond commited on

feat: ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์„ ์œ„ํ•œ Docker ๋ฐ Nginx ์„ค์ • ์ถ”๊ฐ€, ๋ฐฐํฌ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ(Phase1)
fe7c89a

AkJeond commited on

fix(backend): ํŽ˜์ด์ง€ ๋‚ด๋ถ€ CPU ์ž‘์—…์˜ asyncio.to_thread ์ œ๊ฑฐ๋กœ OCR/๋ถ„์„ ์•ˆ์ •ํ™”
d3294e3

AkJeond commited on

enhacement(backend): ๋ฐฑ์—”๋“œ ํŒŒ์ดํ”„๋ผ์ธ ์„ฑ๋Šฅ ์ตœ์ ํ™” (85% ์†๋„ ํ–ฅ์ƒ)
55db2a2

AkJeond commited on

feat: OpenAI API ๋™์‹œ ์š”์ฒญ ์ˆ˜๋ฅผ 5์—์„œ 15๋กœ ์ฆ๊ฐ€
bfc7a48

AkJeond commited on

refactor(database): combined_text ์ปฌ๋Ÿผ์„ LONGTEXT๋กœ ํ™•์žฅ ๋ฐ DB ์ดˆ๊ธฐํ™” ํ†ตํ•ฉ
dc8b42c

AkJeond commited on

refactor(services): ๋ฐฐ์น˜ ๋ถ„์„ ๋ฐ ๋‹ค์šด๋กœ๋“œ ์„œ๋น„์Šค ๋ฆฌํŒฉํ† ๋ง
dc544d4

AkJeond commited on

feat(backend): ๋ถ„์„ ๋ฐ ๋‹ค์šด๋กœ๋“œ API ๊ฐœ์„ 
188503c

AkJeond commited on

feat: AI ํ†ต๊ณ„ ํƒญ ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
75ac4cf

AkJeond commited on

feat: ํ”„๋กœ์ ํŠธ ์—…๋กœ๋“œยท๋‹ค์šด๋กœ๋“œ ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ๋ ˆ์ด์•„์›ƒ ๋ทฐ ๊ฐœ์„ 
602b062

AkJeond commited on

git commit -m "fix(backend): .env ํŒŒ์ผ ๋กœ๋“œ ๋ฐ DB ์—ฐ๊ฒฐ ์„ค์ • ๊ฐœ์„ 
b6544a6

KwanHak commited on

feat(backend): ํŒŒ์ผ ์—…๋กœ๋“œ API ์ž๋™ํ™” - project_id/page_number ์ž๋™ ์ฒ˜๋ฆฌ## ๋ณ€๊ฒฝ ์‚ฌํ•ญ### pages.py ์ฃผ์š” ์ˆ˜์ •- upload_page ์—”๋“œํฌ์ธํŠธ์—์„œ project_id, page_number ํŒŒ๋ผ๋ฏธํ„ฐ ์ œ๊ฑฐ- ํ”„๋ก ํŠธ์—”๋“œ๋Š” file๋งŒ ์ „์†กํ•˜๋ฉด ๋˜๋„๋ก ๊ฐ„์†Œํ™”- ๋ฐฑ์—”๋“œ์—์„œ project_id, page_number ์ž๋™ ๊ณ„์‚ฐ ์ฒ˜๋ฆฌ### ์ถ”๊ฐ€๋œ ํ—ฌํผ ํ•จ์ˆ˜1. _get_or_create_default_project(db) - ์ฒซ ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ ์ž๋™ ์กฐํšŒ - ํ”„๋กœ์ ํŠธ๊ฐ€ ์—†์œผ๋ฉด '๊ธฐ๋ณธ ํ”„๋กœ์ ํŠธ' ์ž๋™ ์ƒ์„ฑ - doc_type_id=1 (worksheet), analysis_mode=AUTO ๊ธฐ๋ณธ๊ฐ’2. _calculate_next_page_number(db, project_id) - SELECT MAX(page_number) + 1๋กœ ๋‹ค์Œ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ ๊ณ„์‚ฐ - ๊ฐ™์€ ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ์ˆœ์ฐจ์  ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ ๋ณด์žฅ### ์—…๋กœ๋“œ ๋กœ์ง ๊ฐœ์„ - ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ: ๋‹จ์ผ ํŽ˜์ด์ง€ ์ž๋™ ์ƒ์„ฑ (page_number ์ž๋™ ํ• ๋‹น)- PDF ์—…๋กœ๋“œ: ๋‹ค์ค‘ ํŽ˜์ด์ง€ ์ž๋™ ์ƒ์„ฑ (์—ฐ์†๋œ page_number ํ• ๋‹น)- ์—๋Ÿฌ ์ฒ˜๋ฆฌ ๊ฐ•ํ™”: ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์‹คํŒจ ์‹œ ๋ช…ํ™•ํ•œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€## API ๋ณ€๊ฒฝ- POST /api/pages/upload - Before: FormData { project_id, page_number, file } - After: FormData { file }## ๊ธฐ์ˆ ์  ๊ฐœ์„ - ํ”„๋ก ํŠธ์—”๋“œ-๋ฐฑ์—”๋“œ ๊ฒฐํ•ฉ๋„ ๊ฐ์†Œ- ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์˜ค๋ฅ˜ ๊ฐ€๋Šฅ์„ฑ ์ œ๊ฑฐ- RESTful API ์›์น™ ์ค€์ˆ˜ (๋ฆฌ์†Œ์Šค ์ž๋™ ๊ด€๋ฆฌ)## ํ…Œ์ŠคํŠธ ํ•„์š”- [ ] ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ์‹œ page_number ์ž๋™ ์ฆ๊ฐ€ ํ™•์ธ- [ ] PDF ์—…๋กœ๋“œ ์‹œ ๋‹ค์ค‘ ํŽ˜์ด์ง€ ์ƒ์„ฑ ํ™•์ธ- [ ] ๋นˆ DB์—์„œ ํ”„๋กœ์ ํŠธ ์ž๋™ ์ƒ์„ฑ ํ™•์ธ- [ ] ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— ํŽ˜์ด์ง€ ์ถ”๊ฐ€ ์‹œ ๋ฒˆํ˜ธ ์ค‘๋ณต ๋ฐฉ์ง€ ํ™•์ธRelated: #ํ”„๋ก ํŠธ์—”๋“œ_๋ฐฑ์—”๋“œ_์—ฐ๋™
5f43b48

KwanHak commited on

sync: Smart_Demo ๋ธŒ๋žœ์น˜์˜ Backend ์ฝ”๋“œ ๋ณ‘ํ•ฉ & ์ด๋ฏธ์ง€ ๋กœ๋“œ๋ฅผ ์œ„ํ•œ MultiFileLoader ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„
82c1146

KwanHak commited on

feat(backend): ERD v2 ๊ธฐ์ค€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ ˆ์ด์–ด ์™„์ „ ์žฌ๊ตฌ์„ฑ
5a7faa1

KwanHak commited on

"feat: Phase 1 ์™„๋ฃŒ - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ๋ฐฑ์—”๋“œ ๊ธฐ์ดˆ ๊ตฌ์ถ•
3f85869

KwanHak commited on