์ต๊ทผ PR ์์ฝ โ 2026๋ 8์ 1์ผ~3์ผ
Discourse Chatbot ๋ฐ ๊ทธ ํ์ฅ ํ๋ฌ๊ทธ์ธ ์ ๋ฐ์์ ์ฌ๋ฌ ๊ด๋ จ PR์ด ๋ณํฉ๋์์ต๋๋ค.
์ฃผ์ ๋ด์ฉ
- verify-and-revise, best-of-two, ๋ถํ์ค์ฑ ๊ธฐ๋ฐ ์ถ๋ก ์ ํฌํจํ ๊ณ ๊ธ ๋ก์ปฌ ์ถ๋ก ์ ๋ต์ ๋์ ํ์ต๋๋ค.
- ์ต์ OpenAI ๋ชจ๋ธ๊ณผ ์๋ก์ด ์ต๋ ์ถ๋ก ๋ ธ๋ ฅ(max reasoning effort)์ ์ถ๊ฐํ์ต๋๋ค.
- ์๋ฒ ๋ฉ ์ ์ฌ๋๋ฅผ ํ์ฉํ ์๋ฏธ๋ก ์ ์ฐจ๋จ ์ง๋ฌธ ๊ฒ์ดํธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- LLM ํ ํฐ ๋น์ฉ ์์ด ๋ด์ด ์ฒ๋ฆฌํ์ง ์๊ธฐ๋ฅผ ์ํ๋ ์ฃผ์ ๋ฅผ ์๋ฒ ๋ฉ์ ํตํด ์ฐจ๋จํ๋ฏ๋ก ์๋นํ ๋น์ฉ ์ ๊ฐ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
- ๊ธฐ๋ณธ ๊ตฌํ๊ณผ RAG ๊ตฌํ์ ๋จ์ผ
DiscourseChatbot::Bot์ผ๋ก ํตํฉํ์ต๋๋ค. - ๋ด ๋ชจ๋ ์ค์ ์ ์ ๋ขฐ ์์ค ๋ด์ฅ ๋๊ตฌ ์ ํ์๋ก ๋์ฒดํ์ต๋๋ค.
- ํ์ฅ API ๋ช ์นญ์ โFunctionโ์์ โToolโ๋ก ๋ณ๊ฒฝํ์ต๋๋ค.
- SafeRuby ๊ธฐ๋ฐ ๊ณ์ฐ๊ธฐ ๋๊ตฌ๋ฅผ ์ ์ฝ๋ Dentaku ํํ์ ํ๊ฐ๊ธฐ๋ก ๋์ฒดํ์ต๋๋ค - ์ด๋ฆ๊ณผ๋ ๋ฌ๋ฆฌ SafeRuby์๋ ์ทจ์ฝ์ ์ด ์กด์ฌํ๋ฏ๋ก ๋ณด์ ์ธก๋ฉด์์ ํฐ ๊ฐ์ ์ฌํญ์ ๋๋ค.
- Chatbot ๋ฐ ๊ทธ ํ์ฅ ํ๋ฌ๊ทธ์ธ ์ ๋ฐ์ ๊ฑธ์ณ Zeitwerk ๋ก๋ฉ์ ์ฑํํ์ต๋๋ค.
- ์์น ๊ด๋ จ ๋๊ตฌ๋ฅผ Locations Early Access ํ๋ฌ๊ทธ์ธ์ผ๋ก ์ด๋ํ์ต๋๋ค (์ ๊ทผ ๊ถํ ์ฌํ๋์ ์ํด ์คํฐ์๋ฅผ ํด์ฃผ์ธ์)
- ๊ณ์ฐ๊ธฐ ์ค๋ฅ ๋ณต๊ตฌ ๋ฐ ์ผ๋ฐ ฯ/e ํ๊ธฐ๋ฒ์ ๋ํ ์ง์์ ๊ฐ์ ํ์ต๋๋ค.
- README๋ฅผ ๊ฐฑ์ ํ์ต๋๋ค.
- ๋ฉ์ธ ํ๋ฌ๊ทธ์ธ ๋ฒ์ ์ 1.8.0์์ 2.4.1๋ก ์ ๋ฐ์ดํธํ์ต๋๋ค.
Discourse Chatbot
-
#162 โ ์์ : Responses API ์ถ๋ก ์ํ ๋ณด์กด (FIX: Preserve Responses API reasoning state - Pull Request #162 - merefield/discourse-chatbot - GitHub)
Responses API์ ์ถ๋ก ๋ฐ ๋๊ตฌ ์ฐ์์ฑ์ ์์ ํํ๊ณ , ๊ตฌ์ฑ ๊ฐ๋ฅํ ๋ฐ๋ณต ๋ฐ ํ ํฐ ํ๋๋ฅผ ๋์ ํ์ผ๋ฉฐ, URL ์ถ์ฒ ๊ฒ์ฆ์ ๊ฐ์ ํ๊ณ ์ ์ฉํ ๋ถ๋ถ ์๋ต์ ๋ณด์กดํ๋ฉฐ, ๋น ์๋ต์ด๋ ํ์์ด ์๋ชป๋ ์๋ต์ด ์์ฉ๋๋ ๊ฒ์ ๋ฐฉ์งํ์ต๋๋ค. -
#163 โ ๊ธฐ๋ฅ: ๊ณ ๊ธ ๋ก์ปฌ ์ถ๋ก ์ ๋ต ์ถ๊ฐ (FEATURE: Add advanced local reasoning strategies - Pull Request #163 - merefield/discourse-chatbot - GitHub)
Chat Completions์ ์ํ ๋จ์, verify-and-revise, best-of-two, ๋ถํ์ค์ฑ ๊ธฐ๋ฐ ์ถ๋ก ์ ๋ต์ ์ถ๊ฐํ์ผ๋ฉฐ, ๋ณด์กฐ ์์ฒญ์ ํ๊ณ๋ฅผ ๋์๊ณ ์คํํ๊ฐ ๋ณผ ์ ์๋ ๊ฐ์ฌ ๊ธฐ๋ก์ ๋์ ํ์ต๋๋ค. -
#164 โ ๊ธฐ๋ฅ: ์ต์ OpenAI ๋ชจ๋ธ ์ถ๊ฐ (FEATURE: Add current OpenAI models - Pull Request #164 - merefield/discourse-chatbot - GitHub)
๋ชจ๋ธ ์ ํ๊ธฐ์ ์ต์ GPT-5.x ๋ฐ Pro ๋ณํ์ ์ ๋ฐ์ดํธํ๊ณ , ์ ์ ํ ๋ชจ๋ธ์ Responses API๋ก ๋ผ์ฐํ ํ๋ฉฐ, ์ต๋ ์ถ๋ก ๋ ธ๋ ฅ์ ์ถ๊ฐํ์ต๋๋ค. -
#165 โ ์์ : ๊ณ์ฐ๊ธฐ ์ฌ์๋ ๊ฐ์ด๋ ๊ฐ์ (FIX: Improve calculator retry guidance - Pull Request #165 - merefield/discourse-chatbot - GitHub)
๋ชจ๋ธ์ด ๊ณ์ฐ๊ธฐ ๊ตฌ๋ฌธ๊ณผ ๋ณต๊ตฌ ๊ฐ์ด๋๋ฅผ ๋ ๋ช ํํ๊ฒ ์ดํดํ ์ ์๋๋ก ํ์ฌ, ์์ ๊ฐ๋ฅํ ์คํจ๊ฐ ์ ์ ํ ์ฌ์๋๋๋๋ก ํ์ต๋๋ค. -
#166 โ ๊ธฐ๋ฅ: ์๋ฏธ๋ก ์ ์ฐจ๋จ ์ง๋ฌธ ๊ฒ์ดํธ ์ถ๊ฐ (FEATURE: Add semantic blocked-question gate - Pull Request #166 - merefield/discourse-chatbot - GitHub)
๊ด๋ฆฌ์๊ฐ ์ ์ํ ์ฐจ๋จ๋ ์ฃผ์์ ์๋ณํ๊ณ ๋ฉ์ธ ๋ชจ๋ธ์ ํธ์ถํ๊ธฐ ์ ์ ํ์ค ์๋ต์ ๋ฐํํ ์ ์๋ ์ ํ์ ์๋ฒ ๋ฉ ๊ธฐ๋ฐ ๊ฒ์ดํธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์บ์ฑ, ์คํํ ๊ฐ์ฌ, ์คํจ ์ ๊ฐ๋ฐฉ(fail-open) ๋์, ์ฌ์ฉ์ ์ ์ ์๋ฒ ๋ฉ ๋ชจ๋ธ ์ง์์ ํฌํจํฉ๋๋ค. -
#167 โ ๊ฐ๋ฐ: SafeRuby ๋์ฒด ๋ฐ Zeitwerk ๋ก๋ฉ ์ฑํ (DEV: Replace SafeRuby and adopt Zeitwerk loading - Pull Request #167 - merefield/discourse-chatbot - GitHub)
๋ฒค๋๋ง๋ SafeRuby ํ๊ฐ๊ธฐ๋ฅผ Dentaku๋ก ๋์ฒดํ๊ณ , ๋ค์์คํ์ด์ค์ ํ์ผ๋ช ์ Zeitwerk์ ์ ๋ ฌํ์ผ๋ฉฐ, ํ๋ฌ๊ทธ์ธ์ ๋ก๋ฉ ๋ฐ ๋ฆฐํธ ๊ตฌ์ฑ์ ํ๋ํํ์ต๋๋ค. SafeRuby์ ์ทจ์ฝ์ ์ด ์์๋ ๊ฒ์ผ๋ก ๋ฐํ์ ธ ์ด ๋ง์ด๊ทธ๋ ์ด์ ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค. -
#168 โ ๊ฐ๋ฐ: Chatbot์์ Locations ํจ์ ์ถ์ถ (DEV: Extract Locations functions from Chatbot - Pull Request #168 - merefield/discourse-chatbot - GitHub)
๋ฉ์ธ ํ๋ฌ๊ทธ์ธ์์ ์์น ๊ด๋ จ ๋๊ตฌ์ ์ค์ ์ ์ ๊ฑฐํ์ฌ, discourse-locations๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์ ๊ณตํ ์ ์๋๋ก ํ์ต๋๋ค. -
#169 โ ๊ธฐ๋ฅ: ๋ด ๋ชจ๋๋ฅผ ์ ๋ขฐ ์์ค ๋๊ตฌ ์ ํ์ผ๋ก ๋์ฒด
(FEATURE: Replace bot modes with trust-level tool selection - Pull Request #169 - merefield/discourse-chatbot - GitHub)
์ด๋ ์ฃผ์ ์ํคํ ์ฒ ํฉ๋ฆฌํ ์์ ์ด์์ต๋๋ค:- ๊ฐ๋ณ ๊ธฐ๋ณธ ๋ฐ RAG ๋ด์
DiscourseChatbot::Bot์ผ๋ก ๋์ฒดํ์ต๋๋ค. - ๊ฐ ์ ๋ขฐ ์์ค์ ๋ํ ๋ด์ฅ ๋๊ตฌ ์ ํ์๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ๋น ์ ํ์๋ฅผ ๋๊ตฌ ์์ด ๋จ์ํ ๋ด๊ณผ ๋๋ฑํ๊ฒ ์ทจ๊ธํ๋๋ก ํ์ต๋๋ค.
- ๋น์ (Vision) ๋ฐ ํ์ธํ ์ ๋๊ตฌ ์ ํ ์์คํ ์ ํตํฉํ์ต๋๋ค.
- ์ธ๋ถ์์ ๊ณต๊ธ๋๋ ํ๋ฌ๊ทธ์ธ ๋๊ตฌ๋ ๋ด์ฅ ์ ํ์ ์ธ๋ถ์ ๋์์ต๋๋ค.
- Function ์ฉ์ด, ์ค์ ๋ฐ ํด๋์ค๋ฅผ Tool๋ก ๋ณ๊ฒฝํ์ต๋๋ค.
- ์ค์ ์ ์ฌ๋ฐฐ์น, ์ธ์ ๋ฐฐ์น ๋ฐ ์กฐ๊ฑด๋ถ๋ก ์จ๊ฒผ์ต๋๋ค.
- ๊ธฐ์กด ๊ตฌ์ฑ์ ์ํ ๋ง์ด๊ทธ๋ ์ด์ ์ฒ๋ฆฌ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ํ ๋น๋ ์ฐจ๊ฐ์ ๋์์ฑ ์์ ํ๋๋ก ๋ง๋ค์์ต๋๋ค.
- ์๋ต ๋ฌธ์ ์ ์ ํ, ๋ก๊น ์ ํ, ๋ฐ์ด๋๋ฆฌ PDF ์ฝ๊ธฐ๋ฅผ ์์ ํ์ต๋๋ค.
- ๊ฐ๋ณ ๊ธฐ๋ณธ ๋ฐ RAG ๋ด์
-
#170 โ ์์ : ๊ณ์ฐ๊ธฐ ๋๊ตฌ ๋ณต๊ตฌ ๊ฐ์ (FIX: Improve calculator tool recovery - Pull Request #170 - merefield/discourse-chatbot - GitHub)
Math::PI,Math.PI,Math::E,Math.E, ฯ์ ๊ฐ์ ์น์ํ ํํ์์ Dentaku ํธํ ๊ตฌ๋ฌธ์ผ๋ก ์ ๊ทํํ์ต๋๋ค.
๋ณ๊ฒฝ๋์ง ์์ ์๋ชป๋ ํธ์ถ์ด ๋ฐ๋ณต๋ ๊ฒฝ์ฐ ์คํ ๊ฐ๋ฅํ ๊ฐ์ด๋์ ํจ๊ป ๊ฑฐ๋ถ๋ฉ๋๋ค. -
#171 โ ๊ฐ๋ฐ: ์ฑ๋ด ๋ฌธ์ ๊ฐฑ์ (DEV: Refresh chatbot documentation - Pull Request #171 - merefield/discourse-chatbot - GitHub)
ํตํฉ๋ ๋ด ๋ฐ ๋๊ตฌ ์ํคํ ์ฒ, ์ถ๋ก ์ ๋ต, ์ฐจ๋จ๋ ์ง๋ฌธ, ๊ณ์ฐ๊ธฐ ๋์, ํ๋, ํ ๋น๋, ์ฌ์ฉ์ ์ ์ ์๋ํฌ์ธํธ, ์ด๋ฏธ์ง/PDF ์ง์, ํ์ฌ ์ค์ ์ ๋ํด README๋ฅผ ์ ๋ฐ์ดํธํ์ต๋๋ค. ๋น์ ์ง์์ ๋ ์ด์ ์คํ์ ์ด๋ผ๊ณ ์ค๋ช ๋์ง ์์ต๋๋ค.
๋๋ฐ ํ๋ฌ๊ทธ์ธ
-
discourse-locations #4 โ ์์ : ๋๊ตฌ API์ ๋ง๊ฒ Chatbot ์์น ํ์ฅ ์ ๋ฐ์ดํธ (https://github.com/merefield/discourse-locations-early-access/pull/4)
์ถ์ถ๋ ์์น ํตํฉ์DiscourseChatbot::Tool๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ณ ,Locations::Chatbot::Tools์๋์ ๋ฐฐ์นํ์ผ๋ฉฐ, ํตํฉ๋ ๋ด์ ๋ง๊ฒ ์ ๋ฐ์ดํธํ์ต๋๋ค. -
Function ํ์ฅ ์์ #1 โ ์์ : Chatbot ๋๊ตฌ API์ ๋ง๊ฒ ์์ ํ์ฅ ์ ๋ฐ์ดํธ (FIX: Update example extension for Chatbot tool API - Pull Request #1 - merefield/discourse-chatbot-function-extension-example - GitHub)
์์ ํ๋ฌ๊ทธ์ธ์DiscourseChatbot::Tool, Zeitwerk ๋ก๋ฉ, ๋๊ตฌ ์งํฅ ์ค์ ๋ฐ ๋ฒ์ญ, ๋ ๊ฑฐ์ ํธํ์ฑ ์ฝ๋ ์์ด ์ด์ ์ ๋ง์ถ ๋์ ํ ์คํธ๋ฅผ ์์ฐํ๋๋ก ์ ๋ฐ์ดํธํ์ต๋๋ค.