Skip to content

Latest commit

 

History

History
282 lines (254 loc) · 15.9 KB

File metadata and controls

282 lines (254 loc) · 15.9 KB

로그 분석

전체적인 Plan and execute 동작의 이해를 위한 로그 입니다. "parsed":"Plan(steps="과 같이 array로 결과를 얻습니다.

Plan Node

Plan에 대한 결과는 아래와 같습니다.

{
   "raw":"AIMessage(content=""",
   "additional_kwargs="{
      "usage":{
         "prompt_tokens":870,
         "completion_tokens":507,
         "total_tokens":1377
      },
      "stop_reason":"tool_use",
      "model_id":"anthropic.claude-3-sonnet-20240229-v1:0"
   },
   "response_metadata="{
      "usage":{
         "prompt_tokens":870,
         "completion_tokens":507,
         "total_tokens":1377
      },
      "stop_reason":"tool_use",
      "model_id":"anthropic.claude-3-sonnet-20240229-v1:0"
   },
   "id=""run-4de21471-b777-4500-aaf8-24f47cd52532-0",
   "tool_calls="[
      {
         "name":"Plan",
         "args":{
            "steps":[
               "1단계: INFJ는 Myers-Briggs 성격 유형 지표(MBTI)의 16가지 유형 중 하나로, '내향적(I)', '직관적(N)', '감정적(F)', '판단적(J)'의 특성을 가지고 있습니다.",
               "2단계: 내향적(I) 성향으로 인해 외부 세계보다 내면 세계에 더 관심이 많고, 혼자 있는 시간을 좋아하며 깊이 있는 대화를 즐깁니다.",
               "3단계: 직관적(N) 성향으로 추상적이고 이론적인 사고를 하며, 큰 그림을 보는 경향이 있고 창의성과 상상력이 풍부합니다.",
               "4단계: 감정적(F) 성향 때문에 타인의 감정을 잘 이해하고 배려심이 많으며, 인간관계를 중요하게 여기고 조화로운 분위기를 좋아합니다.",
               "5단계: 판단적(J) 성향으로 계획적이고 체계적이며, 일을 미루지 않고 효율적으로 처리하려 하고 결과 지향적입니다.",
               "6단계: 종합적으로 INFJ 유형은 이상주의적이고 통찰력이 뛰어나며, 타인을 잘 이해하고 배려하는 성향을 가지고 있지만 내향적이어서 쉽게 지치기도 합니다."
            ]
         },
         "id":"toolu_bdrk_0127Pn8eQJEuHJNoNnPra9Wa",
         "type":"tool_call"
      }
   ],
   "usage_metadata="{
      "input_tokens":870,
      "output_tokens":507,
      "total_tokens":1377
   }")",
   "parsed":"Plan(steps="[
      "1단계: INFJ는 Myers-Briggs 성격 유형 지표(MBTI)의 16가지 유형 중 하나로, '내향적(I)', '직관적(N)', '감정적(F)', '판단적(J)'의 특성을 가지고 있습니다.",
      "2단계: 내향적(I) 성향으로 인해 외부 세계보다 내면 세계에 더 관심이 많고, 혼자 있는 시간을 좋아하며 깊이 있는 대화를 즐깁니다.",
      "3단계: 직관적(N) 성향으로 추상적이고 이론적인 사고를 하며, 큰 그림을 보는 경향이 있고 창의성과 상상력이 풍부합니다.",
      "4단계: 감정적(F) 성향 때문에 타인의 감정을 잘 이해하고 배려심이 많으며, 인간관계를 중요하게 여기고 조화로운 분위기를 좋아합니다.",
      "5단계: 판단적(J) 성향으로 계획적이고 체계적이며, 일을 미루지 않고 효율적으로 처리하려 하고 결과 지향적입니다.",
      "6단계: 종합적으로 INFJ 유형은 이상주의적이고 통찰력이 뛰어나며, 타인을 잘 이해하고 배려하는 성향을 가지고 있지만 내향적이어서 쉽게 지치기도 합니다."
   ]")",
   "parsing_error":"None"
}

Execution Node

"1단계: INFJ는 Myers-Briggs 성격 유형 지표(MBTI)의 16가지 유형 중 하나로, '내향적(I)', '직관적(N)', '감정적(F)', '판단적(J)'의 특성을 가지고 있습니다."에 대한 결과입니다.

아래에서는 search_by_knowledge_base에 대한 결과를 얻습니다.

{
   "messages":[
      "HumanMessage(content=""1단계: INFJ는 Myers-Briggs 성격 유형 지표(MBTI)의 16가지 유형 중 하나로, '내향적(I)', '직관적(N)', '감정적(F)', '판단적(J)'의 특성을 가지고 있습니다.",
         "additional_kwargs="{
            
         },
         "response_metadata="{
            
         },
         "id=""0ebd21d6-01d9-4999-b6f1-7530784b17a2"")",
      "AIMessage(content=""",
         "additional_kwargs="{
            "usage":{
               "prompt_tokens":755,
               "completion_tokens":112,
               "total_tokens":867
            },
            "stop_reason":"tool_use",
            "model_id":"anthropic.claude-3-sonnet-20240229-v1:0"
         },
         "response_metadata="{
            "usage":{
               "prompt_tokens":755,
               "completion_tokens":112,
               "total_tokens":867
            },
            "stop_reason":"tool_use",
            "model_id":"anthropic.claude-3-sonnet-20240229-v1:0"
         },
         "id=""run-baecea41-1c95-4d42-82dd-21fa507b0e59-0",
         "tool_calls="[
            {
               "name":"search_by_knowledge_base",
               "args":{
                  "keyword":"INFJ personality type"
               },
               "id":"toolu_bdrk_01XHqoxkEGpWwvGswZwm6QJs",
               "type":"tool_call"
            }
         ],
         "usage_metadata="{
            "input_tokens":755,
            "output_tokens":112,
            "total_tokens":867
         }")",
      "ToolMessage(content=""",
         "name=""search_by_knowledge_base",
         "id=""28482446-1127-4b6c-b8b2-34475fd90132",
         "tool_call_id=""toolu_bdrk_01XHqoxkEGpWwvGswZwm6QJs"")",
      "AIMessage(content=""INFJ는 Myers-Briggs 성격 유형 지표(MBTI)에서 가장 드문 유형 중 하나입니다. 이 유형은 다음과 같은 특징을 가지고 있습니다:\n\n- 내향적(I) - 에너지를 내부에서 얻으며 조용하고 사색적입니다.\n- 직관적(N) - 추상적 사고와 이론, 패턴, 의미에 관심이 많습니다. \n- 감정적(F) - 감정과 가치를 중요하게 여기며 타인의 감정에 민감합니다.\n- 판단적(J) - 체계적이고 계획적이며 결과 지향적입니다.\n\nINFJ 유형은 이상주의적이고 통찰력이 뛰어나며 타인을 잘 이해하고 배려합니다. 그러나 자신의 감정을 잘 드러내지 않고 내면의 세계에 집중하는 경향이 있습니다. 또한 완벽주의 성향이 있어 높은 기준을 갖고 있습니다. 전체적으로 INFJ는 창의적이고 통찰력 있으며 이타적인 성격 유형으로 알려져 있습니다.",
         "additional_kwargs="{
            "usage":{
               "prompt_tokens":842,
               "completion_tokens":406,
               "total_tokens":1248
            },
            "stop_reason":"end_turn",
            "model_id":"anthropic.claude-3-sonnet-20240229-v1:0"
         },
         "response_metadata="{
            "usage":{
               "prompt_tokens":842,
               "completion_tokens":406,
               "total_tokens":1248
            },
            "stop_reason":"end_turn",
            "model_id":"anthropic.claude-3-sonnet-20240229-v1:0"
         },
         "id=""run-90d3083f-e489-46a6-901c-b65b68ea2591-0",
         "usage_metadata="{
            "input_tokens":842,
            "output_tokens":406,
            "total_tokens":1248
         }")"
   ]
}

Replan Node

Plan후에 전달된 state의 예는 아래와 같습니다. state에서는 input, plan, past_steps을 이용합니다.

{
   "input":"INFJ의 성격에 대해 알려줘. ",
   "plan":[
      "1단계: INFJ는 Myers-Briggs 성격 유형 지표(MBTI)의 16가지 유형 중 하나로, '내향적(I)', '직관적(N)', '감정적(F)', '판단적(J)'의 특성을 가지고 있습니다.",
      "2단계: 내향적(I) 성향으로 인해 외부 세계보다 내면 세계에 더 관심이 많고, 혼자 있는 시간을 좋아하며 깊이 있는 대화를 즐깁니다.",
      "3단계: 직관적(N) 성향으로 추상적이고 이론적인 사고를 하며, 큰 그림을 보는 경향이 있고 창의성과 상상력이 풍부합니다.",
      "4단계: 감정적(F) 성향 때문에 타인의 감정을 잘 이해하고 배려심이 많으며, 인간관계를 중요하게 여기고 조화로운 분위기를 좋아합니다.",
      "5단계: 판단적(J) 성향으로 계획적이고 체계적이며, 일을 미루지 않고 효율적으로 처리하려 하고 결과 지향적입니다.",
      "6단계: 종합적으로 INFJ 유형은 이상주의적이고 통찰력이 뛰어나며, 타인을 잘 이해하고 배려하는 성향을 가지고 있지만 내향적이어서 쉽게 지치기도 합니다."
   ],
   "past_steps":[
      "1단계: INFJ는 Myers-Briggs 성격 유형 지표(MBTI)의 16가지 유형 중 하나로, '내향적(I)', '직관적(N)', '감정적(F)', '판단적(J)'의 특성을 가지고 있습니다."
   ],   
}

replan node의 output.content의 예는 아래와 같습니다.

2단계: 내향적(I) 성향으로 인해 외부 세계보다 내면 세계에 더 관심이 많고, 혼자 있는 시간을 좋아하며 깊이 있는 대화를 즐깁니다.
3단계: 직관적(N) 성향으로 추상적이고 이론적인 사고를 하며, 큰 그림을 보는 경향이 있고 창의성과 상상력이 풍부합니다. 
4단계: 감정적(F) 성향 때문에 타인의 감정을 잘 이해하고 배려심이 많으며, 인간관계를 중요하게 여기고 조화로운 분위기를 좋아합니다.
5단계: 판단적(J) 성향으로 계획적이고 체계적이며, 일을 미루지 않고 효율적으로 처리하려 하고 결과 지향적입니다.
6단계: 종합적으로 INFJ 유형은 이상주의적이고 통찰력이 뛰어나며, 타인을 잘 이해하고 배려하는 성향을 가지고 있지만 내향적이어서 쉽게 지치기도 합니다.

output.content를 Act를 이용해 structured_output한 결과는 아래와 같습니다. "parsed":"Act(action=Plan(steps=" 이므로 return으로 새로운 Plan인 result.action.steps을 전달합니다.

   "parsed":"Act(action=Plan(steps="[
      "1. 사용자가 제공한 정보를 바탕으로 INFJ 성격 유형의 특징을 요약하고 있습니다.",
      "2. 내향적(I) 성향으로 인해 내면 세계에 관심이 많고 혼자 있는 시간을 좋아하며 깊이 있는 대화를 즐기는 점을 설명했습니다.",
      "3. 직관적(N) 성향으로 추상적, 이론적 사고를 하고 창의성과 상상력이 풍부한 점을 언급했습니다.",
      "4. 감정적(F) 성향으로 타인의 감정을 잘 이해하고 배려심이 많으며 인간관계와 조화로운 분위기를 중요하게 여기는 점을 설명했습니다.",
      "5. 판단적(J) 성향으로 계획적이고 체계적이며 일을 효율적으로 처리하려 하고 결과 지향적인 점을 언급했습니다.",
      "6. 마지막으로 INFJ 유형이 이상주의적이고 통찰력이 뛰어나지만 내향적이어서 쉽게 지칠 수 있다는 점을 종합적으로 설명했습니다."
   ]"))",
   "parsing_error":"None"
}

replan으로 action이 "parsed":"Act(action=Plan(steps= 인 경우에 새로운 plan을 수행합니다.

plan-execution-replan의 과정을 반복하면서 마지막 step에는 아래와 같은 응답이 전달됩니다.

{
   "input":"INFJ의 성격에 대해 알려줘. ",
   "plan":[
      "1. INFJ의 네 가지 선호 경향(내향성, 직관력, 감정, 판단력)이 어떻게 결합되어 전반적인 행동과 삶의 태도를 형성하는지 설명합니다.",
      "2. INFJ의 독특한 강점인 이상주의, 창의성, 헌신성 등을 강조합니다.",
      "3. INFJ가 직면할 수 있는 잠재적 어려움인 완벽주의, 비판에 대한 민감성 등을 언급합니다."
   ],
   "past_steps":[
      "1단계: INFJ는 Myers-Briggs 성격 유형 지표(MBTI)의 16가지 유형 중 하나로, '내향적(I)', '직관적(N)', '감정적(F)', '판단적(J)'의 특성을 가지고 있습니다.",
      "1. 사용자가 제공한 정보를 바탕으로 INFJ 성격 유형의 특징을 요약하고 있습니다.",
      "1. 내향적(I) 성향에 대해 설명하겠습니다.",
      "1. 직관적(N) 성향에 대해 설명합니다.",
      "2. 감정적(F) 성향에 대해 설명합니다.",
      "3. 판단적(J) 성향에 대해 설명합니다.",
      "1. INFJ 유형의 네 가지 기본 선호경향(내향, 직관, 감정, 판단)이 어떻게 통합되어 전체적인 성격과 행동 패턴을 만드는지 설명한다.",
      "1. INFJ의 내향적(I) 성향과 직관적(N) 성향에 대해 설명하기",
      "2. INFJ의 감정적(F) 성향과 판단적(J) 성향에 대해 설명하기",
      "Summarize the key personality traits of INFJs by integrating their four preferences (Introversion, Intuition, Feeling, Judging)",
      "1. INFJ의 네 가지 선호 경향(내향성, 직관력, 감정, 판단력)이 어떻게 결합되어 전반적인 행동과 삶의 태도를 형성하는지 설명합니다."
   ],
}

replan의 output.content는 아래와 같습니다.

replanner output:  여기 INFJ 성격에 대한 나머지 계획입니다:
2. INFJ의 독특한 강점인 이상주의, 창의성, 헌신성 등을 강조합니다.
3. INFJ가 직면할 수 있는 잠재적 어려움인 완벽주의, 비판에 대한 민감성 등을 언급합니다.
이 두 가지 단계를 수행하면 INFJ 성격에 대한 포괄적인 설명이 완성됩니다. 더 이상 추가할 단계는 없습니다.

이것을 다시 replan하면 아래와 같습니다.

{
   "raw":"AIMessage(content=""",
   "additional_kwargs="{
      "usage":{
         "prompt_tokens":652,
         "completion_tokens":362,
         "total_tokens":1014
      },
      "stop_reason":"tool_use",
      "model_id":"anthropic.claude-3-sonnet-20240229-v1:0"
   },
   "response_metadata="{
      "usage":{
         "prompt_tokens":652,
         "completion_tokens":362,
         "total_tokens":1014
      },
      "stop_reason":"tool_use",
      "model_id":"anthropic.claude-3-sonnet-20240229-v1:0"
   },
   "id=""run-c751ee01-7774-4621-924f-9235f710f4c3-0",
   "tool_calls="[
      {
         "name":"Act",
         "args":{
            "action":{
               "response":"INFJ 성격 유형에 대한 포괄적인 설명을 위해 제안하신 단계들을 반영하여 다음과 같이 요약할 수 있습니다:\n\n2. INFJ의 독특한 강점은 이상주의, 창의성, 헌신성 등입니다. 이들은 비전을 가지고 의미 있는 변화를 만들어내려 노력하며, 새로운 아이디어를 내고 열정적으로 추진력을 발휘합니다. \n\n3. 그러나 INFJ는 완벽주의 경향과 비판에 지나치게 민감할 수 있습니다. 자신의 기준이 너무 높아 스트레스를 받거나, 다른 이들의 부정적 피드백에 쉽게 상처받을 수 있습니다.\n\n이렇게 INFJ의 강점과 약점을 모두 포함하여 균형 잡힌 관점에서 이 성격 유형을 이해할 수 있습니다."
            }
         },
         "id":"toolu_bdrk_01XgPz8facicMXMo8t95pBSF",
         "type":"tool_call"
      }
   ],
   "usage_metadata="{
      "input_tokens":652,
      "output_tokens":362,
      "total_tokens":1014
   }")",
   "parsed":"Act(action=Response(response=""INFJ 성격 유형에 대한 포괄적인 설명을 위해 제안하신 단계들을 반영하여 다음과 같이 요약할 수 있습니다:\n\n2. INFJ의 독특한 강점은 이상주의, 창의성, 헌신성 등입니다. 이들은 비전을 가지고 의미 있는 변화를 만들어내려 노력하며, 새로운 아이디어를 내고 열정적으로 추진력을 발휘합니다. \n\n3. 그러나 INFJ는 완벽주의 경향과 비판에 지나치게 민감할 수 있습니다. 자신의 기준이 너무 높아 스트레스를 받거나, 다른 이들의 부정적 피드백에 쉽게 상처받을 수 있습니다.\n\n이렇게 INFJ의 강점과 약점을 모두 포함하여 균형 잡힌 관점에서 이 성격 유형을 이해할 수 있습니다.""))",
   "parsing_error":"None"
}

output이 "parsed":"Act(action=Response(response="이므로 실행을 종료하고 최종 답변을 구합니다.