Discourse AI ์ฃผ์ œ ์š”์•ฝ ๐Ÿค–

ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๋ฒ„ํŠผ, ์ฆ‰ "AI๋กœ ์š”์•ฝ"์ด๋ผ๋Š” ๊ฑด๊ฐ€์š”? ์ œ๊ฐ€ ๋ญ˜ ๋†“์น˜๊ณ  ์žˆ๋Š” ๊ฑด ์•„๋‹Œ์ง€ ๋ชจ๋ฅด๊ฒ ๋„ค์š”. ๋˜ํ•œ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ •๋ง ํ›Œ๋ฅญํ•ด์„œ ํƒ์ƒ‰ํ•ด ๋ณด๊ณ  ์‹ถ์„ ์ •๋„์ž…๋‹ˆ๋‹ค.

ํ”„๋กฌํ”„ํŠธ๋Š” ๋ชจ๋‘ ์ฒซ ๋ฒˆ์งธ ๊ฒŒ์‹œ๊ธ€ ๋ฐ”๋กœ ์ด์ „ ๊ฒŒ์‹œ๊ธ€์— ์ •ํ™•ํžˆ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค :sweat_smile:

์ดˆ๋ณด ์‹ค์ˆ˜. :face_with_peeking_eye: ๋„ˆ๋ฌด ์„œ๋‘๋ฅธ ๊ฒŒ ์ด๋ ‡๊ฒŒ ๋œ ๊ฑฐ๋„ค์š” โ€ฆ ํ•œ๋ฒˆ ์‹œ๋„ํ•ด ๋ณด๊ณ  ์•Œ๋ ค๋“œ๋ฆด๊ฒŒ์š”.

์ œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. AI๋กœ ์š”์•ฝ ๊ธฐ๋Šฅ์„ ์ฒ˜์Œ ๋„์ž…ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด์ง€๋งŒ, ๊ณต์‹ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์•„๋‹™๋‹ˆ๋‹ค.

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

๋ฒ„๊ทธ: gpt-4-turbo๋ฅผ ์„ ํƒํ•˜๋ฉด ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ์‹œ 500 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ž˜๋ชป๋œ ์„ค์ •์ด๋‚˜ ๊ถŒํ•œ ๋ฌธ์ œ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ชจ๋“  ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ์‹œ๋งˆ๋‹ค 500 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์€ ๋‹ค์†Œ ๋ฌด๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Faraday::BadRequestError (the server responded with status 400)
faraday (2.9.0) lib/faraday/response/raise_error.rb:16:in `on_complete'
faraday (2.9.0) lib/faraday/middleware.rb:18:in `block in call'
faraday (2.9.0) lib/faraday/response.rb:42:in `on_complete'
faraday (2.9.0) lib/faraday/middleware.rb:17:in `call'
faraday (2.9.0) lib/faraday/rack_builder.rb:152:in `build_response'
faraday (2.9.0) lib/faraday/connection.rb:444:in `run_request'
faraday (2.9.0) lib/faraday/connection.rb:280:in `post'
ruby-openai (7.0.0) lib/openai/http.rb:22:in `json_post'
ruby-openai (7.0.0) lib/openai/client.rb:30:in `chat'
plugins/discourse-ai-topic-summary/lib/ai_topic_summary/call_bot.rb:15:in `get_response'
plugins/discourse-ai-topic-summary/lib/ai_topic_summary/summarise.rb:6:in `retrieve_summary'
plugins/discourse-ai-topic-summary/plugin.rb:62:in `block (2 levels) in activate!'
lib/discourse_event.rb:12:in `block in trigger'
2๊ฐœ์˜ ์ข‹์•„์š”

๋„ค, ๋งž์•„์š”.

Chatbot์ฒ˜๋Ÿผ ์ธ๋ผ์ธ์œผ๋กœ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋Œ€์‹  ์žก(job)์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ƒ์„ธ ์‘๋‹ต๋„ ๋กœ๊น…ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

gpt-3.5-turbo์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋‚˜์š”?

๊ทธ๋ ‡๋‹ค๋ฉด, ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์ด ์–ด๋–ค ์ด์œ ๋กœ GPT 4 turbo์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๊ถŒํ•œ ๋ฌธ์ œ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋™์˜ํ•˜๊ฑด๋Œ€, ์ด๋Š” ๊ฒŒ์‹œ ์‹คํŒจ๋กœ ์ด์–ด์ ธ์„œ๋Š” ์•ˆ ๋˜๋ฉฐ, ๋‹จ์ˆœํžˆ ์š”์•ฝ ์—…๋ฐ์ดํŠธ๋ฅผ ์ƒ๋žตํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ๋กœ๊น…ํ•˜๋Š” ์ •๋„๊ฐ€ ์ ์ ˆํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋„ค, ๋ถ„๋ช…ํžˆ ๊ถŒํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

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

ํƒœ๊น…์€ ์ƒ์„ฑ๋œ ์š”์•ฝ์— ๊ธฐ๋ฐ˜ํ•ด์„œ ์ด๋ฃจ์–ด์ง€๋Š” ๊ฑด๊ฐ€์š”? ์˜ˆ๋ฅผ ๋“ค์–ด, ์š”์•ฝ์„ ์›ํ•˜์ง€ ์•Š์ง€๋งŒ ํƒœ๊น… ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๊ทธ๋ ‡๋‹ค๋ฉด, ์š”์•ฝ์„ ์ˆจ๊ธฐ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์„๊นŒ์š”?

๋งˆ์ง€๋ง‰์œผ๋กœ (์Šคํฌ๋ฆฐ์ƒท ์ฐธ์กฐ), ์ด ๊ธฐ๋Šฅ์€ ์•…์šฉ๋  ์†Œ์ง€๊ฐ€ ํฝ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ƒํƒœ์—์„œ๋Š” ๋กœ๊ทธ์ธํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๋„ ํ•˜์œ„ ํˆฌํ‘œ(Downvote)๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

๋งž์Šต๋‹ˆ๋‹ค.

CSS๋กœ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๊ฑฐ๋‚˜, ์ด ์„ค์ •์„ ํ™œ์šฉํ•˜๋ฉด ๋ ์ง€๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค:

ai topic summary rely on sidebar widget instead๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์œ„์ ฏ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”, ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค?

์ต๋ช… ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์ด ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉฐ, ํˆฌํ‘œ๋„ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํ‰ํŒ ํญํƒ„(๋น„๋‚œ)์€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :sweat_smile:

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ 1๋…„ ์ด์ƒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค - ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๊ทธ๊ฑธ ์•Œ์•„์ฑ„์ง€ ๋ชปํ–ˆ์„ ๋ฆฌ๊ฐ€ ์—†์ฃ  :wink:

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

Chatbot๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์ด์ œ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ์ตœ์‹  Open AI ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

gpt-4o

์—ฌ๊ธฐ ๋ช‡ ๊ฐ€์ง€ ํฐ ๊ฐœ์„  ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

์ด๊ฒƒ์œผ๋กœ ์‹œ์Šคํ…œ์ด ํ›จ์”ฌ ๋” ๊ฒฌ๊ณ ํ•ด์ง€๊ณ , AI ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ๊ธฐ๋Šฅ์ด ์ฐจ๋‹จ๋˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•˜๋ฉฐ, ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ํ›จ์”ฌ ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@RGJ @Jagster

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

์•„์ด๊ณ , ๊ทธ๋Ÿฐ ๋œป์œผ๋กœ ๋งํ•œ ๊ฒŒ ์•„๋‹ˆ์—ˆ์–ด. ์ €๋Š” ์ธ์ฝ”๊ทธ๋‹ˆํ†  ๋ชจ๋“œ๋กœ ์ ‘์†ํ•œ ์ค„ ์•Œ์•˜๋Š”๋ฐ, ์ด๋ฏธ ๋กœ๊ทธ์ธ๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š” ๋‹ค๋ฅธ ์ธ์ฝ”๊ทธ๋‹ˆํ†  ์ฐฝ์ด ์—ด๋ ค ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์•„.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ •๋ง ๋†€๋ผ์›Œ, ์ฝ”์–ด์— ํฌํ•จ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์–ด. ๋กœ๋ฒ„ํŠธ, ์ •๋ง ํ›Œ๋ฅญํ•œ ์ผ์„ ํ•˜๊ณ  ์žˆ์–ด. ๋‹ค์‹œ ํ•œ๋ฒˆ ์‚ฌ๊ณผํ•ด. ์ „ํ˜€ ์˜๋„ํ•˜์ง€ ์•Š์€ ๋น„๊ผผ์ด์—ˆ์–ด!

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

๋ฌธ์ œ๊ฐ€ ์—†์–ด์š”! ์ข‹์€ ๋ง์”€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

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

์ด์ œ ์ œ ์‹ค์ˆ˜๋ฅผ ๋งŒํšŒํ–ˆ์œผ๋‹ˆ :sweat_smile:โ€ฆ "system_tagging"๊ณผ "prompt.tag"์˜ ์ฐจ์ด์ ์ด ๋ฌด์—‡์ธ๊ฐ€์š”?

์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์ž…๋‹ˆ๋‹ค(์›ํ•˜์‹œ๋ฉด ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).

์‹ค์ œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” Chat Completion์— ์ „์†ก๋˜๋Š” โ€œuserโ€ ์ฟผ๋ฆฌ์ž…๋‹ˆ๋‹ค.

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

์ฐธ๊ณ ๋กœ, ๋‚ด ์‚ฌ์ดํŠธ ์ค‘ ํ•˜๋‚˜์—์„œ ํƒœ๊น… ์ž‘์—…์„ ํ•  ๋•Œ gpt-4-turbo๊ฐ€ gpt-4o๋ณด๋‹ค ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์—†๊ณ , ์กฐ์‚ฌํ•  ์‹œ๊ฐ„๋„ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ํƒœ๊ทธ์˜ ์ˆ˜๊ฐ€ ๋งค์šฐ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๋” ์ƒˆ๋กœ์šด ๋ชจ๋ธ์ผ์ˆ˜๋ก ๋” ์ž˜ ์ฒ˜๋ฆฌํ•  ๊ฑฐ๋ผ๊ณ  ๊ธฐ๋Œ€ํ•  ํ…๋ฐ์š”. ์‚ฌ์šฉ์ž๋งˆ๋‹ค ๊ฒฐ๊ณผ๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•œ ๋ฒˆ ์‹œ๋„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 4-turbo๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ๋„ํ–ˆ์„ ๋•Œ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ 500 ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ(@RGJ์˜ Communiteq์— ํ˜ธ์ŠคํŒ…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค), ๊ทธ๋ž˜์„œ 3.5๋กœ ๋น ๋ฅด๊ฒŒ ๋˜๋Œ๋ ธ๋”๋‹ˆ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฑด ์ง€๋‚œ์ฃผ ์ผ์ด๋‹ˆ, ์•„๋งˆ ๋ญ”๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ์ˆ˜๋„ ์žˆ๊ฒ ๋„ค์š”.

ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์˜ค๋ž˜๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค:

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

์•„๋‹ˆ์š” - ๋„ค์ดํŠธ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์ „์— ๊ทธ ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ๊ทธ์˜ ๋ฌธ์ œ๊ฐ€ ์ œ๊ฐ€ ๋ฒ„๊ทธ๋ฅผ ๋ณด๊ณ ํ•œ ์ด์œ ์˜€์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋“ค์ด ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ ๋‹ค๋ฉด, ๋‚ด์ผ ์•„์นจ์— ํ•ด๋‹น๋˜๋Š” ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์—…๋ฐ์ดํŠธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์ˆ˜์ • ์‚ฌํ•ญ์„ "์ข‹์•„์š”"ํ•˜์ง€ ์•Š์œผ์…จ์œผ๋‹ˆ ( :cry: ) ์—…๋ฐ์ดํŠธ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋œป์ด๋„ค์š”. :wink:

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