Skip to main content

Sonamu ๊ฒ€์ƒ‰ API์˜ ๋ฌธ์ œ

Sonamu๋กœ ์ง€์‹ ๋ฒ ์ด์Šค ์•ฑ์„ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค:
์‚ฌ์šฉ์ž๊ฐ€ โ€œTypeScript ํ”„๋ ˆ์ž„์›Œํฌโ€๋กœ ๊ฒ€์ƒ‰ํ•˜๋ฉด?
  • โœ… โ€œSonamu๋Š” TypeScript ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹คโ€ โ†’ ์ฐพ์Œ
  • โŒ โ€œSonamu๋Š” Node.js API ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹คโ€ โ†’ ๋ชป ์ฐพ์Œ (ํ‚ค์›Œ๋“œ ๋‹ค๋ฆ„)
  • โŒ โ€œSonamu is a TS frameworkโ€ โ†’ ๋ชป ์ฐพ์Œ (์˜์–ด)
  • โŒ โ€œํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ”„๋ž˜์ž„์›Œํฌโ€ โ†’ ๋ชป ์ฐพ์Œ (์˜คํƒ€)
ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰์˜ ํ•œ๊ณ„:
  • ๋™์˜์–ด ์ฒ˜๋ฆฌ ์•ˆ ๋จ
  • ํ‘œํ˜„ ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์ง€๋ฉด ๋ชป ์ฐพ์Œ
  • ์˜คํƒ€์— ์ทจ์•ฝ
  • ์˜๋ฏธ๋Š” ๊ฐ™์€๋ฐ ๋‹จ์–ด๊ฐ€ ๋‹ค๋ฅด๋ฉด ์‹คํŒจ

์˜๋ฏธ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค

โ€œTypeScript ํ”„๋ ˆ์ž„์›Œํฌโ€์™€ โ€œNode.js API ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌโ€๋Š” ์˜๋ฏธ๊ฐ€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ‚ค์›Œ๋“œ๋Š” ๋‹ฌ๋ผ๋„ ๋ง์ด์ฃ . ์ด๋Ÿฐ ์˜๋ฏธ๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๋ ค๋ฉด? โ†’ ์ž„๋ฒ ๋”ฉ(Embedding)

์ž„๋ฒ ๋”ฉ์ด๋ž€?

์ž„๋ฒ ๋”ฉ์€ ํ…์ŠคํŠธ๋ฅผ ๊ณ ์ฐจ์› ์ˆซ์ž ๋ฐฐ์—ด(๋ฒกํ„ฐ)๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์˜๋ฏธ๊ฐ€ ์œ ์‚ฌํ•œ ํ…์ŠคํŠธ๋Š” ๋ฒกํ„ฐ ๊ณต๊ฐ„์—์„œ ๊ฐ€๊นŒ์šด ์œ„์น˜์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ:
  • ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ ๊ฐ€๋Šฅ
  • ๊ฐ€๊นŒ์šด ๋ฒกํ„ฐ = ์˜๋ฏธ๊ฐ€ ์œ ์‚ฌํ•œ ํ…์ŠคํŠธ
  • ๋จผ ๋ฒกํ„ฐ = ์˜๋ฏธ๊ฐ€ ๋‹ค๋ฅธ ํ…์ŠคํŠธ

Sonamu์—์„œ์˜ ํ๋ฆ„

Embedding ํด๋ž˜์Šค

Sonamu๋Š” ์ž„๋ฒ ๋”ฉ์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” Embedding ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

์–ด๋–ค ํ”„๋กœ๋ฐ”์ด๋”๋ฅผ ์„ ํƒํ• ๊นŒ?

Voyage AI vs OpenAI

Sonamu๋Š” ๋‘ ๊ฐ€์ง€ ์ž„๋ฒ ๋”ฉ ํ”„๋กœ๋ฐ”์ด๋”๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:

Sonamu ํ”„๋กœ์ ํŠธ ๊ธฐ์ค€ ์„ ํƒ

Voyage AI ์ถ”์ฒœ:
  • โœ… ํ•œ๊ตญ์–ด ์„œ๋น„์Šค (ํ•œ๊ตญ์–ด ์„ฑ๋Šฅ ์šฐ์ˆ˜)
  • โœ… ๊ธด ๋ฌธ์„œ ์ฒ˜๋ฆฌ (32,000 ํ† ํฐ)
  • โœ… ๊ฒ€์ƒ‰ ์ •ํ™•๋„ ์ค‘์š” (๋น„๋Œ€์นญ ์ž„๋ฒ ๋”ฉ)
OpenAI ์ถ”์ฒœ:
  • โœ… ๊ธ€๋กœ๋ฒŒ ์„œ๋น„์Šค (๋‹ค๊ตญ์–ด ๊ท ํ˜•)
  • โœ… ์ด๋ฏธ OpenAI API ์‚ฌ์šฉ ์ค‘

ํ™˜๊ฒฝ ์„ค์ •

1. ํŒจํ‚ค์ง€ ์„ค์น˜

2. API ํ‚ค ์„ค์ •

API ํ‚ค๋Š” ๊ฐ ํ”„๋กœ๋ฐ”์ด๋” ์›น์‚ฌ์ดํŠธ์—์„œ ๋ฐœ๊ธ‰๋ฐ›์Šต๋‹ˆ๋‹ค:

Sonamu Model์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ

๋ฌธ์„œ ์ €์žฅ ์‹œ ์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ

ํ๋ฆ„:
  1. ์‚ฌ์šฉ์ž๊ฐ€ POST /documents์— ๋ฌธ์„œ ์—…๋กœ๋“œ
  2. Sonamu API์—์„œ Voyage AI๋กœ ์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ
  3. PostgreSQL์— ํ…์ŠคํŠธ + ์ž„๋ฒ ๋”ฉ ํ•จ๊ป˜ ์ €์žฅ

๊ฒ€์ƒ‰ API (๋‚˜์ค‘์— ๊ตฌํ˜„)

๋น„๋Œ€์นญ ์ž„๋ฒ ๋”ฉ (Voyage AI)

Voyage AI๋Š” ๋ฌธ์„œ์™€ ์ฟผ๋ฆฌ๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž„๋ฒ ๋”ฉํ•ฉ๋‹ˆ๋‹ค.

์™œ ๊ตฌ๋ถ„ํ• ๊นŒ?

๋ฌธ์„œ (document):
  • ๊ธด ํ…์ŠคํŠธ
  • ์ƒ์„ธ ์ •๋ณด
  • ์ €์žฅ ๋ชฉ์ 
์ฟผ๋ฆฌ (query):
  • ์งง์€ ํ…์ŠคํŠธ
  • ๊ฒ€์ƒ‰์–ด
  • ๊ฒ€์ƒ‰ ๋ชฉ์ 
๋ฌธ์„œ์™€ ์ฟผ๋ฆฌ๋Š” ์„ฑ๊ฒฉ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. Voyage AI๋Š” ์ด๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๋” ์ •ํ™•ํ•œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค (10-15% ํ–ฅ์ƒ).

Sonamu์—์„œ ์‚ฌ์šฉ

OpenAI๋Š” ๋น„๋Œ€์นญ ์ž„๋ฒ ๋”ฉ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค:

๋ฐฐ์น˜ ์ฒ˜๋ฆฌ

์—ฌ๋Ÿฌ ๋ฌธ์„œ๋ฅผ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ๋•Œ:
์ž๋™ ๋ถ„ํ• :
  • Voyage AI: 128๊ฐœ์”ฉ
  • OpenAI: 100๊ฐœ์”ฉ
1000๊ฐœ ๋ฌธ์„œ๋„ ์ž๋™์œผ๋กœ ๋‚˜๋ˆ ์„œ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ง„ํ–‰๋ฅ  ํ‘œ์‹œ

๋งŽ์€ ๋ฌธ์„œ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ง„ํ–‰๋ฅ ์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

์‹ค์ „ ์‹œ๋‚˜๋ฆฌ์˜ค

์‹œ๋‚˜๋ฆฌ์˜ค: ๊ณ ๊ฐ ์ง€์› ์ง€์‹ ๋ฒ ์ด์Šค

Sonamu๋กœ ๊ณ ๊ฐ ์ง€์› ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 1๋‹จ๊ณ„: ๋ฌธ์„œ ์—…๋กœ๋“œ API
2๋‹จ๊ณ„: ๊ฒ€์ƒ‰ API
3๋‹จ๊ณ„: ์‚ฌ์šฉ์ž ์š”์ฒญ ์ฒ˜๋ฆฌ

์—๋Ÿฌ ์ฒ˜๋ฆฌ

๋น„์šฉ ๊ณ ๋ ค

ํ† ํฐ ๊ณ„์‚ฐ

๋น„์šฉ ์˜ˆ์ธก

Voyage AI ($0.13 per 1M tokens):
OpenAI ($0.02 per 1M tokens):

๋น„์šฉ ์ ˆ๊ฐ ํŒ

1. ์บ์‹ฑ
2. ์ค‘๋ณต ์ œ๊ฑฐ

์ฃผ์˜์‚ฌํ•ญ

Sonamu์—์„œ ์ž„๋ฒ ๋”ฉ ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ:
  1. API ํ‚ค ํ•„์ˆ˜: ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •
  2. ์ฐจ์› ์ˆ˜ ์ผ์น˜: DB ์Šคํ‚ค๋งˆ์™€ ๋งž์ถฐ์•ผ ํ•จ
  3. document vs query: Voyage๋Š” ๊ตฌ๋ถ„, OpenAI๋Š” ๋ฌด์‹œ
  4. ํ† ํฐ ์ œํ•œ: ๋„ˆ๋ฌด ๊ธด ํ…์ŠคํŠธ๋Š” ์ฒญํ‚น ํ•„์š”
    • Voyage AI: 32,000 ํ† ํฐ
    • OpenAI: 8,191 ํ† ํฐ
  5. NULL ์ฒ˜๋ฆฌ: ์ž„๋ฒ ๋”ฉ ์‹คํŒจ ์‹œ NULL ์ €์žฅ ๊ฐ€๋Šฅ
  6. ๋น„์šฉ ๋ชจ๋‹ˆํ„ฐ๋ง: ํ† ํฐ ์‚ฌ์šฉ๋Ÿ‰ ์ถ”์ 

๋‹ค์Œ ๋‹จ๊ณ„

์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ Sonamu Model์—์„œ ๊ฒ€์ƒ‰ API๋ฅผ ๊ตฌํ˜„ํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

pgvector ์„ค์ •

PostgreSQL ๋ฒกํ„ฐ ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ธฐ

๋ฒกํ„ฐ ๊ฒ€์ƒ‰

Sonamu Model์—์„œ ๊ฒ€์ƒ‰ API ๊ตฌํ˜„

์ฒญํ‚น

๊ธด ๋ฌธ์„œ ๋ถ„ํ• ํ•˜๊ธฐ