langgraph / / 2024. 11. 22. 18:03

[langgraph][Reflection & Critique] Basic Reflection

langgraph의 공식문서를 번역해 놓은 자료입니다. 필요한 경우 부연 설명을 추가하였습니다. 문제가 되면 삭제하겠습니다.

https://langchain-ai.github.io/langgraph/tutorials/reflection/reflection/

LLM 에이전트 컨텍스트에서 성찰(reflection)이란, LLM에게 자신의 과거 단계(도구나 환경에서의 잠재적 관찰 포함)를 검토하도록 요청하여 선택된 행동의 품질을 평가하는 과정을 말한다. 이는 이후 재계획(re-planning), 검색(search), 또는 평가(evaluation)와 같은 작업에 활용된다.

이 예제에서는 매우 간단한 형태의 reflection을 나타낸다.

준비

먼저, 필요한 패키지들을 설치하고 API 키를 설정해 보자.

$ pip install -U --quiet langgraph langchain-fireworks tavily-python
from dotenv import load_dotenv

load_dotenv()

.env

TAVILY_API_KEY=xxxxxx
FIREWORKS_API_KEY=xxxxxx

여기서는 fireworks api key가 필요하다. 아래로 접속하여 api key를 무료로 발급받을 수 있다.
https://fireworks.ai/account/api-keys

생성

예제로, "5개의 문단이 있는 에세이" 생성기를 만들어 보자. 먼저, 생성기를 만든다.

from langchain_core.messages import AIMessage, BaseMessage, HumanMessage
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_fireworks import ChatFireworks

prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            "You are an essay assistant tasked with writing excellent 5-paragraph essays."
            " Generate the best essay possible for the user's request."
            " If the user provides critique, respond with a revised version of your previous attempts.",
        ),
        MessagesPlaceholder(variable_name="messages"),
    ]
)
llm = ChatFireworks(
    model="accounts/fireworks/models/mixtral-8x7b-instruct", max_tokens=32768
)
generate = prompt | llm
essay = ""
request = HumanMessage(
    content="어린 왕자가 현대 아동기에 왜 중요한지에 대한 에세이를 작성해줘"
)
for chunk in generate.stream({"messages": [request]}):
    print(chunk.content, end="")
    essay += chunk.content
Title: 왜 어린 왕자가 현대 아동기에 중요한가

 intro:
현대 아동기에서 어린 왕자는 아직도 중요한 역할을 하고 있습니다. 그의 이야기는 자녀들에게 다양한 가치와 교훈을 줄 수 있기 때문입니다. 이 에세이에서는 어린 왕자가 현대 아동기에 중요한 이유를 설명하고자 합니다.

paragraph 1:
첫째로, 어린 왕자는 bravery와 courage의 예를 보여줍니다. 어린 왕자는 처음에는 얌전하고 조용한 아이로 나왔지만, 괴물을 쫓아내기 위해 용감하게 나서는 모습을 보이면서  Readers를 감동시켰습니다. 이 용감함은 어린이들에게 어려운 상황에서도 용기를 내서 도전하는 것이 중요함을 알려줍니다.

paragraph 2:
둘째로, 어린 왕자는 연민과  Empathy를 배우는 데 도움이 됩니다. 어린 왕자는 처음에는 고독하고 외로웠지만, 친구들과 함께하면서 더 행복해지는 모습을 보이면서, 어린이들이 다른 사람들의 감정을 이해하고 공감하는 것이 중요함을 알려줍니다.

paragraph 3:
셋째로, 어린 왕자는  Imagination과 창의성을 촉진시킵니다. 어린 왕자의 이야기는 환상적이고 창의적인 요소로 가득차있어, 어린이들의  Imagination을 자극합니다. 이러한 창의적인 생각력은 어린이들이 다양한 문제를 해결하는 데 도움이 될 수 있습니다.

paragraph 4:
마지막으로, 어린 왕자는 자신의 능력과 가치를 믿는 데 도움이 됩니다. 어린 왕자는 처음에는 자신이  Special하지 못하다고 생각했지만, 괴물을 쫓아내고 친구들과 함께하면서 자신의 가치를 깨달아냈습니다. 이러한 자신감은 어린이들이 자신의 능력과 가치를 인정하고 믿는 데 도움이 될 수 있습니다.

conclusion:
어린 왕자는 현대 아동기에서도 중요한 역할을 하고 있습니다. 그의 이야기는 어린이들에게 용감함, 연민, 창의성, 자신감을 배우는 데 도움이 되기 때문입니다. 따라서, 어린이들에게 어린 왕자의 이야기를 전하는 것이 중요합니다.

reflect

reflection_prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            "You are a teacher grading an essay submission. Generate critique and recommendations for the user's submission."
            " Provide detailed recommendations, including requests for length, depth, style, etc.",
        ),
        MessagesPlaceholder(variable_name="messages"),
    ]
)
reflect = reflection_prompt | llm
reflection = ""
for chunk in reflect.stream({"messages": [request, HumanMessage(content=essay)]}):
    print(chunk.content, end="")
    reflection += chunk.content
수정된 에세이:

제목: 왜 현대 아동기에서 어린 왕자가 중요합니까?

서lope 1: 앤토INE 드 스텐 마르ķois가 1943년에 출판한 '어린 왕자'는 세계적인 판매 성과를 거둬, 아동과 성인 모두에게 인기를 끌었습니다. 이 책은 현대 아동기에서도 중요한 책으로, 다음과 같은 이유로 그 중요성을 지니고 있습니다.

논점 1: 어린 왕자는 상상력과 창의성을 촉진합니다. 독특한 행성과 그 행성을 여행하는 어린 왕자의 이야기는 어린 독자들의 상상력을 자극하고, 창의적인 사고를 유도합니다. 현대 사회에서 어린이들이 축적하는 정보가 많아지면서 창의적 해결책을 찾고 상상력을 키우는 것이 중요해졌습니다.

서lope 2: 어린 왕자는 사회와 관계 형성에 대한 교훈을 제공합니다. 책에서 등장하는 다양한 캐릭터들과 어린 왕자의 대화는 사회적 관계의 중요성을 강조합니다. 어린이들이 다른 사람과 상호 작용하고 소통하는 방법을 배우는 데 도움이 되며, 동시에 공감과 연민을 배우게 됩니다.

논점 2: 어린 왕자는 삶의 의미와 가치에 대한 고찰을 도모합니다. 어린 왕자는 별을 보고 삶의 의미에 대해 고민하며,  rose를 통해 사랑과 관계에 대한 깊은 고찰을 합니다. 이러한 내용은 어린이들에게 삶에 대한 고민과 개인적 가치관의 형성을 도와줍니다.

서lope 3: 어린 왕자는 자연과 환경 보호에 대한 인식을 높입니다. 책에서 등장하는  planets와 baobab trees는 자연을 존중하고 보호해야 한다는 메시지를 전달합니다. 현대 사회에서 환경 문제가 점점 중요해지고 있기 때문에, 어린이들에게 이러한 인식을 부여하는 것이 중요합니다.

결론: 어린 왕자는 현대 아동기에서 중요한 책입니다. 이 책은 어린이들의 상상력과 창의성, 사회적 관계, 삶의 의미와 가치, 그리고 자연과 환경 보호에 대한 인식을 키우는 데 도움이 됩니다. 따라서 어린이들에게 전하고 싶은 교훈과 가치가 담긴 책으로, 지속적으로 인기를 끌고 있습니다.수정된 에세이:

* 수정된 제목: "현대 아동기에서 어린 왕자가 중요한 이유" - 더 간결하고 구체적인 제목으로 수정하였습니다.
* 수정된 서lope 구조: 서lope를 통해 어린 왕자가 현대 아동기에 중요하다는 주장을 더 명확하게 설 forth하고 있습니다.
* 논점 추가: 어린 왕자가 현대 아동기에서 중요한 이유 중 하나인 교육에 대한 논점을 추가하였습니다.
* 더 구체적인 예시: 각 논점에서 더 구체적인 예시와 증거를 제시하여 주장을 더욱 강화하였습니다.
* 덜 formationals: 형식에 맞추어 작성하는 것이 아니라, 더 직관적이고 간결한 글을 작성하도록 노력하였습니다.

수정된 에세이:

제목: 현대 아동기에서 어린 왕자가 중요한 이유

서lope 1: 앤토INE 드 스텐 마르ķois가 1943년에 출판한 '어린 왕자'는 세계적인 판매 성과를 거둬, 아동과 성인 모두에게 인기를 끌었습니다. 이 책은 현대 아동기에서도 중요한 책으로, 다음과 같은 이유로 그 중요성을 지니고 있습니다.

논점 1: 어린 왕자는 상상력과 창의성을 촉진합니다. 독특한 행성과 그 행성을 여행하는 어린 왕자의 이야기는 어린 독자들의 상상력을 자극하고, 창의적인 사고를 유도합니다. 현대 사회에서 어린이들이 축적하는 정보가 많아지면서 창의적 해결책을 찾고 상상력을 키우는 것이 중요해졌습니다.

서lope 2: 어린 왕자는 사회와 관계 형성에 대한 교훈을 제공합니다. 책에서 등장하는 다양한 캐릭터들과 어린 왕자의 대화는 사회적 관계의 중요성을 강조합니다. 어린이들이 다른 사람과 상호 작용하고 소통하는 방법을 배우는 데 도움이 되며, 동시에 공감과 연민을 배우게 됩니다.

논점 2: 어린 왕자는 삶의 의미와 가치에 대한 고찰을 도모합니다. 어린 왕자는 별을 보고 삶의 의미에 대해 고민하며,  rose를 통해 사랑과 관계에 대한 깊은 고찰을 합니다. 이러한 내용은 어린이들에게 삶에 대한 고민과 개인적 가치관의 형성을 도와줍니다.

논점 3: 어린 왕자는 교육에 도움이 됩니다. 어린 왕자는 다양한 문제를 해결하는 방법과 사고력을 키우는 데 도움이 되며, 이러한 능력은 학교 및 일상 생활에서 매우 중요합니다.

서lope 3: 어린 왕자는 자연과 환경 보호에 대한 인식을 높입니다. 책에서 등장하는  planets와 baobab trees는 자연을 존중하고 보호해야 한다는 메시지를 전달합니다. 현대 사회에서 환경 문제가 점점 중요해지고 있기 때문에, 어린이들에게 이러한 인식을 부여하는 것이 중요합니다.

결론: 어린 왕자는 현대 아동기에서 중요한 책입니다. 이 책은 어린이들의 상상력과 창의성, 사회적 관계, 삶의 의미와 가치, 교육, 그리고 자연과 환경 보호에 대한 인식을 키우는 데 도움이 됩니다. 따라서 어린이들에게 전하고 싶은 교훈과 가치가 담긴 책으로, 지속적으로 인기를 끌고 있습니다.

추천 사항:

* 더 긴 글을 작성하는 경우, 각 논점을 더 깊이 다루고 구체적인 예시를 제시하는 것이 좋습니다.
* 더 다양한 관점과 시각을 반영하여 글을 작성하는 것이 좋습니다.
* 더 많은 연구와 증거를 참고하여 주장을 더욱 강화하는 것이 좋습니다.
* 더 간결하고 직관적인 글을 작성하는 것이 좋습니다.

Repeat

그리고... 이게 전부다! 고정된 단계 수만큼 반복하거나, LLM(또는 기타 검증)을 사용해 완성된 결과물이 충분히 만족스러운지 결정할 수도 있다.

for chunk in generate.stream(
    {"messages": [request, AIMessage(content=essay), HumanMessage(content=reflection)]}
):
    print(chunk.content, end="")

그래프 정의

이제 그래프로 연결하자.

from typing import Annotated, List, Sequence
from langgraph.graph import END, StateGraph, START
from langgraph.graph.message import add_messages
from langgraph.checkpoint.memory import MemorySaver
from typing_extensions import TypedDict


class State(TypedDict):
    messages: Annotated[list, add_messages]


async def generation_node(state: State) -> State:
    return {"messages": [await generate.ainvoke(state["messages"])]}


async def reflection_node(state: State) -> State:
    cls_map = {"ai": HumanMessage, "human": AIMessage}
    # 첫 메시지는 사용자 메시지이다. 모든 노드에서 동일하게 가지고 있다.
    translated = [state["messages"][0]] + [
        cls_map[msg.type](content=msg.content) for msg in state["messages"][1:]
    ]
    res = await reflect.ainvoke(translated)
    # 생성기에서 사용자 피드백으로 이 출력값을 사용한다
    return {"messages": [HumanMessage(content=res.content)]}


builder = StateGraph(State)
builder.add_node("generate", generation_node)
builder.add_node("reflect", reflection_node)
builder.add_edge(START, "generate")


def should_continue(state: State):
    if len(state["messages"]) > 6:
        # 3회 반복 후 종료
        return END
    return "reflect"


builder.add_conditional_edges("generate", should_continue)
builder.add_edge("reflect", "generate")
memory = MemorySaver()
graph = builder.compile(checkpointer=memory)
config = {"configurable": {"thread_id": "1"}}
async def run():
    async for event in graph.astream(
        {
            "messages": [
                HumanMessage(
                    content="어린 왕자가 현대 아동기에 왜 중요한지에 대한 에세이를 한국어로 작성해줘."
                )
            ],
        },
        config,
    ):
        print(event)
        print("---")


asyncio.run(run())
{'generate': {'messages': [AIMessage(content='Title: 왜 어린 왕자가 현대 아동기에 중요한가\n\n서lope 1: 어린 왕자(The Little Prince)는 Saint-Exupéry가 지은 고전적인 소설로, 아동을 위한 책이면서도 어른들에게도 영감을 줄 수 있는 명작입니다. 현대 아동기(Contemporary Childhood)에서 어린 왕자는 다음과 같은 몇 가지 측면에서 중요합니다.\n\n먼저, 어린 왕자는 상상력과 창의성을 촉진시킵니다. 이 책에는 별에 사는 왕자, 뱀, ose, 및 기타 다양한 환상적인 캐릭터들이 등장합니다. 어린 독자들은 그들의 이야기를 통해 새로운 세계와 가능성을 발견하고, 창의적인 해결책을 찾아내는 능력을 키울 수 있습니다.\n\n두 번째, 어린 왕자는 사회와 관계에 대한 이해를 높입니다. 왕자는 각각 다른 행성에 있는 성격 다양한 캐릭터들과 만나면서, 다양한 사회적, 심리ologic 문제들을 직면합니다. 이러한 만남을 통해 어린 독자들은 다른 사람들의 관점을 이해하고, 자신과 다른 사람들 간의 관계에 대해 생각할 수 있습니다.\n\n세 번째, 어린 왕자는 책에서 다루는 주제들, 예를 들어 책임, 사랑, 솔itude 등 다양한 삶의 교훈을 제공합니다. 어린 독자들은 왕자가 어른들에게 전해주는 교훈들을 통해, 자신의 삶에서 중요한 가치들을 배울 수 있습니다.\n\n결론적으로, 어린 왕자는 현대 아동기에서 중요한 책입니다. 상상력과 창의성, 사회와 관계, 그리고 삶의 교훈을 포함하여, 어린 독자들에게 다양한 것을 제공합니다. 따라서, 어린 왕자는 아동을 위한 책과 어른들에게도 영감을 줄 수 있는 아름다운 소설입니다.\n\n---\n\n수정된 에세이:\n\n제목: 현대 아동기에서 중요한 어린 왕자\n\n서lope 1: 세상에서 가장 사랑받는 어린이 소설 중 하나인 어린 왕자(The Little Prince)는 지난 세기를 통틀어 아동을 위한 책으로서 큰 인기를 끌었습니다. 그러나 오늘날의 아동들에게도 중요한 교훈과 영감을 줄 수 있는 책입니다. 이 에세이에서는 어린 왕자가 현대 아동기에서 중요한 이유를 설명합니다.\n\n첫째, 어린 왕자는 상상력과 창의력을 기른다. 이 책에서는 별에 사는 어린 왕자, 뱀, 장미, 그리고 기타 다양한 환상적인 캐릭터들이 등장합니다. 어린 독자들은 그들의 이야기를 통해 새로운 세계와 가능성을 발견하고, 창의적인 해결책을 찾아내는 능력을 키울 수 있습니다.\n\n둘째, 어린 왕자는 사회와 관계에 대한 이해를 높입니다. 왕자는 각각 다른 행성에 있는 성격 다양한 캐릭터들과 만나면서, 다양한 사회적, 심리ologic 문제들을 직면합니다. 이러한 만남을 통해 어린 독자들은 다른 사람들의 관점을 이해하고, 자신과 다른 사람들 간의 관계에 대해 생각할 수 있습니다.\n\n셋째, 어린 왕자는 책에서 다루는 주제들, 예를 들어 책임, 사랑, 솔itude 등 다양한 삶의 교훈을 제공합니다. 어린 독자들은 왕자가 어른들에게 전해주는 교훈들을 통해, 자신의 삶에서 중요한 가치들을 배울 수 있습니다.\n\n마지막으로, 어린 왕자는 현대 아동들에게 필요한  Emotional Intelligence(감정 지능)을 기를 수 있습니다. 왕자는 어른들에게 자신의 감정을 표현하고 이해하는 것이 어렵다는 것을 깨닫습니다. 이러한 경험을 통해 어린 독자들도 자신의 감정을 인식하고, 다른 사람들의 감정을 이해하는 능력을 키울 수 있습니다.\n\n결론적으로, 어린 왕자는 현대 아동기에서 중요한 책입니다. 상상력과 창의력, 사회와 관계, 삶의 교훈, 그리고 감정 지능을 포함하여, 어린 독자들에게 다양한 것을 제공합니다. 따라서, 어린 왕자는 아동을 위한 책과 어른들에게도 영감을 줄 수 있는 아름다운 소설입니다.', additional_kwargs={}, response_metadata={'token_usage': {'prompt_tokens': 104, 'total_tokens': 2007, 'completion_tokens': 1903}, 'model_name': 'accounts/fireworks/models/mixtral-8x7b-instruct', 'system_fingerprint': '', 'finish_reason': 'stop', 'logprobs': None}, id='run-2dcbc4a1-36ac-4208-8cec-7a5c050f4260-0', usage_metadata={'input_tokens': 104, 'output_tokens': 1903, 'total_tokens': 2007})]}}
---
{'reflect': {'messages': [HumanMessage(content='수정된 에세이는 큰  Improvements 를 보여주었습니다! 다음은 추가적인 수정 사항과 추천 사항입니다.\n\n1. 타이틀: "현대 아동기에서 중요한 어린 왕자"는 좋은 타이틀입니다. 그러나 이 에세이는 어린 왕자가 현대 아동들에게 중요한 이유를 설명하기 때문에, "어린 왕자가 현대 아동들에게 중요한 이유"와 같은 타이틀이 더 적합할 것입니다.\n2. 서lope 구조: 에세이는 서lope 구조를 따르고 있지만, 각 서lope가 너무 짧습니다. 서lope를 구분짓는 단락을 추가하여, 에세이의 구성을 명확하게 구분할 수 있도록 하는 것이 좋습니다.\n3. 추가 내용: 에세이에서 다루고 있는 주제는 상상력, 관계, 교훈, 감정 지능입니다. 그러나 현대 아동들이 어린 왕자와 상호 작용하는 방식에 대한 몇 가지 예를 들어, 다양한 형태의 미디어(책, 애니메이션, 공연 등)를 통해 어린 왕자와 상호 작용하는 방법을 설명하는 것이 좋습니다.\n4. 자세한 설명: 에세이는 어린 왕자가 현대 아동들에게 중요한 이유를 설명하고 있지만, 각 주제에 대한 자세한 설명이 필요합니다. 예를 들어, 어린 왕자가 상상력을 기른다는 것을 설명하기 위해서는, 어린 왕자가 별에 사는 어린이, 뱀, 장미 등 다양한 환상적인 캐릭터들이 어린 독자들에게 어떤 영향을 미치는지 자세히 설명해야 합니다.\n5. 스타일: 에세이는 간결하고 명확하지만, 약간의 창의적인 표현과 어휘를 사용하여, 더욱 읽기 좋게 만들 수 있습니다.\n\n따라서, 에세이의 추천 사항은 다음과 같습니다.\n\n* 타이틀: "어린 왕자가 현대 아동들에게 중요한 이유"\n* 서lope 구조: 각 서lope를 구분짓는 단락을 추가하여, 에세이의 구성을 명확하게 구분합니다.\n* 추가 내용: 현대 아동들이 어린 왕자와 상호 작용하는 방식에 대한 몇 가지 예를 설명합니다.\n* 자세한 설명: 각 주제에 대한 자세한 설명을 추가합니다.\n* 스타일: 약간의 창의적인 표현과 어휘를 사용하여, 더욱 읽기 좋게 만듭니다.\n\n에세이의 길이는 500-700 단어 정도가 적절합니다. 에세이는 명확하고 구체적으로, 동시에 창의적이고 설득력 있게 작성되어야 합니다.', additional_kwargs={}, response_metadata={}, id='1e39aa3d-d6af-4ec9-8035-c16d4d687bbc')]}}
---
{'generate': {'messages': [AIMessage(content='Title: 어린 왕자가 현대 아동들에게 중요한 이유\n\n서lope 1: 소개\n\n현대 아동들에게 중요한 책 중 하나인 어린 왕자(The Little Prince)는 Saint-Exupéry가 지은 고전적인 소설로, 아동을 위한 책이면서도 어른들에게도 영감을 줄 수 있는 명작입니다. 이 에세이에서는 어린 왕자가 현대 아동들에게 중요한 이유를 설명합니다.\n\n---\n\n서lope 2: 상상력과 창의력 기른다\n\n어린 왕자는 상상력과 창의력을 기른다. 이 책에서는 별에 사는 어린 왕자, 뱀, 장미, 그리고 기타 다양한 환상적인 캐릭터들이 등장합니다. 어린 독자들은 그들의 이야기를 통해 새로운 세계와 가능성을 발견하고, 창의적인 해결책을 찾아내는 능력을 키울 수 있습니다.\n\n예를 들어, 어린 왕자가 별에 사는 어린이를 통해, 어린 독자들은 우리 주변의 작은 것들에도 관심을 가질 수 있습니다. 또한, 뱀과 꽃의 이야기를 통해, 어린 독자들은 다양한 관계를 이해하고, 상황에 따라 적절한 해결책을 찾을 수 있습니다.\n\n---\n\n서lope 3: 사회와 관계에 대한 이해를 높인다\n\n어린 왕자는 사회와 관계에 대한 이해를 높입니다. 왕자는 각각 다른 행성에 있는 성격 다양한 캐릭터들과 만나면서, 다양한 사회적, 심리ologic 문제들을 직면합니다. 이러한 만남을 통해 어린 독자들은 다른 사람들의 관점을 이해하고, 자신과 다른 사람들 간의 관계에 대해 생각할 수 있습니다.\n\n예를 들어, 왕자는 인간의 삶을 비판하는 지구의 대표적인 캐릭터를 만납니다. 이 만남을 통해, 어린 독자들은 사람들이 서로를 이해하고, 상호 존중하는 관계를 형성하는 방법을 배울 수 있습니다.\n\n---\n\n서lope 4: 삶의 교훈을 제공한다\n\n어린 왕자는 책에서 다루는 주제들, 예를 들어 책임, 사랑, 솔itude 등 다양한 삶의 교훈을 제공합니다. 어린 독자들은 왕자가 어른들에게 전해주는 교훈들을 통해, 자신의 삶에서 중요한 가치들을 배울 수 있습니다.\n\n예를 들어, 왕자는 책에서 어른들에게 "사랑은 지구를 깨뜨리는 사람들을 위한 꽃"이라는 말을 하며, 사랑이 삶에서 중요한 역할을 하는 것을 강조합니다. 또한, 왕자는 책에서 책임감과 연민을 배우는 과정을 통해, 어린 독자들에게 책임감과 연민이 삶에서 중요한 가치임을 알려줍니다.\n\n---\n\n서lope 5: 감정 지능을 기른다\n\n어린 왕자는 현대 아동들에게 필요한  Emotional Intelligence(감정 지능)을 기를 수 있습니다. 왕자는 어른들에게 자신의 감정을 표현하고 이해하는 것이 어렵다는 것을 깨닫습니다. 이러한 경험을 통해 어린 독자들도 자신의 감정을 인식하고, 다른 사람들의 감정을 이해하는 능력을 키울 수 있습니다.\n\n예를 들어, 왕자는 꽃과의 관계에서 자신의 감정을 이해하는 과정을 통해, 어린 독자들에게 자신의 감정을 인식하고, 표현하는 방법을 알려줍니다. 또한, 왕자는 다른 사람들의 감정을 이해하는 과정을 통해, 어린 독자들에게 다른 사람들의 감정을 이해하고, 대처하는 방법을 알려줍니다.\n\n---\n\n서lope 6: 현대 아동들이 어린 왕자와 상호 작용하는 방식\n\n현대 아동들은 다양한 형태의 미디어(책, 애니메이션, 공연 등)를 통해 어린 왕자와 상호 작용할 수 있습니다. 예를 들어, 어린 왕자 애니메이션을 통해, 어린 독자들은 책에서 다루는 내용을 보다 쉽게 이해할 수 있습니다. 또한, 어린 왕자 공연을 통해, 어린 독자들은 책에서 다루는 내용을 보다 감상하고, 경험할 수 있습니다.\n\n---\n\n결론\n\n어린 왕자는 현대 아동들에게 상상력과 창의력, 사회와 관계, 삶의 교훈, 그리고 감정 지능을 기를 수 있는 중요한 책입니다. 따라서, 어린 왕자는 아동을 위한 책과 어른들에게도 영감을 줄 수 있는 아름다운 소설입니다.', additional_kwargs={}, response_metadata={'token_usage': {'prompt_tokens': 3124, 'total_tokens': 5088, 'completion_tokens': 1964}, 'model_name': 'accounts/fireworks/models/mixtral-8x7b-instruct', 'system_fingerprint': '', 'finish_reason': 'stop', 'logprobs': None}, id='run-17ab18ce-357f-4712-a129-82976d1762d0-0', usage_metadata={'input_tokens': 3124, 'output_tokens': 1964, 'total_tokens': 5088})]}}
---
{'reflect': {'messages': [HumanMessage(content='수정된 에세이는 매우 훌륭합니다! 모든 서lope가 명확하고 구체적이며, 각 주제에 대한 자세한 설명이 포함되어 있습니다. 또한, 예시와 함께 설명하여, 어린 독자들이 어린 왕자와 상호 작용하는 방법을 이해할 수 있도록 하였습니다.\n\n다만, 몇 가지 수정 사항을 제안해 드리겠습니다.\n\n1. 서lope 1: 소개 - 에세이의 목적과 주제를 설명하는 서lope입니다. 이 서lope에서는 어린 왕자가 현대 아동들에게 중요한 이유를 설명한다는 것을 명확하게 설명하는 것이 좋습니다.\n2. 서lope 2: 상상력과 창의력 기른다 - 에세이의 첫 번째 주제는 어린 왕자가 어린 독자들의 상상력과 창의력을 기른다는 것입니다. 이 서lope에서는 어린 왕자가 등장하는 다양한 환상적인 캐릭터들이 어린 독자들에게 어떤 영향을 미치는지 설명하는 것이 좋습니다.\n3. 서lope 3: 사회와 관계에 대한 이해를 높인다 - 에세이의 두 번째 주제는 어린 왕자가 사회와 관계에 대한 이해를 높인다는 것입니다. 이 서lope에서는 왕자가 각각 다른 행성에 있는 다양한 캐릭터들과 만나면서, 어린 독자들이 배우는 것에 대해 설명하는 것이 좋습니다.\n4. 서lope 4: 삶의 교훈을 제공한다 - 에세이의 세 번째 주제는 어린 왕자가 다양한 삶의 교훈을 제공한다는 것입니다. 이 서lope에서는 왕자가 어른들에게 전해주는 교훈들이 어린 독자들에게 어떤 영향을 미치는지 설명하는 것이 좋습니다.\n5. 서lope 5: 감정 지능을 기른다 - 에세이의 네 번째 주제는 어린 왕자가 감정 지능을 기른다는 것입니다. 이 서lope에서는 왕자가 어른들에게 자신의 감정을 표현하고 이해하는 것이 어렵다는 것을 깨닫는 과정에 대해 설명하는 것이 좋습니다.\n6. 서lope 6: 현대 아동들이 어린 왕자와 상호 작용하는 방식 - 에세이의 마지막 서lope는 현대 아동들이 어린 왕자와 다양한 형태의 미디어를 통해 상호 작용하는 방법에 대해 설명합니다.\n\n따라서, 에세이의 추천 사항은 다음과 같습니다.\n\n* 타이틀: "어린 왕자가 현대 아동들에게 중요한 이유"\n* 서lope 구조: 각 서lope를 구분짓는 단락을 추가하여, 에세이의 구성을 명확하게 구분합니다.\n* 자세한 설명: 각 주제에 대한 자세한 설명을 추가합니다.\n* 스타일: 약간의 창의적인 표현과 어휘를 사용하여, 더욱 읽기 좋게 만듭니다.\n\n에세이의 길이는 500-700 단어 정도가 적절합니다. 에세이는 명확하고 구체적으로, 동시에 창의적이고 설득력 있게 작성되어야 합니다.', additional_kwargs={}, response_metadata={}, id='89e28c21-df61-46a2-b6e8-f0b8ad4d65cd')]}}
---
{'generate': {'messages': [AIMessage(content='Title: 어린 왕자가 현대 아동들에게 중요한 이유\n\n서lope 1: 에세이의 목적과 주제 소개\n\n현대 아동들에게 중요한 책 중 하나인 어린 왕자(The Little Prince)는 Saint-Exupéry가 지은 고전적인 소설로, 아동을 위한 책이면서도 어른들에게도 영감을 줄 수 있는 명작입니다. 이 에세이에서는 어린 왕자가 현대 아동들에게 중요한 이유를 설명합니다.\n\n---\n\n서lope 2: 어린 왕자가 어린 독자들의 상상력과 창의력을 기른다\n\n어린 왕자는 어린 독자들의 상상력과 창의력을 기른다. 이 책에서는 별에 사는 어린 왕자, 뱀, 장미, 그리고 기타 다양한 환상적인 캐릭터들이 등장합니다. 어린 독자들은 그들의 이야기를 통해 새로운 세계와 가능성을 발견하고, 창의적인 해결책을 찾아내는 능력을 키울 수 있습니다.\n\n예를 들어, 어린 왕자가 별에 사는 어린이를 통해, 어린 독자들은 우리 주변의 작은 것들에도 관심을 가질 수 있습니다. 또한, 뱀과 꽃의 이야기를 통해, 어린 독자들은 다양한 관계를 이해하고, 상황에 따라 적절한 해결책을 찾을 수 있습니다.\n\n---\n\n서lope 3: 어린 왕자가 사회와 관계에 대한 이해를 높인다\n\n어린 왕자는 사회와 관계에 대한 이해를 높입니다. 왕자는 각각 다른 행성에 있는 성격 다양한 캐릭터들과 만나면서, 다양한 사회적, 심리ologic 문제들을 직면합니다. 이러한 만남을 통해 어린 독자들은 다른 사람들의 관점을 이해하고, 자신과 다른 사람들 간의 관계에 대해 생각할 수 있습니다.\n\n예를 들어, 왕자는 인간의 삶을 비판하는 지구의 대표적인 캐릭터를 만납니다. 이 만남을 통해, 어린 독자들은 사람들이 서로를 이해하고, 상호 존중하는 관계를 형성하는 방법을 배울 수 있습니다.\n\n---\n\n서lope 4: 어린 왕자가 다양한 삶의 교훈을 제공한다\n\n어린 왕자는 책에서 다루는 주제들, 예를 들어 책임, 사랑, 솔itude 등 다양한 삶의 교훈을 제공합니다. 어린 독자들은 왕자가 어른들에게 전해주는 교훈들을 통해, 자신의 삶에서 중요한 가치들을 배울 수 있습니다.\n\n예를 들어, 왕자는 책에서 어른들에게 "사랑은 지구를 깨뜨리는 사람들을 위한 꽃"이라는 말을 하며, 사랑이 삶에서 중요한 역할을 하는 것을 강조합니다. 또한, 왕자는 책에서 책임감과 연민을 배우는 과정을 통해, 어린 독자들에게 책임감과 연민이 삶에서 중요한 가치임을 알려줍니다.\n\n---\n\n서lope 5: 어린 왕자가 감정 지능을 기른다\n\n어린 왕자는 현대 아동들에게 필요한 Emotional Intelligence(감정 지능)을 기를 수 있습니다. 왕자는 어른들에게 자신의 감정을 표현하고 이해하는 것이 어렵다는 것을 깨닫습니다. 이러한 경험을 통해 어린 독자들도 자신의 감정을 인식하고, 다른 사람들의 감정을 이해하는 능력을 키울 수 있습니다.\n\n예를 들어, 왕자는 꽃과의 관계에서 자신의 감정을 이해하는 과정을 통해, 어린 독자들에게 자신의 감정을 인식하고, 표현하는 방법을 알려줍니다. 또한, 왕자는 다른 사람들의 감정을 이해하는 과정을 통해, 어린 독자들에게 다른 사람들의 감정을 이해하고, 대처하는 방법을 알려줍니다.\n\n---\n\n서lope 6: 현대 아동들이 어린 왕자와 상호 작용하는 방식\n\n현대 아동들은 다양한 형태의 미디어(책, 애니메이션, 공연 등)를 통해 어린 왕자와 상호 작용할 수 있습니다. 예를 들어, 어린 왕자 애니메이션을 통해, 어린 독자들은 책에서 다루는 내용을 보다 쉽게 이해할 수 있습니다. 또한, 어린 왕자 공연을 통해, 어린 독자들은 책에서 다루는 내용을 보다 감상하고, 경험할 수 있습니다.\n\n---\n\n결론\n\n어린 왕자는 현대 아동들에게 상상력과 창의력, 사회와 관계, 삶의 교훈, 그리고 감정 지능을 기를 수 있는 중요한 책입니다. 따라서, 어린 왕자는 아동을 위한 책과 어른들에게도 영감을 줄 수 있는 아름다운 소설입니다.', additional_kwargs={}, response_metadata={'token_usage': {'prompt_tokens': 6380, 'total_tokens': 8424, 'completion_tokens': 2044}, 'model_name': 'accounts/fireworks/models/mixtral-8x7b-instruct', 'system_fingerprint': '', 'finish_reason': 'stop', 'logprobs': None}, id='run-e6097c89-eeb1-4c9b-85e6-e67a9a1c296c-0', usage_metadata={'input_tokens': 6380, 'output_tokens': 2044, 'total_tokens': 8424})]}}
---
{'reflect': {'messages': [HumanMessage(content='수정된 에세이는 매우 훌륭합니다! 모든 서lope가 명확하고 구체적이며, 각 주제에 대한 자세한 설명이 포함되어 있습니다. 또한, 예시와 함께 설명하여, 어린 독자들이 어린 왕자와 상호 작용하는 방법을 이해할 수 있도록 하였습니다.\n\n에세이의 구성과 내용에 대한 추천 사항은 없으나, 몇 가지 수정 사항을 제안해 드리겠습니다.\n\n1. 서lope 1: 에세이의 목적과 주제 소개 - 에세이의 첫 번째 서lope에서는 에세이의 목적과 주제를 설명하는 것이 좋습니다. 이 서lope에서는 어린 왕자가 현대 아동들에게 중요한 이유를 설명한다는 것을 명확하게 설명하는 것이 좋습니다.\n2. 서lope 2: 어린 왕자가 어린 독자들의 상상력과 창의력을 기른다 - 에세이의 두 번째 서lope에서는 어린 왕자가 어린 독자들의 상상력과 창의력을 기른다는 것을 설명합니다. 이 서lope에서는 어린 왕자가 등장하는 다양한 환상적인 캐릭터들이 어린 독자들에게 어떤 영향을 미치는지 설명하는 것이 좋습니다.\n3. 서lope 3: 어린 왕자가 사회와 관계에 대한 이해를 높인다 - 에세이의 세 번째 서lope에서는 어린 왕자가 사회와 관계에 대한 이해를 높인다는 것을 설명합니다. 이 서lope에서는 왕자가 각각 다른 행성에 있는 다양한 캐릭터들과 만나면서, 어린 독자들이 배우는 것에 대해 설명하는 것이 좋습니다.\n4. 서lope 4: 어린 왕자가 다양한 삶의 교훈을 제공한다 - 에세이의 네 번째 서lope에서는 어린 왕자가 다양한 삶의 교훈을 제공한다는 것을 설명합니다. 이 서lope에서는 왕자가 어른들에게 전해주는 교훈들이 어린 독자들에게 어떤 영향을 미치는지 설명하는 것이 좋습니다.\n5. 서lope 5: 어린 왕자가 감정 지능을 기른다 - 에세이의 다섯 번째 서lope에서는 어린 왕자가 감정 지능을 기른다는 것을 설명합니다. 이 서lope에서는 왕자가 어른들에게 자신의 감정을 표현하고 이해하는 것이 어렵다는 것을 깨닫는 과정에 대해 설명하는 것이 좋습니다.\n6. 서lope 6: 현대 아동들이 어린 왕자와 상호 작용하는 방식 - 에세이의 마지막 서lope에서는 현대 아동들이 어린 왕자와 다양한 형태의 미디어를 통해 상호 작용하는 방법에 대해 설명합니다.\n\n따라서, 에세이의 추천 사항은 다음과 같습니다.\n\n* 타이틀: "어린 왕자가 현대 아동들에게 중요한 이유"\n* 서lope 구조: 각 서lope를 구분짓는 단락을 추가하여, 에세이의 구성을 명확하게 구분합니다.\n* 자세한 설명: 각 주제에 대한 자세한 설명을 추가합니다.\n* 스타일: 약간의 창의적인 표현과 어휘를 사용하여, 더욱 읽기 좋게 만듭니다.\n\n에세이의 길이는 500-700 단어 정도가 적절합니다. 에세이는 명확하고 구체적으로, 동시에 창의적이고 설득력 있게 작성되어야 합니다.', additional_kwargs={}, response_metadata={}, id='db22785b-9153-4226-96b7-ea45775cb3a2')]}}
---
{'generate': {'messages': [AIMessage(content='Title: 어린 왕자가 현대 아동들에게 중요한 이유\n\n서lope 1: 에세이의 목적과 주제 소개\n\n현대 아동들에게 중요한 책 중 하나인 어린 왕자(The Little Prince)는 Saint-Exupéry가 지은 고전적인 소설로, 아동을 위한 책이면서도 어른들에게도 영감을 줄 수 있는 명작입니다. 이 에세이에서는 어린 왕자가 현대 아동들에게 중요한 이유를 설명합니다.\n\n---\n\n서lope 2: 어린 왕자가 어린 독자들의 상상력과 창의력을 기른다\n\n어린 왕자는 어린 독자들의 상상력과 창의력을 기른다. 이 책에서는 별에 사는 어린 왕자, 뱀, 장미, 그리고 기타 다양한 환상적인 캐릭터들이 등장합니다. 어린 독자들은 그들의 이야기를 통해 새로운 세계와 가능성을 발견하고, 창의적인 해결책을 찾아내는 능력을 키울 수 있습니다.\n\n예를 들어, 어린 왕자가 별에 사는 어린이를 통해, 어린 독자들은 우리 주변의 작은 것들에도 관심을 가질 수 있습니다. 또한, 뱀과 꽃의 이야기를 통해, 어린 독자들은 다양한 관계를 이해하고, 상황에 따라 적절한 해결책을 찾을 수 있습니다.\n\n---\n\n서lope 3: 어린 왕자가 사회와 관계에 대한 이해를 높인다\n\n어린 왕자는 사회와 관계에 대한 이해를 높입니다. 왕자는 각각 다른 행성에 있는 성격 다양한 캐릭터들과 만나면서, 다양한 사회적, 심리ologic 문제들을 직면합니다. 이러한 만남을 통해 어린 독자들은 다른 사람들의 관점을 이해하고, 자신과 다른 사람들 간의 관계에 대해 생각할 수 있습니다.\n\n예를 들어, 왕자는 인간의 삶을 비판하는 지구의 대표적인 캐릭터를 만납니다. 이 만남을 통해, 어린 독자들은 사람들이 서로를 이해하고, 상호 존중하는 관계를 형성하는 방법을 배울 수 있습니다.\n\n---\n\n서lope 4: 어린 왕자가 다양한 삶의 교훈을 제공한다\n\n어린 왕자는 책에서 다루는 주제들, 예를 들어 책임, 사랑, 솔itude 등 다양한 삶의 교훈을 제공합니다. 어린 독자들은 왕자가 어른들에게 전해주는 교훈들을 통해, 자신의 삶에서 중요한 가치들을 배울 수 있습니다.\n\n예를 들어, 왕자는 책에서 어른들에게 "사랑은 지구를 깨뜨리는 사람들을 위한 꽃"이라는 말을 하며, 사랑이 삶에서 중요한 역할을 하는 것을 강조합니다. 또한, 왕자는 책에서 책임감과 연민을 배우는 과정을 통해, 어린 독자들에게 책임감과 연민이 삶에서 중요한 가치임을 알려줍니다.\n\n---\n\n서lope 5: 어린 왕자가 감정 지능을 기른다\n\n어린 왕자는 현대 아동들에게 필요한 Emotional Intelligence(감정 지능)을 기를 수 있습니다. 왕자는 어른들에게 자신의 감정을 표현하고 이해하는 것이 어렵다는 것을 깨닫습니다. 이러한 경험을 통해 어린 독자들도 자신의 감정을 인식하고, 다른 사람들의 감정을 이해하는 능력을 키울 수 있습니다.\n\n예를 들어, 왕자는 꽃과의 관계에서 자신의 감정을 이해하는 과정을 통해, 어린 독자들에게 자신의 감정을 인식하고, 표현하는 방법을 알려줍니다. 또한, 왕자는 다른 사람들의 감정을 이해하는 과정을 통해, 어린 독자들에게 다른 사람들의 감정을 이해하고, 대처하는 방법을 알려줍니다.\n\n---\n\n서lope 6: 현대 아동들이 어린 왕자와 상호 작용하는 방식\n\n현대 아동들은 다양한 형태의 미디어(책, 애니메이션, 공연 등)를 통해 어린 왕자와 상호 작용할 수 있습니다. 예를 들어, 어린 왕자 애니메이션을 통해, 어린 독자들은 책에서 다루는 내용을 보다 쉽게 이해할 수 있습니다. 또한, 어린 왕자 공연을 통해, 어린 독자들은 책에서 다루는 내용을 보다 감상하고, 경험할 수 있습니다.\n\n---\n\n결론\n\n어린 왕자는 현대 아동들에게 상상력과 창의력, 사회와 관계, 삶의 교훈, 그리고 감정 지능을 기를 수 있는 중요한 책입니다. 따라서, 어린 왕자는 아동을 위한 책과 어른들에게도 영감을 줄 수 있는 아름다운 소설입니다.', additional_kwargs={}, response_metadata={'token_usage': {'prompt_tokens': 9858, 'total_tokens': 11902, 'completion_tokens': 2044}, 'model_name': 'accounts/fireworks/models/mixtral-8x7b-instruct', 'system_fingerprint': '', 'finish_reason': 'stop', 'logprobs': None}, id='run-fda359fd-5ce6-4a76-988e-3a5eb115c2bb-0', usage_metadata={'input_tokens': 9858, 'output_tokens': 2044, 'total_tokens': 11902})]}}
---
state = graph.get_state(config)
ChatPromptTemplate.from_messages(state.values["messages"]).pretty_print()
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유