Workflows KO - teamswyg/laya-tools GitHub Wiki

๊ธฐ๋Šฅ๋ณ„ ์‚ฌ์šฉ๋ฒ•

English ยท ํ™ˆ

examples/โ€ฆ ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋Š” ์˜ˆ์ œ๋Š” laya-tools๋ฅผ cloneํ•œ ํด๋”์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์˜ต์…˜์€ ์งˆ๋ฌธ ์•ž์— ๋‘ก๋‹ˆ๋‹ค. ์˜ˆ์ œ ๊ฐ€๊ฒฉ๊ณผ ์ €์žฅ์†Œ ๋ชฉ๋ก์€ ์‹ค์ œ ์‚ฌ์šฉ์ž ์„ค์ •์ด ์•„๋‹Œ ๊ฐ€์ƒ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค.

ํŠน์ • ๋™์ž‘์„ ๋‹ด๋‹นํ•˜๋Š” ์ฝ”๋“œ ์ฐพ๊ธฐ

riidolaya search --root . --lexical --json 'redirect authorization'
riidolaya search --root . --candidates 8 --limit 3 'where are redirect headers removed?'

๋จผ์ € ํ‚ค์›Œ๋“œยท์‹๋ณ„์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ๋ช…๋ น์€ ์„ค์น˜๋œ Laya๋ฅผ ์ถ”๊ฐ€๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉด ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ํ‚ค์›Œ๋“œ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๋กœยท์ค„ ๋ฒ”์œ„ยท์ฝ”๋“œ ์ผ๋ถ€๋ฅผ ๋ณด๊ณ  ๋‚ด์šฉ์„ ํ™•์ธํ•˜์„ธ์š”. ํ›„๋ณด์— ์—†๋Š” ์ฝ”๋“œ๋ฅผ ์žฌ์ •๋ ฌ๋กœ ๋ณต๊ตฌํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์žฌ์ •๋ ฌ์€ ์ง€์—ฐ์ด ํด ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‹ค์ œ ์งˆ๋ฌธ์—์„œ --lexical๊ณผ ๋น„๊ตํ•˜์„ธ์š”.

์ฝ”๋“œ ๊ด€๋ จ์„ฑ ์ฒดํฌํฌ์ธํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด:

riidolaya setup --checkpoint code
riidolaya search --checkpoint code 'redirect authentication'

๋ชจ๋ธยท์ €์žฅ์†Œ ์„ ํƒ ์‹คํ—˜์—๋Š” code ๋Œ€์‹  base๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•œ๊ตญ์–ด ๊ฒ€์ƒ‰์€ ๋ฏธ๊ฒ€์ฆ์ด๋ฉฐ --candidate-query 'English identifiers'๋กœ ์˜์–ด ์‹๋ณ„์ž ํžŒํŠธ๋ฅผ ์ฃผ๋ฉด ํ‚ค์›Œ๋“œ ํ›„๋ณด ์ƒ์„ฑ์— ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ ์ „์— ๋ชจ๋ธ ์„ ํƒ ๋น„๊ต

riidolaya plan --config examples/planner/config.json --request examples/planner/request.json --json

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

plan.status ์‚ฌ์šฉ์ž๊ฐ€ ํ•  ์ผ
recommend ์ œ์•ˆ ๋ชจ๋ธ๊ณผ ๋‹ค๋ฅธ ํ›„๋ณด์˜ ์ œ์™ธ ์ด์œ ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰๋œ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค.
hold ํ˜„์žฌ ๋ชจ๋ธ์ด ์ œ์•ฝ์„ ๋งŒ์กฑํ•˜๊ณ  ์ „ํ™˜์ด ๋ณด๋ฅ˜๋๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.
blocked ํ—ˆ์šฉ๋˜๋Š” ์ถ”์ฒœ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋Šฅ๋ ฅยท๊ฐ€๊ฒฉยท์˜ˆ์‚ฐ ์‚ฌ์šฉ์•กยท์‚ฌ์œ ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋นˆ ๋ชจ๋ธ ID๋กœ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์œ ํšจํ•œ blocked ๊ณ„ํš์€ ์ข…๋ฃŒ ์ฝ”๋“œ 0์ž…๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ JSONยท์ž…๋ ฅ์€ 0์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์— ์ž‘์—… ๋ฌธ์žฅ์„ ๋ถ™์ด๋ฉด ๋กœ์ปฌ Laya ๋ถ„๋ฅ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉฐ ์œ ๋ฃŒ ์ฝ”๋”ฉ ๋ชจ๋ธ์„ ํ˜ธ์ถœํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๊ณ„ํš์€ codex์— ์ž๋™ ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž‘์—…์„ ๋‹ด๋‹นํ•  ์ €์žฅ์†Œ preview

riidolaya repo-preview --catalog examples/repositories/catalog.json --json 'refund invoices'
riidolaya repo-preview --catalog examples/repositories/catalog.json --laya --json 'refund invoices'

ํ˜ธ์ถœ์ž๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ €์žฅ์†Œ๋งŒ ์นดํƒˆ๋กœ๊ทธ์— ๋„ฃ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ์†Œ์Šค ๋Œ€์‹  ์งง์€ ์—ญํ•  ์„ค๋ช…๊ณผ ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ์˜ˆ์ œ ์นดํƒˆ๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

status ์˜๋ฏธ
candidate ํ‚ค์›Œ๋“œ ํ›„๋ณด์ด๋ฉฐ ์ •ํ™•๋„๊ฐ€ ๋ณด์ •๋œ ์„ ํƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. reason์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
suggest ์‹คํ—˜์  Laya ์ถ”์ฒœ์ด ๊ธฐ์ค€์„ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ๊ถŒํ•œ์€ ์•„๋‹™๋‹ˆ๋‹ค.
abstain ์ถ”์ฒœ์„ ๋ณด๋ฅ˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ›„๋ณดยท์‚ฌ์œ ๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ์‚ฌ๋žŒ์ด ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒฐ๊ณผ๋Š” preview: true์ž…๋‹ˆ๋‹ค. GitHub ์ ‘๊ทผยทcloneยท์ €์žฅ์†Œ ์ˆ˜์ •ยท์ž‘์—… ๋ฐฐ์ •์„ ํ•˜์ง€ ์•Š๊ณ  ๊ถŒํ•œ๋„ ๋ถ€์—ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. --laya๋Š” ์„ ํƒ ์‚ฌํ•ญ์ด๋ฉฐ ์‹œํ—˜ํ•œ ๊ตฌ์„ฑ์€ ์˜์–ด์šฉ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์ธก์ •์—์„œ๋Š” ์ •ํ™•๋„ ๊ฐœ์„ ์„ ์ž…์ฆํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์„ ํƒ์ ์œผ๋กœ ์ƒˆ Codex ์ž‘์—… ์‹คํ–‰

์•„๋ž˜ ์ด๋ฆ„์„ ๋ณธ์ธ์˜ Codex์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ ID๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

riidolaya route --fast-model YOUR_FAST_MODEL --standard-model YOUR_STANDARD_MODEL --strong-model YOUR_STRONG_MODEL --json 'Fix a spelling mistake'
riidolaya codex --model YOUR_MODEL --dry-run 'Implement the feature'

์ฒซ ๋ช…๋ น์€ ์ถ”์ฒœ๋งŒ, ๋‘ ๋ฒˆ์งธ๋Š” ์‹คํ–‰ํ•  ๋ช…๋ น๋งŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. --dry-run์„ ๋นผ๋ฉด ์„ค์น˜๋œ Codex๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ธฐ์กด ์‚ฌ์šฉ๋Ÿ‰์ด ์†Œ๋ชจ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธยท๊ถŒํ•œยท์Šน์ธ ์„ค์ •์€ ๊ทธ๋Œ€๋กœ ์ ์šฉ๋˜๋ฉฐ ์ง„ํ–‰ ์ค‘์ธ ๋Œ€ํ™”์˜ ๋ชจ๋ธ์€ ๋ฐ”๊พธ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

route ์ถœ๋ ฅ์˜ suggested_tier๋Š” ๋ชจ๋ธ ์ œ์•ˆ, tier๋Š” ์ •์ฑ… ์ ์šฉ ๊ฒฐ๊ณผ์ด๋ฉฐ abstained: true๋Š” ๊ฐ•ํ•œ ๋Šฅ๋ ฅ์„ ์œ ์ง€ํ•˜๋„๋ก ๋ณด๋ฅ˜ํ–ˆ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ๋†’์€ ๋ถ„๋ฅ˜ ํ™•๋ฅ ์ด ์ฝ”๋”ฉ ์„ฑ๊ณต์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง์ ‘ ์ง€์ •ํ•œ --model์ด ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ: ์—์ด์ „ํŠธยทGo ์—ฐ๋™ ๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ.

๋ชจ๋ธ์„ ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜ ๋‚ด๋ฆฌ๋Š” ์–‘๋ฐฉํ–ฅ ์ถ”์ฒœ

์‰ฌ์šด ์ž‘์—…์€ ๋‚ฎ์ถ”๊ณ , ์–ด๋ ค์šด ์ž‘์—…์€ ํ˜„์žฌ ๋ชจ๋ธ๋ณด๋‹ค ๊ฐ•ํ•œ ๋ชจ๋ธ๋กœ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ชจ๋ธ์€ ์š”์ฒญ JSON์˜ current, ์„ฑ๋Šฅ ์ˆœ์„œ๋Š” ์„ค์ •์˜ rank๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๊ฒฉ์ด ๋น„์‹ธ๋‹ค๋Š” ์ด์œ ๋งŒ์œผ๋กœ ์ƒํ–ฅ์œผ๋กœ ํŒ๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

riidolaya plan --config examples/planner/config.json --request examples/planner/upgrade.json --json

์ด ์˜ˆ์ œ๋Š” example-fast์—์„œ example-strong์œผ๋กœ direction: upgrade, reason: quality_upgrade๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด request.json์€ ํ•˜ํ–ฅ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. ์œ„ ์˜ˆ์ œ๋Š” ์ง์ ‘ ์ œ๊ณตํ•œ ๋‚œ์ด๋„ ํ‰๊ฐ€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ Laya ์ถ”๋ก ์€ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ช…๋ น ๋์— ์˜์–ด ์ž‘์—… ์„ค๋ช…์„ ๋ถ™์ด๋ฉด ๋กœ์ปฌ Laya๊ฐ€ ๋‚œ์ด๋„๋ฅผ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

direction์€ upgrade(์ƒํ–ฅ), downgrade(ํ•˜ํ–ฅ), lateral(๊ฐ™์€ ๋“ฑ๊ธ‰), initial(์ฒซ ์„ ํƒ), unchanged(์œ ์ง€)์ด๋ฉฐ, blocked์—๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ƒํ–ฅ์€ ๋น„์šฉ ํšŒ์ˆ˜ ๊ธฐ๊ฐ„์ด๋‚˜ ์ „ํ™˜ ๋Œ€๊ธฐ ํšŸ์ˆ˜๋ณด๋‹ค ํ’ˆ์งˆ์„ ์šฐ์„ ํ•˜์ง€๋งŒ ์˜ˆ์‚ฐยท๊ธฐ๋Šฅยท์ปจํ…์ŠคํŠธ ์ œ์•ฝ๊ณผ ์ˆ˜๋™ ๊ณ ์ •์€ ๋ฌด์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Laya์˜ ๋ถˆํ™•์‹คํ•œ ํŒ๋‹จ์€ ์ƒํ–ฅ ๊ทผ๊ฑฐ๋กœ ๋ฐ”๊พธ์ง€ ์•Š์œผ๋ฉฐ, ํ˜„์žฌ ๋ชจ๋ธ๋„ ์š”๊ตฌ ์กฐ๊ฑด์„ ๋ชป ๋งž์ถ”๋ฉด blocked์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์„ค์ •์—์„œ๋Š” catalog์˜ ํ™•์‹ ๋„ ๊ธฐ์ค€ 0.9๋„ ํ†ต๊ณผํ•ด์•ผ ํ•˜๋ฏ€๋กœ switch์˜ ์ƒํ–ฅ ๊ธฐ์ค€ 0.5๋งŒ ๋„˜๋Š”๋‹ค๊ณ  ์ถ”์ฒœํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถ”์ฒœ๋งŒ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ง„ํ–‰ ์ค‘์ธ Codex ๋Œ€ํ™”๋ฅผ ์ž๋™ ์ „ํ™˜ํ•˜๊ฑฐ๋‚˜ ์‹คํŒจ๋ฅผ ๊ฐ์ง€ํ•ด ์žฌ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฐ๋™ํ•˜๋Š” ์—์ด์ „ํŠธ๊ฐ€ ์ž‘์—… ๋‹จ๊ณ„๋งˆ๋‹ค ํ˜„์žฌ ๋ชจ๋ธ๊ณผ ํ‰๊ฐ€๋ฅผ ๊ฐฑ์‹ ํ•ด ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—…์„ ๋‚˜๋ˆŒ์ง€ ํŒ๋‹จํ•˜๊ธฐ โ€” ์„ค๊ณ„ preview

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

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

๋ถ„ํ•  ํŒ๋‹จ ์„ค๊ณ„์™€ ์™ธ๋ถ€ ์ž๋ฃŒ ๊ฒ€ํ†  ยท MPS ํ•™์Šต ์ค€๋น„ ยท ์ง„ํ–‰ ์ด์Šˆ #11