๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๐ŸŽฌ Action Function

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

์•ก์…˜ ์ฝ”๋“œ์˜ ํ…œํ”Œ๋ฆฟ์€ ์ปค๋ฎค๋‹ˆํ‹ฐ ์„น์…˜์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜ํ”„ ์‹œ๊ฐํ™” ์•ก์…˜์˜ ์˜ˆ๋Š” ์•„๋ž˜ ๋น„๋””์˜ค์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜ํ”„ ์‹œ๊ฐํ™” ์•ก์…˜

Actionโ€‹

์•ก์…˜์€ ๋ฉ”์‹œ์ง€ UI(๊ฐœ๋ณ„ ์ฑ„ํŒ… ๋ฉ”์‹œ์ง€ ๋ฐ”๋กœ ์•„๋ž˜์— ํ‘œ์‹œ๋˜๋Š” ์ž‘์€ ๋ฒ„ํŠผ)์— ๋ฒ„ํŠผ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์•ก์…˜์€ ์•ก์…˜ ํ•จ์ˆ˜๋ผ๋Š” ๋‹จ์ผ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์•ก์…˜์˜ ํƒ€์ž…๊ณผ ์ฒ˜๋ฆฌ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ
async def action(
self,
body: dict,
__user__=None,
__event_emitter__=None,
__event_call__=None,
) -> Optional[dict]:
print(f"action:{__name__}")

response = await __event_call__(
{
"type": "input",
"data": {
"title": "๋ฉ”์‹œ์ง€ ์ž‘์„ฑํ•˜๊ธฐ",
"message": "์—ฌ๊ธฐ์— ์ถ”๊ฐ€ํ•  ๋ฉ”์‹œ์ง€๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”",
"placeholder": "๋ฉ”์‹œ์ง€๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”",
},
}
)
print(response)