์‹ฌ์†Œํ˜„ - Sementle Japanese, Play the Game with LLMยถ

0. ์ง€๋‚œ ์ด์•ผ๊ธฐ: ๊ทธ ๋™์•ˆ์˜ ๊ฒฐ๊ณผ๋ฌผยถ

1. [NEW] ์ฃผ๊ณ ๋ฐ›๊ธฐ ๋ชจ๋“œยถ

semantle์„ ์–ธ์–ด๋งŒ ๋ฐ”๊พธ์–ด ๊ทธ๋Œ€๋กœ ๋งˆ๋ฌด๋ฆฌํ•˜๊ธฐ์—๋Š” ์•„์‰ฌ์šด ๋ถ€๋ถ„์ด ์žˆ์–ด, ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ œ์•ˆ๋œ ์•„์ด๋””์–ด ์ค‘ ์ฑ—๋ด‡์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ์•ˆ์„ ๊ตฌ์ฒดํ™”ํ•˜์—ฌ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋Œœ.

2. ๊ธฐํšยถ

2.1. ์ฑ„ํŒ…์œผ๋กœ๋งŒ ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•˜๊ธฐยถ

  • ์ฒ˜์Œ ์ œ์•ˆ๋œ ์•„์ด๋””์–ด๋Š” ๊ธฐ์กด ์ธํ„ฐํŽ˜์ด์Šค ์•ˆ์—์„œ ํžŒํŠธ ์š”์ฒญ ์‹œ, ์ •๋‹ต ๋‹จ์–ด์— ๋Œ€ํ•œ ํžŒํŠธ๋ฅผ LLM์ด ์ƒ์„ฑํ•˜์—ฌ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

  • ํ•˜์ง€๋งŒ Langchain, Transformers Agents ๋“ฑ LLM์œผ๋กœ ๋ณต์žกํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” API๊ฐ€ ํ™œ์šฉ๋˜๊ณ  ์žˆ์–ด, ๊ฒŒ์ž„ ์ „์ฒด๋ฅผ ์ง„ํ–‰ํ•˜๋„๋ก ์‹œ๋„ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋”๋ถˆ์–ด, ๋Œ€ํ™” ํ˜•์‹์œผ๋กœ ๊ฒŒ์ž„์„ ํ•œ๋‹ค๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ์ฆ๊ฑฐ์šธ ๊ฒƒ์ด๋ผ๊ณ  ๊ธฐ๋Œ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

2.2. ์„œ๋น„์Šค ๋ฐฉ์‹ยถ

  • ์ฃผ๊ณ ๋ฐ›๊ธฐ ๋ชจ๋“œ๋Š” ๊ธฐ์กด ์›น์‚ฌ์ดํŠธ๋กœ ํ•จ๊ป˜ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ  Hugging Face Space๋ฅผ ํ†ตํ•ด ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ํ˜„์žฌ openai api๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜์—ฌ api ์‚ฌ์šฉ์— ์ต์ˆ™ํ•œ ์‚ฌ์šฉ์ž๋“ค์ด ์žˆ๋Š” ํ™˜๊ฒฝ์—์„œ ๋ฐฐํฌํ•˜๊ธฐ๋กœ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋˜ํ•œ, ๋‹จ์–ด์˜ ์œ ์‚ฌ๋„ ์™ธ์— ์ •๋‹ต ๋‹จ์–ด์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ํš๋“ํ•˜๋ฉฐ ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ, ๊ธฐ์กด ๊ฒŒ์ž„๊ณผ ์ƒ๋‹นํžˆ ๋‹ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.

2.3. ๊ณผ์ œยถ

  1. ๋ณตํ•ฉ์ ์ธ ์˜์‚ฌ๊ฒฐ์ • ๊ณผ์ • ์ˆ˜ํ–‰

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

  • ํžŒํŠธ๋งŒ ์ œ๊ณตํ•œ๋‹ค๋ฉด ์œ ์ €์˜ ์˜๋„๊ฐ€ ํ•œ์ •๋˜๋ฏ€๋กœ ์ž˜๋ชป๋œ ๋‹ต๋ณ€์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์ ์ง€๋งŒ, ๊ฒŒ์ž„ ์ง„์ฒด๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์˜๋„์— ์–ด๊ธ‹๋‚˜๋Š” ๋‹ต๋ณ€์„ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜๋„๋ฅผ ํŒŒ์•…ํ•œ ๋’ค์—๋„ ๋‹ต๋ณ€์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ๊ฒ€ํ† ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ํŠน์ˆ˜ํ•œ ์ž‘์—… ๋‚ด์šฉ

  • semantle์ด๋ผ๋Š” ๊ฒŒ์ž„์€ LLM์—๊ฒŒ ์ƒˆ๋กœ์šด ์ง€์‹์ด๋ฏ€๋กœ ์ง„ํ–‰ ๋ฐฉ๋ฒ•๊ณผ ๊ทœ์น™, ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฒŒ์ž„ ์ง„ํ–‰์— ํ•„์š”ํ•œ ์ •๋ณด์™€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ œ๊ณตํ•  ๋ฐฉ์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฑ—๋ด‡์ด ์ž์˜์ ์œผ๋กœ ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•˜์ง€ ์•Š๊ณ , ์ •ํ•ด์ง„ ๊ทœ์น™๊ณผ ๋ฐ์ดํ„ฐ์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ ๋˜ํ•œ ๊ณผ์ œ์ž…๋‹ˆ๋‹ค.

  1. ์žฅ๊ธฐ ๊ธฐ์–ต ๊ด€๋ฆฌํ•˜๊ธฐ

  • semantle์„ ํ”Œ๋ ˆ์ด ํ•˜๋Š” ๋ฐ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋ฐฑ ๋ฒˆ์˜ ๋Œ€ํ™”๋ฅผ LLM์ด ๊ธฐ์–ตํ•˜๊ฑฐ๋‚˜ ๋ชจ๋‘ ์ฝ๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • LLM์€ ์žฅ๊ธฐ ๊ธฐ์–ต์„ ์œ ์ง€ํ•˜๋Š” ๋Šฅ๋ ฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— chatGPT ๋“ฑ์€ ์ด์ „ ๋Œ€ํ™”๋ฅผ ์ฝ์–ด ๋งฅ๋ฝ์„ ํŒŒ์•…ํ•˜์ง€๋งŒ, ๋Œ€ํ™”๊ฐ€ ๊ธธ์–ด์งˆ์ˆ˜๋ก ์ด์ „ ๋Œ€ํ™” ์ •๋ณด๋Š” ๊ฑฐ์˜ ์žŠํ˜€์ง‘๋‹ˆ๋‹ค.

  • ๋”๋ถˆ์–ด ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด์— ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋งŽ์€ ํ† ํฐ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ”ผํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

3. ์ฃผ์š” ์•„์ด๋””์–ดยถ

3.1. function callยถ

  1. function call์ด๋ž€

  • openai api๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ชจ๋ธ์ด ํ”„๋กฌํ”„ํŠธ์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ํ•จ์ˆ˜๋ฅผ ์“ฐ๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • JSON ๋ฐ์ดํ„ฐ ํ˜•์‹์œผ๋กœ ํ•จ์ˆ˜์˜ ์ด๋ฆ„, ์„ค๋ช…, ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ด๋ฆ„๊ณผ ์„ค๋ช…, ํ•„์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

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

  1. ํšจ๊ณผ์ ์ธ function call

  • ์„ค๋ช…(description)์„ ๋ช…๋ฃŒํ•˜๊ฒŒ ์ž‘์„ฑํ•  ๊ฒƒ: ๋‹จ์–ด ์‚ฌ์šฉ์— ์ฃผ์˜ํ•˜์—ฌ ๋ชจ๋ธ์ด ๋‹ค๋ฅธ ์ž‘์—…๊ณผ ํ˜ผ๋™ํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • ํ•จ์ˆ˜์˜ ๊ธฐ๋Šฅ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์–ด๋–ค ์ƒํ™ฉ์— ์“ฐ๋ฉด ์ข‹์€์ง€ ์•ˆ๋‚ดํ•˜๋Š” ๊ฒƒ๋„ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋ธ์˜ ์ž‘์—… ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ํ•จ์ˆ˜๋ฅผ ์ถฉ๋ถ„ํžˆ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ชจ๋ธ์ด ๋น„์–ด์žˆ๋Š” ์ •๋ณด๋ฅผ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด ์ž„์˜์˜ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์ƒ๊ด€ ์—†๋Š” ๋‚ด์šฉ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3.2. ํ”„๋กฌํ”„ํŠธยถ

  • ํ”„๋กฌํ”„ํŠธ๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ์ž‘์„ฑํ•ด ์‹คํ—˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ž‘์—… ๊ณผ์ •์„ ์ƒ์„ธํ•˜๊ฒŒ

    • ์œ ์ €์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์€ ๋’ค ์–ด๋–ค ์‚ฌ๊ณ  ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•˜๋Š”์ง€ ์ƒํ™ฉ๋ณ„๋กœ ์ƒ์„ธํžˆ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

  2. ๊ฒŒ์ž„์˜ ์ปจ์…‰๋งŒ ๊ฐ„๊ฒฐํ•˜๊ฒŒ

    • ๊ฒŒ์ž„ ์‹œ์ž‘ ํ™”๋ฉด์—์„œ ์†Œ๊ฐœํ•˜๋Š” ๋‚ด์šฉ ์ •๋„๋กœ ๊ฒŒ์ž„์˜ ์ปจ์…‰๊ณผ ์ง„ํ–‰ ๋ฐฉ์‹์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ „๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

    • ์ถ”๊ฐ€๋กœ ์œ ์ €์˜ ์ž…๋ ฅ ํ…์ŠคํŠธ ์•ž์— ์ ‘๋‘์–ด๋ฅผ ๋ถ™์—ฌ, ์ •๋‹ต์„ ์ถ”์ธกํ•˜๋Š” ์ƒํ™ฉ์œผ๋กœ ํŒ๋‹จํ•  ํ™•๋ฅ ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค.

      • ๋‹ต: {user_input}

    • ํ”„๋กฌํ”„ํŠธ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•œ ๋Œ€์‹ , ์ง„ํ–‰์— ํ•„์š”ํ•œ ํ•จ์ˆ˜๋ฅผ ๋ณด๋‹ค ๋‹ค์–‘ํ•˜๊ฒŒ ์ „๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

      • ๋‹จ์–ด ์ถ”์ธกํ•˜๊ธฐ : ์ถ”์ธกํ•œ ๋‹จ์–ด์˜ ์ ์ˆ˜์™€ ์ˆœ์œ„๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ํ•จ์ˆ˜\

      • (์ถ”๊ฐ€) ์ •๋‹ต ์กฐํšŒํ•˜๊ธฐ : ์˜ค๋Š˜์˜ ํ€ด์ฆˆ ์ •๋‹ต ๋‹จ์–ด๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜\

      • (์ถ”๊ฐ€) ๊ฒŒ์ž„ ๊ทœ์น™ ์ฝ๊ธฐ : ๊ฒŒ์ž„์˜ ์ƒ์„ธ ๊ทœ์น™์„ ๊ฐ€์ ธ์˜ค๋Š” ํ•จ์ˆ˜`

    • ํ•จ์ˆ˜๋ฅผ ํ•„์š”ํ•œ ๋งŒํผ ๋ฐ˜๋ณตํ•ด์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

4. ์‹คํ—˜ยถ

  • ์ตœ์ข…์ ์œผ๋กœ๋Š” 2. ์ปจ์…‰๋งŒ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•œ ํ”„๋กฌํ”„ํŠธ๋กœ ๋ชจ๋ธ์ด ๋” ์•ˆ์ •์ ์œผ๋กœ ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

4.2. functionsยถ

guess_word = {"name": "guess_word",
                  "description": "Use this function to check if a guessed word is the correct answer or not, and if incorrect, calculate a score and a rank of the guess word.",
                  "parameters": {
                      "type": "object",
                      "properties": {
                          "word": {
                              "type": "string",
                              "description": "A single Japanese word to guess, which is can be a noun, verb, adverb or adjective. e.g. ็ฉบ, ่ฟ‘ใ„, ่กŒใ, etc."
                              },
                      },
                      "required": ["word"]
                  }}
lookup_answer = {"name": "lookup_answer",
                "description": "Use this function to check the correct answer of today's puzzle.",
                "parameters": {
                    "type": "object",
                    "properties": {},
                }}
read_rule = {"name": "read_rule",
                 "description": "Use this function to read the game rule for clarification of your response.",
                 "parameters": {
                     "type": "object",
                     "properties": {},
                 }}

4.2. ํ”„๋กฌํ”„ํŠธยถ

  • ๊ฒŒ์ž„ ๊ธฐ๋ณธ ๊ทœ์น™๊ณผ ์•„๋ž˜ ๋‚ด์šฉ์„ ํ•จ๊ป˜ ์ „๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

ใ‚ใชใŸใฏใ€Œใ‚คใƒŸใƒˆใƒซใ€ใจใ„ใ†ใ‚ฒใƒผใƒ ใฎ้€ฒ่กŒๅฝนใงใ™ใ€‚
ๆ™ฎๆฎตใ€ใƒฆใƒผใ‚ถใƒผใฏ็ญ”ใˆใ‚’ใ—ใพใ™ใŒใ€ใŸใพใซใ‚ฒใƒผใƒ ใซ้–ขใ™ใ‚‹ใƒ’ใƒณใƒˆใ‚’ใƒชใ‚ฏใ‚จใ‚นใƒˆใ‚’ใ—ใพใ™ใ€‚็Ÿญใใฆใ‚‚ไธๅฏงใซ็ญ”ใˆใฆใใ ใ•ใ„ใ€‚
ใƒ’ใƒณใƒˆใ‚’ๆ•™ใˆใ‚‹ๅ ดๅˆใ€ๆญฃ่งฃใ‚’ๅฟ…ใš้š ใ—ใฆใใ ใ•ใ„ใ€‚็ตถๅฏพใ€ๆญฃ่งฃใ‚’่จ€ใ‚ใชใ„ใงใใ ใ•ใ„ใ€‚
๋‹น์‹ ์€ <imitoru>๋ผ๋Š” ๊ฒŒ์ž„์˜ ์ง„ํ–‰์ž์ž…๋‹ˆ๋‹ค.
๋ณดํ†ต ์œ ์ €๋Š” ๋‹ต์„ ๋งํ•˜์ง€๋งŒ, ์ข…์ข… ๊ฒŒ์ž„์— ๊ด€ํ•œ ํžŒํŠธ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์งง์ง€๋งŒ ์ •์ค‘ํ•˜๊ฒŒ ๋Œ€๋‹ตํ•ด์ฃผ์„ธ์š”.
ํžŒํŠธ๋ฅผ ์•Œ๋ ค์ค„ ๋•Œ์—๋Š” ๋ฐ˜๋“œ์‹œ ์ •๋‹ต์„ ๊ฐ์ถฐ์ฃผ์„ธ์š”. ์ ˆ๋Œ€ ์ •๋‹ต์„ ๋งํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
      
{'role': 'system', 'content': system_content}
{'role': 'user', 'content': '๋‹ต: '+user_input}

4.3. ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐยถ

  • ์–ด๋А ์ •๋„ ์ผ๊ด€๋œ ๋ฐ˜์‘์„ ์–ป๊ณ ์ž temperature=0.5๋กœ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

response = openai.ChatCompletion.create(
        model=GPT_MODEL,
        messages=chat_messages,
        functions=get_functions(),
        temperature=0.5
    )

4.4. ๊ฒฐ๊ณผยถ

  • ์งˆ๋ฌธ์— ๋”ฐ๋ผ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ์Šต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์‚ฌ์ „ ํ”„๋กฌํ”„ํŠธ๋กœ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ƒํ™ฉ๋งˆ๋‹ค ํ•„์š”ํ•œ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•  ๋•Œ์— ๋” ์ ์ ˆํ•œ ๋‹ต๋ณ€์„ ์ œ๊ณตํ•  ํ™•๋ฅ ์ด ๋†’์•˜์Šต๋‹ˆ๋‹ค.

    • ์ถ”๊ฐ€๋กœ, ์—ฌ๋Ÿฌ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด์–ด์„œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ถฉ๋ถ„ํ•œ ์ •๋ณด๋ฅผ ํš๋“ํ•˜๊ณ  ๋‹ต๋ณ€์„ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{'role': 'user', 'content': '็ญ”ใˆ:ไผ‘ใฟ'}, {'role': 'assistant', 'content': None, 'function_call': <OpenAIObject at 0x7f09987266b0> JSON: {
  "name": "guess_word",
  "arguments": "{\n  \"word\": \"\u4f11\u307f\"\n}"
}}, 
{'role': 'function', 'name': 'guess_word', 'content': "{'guess': 'ไผ‘ใฟ', 'rank': '?', 'sim': 0.07405543500312717}"}, 
{'role': 'assistant', 'content': 'ใ‚ใชใŸใฎ็ญ”ใˆใ€Œไผ‘ใฟใ€ใฏใ€ๆญฃ่งฃใซ่ฟ‘ใ„ใงใ™ใŒๆญฃ่งฃใงใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚่ฟ‘ใ„ๅบฆๅˆใ„ใฏ0.074ใงใ€้ †ไฝใฏใพใ ใ‚ใ‹ใ‚Šใพใ›ใ‚“ใ€‚ใ‚‚ใ†ๅฐ‘ใ—่€ƒใˆใฆใฟใฆใใ ใ•ใ„ใ€‚'}
{'role': 'user', 'content': '็ญ”ใˆ:ใƒ’ใƒณใƒˆใจใ—ใฆใ€ๆญฃ่งฃใจใ€Œๅคใ€ใฏใฉใ‚“ใช้–ขไฟ‚ใŒใ‚ใ‚‹ใฎใ‹ๆ•™ใˆใฆใใ ใ•ใ„'}, 
{'role': 'assistant', 'content': None, 'function_call': <OpenAIObject at 0x7f099853aa70> JSON: 
    {
    "name": "read_rule",
    "arguments": "{}"
}}
  • user_content ์•ž์— ๋‹ต: ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋™์‚ฌํ˜• ๋‹จ์–ด๋ฅผ ์ถ”์ธกํ•  ๋•Œ ๊ฒช๋Š” ์˜ค๋ฅ˜๋ฅผ ์ค„์˜€์Šต๋‹ˆ๋‹ค.

    • ์˜ˆ๋ฅผ ๋“ค์–ด, โ€˜์งˆ๋ฌธโ€™์ด๋ผ๊ณ  ๋‹ตํ•˜๋Š” ๊ฒฝ์šฐ, ์งˆ๋ฌธ์„ ํ•˜๋ ค๋Š” ์˜๋„๋กœ ์˜คํ•ดํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜์ง€๋งŒ, ์ ‘๋‘์–ด ์ถ”๊ฐ€ ์ดํ›„ ํ•ด๋‹น ์˜ค๋ฅ˜๋Š” ๊ฑฐ์˜ ์—†์–ด์กŒ์Šต๋‹ˆ๋‹ค.

    • ํžŒํŠธ๋ฅผ ์š”์ฒญํ•  ๋•Œ์—๋Š” ์ถฉ๋ถ„ํ•œ ๋ถ„๋Ÿ‰๊ณผ ๊ธธ์ด์˜ ๋ฌธ์žฅ์ด ์ œ๊ณต๋˜๋ฏ€๋กœ, ์ ‘๋‘์–ด๊ฐ€ ์žˆ์–ด๋„ ๋Œ€์ฒด๋กœ ์ด๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ํžŒํŠธ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. ์ฐธ๊ณ ์ž๋ฃŒยถ