๋ฐ˜์‘ํ˜•

๐ŸŽฏ ์›Œํฌํ”Œ๋กœ์šฐ ๋ชฉํ‘œ

  1. ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡์œผ๋กœ ์Œ์‹ ์‚ฌ์ง„ ์—…๋กœ๋“œ
  2. AI๊ฐ€ ์นผ๋กœ๋ฆฌ, ํƒ„์ˆ˜ํ™”๋ฌผ, ๋‹จ๋ฐฑ์งˆ, ์ง€๋ฐฉ ๋ถ„์„
  3. ๋ถ„์„ ๊ฒฐ๊ณผ ๊ตฌ๊ธ€ ์‹œํŠธ์— ๊ธฐ๋ก > ํ…”๋ ˆ๊ทธ๋žจ์œผ๋กœ ์‘๋‹ต
  4. ํ•„์š” ์‹œ ๊ตฌ๊ธ€ ์‹œํŠธ ๋ฐ์ดํ„ฐ ์กฐํšŒ > ์„ญ์ทจ๋Ÿ‰ ์š”์•ฝ

 

์นผ๋กœ๋ฆฌ ํŠธ๋ž˜์ปค ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡

 

 

ํ…”๋ ˆ๊ทธ๋žจ ํŠธ๋ฆฌ๊ฑฐ ๋…ธ๋“œ


๋จผ์ € ํ…”๋ ˆ๊ทธ๋žจ @BotFather์—์„œ ์นผ๋กœ๋ฆฌ ํŠธ๋ž˜์ปค ์ „์šฉ ๋ด‡์„ ๋งŒ๋“ค์–ด๋‘”๋‹ค(๋ด‡ ์ƒ์„ฑ ์ฐธ๊ณ  ๋‚ด์šฉ).

 

๋‹ค์‹œ n8n์œผ๋กœ ๋Œ์•„์™€์„œ ๋‹จ์ถ•ํ‚ค n > Telegram > On message ํŠธ๋ฆฌ๊ฑฐ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. ํŠธ๋ฆฌ๊ฑฐ ์„ค์ •์ฐฝ์„ ์—ด๊ณ  Credential ์ฐฝ > Access Token ํ•„๋“œ์—๋Š” ์นผ๋กœ๋ฆฌ ํŠธ๋ž˜์ปค ๋ด‡์˜ ํ† ํฐ ๊ฐ’์„ ์ž…๋ ฅํ•œ๋‹ค.

 

Trigger On ํ•ญ๋ชฉ์€ Message๋ฅผ ์„ ํƒํ•œ ํ›„, ์ฒจ๋ถ€ํŒŒ์ผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋„๋ก Add Field > Download Image/Files ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ํ™œ์„ฑํ™”ํ•œ๋‹ค. ์ด์ œ ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋ณด๋‚ธ ๋’ค Execute step ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋ณด์ž. ์šฐ์ธก OUTPUT ์ฐฝ์— Binary ํŒŒ์ผ์ด ํ‘œ์‹œ๋œ๋‹ค๋ฉด ์„ฑ๊ณต์ด๋‹ค.

Telegram On message ํŠธ๋ฆฌ๊ฑฐ ์„ค์ •์ฐฝ

 

 

AI Agent ๋…ธ๋“œ


ํ…”๋ ˆ๊ทธ๋žจ์—์„œ ๋ฐ›์•„์˜จ ์Œ์‹ ์‚ฌ์ง„์„ AI๊ฐ€ ๋ถ„์„ํ•˜์—ฌ ์˜์–‘ ์„ฑ๋ถ„์„ ๊ณ„์‚ฐํ•  ๋‹จ๊ณ„๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ์ธ์‹ํ•ด์•ผ ํ•˜๋ฏ€๋กœ Vision ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๋‹จ์ถ•ํ‚ค n > AI Agent ๋…ธ๋“œ ์ถ”๊ฐ€ ํ›„, ์„ค์ •์ฐฝ์—์„œ Source for Prompt๋Š” Define below๋ฅผ ์„ ํƒํ•œ๋‹ค.

AI Agent ์„ค์ •์ฐฝ

 

Prompt (User Message) ์ž…๋ ฅ๋ž€์—๋Š” ์•„๋ž˜ ๋‚ด์šฉ์„ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๋Š”๋‹ค. ์ด ํ”„๋กฌํ”„ํŠธ๋Š” โ‘ ์Œ์‹ ์ด๋ฏธ์ง€ ๋ถ„์„/์˜์–‘ ์„ฑ๋ถ„ ๊ณ„์‚ฐ, โ‘ก๊ตฌ๊ธ€ ์‹œํŠธ ๊ธฐ๋ก(write_sheet ํˆด), โ‘ข๊ตฌ๊ธ€ ์‹œํŠธ์—์„œ ์ •๋ณด ์กฐํšŒ(read_sheet ํˆด)๊นŒ์ง€ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ํ–‰๋™ ์ง€์นจ์„ ๋‹ด๊ณ  ์žˆ๋‹ค.

You are **Calorie Tracker Bot**, a friendly assistant that helps the user monitor their daily calorie and macro intake.  

You have three main responsibilities:

1. **Analyze images of food** sent by the user (via Telegram).  
   - If the user sends an image, you can find it below.  
   - Use your vision capabilities to identify the food items, estimate portion sizes, and calculate approximate calories and macronutrients (protein, carbs, fat).

2. **Log the data** using the `write_sheet` tool.  
   - The tool must always be called when an image contains identifiable food.  
   - Log the following fields:  
     - `date`: current date and time (ISO format)  
     - `food`: food name(s)  
     - `calories`: estimated total calories  
     - `protein`, `carbs`, `fat`: grams of each macronutrient  
     - `notes`: optional observations (like "approximation" or "mixed dish")  
โš ๏ธ Never just say the data was logged — always call the write_sheet tool.

Confirm and summarize the result back to the user in a short, friendly message after the tool call completes.
Example:
"Logged: Chicken salad — 420 kcal (Protein 35g, Carbs 20g, Fat 18g). โœ… Added to your tracker!"

Additionally, you should:

Answer the user’s questions about their daily, weekly, or overall calorie intake and nutrition trends.
Use the read_sheet tool to retrieve and summarize data.

Be concise and encouraging — think of yourself as a helpful health companion, not a strict diet coach.

If the image is unclear or incomplete, politely ask for clarification or a text description.

When an image is added and you can identify ingredients, calories, and macros, always log it with write_sheet.

Use this context to keep a consistent and helpful tone across all interactions.

When logging food items, make sure to separate them, that means, instead of logging: Pizza with coke, you first log the Pizza and then the coke.

Current date and time is {{ $now }}

<USER MESSAGE>
Username: {{ $json.message.from.first_name }}
Image: {{ $binary.data || "No image provided" }} 
Text: {{ $json.message.text || "No message provided." }}
</USER MESSAGE>

 

ํ…”๋ ˆ๊ทธ๋žจ์œผ๋กœ ๋ณด๋‚ธ ๋ฉ”์‹œ์ง€(ํ…์ŠคํŠธ)๋Š” $json.message.text ์†์„ฑ์œผ๋กœ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๊ณ , ์ฒจ๋ถ€ํŒŒ์ผ์€ $binary.data๋กœ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค. $json์€ ํ˜„์žฌ ๋…ธ๋“œ๋กœ ์ „๋‹ฌ๋œ ์ž…๋ ฅ ์•„์ดํ…œ์˜ JSON ๋ฐ์ดํ„ฐ์ด๊ณ , $binary๋Š” ์ž…๋ ฅ ์•„์ดํ…œ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. $json, $binary ๊ด€๋ จ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์ž.

 

๋…ธ๋“œ ์„ค์ •์ฐฝ ํ•˜๋‹จ Chat Model์„ ํด๋ฆญํ•˜๊ณ  Model์€ ์ €๋ ดํ•œ gpt-4.1-mini๋ฅผ ์„ ํƒํ•œ๋‹ค.

Chat Model ์„ค์ •์ฐฝ

 

 

ํ…”๋ ˆ๊ทธ๋žจ ๋ฉ”์‹œ์ง€ ์ „์†ก ๋…ธ๋“œ


AI๊ฐ€ ์ƒ์„ฑํ•œ ๋‹ต๋ณ€ ๋…ธ๋“œ๋ฅผ ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡์œผ๋กœ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด Telegram > Send a text message ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋จผ์ € ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด์•ผ ๋Œ€ํ™”๊ฐ€ ์‹œ์ž‘๋˜๋Š” ๊ตฌ์กฐ์ด๋ฏ€๋กœ, ์ด ๋‹จ๊ณ„์—์„  ํ…”๋ ˆ๊ทธ๋žจ ํŠธ๋ฆฌ๊ฑฐ ๋…ธ๋“œ์— ๊ธฐ๋ก๋œ ์‚ฌ์šฉ์ž์˜ Chat ID๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

Telegram Send a text message ์„ค์ •์ฐฝ

  • Resource (๋Œ€์ƒ): Message
  • Operation (๋™์ž‘): Send Message
  • Chat ID (๋ฐ›๋Š” ์‚ฌ๋žŒ): {{ $('trigger').item.json.message.chat.id }}
  • Text (๋ณด๋‚ผ ๋‚ด์šฉ): {{ $json.output }}

 

 

๊ตฌ๊ธ€ ์‹œํŠธ ์ƒ์„ฑ


AI Agent๊ฐ€ ๋ถ„์„ํ•œ ์˜์–‘ ์„ฑ๋ถ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ/์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๊ตฌ๊ธ€ ์‹œํŠธ๋ฅผ ๋งŒ๋“ค๊ณ , ์ฒซ ๋ฒˆ์งธ ํ–‰(A1~F1)์— ์•„๋ž˜ ์ปฌ๋Ÿผ(ํ—ค๋”)์„ ๋ฏธ๋ฆฌ ์ถ”๊ฐ€ํ•ด ๋‘”๋‹ค.

  • name_of_food: ์Œ์‹ ์ด๋ฆ„
  • portion_size: ์„ญ์ทจ๋Ÿ‰
  • calories: ์นผ๋กœ๋ฆฌ
  • protein: ๋‹จ๋ฐฑ์งˆ
  • carbs: ํƒ„์ˆ˜ํ™”๋ฌผ
  • fat: ์ง€๋ฐฉ
  • date: ๋‚ ์งœ/์‹œ๊ฐ„

 

 

๊ตฌ๊ธ€ ์‹œํŠธ ์“ฐ๊ธฐ ๋„๊ตฌ ์ถ”๊ฐ€


AI Agent๊ฐ€ ๋ถ„์„ํ•œ ์˜์–‘ ์„ฑ๋ถ„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๊ธ€ ์‹œํŠธ์— ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด Google Sheets ๋„๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•  ์ฐจ๋ก€๋‹ค. AI Agent ๋…ธ๋“œ ํ•˜๋‹จ์˜ Tool ์˜์—ญ์—์„œ [+] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ ๋’ค Google Sheets Tool์„ ์„ ํƒํ•œ๋‹ค. ์ƒ์„ฑ๋œ ๊ตฌ๊ธ€ ์‹œํŠธ ๋…ธ๋“œ ์„ค์ •์ฐฝ์„ ์—ด๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•œ๋‹ค.

Google Sheets Tool ์„ค์ •์ฐฝ (write_sheet ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝ)

  • Resource: Sheet Within Document (๋ฌธ์„œ ๋‚ด ์‹œํŠธ๋ฅผ ํƒ€๊ฒŸ์œผ๋กœ ์ง€์ •)
  • Operation: Append Row (๊ธฐ์กด ๋ฐ์ดํ„ฐ ์•„๋ž˜์— ์ƒˆ๋กœ์šด ํ–‰์œผ๋กœ ์ถ”๊ฐ€)
  • Document > From list: ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•  ๊ตฌ๊ธ€ ์‹œํŠธ ํŒŒ์ผ ์„ ํƒ
  • Sheet > From list: ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ๋  ์‹œํŠธ ์„ ํƒ
  • Mapping Column Mode: Map Each Column Manually (๊ฐ ์ปฌ๋Ÿผ์— ๊ฐ’ ์ง์ ‘ ๋งคํ•‘)
  • Values to Send: ๋ชจ๋“  ํ•„๋“œ์— โœจ ์šฐ์ธก ๋งˆ๋ฒ• ๋ฒ„ํŠผ ํด๋ฆญ (AI Agent๊ฐ€ ๊ฐ’์„ ์ž๋™์œผ๋กœ ์ฑ„์šฐ๋„๋ก ์„ค์ •)

 

 

๊ตฌ๊ธ€ ์‹œํŠธ ์ฝ๊ธฐ ๋„๊ตฌ ์ถ”๊ฐ€


AI Agent๊ฐ€ ๊ตฌ๊ธ€ ์‹œํŠธ์— ๊ธฐ๋ก๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ๋„๋ก Google Sheets ๋„๊ตฌ๋ฅผ ํ•˜๋‚˜ ๋” ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. ์ด์ „๊ณผ ๋™์ผํ•˜๊ฒŒ AI Agent ๋…ธ๋“œ ํ•˜๋‹จ์˜ Tool ์˜์—ญ์—์„œ [+] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ ๋’ค Google Sheets Tool์„ ์„ ํƒํ•œ๋‹ค. ์ƒ์„ฑ๋œ ๊ตฌ๊ธ€ ์‹œํŠธ ๋…ธ๋“œ์˜ ์ด๋ฆ„์„ read_sheet๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์„ค์ •์ฐฝ์„ ์—ด์–ด ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ์„ค์ •ํ•œ๋‹ค.

Google Sheets Tool ์„ค์ •์ฐฝ (read_sheet ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝ)

  • Resource: Sheet Within Document (๋ฌธ์„œ ๋‚ด ์‹œํŠธ๋ฅผ ํƒ€๊ฒŸ์œผ๋กœ ์ง€์ •)
  • Operation: Get Row (์‹œํŠธ์—์„œ ํ–‰ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ)
  • Document > From list: ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๊ตฌ๊ธ€ ์‹œํŠธ ํŒŒ์ผ ์„ ํƒ
  • Sheet > From list: ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ์‹œํŠธ ์„ ํƒ

 

ํŠน์ • ๋ฐ์ดํ„ฐ๋งŒ ๊ณจ๋ผ์„œ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด ํ•˜๋‹จ Filters ์˜์—ญ > Add Filter๋ฅผ ํด๋ฆญํ•ด์„œ ์กฐ๊ฑด์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฒˆ ์˜ˆ์ œ์—์„  ๋”ฐ๋กœ ํ•„ํ„ฐ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ์‹œํŠธ์— ์žˆ๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

 

์ด์ œ Execute workflow๋ฅผ ํด๋ฆญํ•˜๊ณ  ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡์— ์Œ์‹ ์‚ฌ์ง„์ด๋‚˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด์„œ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž.

 

 

๋ฉ”๋ชจ๋ฆฌ ์ถ”๊ฐ€


ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡ ์ฑ„ํŒ…์ฐฝ์—๋Š” ์ด์ „ ๋Œ€ํ™”๊ฐ€ ๊ทธ๋Œ€๋กœ ๋‚จ์•„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ด‡๋„ ์ด๋ฅผ ๊ธฐ์–ตํ•  ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค(Stateless). n8n ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์‘๋‹ต์„ ์ƒ์„ฑํ•œ ๋’ค ์‹คํ–‰์„ ์ข…๋ฃŒํ•œ๋‹ค. ๋‹ค์Œ ๋ฉ”์‹œ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์ƒˆ๋กœ์šด ์‹คํ–‰์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „ ๋Œ€ํ™” ๋‚ด์šฉ์„ ์•Œ ์ˆ˜ ์—†๋‹ค.

์ด๋ฆ„์„ ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ•˜๊ณ  ํ…”๋ ˆ๊ทธ๋žจ ์œ ์ € ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ด‡

 

์‚ฌ์šฉ์ž์™€์˜ ๋Œ€ํ™” ๋งฅ๋ฝ์„ ์œ ์ง€ํ•˜๋ ค๋ฉด ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค. n8n์—์„  ์ธ์Šคํ„ด์Šค ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š” Simple Memory์™€ MongoDB/Redis/Postgres ๊ฐ™์€ ์™ธ๋ถ€ ์ €์žฅ์†Œ ๊ธฐ๋ฐ˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ฐ„๋‹จํ•œ ์—ฐ์Šต์šฉ์ด๋ผ๋ฉด Simple Memory๋กœ๋„ ์ถฉ๋ถ„ํ•˜์ง€๋งŒ ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋ฉด ๋ชจ๋“  ๋‚ด์šฉ์ด ์ดˆ๊ธฐํ™”๋˜๊ณ , ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์›Œ์ปค(Worker) ๋…ธ๋“œ๋ผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์—์„  Redis ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™์„ ๊ถŒ์žฅํ•œ๋‹ค.

 

AI Agent ๋…ธ๋“œ ํ•˜๋‹จ์˜ Memory ์˜์—ญ์—์„œ [+] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ ๋’ค Simple Memory๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•œ๋‹ค.

Simple Memory ์„ค์ •์ฐฝ (memory ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝ)

  • Session ID: Define below
  • Key (๋ฉ”๋ชจ๋ฆฌ ์‹๋ณ„์ž): {{ $('trigger').item.json.message.chat.id }}
    ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ณ ์œ ๊ฐ’. ํ…”๋ ˆ๊ทธ๋žจ Chat ID๋ฅผ ๋„ฃ์–ด๋‘๋ฉด ์‚ฌ์šฉ์ž๋ณ„๋กœ ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Context Window Length (์ฐธ๊ณ ํ•  ๋Œ€ํ™” ๊ธฐ๋ก ์ˆ˜): 5
    AI์—๊ฒŒ ์ „๋‹ฌํ•  ์ด์ „ ๋Œ€ํ™” ๊ฐœ์ˆ˜. 5๋กœ ์„ค์ •ํ•˜๋ฉด ์ตœ๊ทผ 5๊ฐœ์˜ ๋Œ€ํ™” ๊ธฐ๋ก์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•œ๋‹ค.

 

 

์›Œํฌํ”Œ๋กœ์šฐ ์™„์„ฑ ํ™”๋ฉด


๋ชจ๋“  ๋…ธ๋“œ ์„ค์ •๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์—ฐ๊ฒฐ๊นŒ์ง€ ์™„๋ฃŒํ–ˆ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ AI ๊ธฐ๋ฐ˜ ์นผ๋กœ๋ฆฌ ํŠธ๋ž˜์ปค ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ์™„์„ฑ๋œ๋‹ค.

 

์ด์ œ ํ…”๋ ˆ๊ทธ๋žจ ๋ด‡์œผ๋กœ ์Œ์‹ ์‚ฌ์ง„์„ ๋ณด๋‚ด๋ฉด AI Agent๊ฐ€ ๋น„์ „(Vision) ๊ธฐ๋Šฅ์œผ๋กœ ์Œ์‹์„ ๋ถ„์„ํ•˜๊ณ , write_sheet ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ๊ตฌ๊ธ€ ์‹œํŠธ์— ์˜์–‘ ์„ฑ๋ถ„์„ ๊ธฐ๋กํ•œ๋‹ค. ๋ฐ˜๋Œ€๋กœ "์˜ค๋Š˜ ์ด ๋ช‡ ์นผ๋กœ๋ฆฌ ๋จน์—ˆ์–ด?"์ฒ˜๋Ÿผ ์งˆ๋ฌธํ•˜๋ฉด read_sheet ๋„๊ตฌ๋กœ ์‹œํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  ๊ธฐ๋ก๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์„ญ์ทจ๋Ÿ‰์„ ์š”์•ฝํ•ด์ค€๋‹ค.

๋ฐ˜์‘ํ˜•