Discourse ์ฑ—๋ด‡ ๐Ÿค–

์•ˆ๋…•ํ•˜์„ธ์š”,

์ด์ œ OpenAI ๊ณ„์ •์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. "Assistant"๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ• ๊นŒ์š”? ํ”Œ๋Ÿฌ๊ทธ์ธ์— AI๋ฅผ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•ด ๋”ฐ๋ผ์•ผ ํ•  ๋‹จ๊ณ„๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”, ํ† ํฐ๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋” ๊ณ ๊ธ‰ ๋ชจ๋ธ๊ณผ ๋” ๋†’์€ ์†๋„ ํ•œ๋„์— ์ ‘๊ทผํ•˜๋ ค๋ฉด OpenAI ๊ณ„์ •์— ํฌ๋ ˆ๋”ง์„ ์ถฉ์ „ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

API ๊ด€๋ จ ์ž‘์—…์€ ๋ชจ๋‘ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

(์ฐธ๊ณ ๋กœ, ์žฌ๋ฏธ์žˆ๋Š” ์‚ฌ์‹ค ํ•˜๋‚˜ - Chatbot์€ ์ž์ฒด์ ์œผ๋กœ ๊ฐœ๋ฐœํ•œ ๋Œ€ํ™” ๋ฐ โ€œ๋‚ด๋ถ€ ์‚ฌ๊ณ โ€ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ด ์‹œ์Šคํ…œ์€ Chat Completions API์™€ Embeddings API๋งŒ์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Assistants API๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋งค์šฐ ์ข‹์€ ์ ์ธ๋ฐ, Assistants API๋Š” ํ† ํฐ์„ ๋‚ญ๋น„ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์•…๋ช… ๋†’๊ณ  ๋น„์šฉ์„ ๋งŽ์ด ์†Œ๋ชจํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Chatbot์€ ์ ˆ์•ฝํ˜•์œผ๋กœ ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค!)

์™€, ์ œ๊ฐ€ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ํ•˜๋„ค์š”.

ChatGPT์—์„œ ๋งํ•˜๋Š” ํ† ํฐ์ด ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ด ์ฃผ์‹ค ์ˆ˜ ์žˆ๋‚˜์š”? ์ €๋Š” ํ˜„์žฌ ์›” 20๋‹ฌ๋Ÿฌ๋ฅผ ๋‚ด๊ณ  ChatGPT ํ”„๋ฆฌ๋ฏธ์—„์„ ์ด์šฉ ์ค‘์ž…๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์›ํ–ˆ๋˜ ๊ฒƒ์€ chatgpt.com์—์„œ ํ•™์Šตํ•ด ์˜จ AI์— ์šฐ๋ฆฌ Discourse ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋‚ด์šฉ์ด ์ž˜ ์ „๋‹ฌ๋˜๊ณ  ์žˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋ช…ํ™•ํ•œ์ง€ ๋ชจ๋ฅด๊ฒ ๋„ค์š”!

ํ† ํฐ์€ ๋ˆ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ํ† ํฐ์„ ๋‹จ์–ด ๋˜๋Š” ๋‹จ์–ด์˜ ์ผ๋ถ€๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์งˆ๋ฌธ์„ ํ•˜๋ฉด ํ† ํฐ X๋งŒํผ์˜ ๊ฐ€์น˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. OpenAI๊ฐ€ ์งˆ๋ฌธ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋” ๋งŽ์€ ํ† ํฐ์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ๋งˆ์ง€๋ง‰์œผ๋กœ ๋‹ต๋ณ€์ด ์ƒ์„ฑ๋  ๋•Œ์—๋„ ํ† ํฐ์ด ์†Œ๋ชจ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋ธ๊ณผ ๋Œ€ํ™” ๋‚ด์šฉ์— ๋”ฐ๋ผ ์ด ํ† ํฐ ์‚ฌ์šฉ๋Ÿ‰์— ๋Œ€ํ•œ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๊ฒŒ ๋˜๋ฉฐ, ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๋” ๋งŽ์ด ๋˜๋Š” ์ ๊ฒŒ ์ง€๋ถˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1๊ฐœ์˜ ์ข‹์•„์š”

o1 ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๊ฐ€ ์ œ AI ์‚ฌ์šฉ ๋ฐฉ์‹์— ๊ฝค ํฐ ๋ณ€ํ™”๋ฅผ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ โ€ฆ ์‹ ์ด ์•„๋‹ˆ๋ผ ๋กœ๋ฒ„ํŠธ์˜ ์ฝ”๋”ฉ ์‹ค๋ ฅ ๋•๋ถ„์— ์˜ค์ง ์ €๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œํ•œํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค). ํ•˜์ง€๋งŒ o1 ์‹œ๋ฆฌ์ฆˆ๋Š” ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ˆ˜ํ•™ ํ‘œํ˜„ ๋ฐฉ๋ฒ• ๋“ฑ ํ•„์š”ํ•œ ์ง€์นจ์„ ์ œ ํ”„๋กฌํ”„ํŠธ์— ์ง์ ‘ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ํ”„๋กฌํ”„ํŠธ, ์ฆ‰ ๊ฒŒ์‹œ๋ฌผ ๋’ค์— ์ž๋™์œผ๋กœ ํ‘œ์ค€ ํ…์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๋ฉด ๋” ์‰ฌ์šธ ํ…๋ฐ์š”. Discourse์—๋Š” ์ด๋Ÿฐ ๊ธฐ๋Šฅ์ด ์ผ์ข…์˜ ํ˜•ํƒœ๋กœ ์กด์žฌํ•˜์ง€๋งŒ, ์ œ๊ฐ€ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ์ž˜๋ชป๋œ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฑ—๋ด‡์ด ์–ธ๊ธ‰๋˜๊ฑฐ๋‚˜ ๊ฐœ์ธ ๋ฉ”์‹œ์ง€์— ํฌํ•จ๋œ ๊ฒฝ์šฐ, ๋ชจ๋“  ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ ๊ฐœ์ธ ๋ฉ”์‹œ์ง€์— ํ•ด๋‹น ํ…์ŠคํŠธ๊ฐ€ ๋‚˜ํƒ€๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜ค1 ๋˜๋Š” o1-mini๊ฐ€ ์‚ฌ์šฉ๋  ๋•Œ๋งŒ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค :woozy_face:

o1 ์‹œ๋ฆฌ์ฆˆ๋Š” ์•„์ง ์™„์„ฑ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ, ๋„๊ตฌ ์‚ฌ์šฉ ๋ฐฉ์‹ ๋“ฑ์ด ์–ธ์ œ๋“  ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์š”์ฒญ๋ณด๋‹ค๋Š” ์˜ต์…˜์— ๋Œ€ํ•œ ๋…ผ์˜๋ฅผ ๋” ์›ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ o1 ์‹œ๋ฆฌ์ฆˆ๋Š” ๋„ˆ๋ฌด ์ „๋ฌธ์ ์ด๊ณ (๋น„์‹ธ์„œ) ๋Œ€๋Ÿ‰ ์ฒ˜๋ฆฌ ์†”๋ฃจ์…˜์ด ๋  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋Ÿฌํ•œ ์ถ”๊ฐ€ ๊ทœ์น™์„ ์ง์ ‘ ๊ธฐ์–ตํ•˜๊ณ  ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ์š”๊ตฌ๋Š” ์ •๋‹นํ™”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณธ๋ก ์—์„œ ์•ฝ๊ฐ„ ๋ฒ—์–ด๋‚ฌ์ง€๋งŒ, GPT ๋ชจ๋ธ๋“ค์€ o1์ด ๊ณต๊ฐœ๋  ๋•Œ ์ˆ˜ํ•™์„ ํ•™์Šตํ–ˆ์Šต๋‹ˆ๋‹ค.

1๊ฐœ์˜ ์ข‹์•„์š”

์Œ, Open AI์˜ ๋น„์ผ๊ด€์„ฑ์„ ๋ฉ”์šฐ๊ธฐ ์œ„ํ•ด ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์— ๋„ˆ๋ฌด ๊นŠ์ด ๋“ค์–ด๊ฐˆ ์ˆ˜๋Š” ์—†์–ด์š”.

o1์ด ํ”„๋ฆฌ๋ทฐ๋ฅผ ์ข…๋ฃŒํ•  ๋•Œ ๋„๊ตฌ, ๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ ๊ธฐ๋Šฅ๊นŒ์ง€ ํ•จ๊ป˜ ์ถœ์‹œ๋  ๊ฑฐ๋ผ๊ณ  ๊ฐ•๋ ฅํžˆ ์ถ”์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋งŒ, ์Šค๋‹ˆํŽซ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•  ์žฅ์†Œ๋กœ ์ฑ„ํŒ…๋ด‡์ด ์ ํ•ฉํ•˜๋‹ค๊ณ ๋Š” ์ƒ๊ฐํ•˜์ง€ ์•Š์•„์š”. ํŒ€ ์ค‘ ํ•œ ๋ช…์ด ๊ทธ๊ฑธ ๋งŒ๋“ค์—ˆ๋˜ ๊ธฐ์–ต์ด ๋‚˜๋Š”๋ฐ, ์ฐพ์•„์„œ ๊ฒŒ์‹œ๊ธ€์„ ์—…๋ฐ์ดํŠธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค โ€ฆ

์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค:

4๊ฐœ์˜ ์ข‹์•„์š”

@Jagster ์ •๋ง ๋ช…ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋‹ค๋ฅธ ์˜๋ฏธ๋ฅผ ์˜๋„ํ–ˆ๋˜ ๊ฑด ์•„๋‹Œ์ง€ ๋ชจ๋ฅด๊ฒ ๋„ค์š”. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ OpenAI์™€ ํ†ตํ•ฉํ•˜๋ ค๊ณ  ์ด

๋ฅผ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ •๋ณด๋งŒ ์–ป์–ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค.

2๊ฐœ์˜ ์ข‹์•„์š”

๊ทธ๊ฒƒ์€ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•ด ์ƒ์„ฑํ•˜๋Š” API ํ‚ค์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋” ์ด์ƒ์€ ์•„๋‹ˆ๊ณ , ์ผ์ข…์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3๊ฐœ์˜ ์ข‹์•„์š”

์•„, ์ด์ œ ํ˜ผ๋™์˜ ์›์ธ์„ ์•Œ๊ฒ ๋„ค์š”.

๋„ค, API ํ† ํฐ(๋˜๋Š” ํ‚ค, OpenAI์—์„œ ๋ฐ›์•„์•ผ ํ•˜๋Š” ๊ฒƒ)๊ณผ ๋‹จ์–ด์˜ ์ผ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ…์ŠคํŠธ _ํ† ํฐ_์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ›„์ž๋Š” LLM์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๋ฉฐ, ์ „์ž๋Š” API ์ธ์ฆ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

The Verge์—์„œ ์šฉ์–ด์— ๋Œ€ํ•ด ๊ฝค ์ข‹์€ ๊ฐ€์ด๋“œ๋ฅผ ์ œ๊ณตํ–ˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•ด ๋ณด์„ธ์š”:

5๊ฐœ์˜ ์ข‹์•„์š”

๋กœ์ปฌ์—์„œ Llama๋ฅผ ์‹คํ–‰ ์ค‘์ด๊ณ , ๋กœ์ปฌ Discourse ์ธ์Šคํ„ด์Šค์—์„œ ์ด๊ฑธ ๋Œ๋ฆฌ๋ ค๋Š” ์ž‘์—…์ด ๊ฑฐ์˜ ๋‹ค ๋˜์–ด ๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฑ—๋ด‡์€ ์ž˜ ๋Œ€ํ™”ํ•˜๊ณ  ์žˆ์–ด์š” :sunglasses: ํ•˜์ง€๋งŒ ์ž„๋ฒ ๋”ฉ(Embedding) ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š”๋ฐ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒค์น˜๋งˆํฌ ์‚ฌ์šฉ์ž๋Š” ์‹ ๋ขฐ ์ˆ˜์ค€(Trust Level) 1๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. rake chatbot:refresh_embeddings[1] ๋ ˆ์ดํฌ ํƒœ์Šคํฌ๊ฐ€ ์ธ์ฆ ๋ฌธ์ œ๋กœ ์‹คํŒจํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Faraday::UnauthorizedError: the server responded with status 401 (Faraday::UnauthorizedError)

์ฑ—๋ด‡์˜ Open AI ํ† ํฐ ํ•„๋“œ์— Llama๊ฐ€ ์ œ๊ณตํ•œ URL์„ ๋ถ™์—ฌ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ธ์ฆํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์กฐ์–ธ์„ ์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

4๊ฐœ์˜ ์ข‹์•„์š”

์‹œ๋„ํ•ด ์ฃผ์…”์„œ ์ข‹์Šต๋‹ˆ๋‹ค!

๋Œ€ํ™” ์ค‘์ด๋ผ๋Š” ์ ์ด ์ข‹์Šต๋‹ˆ๋‹ค :smile:

Chatbot์ด ๋กœ์ปฌ์—์„œ ์ž„๋ฒ ๋”ฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋Š” ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ข‹์€ PR์„ ๊ธฐ๊บผ์ด ์ˆ˜์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋งํฌ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค:

๋”ฐ๋ผ์„œ ์ ์ ˆํ•œ ๋ชจ๋ธ๊ณผ Chatbot์— ํ•„์š”ํ•œ ์ถ”๊ฐ€ ์ฝ”๋“œ ๋ฐ ์„ค์ •์ด ์žˆ๋‹ค๋ฉด ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ง ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ปค์Šคํ…€ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ์„ค์ •์ด ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค๋งŒ ์ด๋ฏธ ๋‹ค์Œ ์„ค์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค:

chatbot open ai embeddings model custom url

์ด๊ฒƒ์€ ์ฃผ๋กœ Azure ์ง€์›์„ ๋•๊ธฐ ์œ„ํ•ด ๊ตฌํ˜„๋˜์—ˆ์ง€๋งŒ, Chat Completions๊ฐ€ ๋กœ์ปฌ ollama ์„œ๋น„์Šค๋กœ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ด๊ฒƒ์ด ๋กœ์ปฌ์—์„œ ๋ด‡์˜ ์œ ์šฉ์„ฑ์„ ์ œํ•œํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์ ์„ ์ธ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์—”๋“œํฌ์ธํŠธ๋กœ ์ „์†ก๋˜๋Š” ํ† ํฐ์ž…๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ํ…์ŠคํŠธ ํ•„๋“œ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— URL์ด ์ž‘๋™ํ•  ๊ฐ€๋Šฅ์„ฑ์€ ๋งค์šฐ ๋‚ฎ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์ชฝ์— ์ปค์Šคํ…€ ์ฑ„ํŒ… ์™„์„ฑ(Chat Completions) ์—”๋“œํฌ์ธํŠธ URL ์„ค์ •์ด ๋” ์žˆ์Šต๋‹ˆ๋‹ค:

์˜ˆ: chatbot open ai model custom url high trust

ํฌํฌ๋ฅผ ํ•˜๊ณ  ๊ธฐ์กด์— ์กด์žฌํ•˜๋Š” ๋‚ด์šฉ๊ณผ ์ผ์น˜ํ•˜๋ฉฐ, ์ด๋ฏธ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์„ ํ™œ์šฉํ•˜๋˜, ollama๋กœ ๋กœ์ปฌ ์ž„๋ฒ ๋”ฉ ์ง€์›์„ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์ถ”๊ฐ€๋งŒ ์ˆ˜ํ–‰ํ•˜๊ณ , Open AI ๋ฐ Azure์˜ ๊ธฐ์กด ๋™์ž‘์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•œ๋‹ค๋ฉด, ๋ฐ˜๋“œ์‹œ ๋ณ‘ํ•ฉ(Merge)์„ ๋ชฉํ‘œ๋กœ PR์„ ๊ฒ€ํ† ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

2๊ฐœ์˜ ์ข‹์•„์š”

๊ณง ์ถœ์‹œ ์˜ˆ์ •
์ž„๋ฒ ๋”ฉ์„ ํฌํ•จํ•˜๋Š” ์›Œํฌํ”Œ๋กœ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค:
โ€ฆ
OpenAI API ํ˜ธํ™˜์„ฑ: OpenAI ํ˜ธํ™˜ /v1/embeddings ์—”๋“œํฌ์ธํŠธ ์ง€์›

์ด์ฒ˜๋Ÿผ ๋น ๋ฅด๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š” ๋ถ„์•ผ์—์„œ '๊ณงโ€™์ด๋ผ๋Š” ๋ง์€ ์‹ค์ œ๋กœ '๊ณงโ€™์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ, ์ œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ด ๊ธฐ๋Šฅ์„ ๊ธฐ๋‹ค๋ ค ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ผ๊นŒ์š”?

์ €ํฌ ์ธ์Šคํ„ด์Šค๋Š” 20๋…„ ์ „๊นŒ์ง€ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€๋Š” ์ •๋ณด์˜ ๋ณด๊ณ ์ด์ง€๋งŒ, ์ •๋ณด ์œ ์ถœ ๊ฐ€๋Šฅ์„ฑ๋„ ํฐ ์šฐ๋ ค ์‚ฌํ•ญ์ด๋ผ ๋กœ์ปฌ ํ…Œ์ŠคํŠธ๋ฅผ ์›ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

1๊ฐœ์˜ ์ข‹์•„์š”

API ์—”๋“œํฌ์ธํŠธ ํ˜ธํ™˜์„ฑ์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์€ Ollama PR์„ ์ฐพ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์„ ๋” ์ž˜ ์ดํ•ดํ•ด์•ผ๊ฒ ์ง€๋งŒ, ์ง€๊ธˆ ๋ฐฉํ–ฅ์ด ๋งž๋‚˜์š”?

1๊ฐœ์˜ ์ข‹์•„์š”

ํ˜„์žฌ ์ปค์Šคํ…€ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด ์—†์–ด์„œ, ์ด๊ฑด ์น˜๋ช…์ ์ธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ, ollama๋ฅผ ์œ„ํ•ด ๋‹ค์šด๋กœ๋“œํ•œ ๋ชจ๋ธ๋กœ ํ•˜๋“œ์ฝ”๋”ฉํ•˜์—ฌ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋” ์ƒ๊ฐํ•ด๋ณด๋ฉด, ์ง๋ฉดํ•˜๊ฒŒ ๋  ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” ์ž„๋ฒ ๋”ฉ ํ…Œ์ด๋ธ” ์ •์˜์—์„œ ์ฐจ์›์ด OpenAI์˜ ์†Œํ˜• ๋ชจ๋ธ ํ‘œ์ค€์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๋Š” ์ ์ธ๋ฐ, ์ด๊ฒŒ ๋งค์šฐ ํฝ๋‹ˆ๋‹คโ€ฆ ์–ด๋–ป๊ฒŒ ๊ทธ ๋ฌธ์ œ๋ฅผ ๊ทน๋ณตํ•  ์ˆ˜ ์žˆ์„์ง€ ํ•œ๋ฒˆ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”โ€ฆ

1๊ฐœ์˜ ์ข‹์•„์š”

Chatbot 1.2.๋Š” AI ๊ธฐ๋ฐ˜ ์‚ฌ์šฉ์ž ํ•„๋“œ ์ˆ˜์ง‘์„ ์‹คํ—˜์  ๊ธฐ๋Šฅ์œผ๋กœ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ํ˜„์žฌ ๋น„์–ด ์žˆ๋Š” ์„ ํƒ์  ์‚ฌ์šฉ์ž ํ•„๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ์ด ์„ค์ •์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ด‡์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•ด๋‹น ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ์™„๋ฃŒ๋œ ์‚ฌ์šฉ์ž ํ•„๋“œ๊ฐ€ ๋ชจ๋‘ ์ฑ„์›Œ์งˆ ๋•Œ๊นŒ์ง€ ์ง„ํ–‰ํ•œ ํ›„, ์ •์ƒ ๋™์ž‘์œผ๋กœ ๋ณต๊ท€ํ•ฉ๋‹ˆ๋‹ค.

image

(์‘๋‹ต์ด ๋А๋ฆฐ ์  ์–‘ํ•ด ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค - ์ด๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๋…นํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค)

์ฐธ๊ณ ๋กœ ์ด ๊ธฐ๋Šฅ์€ ๋‹ค์Œ ํ•ญ๋ชฉ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:

  • ํ…์ŠคํŠธ
  • ๋“œ๋กญ๋‹ค์šด
  • ํ™•์ธ

๋‹ค์ค‘ ์„ ํƒ์€ ์•„์ง ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•„๋“œ๋Š” _์„ ํƒ์ _์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ํ•„๋“œ์˜ ์ˆœ์„œ๊ฐ€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

6๊ฐœ์˜ ์ข‹์•„์š”

Chatbot 1.3 ๋ฒ„์ „์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค :tada:

  • ๊ธฐ๋Šฅ ์ถ”๊ฐ€: ํ† ํฐ๋ณ„๋กœ ํ• ๋‹น๋Ÿ‰(quota)์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜ ์ถ”๊ฐ€
    • ์ƒˆ๋กœ์šด ์„ค์ • chatbot_quota_basis๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ธฐ์กด์ฒ˜๋Ÿผ ์ฟผ๋ฆฌ ์ˆ˜ ๊ธฐ์ค€์œผ๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ๋ณธ ์„ค์ •์—์„œ์˜ ์œ ์ผํ•œ ์ฐจ์ด๋Š” ํ• ๋‹น๋Ÿ‰์ด ์‹œ์ž‘ ์ตœ๋Œ€ ํ• ๋‹น๋Ÿ‰(์—ฌ์ „ํžˆ ๋™์ผํ•œ ์‹ ๋ขฐ ์ˆ˜์ค€ ์„ค์ •์— ๊ธฐ๋ฐ˜ํ•จ)์—์„œ _๋‚ด๋ ค_์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐ๋œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.
  • ๊ธฐ๋Šฅ ์ถ”๊ฐ€: DALL-E์™€ ๊ฐ™์€ API ํ˜ธ์ถœ ๋น„์šฉ์„ ์‚ฌ์šฉ์ž ์‚ฌ์šฉ๋Ÿ‰์— ํฌํ•จ
    • ํ† ํฐ ๊ธฐ์ค€์—์„œ๋งŒ ์ ์šฉ
    • API ๊ธฐ๋Šฅ์˜ ํ† ํฐ ๋น„์šฉ์„ ์กฐ์ ˆํ•˜๊ธฐ ์œ„ํ•ด ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์ƒˆ๋กœ์šด ์„ค์ • ์ถ”๊ฐ€
  • ๊ธฐ๋Šฅ ์ถ”๊ฐ€: ์‚ฌ์šฉ์ž๊ฐ€ ๋‚จ์€ ํ• ๋‹น๋Ÿ‰์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

Chatbot์€ ํ•ญ์ƒ ์‚ฌ์šฉ๋Ÿ‰ ํ• ๋‹น๋Ÿ‰ ๊ฐ•์ œ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜ ์ด ๊ธฐ๋Šฅ์ด ๋” ์ •๊ตํ•ด์กŒ์Šต๋‹ˆ๋‹ค!

Chatbot์€ ์ด์ œ ํ† ํฐ๋ณ„ ์‚ฌ์šฉ๋Ÿ‰์— ๋Œ€ํ•œ ํ• ๋‹น๋Ÿ‰์„ ์ถ”์ ํ•˜๊ณ  ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

API ํ˜ธ์ถœ์— ๋น„์šฉ์„ ๋ถ€๊ณผํ•˜์—ฌ ๊ณผ๋„ํ•œ ์‚ฌ์šฉ์„ ์–ต์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์˜ˆ๋ฅผ ๋“ค์–ด ์ด๋ฏธ์ง€ ์ƒ์„ฑ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•ด๋„ ๋œ ๊ฑฑ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ† ํฐ ์ถ”์ ์€ ์„ ํƒ ์‚ฌํ•ญ(opt-in)์ž…๋‹ˆ๋‹ค. ํ† ํฐ ์ถ”์  ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ, ๊ฐ’์ด ๋ช‡ ๋ฐฐ(orders of magnitude) ๋” ์ปค์•ผ ํ•˜๋ฏ€๋กœ ๊ฐ ์‹ ๋ขฐ ์ˆ˜์ค€์˜ ํ• ๋‹น๋Ÿ‰์„ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ—˜ํ•ด ๋ณด์„ธ์š”.

๊ทธ๋Ÿฌ๋‚˜ ์ฟผ๋ฆฌ๋ณ„ ์ถ”์  ๋ฐฉ์‹์€ ์•ฝ๊ฐ„ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ํ—ˆ์šฉ๋œ ์ตœ๋Œ€ ์ฟผ๋ฆฌ ์ˆ˜๋กœ ๋ฆฌ์…‹๋˜์–ด _0_๊นŒ์ง€ _๋‚ด๋ ค_์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ํ’€ ํ• ๋‹น๋Ÿ‰(full quota)์œผ๋กœ ์‹œ์ž‘ํ•˜๋„๋ก ์ „์—ญ ํ• ๋‹น๋Ÿ‰ ๋ฆฌ์…‹ ์ž‘์—…์„ ํ•œ ๋ฒˆ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผํšŒ์„ฑ ์ž‘์—…์ž…๋‹ˆ๋‹ค!

/sidekiq/scheduler์˜ sidekiq์—์„œ:

ํŠธ๋ฆฌ๊ฑฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์„ธ์š”.

์–ด๋–ค ๊ฒฝ์šฐ๋“  ์ด์ œ ์‚ฌ์šฉ์ž๋Š” ๋‚จ์€ ํ• ๋‹น๋Ÿ‰์ด ์–ผ๋งˆ์ธ์ง€ ๋ฌผ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

์ฐธ๊ณ : ์•Œ๋ ค์ง„ ๋ฌธ์ œ: ๋ฆฌ์…‹ ์ž‘์—…์ด ์‹คํ–‰๋˜๊ธฐ ์ „์— ์ด ์งˆ๋ฌธ์ด ์ฒ˜์Œ์œผ๋กœ ๋ฌปํžˆ๋Š” ๊ฒฝ์šฐ, ๋‹ต๋ณ€์ด ๋‹ค์†Œ ์ด์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ๋ฆฌ์…‹ ์ž‘์—…์ด ์‹คํ–‰๋˜์—ˆ๋“  ์•„๋‹ˆ๋“ , ๋‘ ๋ฒˆ์งธ๋กœ ์ด ์งˆ๋ฌธ์„ ๋ฌผ์œผ๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

4๊ฐœ์˜ ์ข‹์•„์š”

๋กœ๋ฒ„ํŠธ, ์•ˆ๋…•ํ•˜์„ธ์š”.

๋ด‡์— ์Ÿ์•„๋ถ€์€ ๋…ธ๊ณ ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฑ„ํŒ…์—์„œ ๋ด‡์„ ํ˜ธ์ถœํ•  ๋•Œ ๋กœ๊ทธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

image

์žฌ์„ค์น˜ ์—†์ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์„๊นŒ์š”?

1๊ฐœ์˜ ์ข‹์•„์š”

๋กœ๋ฒ„ํŠธ ์”จ, ์ด ๋ด‡์„ ๊ด€๋ฆฌ์ž์ฒ˜๋Ÿผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ์‹œ๋„ํ•ด ๋ดค๋Š”๋ฐ ๋ด‡์—๋Š” ๊ทธ๋Ÿฐ ์˜ต์…˜์ด ์•„์˜ˆ ์—†์–ด์š”.

1๊ฐœ์˜ ์ข‹์•„์š”

์ฒซ ๋ฒˆ์งธ ์˜ค๋ฅ˜๋Š” ์ฑ„ํŒ…(โ€œPost Embeddingโ€)๊ณผ ์•„๋ฌด๋Ÿฐ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๋Š” ๋ฌดํ•ดํ•˜๋ฉฐ, ์‹œ์Šคํ…œ์ด ์ž„๋ฒ ๋”ฉ์„ ์ƒ์„ฑํ•  ์‹œ๊ฐ„์ด ์ฃผ์–ด์ง€๊ธฐ ์ „์— ๊ฒŒ์‹œ๊ธ€์„ ์ƒ์„ฑ ์งํ›„ ์‚ญ์ œํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์‚ญ์ œ ์ด๋ฒคํŠธ๋Š” ํ•ด๋‹น ์ž„๋ฒ ๋”ฉ์„ ์‚ญ์ œํ•  ์ž‘์—…์„ ์‹œ์ž‘ํ•˜์ง€๋งŒ, ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ์ž„๋ฒ ๋”ฉ์ด ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฌด์‹œํ•˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์˜ค๋ฅ˜์˜ ๋ฐฑํŠธ๋ ˆ์ด์Šค๋ฅผ ๋กœ๊ทธ ํƒญ์—์„œ ๊ณต์œ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ฑ„ํŒ…์—์„œ ๋ด‡์„ ํ˜ธ์ถœํ•˜๋ ค๋ฉด ๋ด‡์„ @๋ฉ˜์…˜ํ•˜๊ฑฐ๋‚˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ •์—์„œ ํ™œ์„ฑํ™”๋œ ๋น ๋ฅธ ์•ก์„ธ์Šค(Quick Access) ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฑ„ํŒ…์—์„œ ๋ด‡์ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š”์ง€(์ด๊ฒƒ๋„ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ •) ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ ๋ด‡์€ ํ˜„์žฌ ์ฑ„ํŒ… ์Šค๋ ˆ๋“œ(Chat Threads)๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ตœ์ƒ์œ„ ๋ ˆ๋ฒจ ์ฑ„ํŒ…์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ์—์„œ ์ ‘๊ทผ์„ ์‹œ๋„ํ•˜๊ณ  ๊ณ„์‹  ๊ฑด๊ฐ€์š”?

2๊ฐœ์˜ ์ข‹์•„์š”