[LLM] Quota discoveryengine.googleapis.com/documents exceeded.

[LLM] Quota discoveryengine.googleapis.com/documents exceeded.

1. ๋ฌธ์ œ ๋ฐœ์ƒ Quotaย discoveryengine.googleapis.com/documentsย exceeded. GCP์—์„œ MLOps๋ฅผ ๊ตฌ์ถ• ์ค‘, RAG๋ฅผ ์œ„ํ•œ Discovery engine์˜ ๋ฐ์ดํ„ฐ ์ตœ๋Œ€ ์ˆ˜๋Ÿ‰์ด ์ดˆ๊ณผ๋˜์—ˆ๋‹ค๋Š” ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ธฐ๋ณธ ๋ฆฌ๋ฐ‹์€ 100๋งŒ๊ฑด์ด์ง€๋งŒ ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ• ๋‹น๋Ÿ‰ ์ˆ˜์ • ์š”์ฒญ์ด ํ•„์š”ํ•˜๋‹ค. 2. ํ• ๋‹น๋Ÿ‰ ์ˆ˜์ • ์š”์ฒญ 2-1. IAM & ๊ด€๋ฆฌ์ž -> ํ• ๋‹น๋Ÿ‰ ๋ฐ ์‹œ์Šคํ…œ ํ•œ๋„ 2-2. ์ดˆ๊ณผ๋œ ํ•ญ๋ชฉ ์„ ํƒ ํ• ๋‹น๋Ÿ‰ ์ˆ˜์ •์„ ์›ํ•˜๋Š” ํ•ญ๋ชฉ์˜ ๋งจ ์˜ค๋ฅธ์ชฝ ๋ฉ”๋‰ด ํƒญ์—์„œ ํ• ๋‹น๋Ÿ‰ ๋ณ€๊ฒฝ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. ...

[LLM] Google Cloud Discovery Engine ๋ฐ์ดํ„ฐ ์Šคํ† ์–ด ์—…๋กœ๋“œ ํฌ๋งท

[LLM] Google Cloud Discovery Engine ๋ฐ์ดํ„ฐ ์Šคํ† ์–ด ์—…๋กœ๋“œ ํฌ๋งท

1. Google Cloud Discovery Engine์ด๋ž€? Google Cloud Discovery Engine์€ ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒ€์ƒ‰ ๋ฐ ์ถ”์ฒœ ์„œ๋น„์Šค๋กœ, ์›น์‚ฌ์ดํŠธ๋‚˜ ์•ฑ ๋‚ด์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์„œ๋น„์Šค๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค. ๊ณ ๊ธ‰ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ : ๋‹จ์ˆœ ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰์ด ์•„๋‹Œ, ์‚ฌ์šฉ์ž์˜ ์˜๋„์— ๋งž์ถฐ ์˜๋ฏธ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ๊ด€๋ จ ์ฝ˜ํ…์ธ ๋ฅผ ์ œ์•ˆํ•˜๋Š” ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ(NLP) ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰์„ ์ง€์› ๊ฐœ์ธํ™”๋œ ์ถ”์ฒœ : ๋จธ์‹ ๋Ÿฌ๋‹ ๊ธฐ๋ฐ˜ ์ถ”์ฒœ์—”์ง„์„ ํ™œ์šฉ, ์ทจํ–ฅ๊ณผ ํ–‰๋™ ํŒจํ„ด์— ๋งž์ถ˜ ์ถ”์ฒœ ์ฝ˜ํ…์ธ  ์ œ๊ณต ํ™•์žฅ ๊ฐ€๋Šฅ์„ฑ : ๋‹ค์–‘ํ•œ ๊ทœ๋ชจ์™€ ๋ฒ”์œ„์˜ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•ด ๋น ๋ฅธ ๊ฒ€์ƒ‰ ๋ฐ ์ถ”์ฒœ ์„ฑ๋Šฅ์œ ์ง€ 2. ๋ฌธ์ œ์ƒํ™ฉ Google cloud discovery engine์„ ํ™œ์šฉํ•ด rag๋ฅผ ๊ณ ๋„ํ™” ์‹œ๋„ํ•˜๋˜ ์ค‘, ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‹จ์ˆœ question, answer ํ•„๋“œ๊ตฌ์กฐ๋ฅผ csvํ˜•ํƒœ๋กœ ์—…๋กœ๋“œํ•˜๋˜ ๋ฐฉ์‹์„ ๋ฒ—์–ด๋‚˜ metadata, description ํ•„๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ ์ž ํ•˜์˜€๋‹ค. contentํ•„๋“œ๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด ๋ฐ์ดํ„ฐ์…‹์„ discovery engine์ด ์š”๊ตฌํ•˜๋Š” ํŠน์ • struct_value, string_value ํƒ€์ž…์˜ jsonl ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์—์„œ ์—ฌ๋Ÿฌ ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋˜์—ˆ๋‹ค. ...

[Spring] ํ…Œ์ŠคํŠธ 4 - ์–ผ๋งˆ๋‚˜ ๊นŠ๊ฒŒ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”๊ฐ€?

[Spring] ํ…Œ์ŠคํŠธ 4 - ์–ผ๋งˆ๋‚˜ ๊นŠ๊ฒŒ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”๊ฐ€?

4. HOW DEEP - ์–ผ๋งˆ๋‚˜ ๊นŠ๊ฒŒ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”๊ฐ€? 4.1 ํ…Œ์ŠคํŠธ ๊นŠ์ด๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ธฐ์ค€ ํ…Œ์ŠคํŠธ ๊นŠ์ด๋ฅผ ์„ค์ •ํ•  ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ์ค€์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค: ํ…Œ์ŠคํŠธ ํ”ผ๋ผ๋ฏธ๋“œ(Test Pyramid): ํ…Œ์ŠคํŠธ ํ”ผ๋ผ๋ฏธ๋“œ๋Š” ํ…Œ์ŠคํŠธ ์ข…๋ฅ˜์— ๋”ฐ๋ฅธ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€์žฅ ๋งŽ๊ณ , ๊ทธ๋‹ค์Œ์œผ๋กœ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ, ์‹œ์Šคํ…œ ๋˜๋Š” E2E(End-to-End) ํ…Œ์ŠคํŠธ๊ฐ€ ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ(Unit Tests): ๊ฐ€์žฅ ๋งŽ์€ ๋น„์ค‘์„ ์ฐจ์ง€ํ•˜๋ฉฐ, ์ž‘์€ ์ฝ”๋“œ ๋‹จ์œ„๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ(Integration Tests): ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์ด ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. E2E ํ…Œ์ŠคํŠธ(End-to-End Tests): ์‹ค์ œ ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ์ „์ฒด ์‹œ์Šคํ…œ์ด ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์œ„ํ—˜ ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ(Risk-Based Testing): ๋น„์ฆˆ๋‹ˆ์Šค ์ค‘์š”๋„์™€ ์ž ์žฌ์  ์œ„ํ—˜ ์š”์†Œ์— ๋”ฐ๋ผ ํ…Œ์ŠคํŠธ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค์— ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ด๋‚˜ ๋ฆฌ์Šคํฌ๊ฐ€ ๋†’์€ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋Š” ๋” ๊นŠ์ด ์žˆ๊ฒŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์œ ์Šค ์ผ€์ด์Šค ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ: ํ•ต์‹ฌ ์‚ฌ์šฉ์ž ํ๋ฆ„๊ณผ ์—ฃ์ง€ ์ผ€์ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‚˜ ์˜ˆ์™ธ์ ์ธ ์ƒํ™ฉ์—์„œ์˜ ๋™์ž‘์„ ๊ฒ€์ฆํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์‹ค์ ์ธ ์ œ์•ฝ๊ณผ ํŒ€ ์—ญ๋Ÿ‰ ๊ณ ๋ ค: ๋ชจ๋“  ๋ถ€๋ถ„์„ ๊นŠ์ด ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์€ ์‹œ๊ฐ„๊ณผ ๋ฆฌ์†Œ์Šค ์ธก๋ฉด์—์„œ ๋น„ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒ€์˜ ์—ญ๋Ÿ‰๊ณผ ํ”„๋กœ์ ํŠธ ์ผ์ • ๋“ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ํ…Œ์ŠคํŠธ ๊นŠ์ด๋ฅผ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ...

[Spring] ํ…Œ์ŠคํŠธ 3 - ์–ธ์ œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€?

[Spring] ํ…Œ์ŠคํŠธ 3 - ์–ธ์ œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€?

3. WHEN - ์–ธ์ œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€? 3.1 TDD์™€ BDD์˜ ๊ฐœ๋… ๋ฐ ์ ์šฉ ์‹œ์  TDD (Test-Driven Development): TDD๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•˜๊ณ , ๊ทธ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉฐ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. TDD๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ๋ช…ํ™•ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ํ™•์ธํ•˜๊ณ  ์ฝ”๋“œ ํ’ˆ์งˆ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ ˆ๋“œ-๊ทธ๋ฆฐ-๋ฆฌํŒฉํ„ฐ ์‚ฌ์ดํด: TDD์˜ ๊ธฐ๋ณธ ๊ฐœ๋ฐœ ์‚ฌ์ดํด์€ ๋ ˆ๋“œ ๋‹จ๊ณ„ (์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ž‘์„ฑ) โ†’ ๊ทธ๋ฆฐ ๋‹จ๊ณ„ (ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ ์ž‘์„ฑ) โ†’ ๋ฆฌํŒฉํ„ฐ ๋‹จ๊ณ„ (์ฝ”๋“œ ์ •๋ฆฌ ๋ฐ ์ตœ์ ํ™”)๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ ์šฉ ์‹œ์ : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ„ฐ๋ง ํ•  ๋•Œ, TDD๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์•ˆ์ •์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€์ถœ์ฒ˜: https://medium.com/pilar-2020/applying-test-driven-development-6d6d3af186cbApplying\ Test-Driven\ Development ...

[Spring] ํ…Œ์ŠคํŠธ 2 - ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”๊ฐ€?

[Spring] ํ…Œ์ŠคํŠธ 2 - ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”๊ฐ€?

2. HOW - ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”๊ฐ€? 2.1 ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์„ ํƒ ๋ฐฉ๋ฒ• ์ฒซ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ์˜ ์ค‘์š”์„ฑ: ๊ตฌํ˜„ํ•˜๊ธฐ ๊ฐ€์žฅ ์‰ฌ์šด ํ…Œ์ŠคํŠธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์˜ˆ์™ธ์ ์ธ ์ƒํ™ฉ์ด๋‚˜ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•˜๊ณ , ์ ์ฐจ ํ™•์žฅํ•ด ๋‚˜๊ฐ‘๋‹ˆ๋‹ค. ์ ์ง„์  ํ™•์žฅ: ์‰ฌ์šด ํ…Œ์ŠคํŠธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ์ ์ฐจ ๋ณต์žกํ•œ ํ…Œ์ŠคํŠธ๋กœ ๋‚˜์•„๊ฐ€๋ฉด์„œ ์‹œ์Šคํ…œ์˜ ์•ˆ์ •์„ฑ์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. 2.2 TDD (Test-Driven Development) ๋ฐฉ๋ฒ•๋ก  TDD๋Š” ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ ๋ฐฉ์‹์œผ๋กœ, ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. TDD๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ธ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค: ...