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

:information_source: ์š”์•ฝ ์›๊ฒฉ AI ์–ธ์–ด ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์ œ์˜ ์š”์•ฝ์„ ์ž‘์„ฑํ•˜๊ณ  ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.
:hammer_and_wrench: ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋งํฌ GitHub - merefield/discourse-ai-topic-summary: Uses a remote AI language model to prepare and post a summary of a Topic ยท GitHub
:open_book: ์„ค์น˜ ๊ฐ€์ด๋“œ Discourse์— ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•
:heart: ํ›„์› ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋งˆ๋•…ํžˆ ๋ฐ›์•„์•ผ ํ•  ์œ ์ง€๋ณด์ˆ˜๋ฅผ ๋ฐ›๊ณ  ํ–ฅํ›„์—๋„ ์—ฌ๋Ÿฌ๋ถ„์˜ ์‚ฌ์ดํŠธ์—์„œ ๊ณ„์† ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก, ์—ฌ๋Ÿฌ๋ถ„ ๋˜๋Š” ์กฐ์ง์˜ ์ž์›๊ณผ ํ•„์š”์— ๋งž๋Š” ์ˆ˜์ค€์œผ๋กœ ์ œ ์˜คํ”ˆ์†Œ์Šค ์ž‘์—…์˜ ์ •๊ธฐ ํ›„์›์ž๊ฐ€ ๋˜์–ด ์ฃผ์‹ญ์‹œ์˜ค.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ฆ๊ธฐ๊ณ  ๊ณ„์‹ ๊ฐ€์š”? GitHub์—์„œ :star: ํ•ด ์ฃผ์„ธ์š”! :pray:

๊ธฐ๋Šฅ

  • AI ์ƒ์„ฑ๋œ ์ฃผ์ œ ์š”์•ฝ:
    • ์ฒ˜์Œ ์ƒ์„ฑ๋˜๋Š” ์‹œ์ ๊ณผ ์žฌ์ƒ์„ฑ์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์ƒˆ ๊ฒŒ์‹œ๊ธ€ ์ˆ˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์–ด ํ”Œ๋Ÿฌ๊ทธ์ธ ๋น„์šฉ ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ฃผ์ œ ํ‘œ์‹œ ์œ„์น˜๋ฅผ ์ƒ๋‹จ ๋˜๋Š” ์‚ฌ์ด๋“œ๋ฐ”(Bars ํ…Œ๋งˆ ์ปดํฌ๋„ŒํŠธ ํ•„์š”) ์ค‘ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ํ’ˆ์งˆ์ด ๋‚ฎ์€ ์š”์•ฝ์„ ํ•˜์œ„ ํˆฌํ‘œํ•  ์ˆ˜ ์žˆ๋Š” ํˆฌํ‘œ ์‹œ์Šคํ…œ. ํˆฌํ‘œ๊ฐ€ ์ž„๊ณ„๊ฐ’์„ ์ดˆ๊ณผํ•˜๋ฉด ์ƒˆ๋กœ์šด ์š”์•ฝ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
    • ์ฃผ์ œ ๋ชฉ๋ก์— ๋…ธ์ถœ - AI ์š”์•ฝ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฐœ์ทŒ ๋Œ€์‹  ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ์ž๋™ ํƒœ๊ทธ ์ง€์ • ์‹œ์Šคํ…œ
    • ์š”์•ฝ์„ ์žฌ์‚ฌ์šฉํ•˜์—ฌ ์ง€๋Šฅ์ ์œผ๋กœ ์ฃผ์ œ๋ฅผ ํƒœ๊ทธ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๊ฐ€์žฅ ์ž˜ ๋งž๋Š” ๋‘ ๊ฐ€์ง€ ์ „๋žต ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ฃผ์ œ๋ฅผ ๋ฌ˜์‚ฌํ•˜๋Š” ์ฃผ์ œ ์„ฌ๋„ค์ผ์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ํ”„๋กฌํ”„ํŠธ๋Š” ์‚ฌ์šฉ์ž ์ •์˜ โ†’ ํ…์ŠคํŠธ์—์„œ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ Discourse์˜ ์ฒซ ๋ฒˆ์งธ AI ํ”Œ๋Ÿฌ๊ทธ์ธ์ž…๋‹ˆ๋‹ค :1st_place_medal:

(์ฐธ๊ณ : ์ด๋Š” ์ผ๋ถ€ ๋”์ฐํ•œ ๋žœ๋ค ๊ฐœ๋ฐœ ํ”ฝ์Šค์ฒ˜๋ฅผ ์‚ฌ์šฉํ•œ UI ๋ฏธ๋ฆฌ๋ณด๊ธฐ์ผ ๋ฟ์ด๋ฉฐ, ์‹ค์ œ ๋ฐ์ดํ„ฐ์—์„œ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ํ›จ์”ฌ ๋” ์ข‹์Šต๋‹ˆ๋‹ค)

์ตœ์†Œ ๊ฒŒ์‹œ๊ธ€ ์ˆ˜ ์ดํ›„, ์ฃผ์ œ๊ฐ€ ๋Œ€์ƒ ๋ฒ”์ฃผ์— ์†ํ•˜๋Š” ๊ฒฝ์šฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ฃผ์ œ ํ…์ŠคํŠธ๋ฅผ ํ”„๋กฌํ”„ํŠธ์™€ ํ•จ๊ป˜ Open AI ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ์— ์ „์†กํ•˜๊ณ , ์‘๋‹ต์„ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ์‘๋‹ต์€ ๋‚ด์šฉ ์š”์•ฝ์„ ์˜๋„ํ•œ ๊ฒƒ์ด๋ฉฐ, ๊ฝค ์ž˜ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ ์„ ํƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์š”์•ฝ์€ ์ข…์ข… ๋†€๋ผ์šธ ์ •๋„๋กœ ์ข‹๊ณ , ๋•Œ๋กœ๋Š” ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ถฉ๋ถ„ํžˆ ์ข‹์€ ๊ฒƒ์ด ์•„๋‹ ๋•Œ, ์„ค์ •๋œ ์ž„๊ณ„๊ฐ’ ์ดํ›„ ํ’ˆ์งˆ์ด ๋‚ฎ์€ ์š”์•ฝ์„ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋„๋ก ๊ฐ•์ œํ•˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ํ•˜์œ„ ํˆฌํ‘œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ๊ฒฝ์šฐ๋“ , ์ถ”๊ฐ€ ๊ฒŒ์‹œ๊ธ€์ด ์„ค์ •๋œ ์ˆ˜๋งŒํผ ์ž‘์„ฑ๋˜๋ฉด ์š”์•ฝ์„ ๋‹ค์‹œ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กฌํ”„ํŠธ์™€ ์ž„๊ณ„๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ค‘์š”ํ•œ ์ฐธ๊ณ : ์š”์•ฝ์€ ์ต๋ช… ์‚ฌ์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํ…์ŠคํŠธ๋Š” ํฌ๋กค๋ง๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(์ด๊ฒƒ์ด ์ข‹์€ ์ผ์ธ์ง€ ๋‚˜์œ ์ผ์ธ์ง€๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ํŒ๋‹จํ•˜์‹œ๊ฒ ์ง€๋งŒ, ์ ์–ด๋„ ํฌ๋กค๋Ÿฌ๋Š” ์—ฌ๋Ÿฌ๋ถ„์˜ ์ง„์ •ํ•œ ์ธ๊ฐ„ ๋ฐ์ดํ„ฐ์—๋งŒ ์ž‘๋™ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค).

์ž๋™ ํƒœ๊ทธ ์ง€์ • ์ง€์›:

์ฃผ์ œ ํƒœ๊ทธ ์ง€์ •์„ ์ง€๋ฃจํ•˜๊ฒŒ ๋А๋ผ์‹œ๋‚˜์š”? AI๊ฐ€ ๋Œ€์‹  ํ•ด ์ฃผ๋„๋ก ํ•˜์„ธ์š”! (์ƒ๋‹นํžˆ ์ง€๋Šฅ์ ์œผ๋กœ!)

๋•Œ๋กœ๋Š” ์—ฌ๊ธฐ์„œ ์ œ์‹œํ•˜๋Š” ์ง€์นจ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  AI๊ฐ€ ๋„ˆ๋ฌด ์ฐฝ์˜์ ์ด ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๊ธฐ์กด ํƒœ๊ทธ ์ง‘ํ•ฉ์œผ๋กœ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

rails ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๊ด€๋ฆฌ์ž ์‚ฌ์šฉ์ž๋ฅผ ๋น ๋ฅด๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

rake admin:create (์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์ง€ ๋งˆ์„ธ์š”)

(์ด๋Š” ํ˜„์žฌ Discourse "๋‚ด๋ถ€ API"๊ฐ€ ํƒœ๊ทธ ์ง€์ • ์‹œ "์ƒˆ ํƒœ๊ทธ ์—†์Œ"์„ ์ง€์ •ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ํ˜„์žฌ ์ด ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ๋ฐฉ์ง€ํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ํ•ด๋‹น ๊ถŒํ•œ(์ฆ‰, min_trust_to_create_tag๋ณด๋‹ค ๋‚ฎ์€ ์‹ ๋ขฐ ์ˆ˜์ค€)์ด ์—†๋Š” ์‚ฌ์šฉ์ž๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.)

์ฃผ์ œ ๋ชฉ๋ก์—์„œ ๋ฐœ์ทŒ๋ฅผ AI ์š”์•ฝ์œผ๋กœ ์„ ํƒ์ ์œผ๋กœ ์˜ค๋ฒ„๋ผ์ด๋“œ

ai_topic_summary_expose_as_excerpt ์„ค์ •์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ฐœ์ทŒ๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ์ฃผ์ œ ๋ชฉ๋ก(์˜ˆ: Topic List Previews ๋˜๋Š” Topic List Excerpts์™€ ๊ฐ™์€ ํ…Œ๋งˆ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•ด)์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ AI ์š”์•ฝ์œผ๋กœ ๋ฐœ์ทŒ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

๋ฐœ์ทŒ ์ „ํ™˜:

์ œ ํ…Œ๋งˆ ์ปดํฌ๋„ŒํŠธ Topic List Previews (TLP) - #592 by merefield ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์ œ ์ฃผ์ œ๋ฅผ ๋ฌ˜์‚ฌํ•˜๋Š” ์„ ํƒ์  ์ด๋ฏธ์ง€

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์„ ํƒ์  ์„ฌ๋„ค์ผ ์ƒ์„ฑ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์š”์•ฝ์„ ์ด๋ฏธ์ง€๋กœ ๋ฌ˜์‚ฌํ•˜์—ฌ OP ์ƒ๋‹จ์— ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

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

์ฆ๊ธฐ์„ธ์š” :framed_picture:

์ œํ•œ ์‚ฌํ•ญ

ํ† ํฐ ์ œํ•œ์œผ๋กœ ์ธํ•ด ํ˜„์žฌ ์•ฝ 160๊ฐœ์˜ ๊ฒŒ์‹œ๊ธ€๊นŒ์ง€๋งŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค(๋ชจ๋ธ์— ๋”ฐ๋ผ ๋‹ค๋ฆ„!), ๋”ฐ๋ผ์„œ ํŠน์ • ์‹œ์  ์ดํ›„์˜ ๊ฒŒ์‹œ๊ธ€ ์ž๋ฃŒ๋Š” ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ์ด ๋” ๊ฐ•๋ ฅํ•ด์ง€๊ณ  ์„œ๋น„์Šค๊ฐ€ ๋” ์ •๊ตํ•ด์ง์— ๋”ฐ๋ผ ์ด๋Š” ํ–ฅํ›„ ๊ฑฐ์˜ ํ™•์‹คํ•˜๊ฒŒ ๋ณ€๊ฒฝ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์†๋„ ์ œํ•œ ๋ฐ ๋น„์šฉ

Open AI์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์€ ๋ฌด๋ฃŒ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์†๋„ ์ œํ•œ์€ ๊ฒŒ์‹œ๊ธ€์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์•”๋ฌต์ ์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์š”์•ฝ์„ ์š”์ฒญํ•˜๊ธฐ ์ „์— ํ•„์š”ํ•œ ๊ฒŒ์‹œ๊ธ€ ์ˆ˜๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.

์‚ฌ์ด๋“œ โ€œBarsโ€ ์ง€์›!!

์ด์ œ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” Bars ํ˜ธํ™˜ ์œ„์ ฏ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Bars ํ…Œ๋งˆ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ตฌ์„ฑํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค:

์„ค์น˜ ํ›„ ํ‘œ์ค€ ์ฃผ์ œ ์ƒ๋‹จ ์š”์•ฝ์„ ๋„๊ณ  ์‚ฌ์ด๋“œ๋ฐ”์˜ ์œ„์ ฏ์— ์˜์กดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

๋ฉด์ฑ… ์กฐํ•ญ: LLM์ด ์‘๋‹ตํ•˜๋Š” ๋‚ด์šฉ์— ๋Œ€ํ•ด ์ €๋Š” ์ฑ…์ž„์„ ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. LLM์˜ ์žฅ๋‹จ์ , LLM์ด ํ•  ์ˆ˜ ์žˆ๊ณ  ์—†๋Š” ๊ฒƒ, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ํ•œ๊ณ„๋ฅผ ์ดํ•ดํ•ด ์ฃผ์‹ญ์‹œ์˜ค. LLM์€ ์„ค๋“๋ ฅ ์žˆ๊ณ  ๋ฌธ๋งฅ์— ๋งž๋Š” ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ๋งค์šฐ ๋›ฐ์–ด๋‚˜์ง€๋งŒ ์‚ฌ์‹ค์ ์œผ๋กœ ํ‹€๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ €์ž‘๊ถŒ: Open AI๋Š” ์ €์ž‘๊ถŒ์— ๋Œ€ํ•ด ์—ฌ๊ธฐ์„œ ์„ฑ๋ช…์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค: API๋กœ ์ƒ์„ฑํ•œ ์ถœ๋ ฅ๋ฌผ์— ๋Œ€ํ•ด OpenAI๊ฐ€ ์ €์ž‘๊ถŒ์„ ์ฃผ์žฅํ•ฉ๋‹ˆ๊นŒ? | OpenAI ๋„์›€๋ง ์„ผํ„ฐ

ํ•  ์ผ

  • ํ”„๋ก ํŠธ ๋ฐ ๋ฐฑ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€ :construction:
  • ์‘๋‹ต ์Šคํƒ€์ผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์‚ฌ์šฉ์ž ๊ตฌ์„ฑ ์ถ”๊ฐ€ :white_check_mark:
  • ์‚ฌ์šฉ์ž ์ •์˜ ๋ชจ๋ธ ์ด๋ฆ„ ์ง€์› ์ถ”๊ฐ€ :white_check_mark:
  • ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•  ๋•Œ GPT-4 ์ง€์› ์ถ”๊ฐ€ :white_check_mark:
  • ๋ชจ๋ธ ์„ค์ •์„ ๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์œผ๋กœ ๋ณ€๊ฒฝ :white_check_mark:
  • Layouts ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์œ„ํ•œ ์œ„์ ฏ ์ง€์› ์ถ”๊ฐ€ :white_check_mark:
30๊ฐœ์˜ ์ข‹์•„์š”

This was just a matter of time until we got this!

But my primary question is how expensive can this get for us?

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

Itโ€™s been live on one of my forums for a few days now. Itโ€™s active on nearly all public categories.

Itโ€™s hard to answer because I donโ€™t know how active your forum is.

My suggestion is give it a go in one Category and see how you get on.

Thereโ€™s a decent dashboard.

After developing two plugins based on GPT3 (the most expensive model) and going live on one site late last month, mine looks like this for Feb:

So probably less than your email costs.

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

Oh, that could be good to grow our glossary topics.

It should work in Spanish?

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

I have no idea, you might need to change the prompt in settings. But give it a go!

(this should be a localised string, Iโ€™ll change that soon)

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

Thanks @merefield - this looks like a great plugin!

Iโ€™ve enabled it and entered my API key, enabled categories etc, but havenโ€™t seen any summaries yet. Is there some way I can monitor its progress on my Discourse forum? Canโ€™t see anything in logs or sidekiq (although admittedly havenโ€™t had a deep look yet)

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

Hey Chris, it reacts to new Posts. If they are within the thresholds and fits the Category location criteria, it will create a summary.

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

I see, thanks for clarifying @merefield

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

Hi,

My rebuild fails when I enable this summary plugin. I donโ€™t know if this is something to do with my underlying setup or conflicting plugins. I attach some details in case it is helpful.

Commenting out the ai-topic-summary plugin resolves the issue and the build is successful.

Many thanks for any guidance.

I, [2023-03-12T17:24:25.390052 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2023-03-12T17:24:31.668769 #1]  INFO -- : discourse-ai-topic-summary is already at latest compatible version
discourse-assign is already at latest compatible version
discourse-chat-integration is already at latest compatible version
discourse-chatbot is already at latest compatible version
discourse-checklist is already at latest compatible version
discourse-solved is already at latest compatible version
docker_manager is already at latest compatible version

I, [2023-03-12T17:24:31.677801 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
Gem::LoadError: can't activate ruby-openai-3.4.0, already activated ruby-openai-3.3.0
/var/www/discourse/lib/plugin_gem.rb:26:in `load'
/var/www/discourse/lib/plugin/instance.rb:796:in `gem'
/var/www/discourse/plugins/discourse-chatbot/plugin.rb:9:in `activate!'
/var/www/discourse/lib/plugin/instance.rb:693:in `instance_eval'
/var/www/discourse/lib/plugin/instance.rb:693:in `activate!'
/var/www/discourse/lib/discourse.rb:352:in `block in activate_plugins!'
/var/www/discourse/lib/discourse.rb:349:in `each'
/var/www/discourse/lib/discourse.rb:349:in `activate_plugins!'
/var/www/discourse/config/application.rb:216:in `block in <class:Application>'
/var/www/discourse/lib/plugin.rb:6:in `initialization_guard'
/var/www/discourse/config/application.rb:216:in `<class:Application>'
/var/www/discourse/config/application.rb:75:in `<module:Discourse>'
/var/www/discourse/config/application.rb:74:in `<top (required)>'
/var/www/discourse/Rakefile:7:in `require'
/var/www/discourse/Rakefile:7:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
(See full trace by running task with --trace)
I, [2023-03-12T17:24:38.020166 #1]  INFO -- : gem install httparty -v 0.21.0 -i /var/www/discourse/plugins/discourse-ai-topic-summary/gems/3.2.1 --no-document --ignore-dependencies --no-user-install
When you HTTParty, you must party hard!
Successfully installed httparty-0.21.0
1 gem installed
gem install ruby-openai -v 3.3.0 -i /var/www/discourse/plugins/discourse-ai-topic-summary/gems/3.2.1 --no-document --ignore-dependencies --no-user-install
Note if upgrading: The `::Ruby::OpenAI` module has been removed and all classes have been moved under the top level `::OpenAI` module. To upgrade, change `require 'ruby/openai'` to `require 'openai'` and change all references to `Ruby::OpenAI` to `OpenAI`.
Successfully installed ruby-openai-3.3.0
1 gem installed
gem install httparty -v 0.21.0 -i /var/www/discourse/plugins/discourse-chatbot/gems/3.2.1 --no-document --ignore-dependencies --no-user-install
When you HTTParty, you must party hard!
Successfully installed httparty-0.21.0
1 gem installed
gem install ruby-openai -v 3.4.0 -i /var/www/discourse/plugins/discourse-chatbot/gems/3.2.1 --no-document --ignore-dependencies --no-user-install
Note if upgrading: The `::Ruby::OpenAI` module has been removed and all classes have been moved under the top level `::OpenAI` module. To upgrade, change `require 'ruby/openai'` to `require 'openai'` and change all references to `Ruby::OpenAI` to `OpenAI`.
Successfully installed ruby-openai-3.4.0
1 gem installed

I, [2023-03-12T17:24:38.021523 #1]  INFO -- : Terminating async processes
I, [2023-03-12T17:24:38.022106 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 41
2023-03-12 17:24:38.022 UTC [41] LOG:  received fast shutdown request
I, [2023-03-12T17:24:38.022874 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 102
102:signal-handler (1678641878) Received SIGTERM scheduling shutdown...
2023-03-12 17:24:38.035 UTC [41] LOG:  aborting any active transactions
2023-03-12 17:24:38.046 UTC [41] LOG:  background worker "logical replication launcher" (PID 50) exited with exit code 1
2023-03-12 17:24:38.049 UTC [45] LOG:  shutting down
102:M 12 Mar 2023 17:24:38.053 # User requested shutdown...
102:M 12 Mar 2023 17:24:38.054 * Saving the final RDB snapshot before exiting.
102:M 12 Mar 2023 17:24:38.120 * DB saved on disk
102:M 12 Mar 2023 17:24:38.122 # Redis is now ready to exit, bye bye...
2023-03-12 17:24:38.153 UTC [41] LOG:  database system is shut down


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 1043 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
3๊ฐœ์˜ ์ข‹์•„์š”

Oops my bad. Itโ€™s a conflict between my two AI plugins. Will resolve and revert! :sweat_smile: Apologies!

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

Try that: FIX: conflict with chatbot ยท merefield/discourse-ai-topic-summary@0067eaf ยท GitHub

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

Many thanks for getting back so quickly. I will try this tomorrow. Iโ€™m looking forward to seeing this plugin in action!

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

Quick update I had my first real summary triggered and it did a pretty reasonable job. @merefield I think youโ€™ve nailed this plugin :-). I think in fact putting chatgpt to work like this has far better future potential than just adding into a discussion thread.

Hereโ€™s the summary that was generated which placed at the top of the topic does a great job at encouraging others to read - or not.

I did get an error (error 500) on posting an update that would have triggered the summary. This was because Iโ€™d tried to use gpt-3.5-turbo in settings. Perhaps if there is a chatgpt api error it would be better to allow the post submission rather than the user getting a 500 error they donโ€™t know what to do with.

In the logs it was clear what Iโ€™d done wrong

StandardError (This is a chat model and not supported in the v1/completions endpoint. Did you mean to use v1/chat/completions?)

Potential evolutions:

  • Allow topic owner / admin to remove summary if it isnโ€™t relevant / appropriate?
  • Perhaps a place to go to view all summaries in a category / overall

Other than that I look forward to seeing how this evolves. Many thanks for what youโ€™ve done so far. My site is very small with only a few users but I can really see itโ€™s potential.

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

Great feedback thanks. Those are nice ideas.

Yeah an admin/author button might be quite nice. Iโ€™ll add to roadmap.

Nice!

I wonder if โ€œthe place to see the summariesโ€ list is actually an alternative excerpt on the topic list?

Iโ€™ll add to roadmap.

Yeah I should convert this to a drop-down like I did with Chatbot. Good try though :wink:

GPT-4 is coming btw which will vastly improve the summaries and cope with much longer Topics.

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

Can you tell me if the plugin currently supports ChatGPT 4 and the API of the POE application (AI chat platform developed by Quora)?

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

Lol, give me a chance! :sweat_smile: afaia it was only announced yesterday?

Very few developers have been given access to the API so far. There is a waiting list. So users of the plugin are unlikely to be able to connect in any case.

(Did you notice the Topic title btw?)

No and no plans to at present. What would be the benefit? Is it known to excel at summarisation?

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

^^
sorry for being unclear ^^ i just wanted to know if you are interested about integrating them in the future? Iโ€™m following the news around GPT 04 and itโ€™s surprising and special to us Vietnamese community

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

Thanks for you interest. As far as GPT-4 support is concerned, let me respond this way:

Hell Yeah Dcuniverse GIF by DC

I will probably be adding it to Chatbot first, but will surely get around to AI Topic Summary soon after.

Iโ€™m waiting for the email from Open AI โ€ฆ (and then a little spare time!)

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

Actually, Iโ€™ve thought of a slightly simpler solution to this so we donโ€™t have to crowd the UI:

How about we just give settings for โ€œvote weightโ€ for Admin and Author?

So you can set the Author voting weight to 3 and if the threshold is 3 that results in a new summary being generated.

The downside of both solutions (button, or weighting that matches the threshold) is that the Author could just spam for new summaries, costing you a lot in API calls.

So I suggest you make the authors vote carry a weight just below the threshold (but more than a regular user) and the admin at threshold?

Then we donโ€™t have to change the UI and just bake this into the back-end logic and settings.

Admin downvotes will always create a new summary and reset the count.

Thoughts @JamesPick ?

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

I agree with your concern about spamming of new summaries.
I think itโ€™s less about the ai providing a bad summary and more that the topic is not conducive to a good summary. Perhaps the topic lost itโ€™s focus or became more a chat and the key posts get lost from what is sent to chatgpt.

Ultimately when admin / topic owner clearly sees that the summary is not going to produce anything of meaning for the topic they are able to cancel it.

I suppose in time the features could be added to select the specific posts that could be chosen to send to api for summary.

I was thinking of this for something like this thread. You could flag your first post to be the one that always gets included in a summary? And then perhaps add a few more that most suit a summary.

You could even have a โ€˜generate summaryโ€™ option where even when a topic only has one post a summary can be generated. This fits well with your earlier comment

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