반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형

오늘은 Part 6 Customizing State를 배웁니다.

 

이전 단원까지는 interrupt_before를 사용해서 Tools 를 사용하기 전에 작업을 무조건 Stop 을 시킨 후 Human 의 개입을 허용했는데요.

 

이번장에서는 Human 의 개입이 필요 하다는 판단을 AI 가 판단하게 만드는 구조를 구현합니다.

 

그러기 위해서는 State를 Customizing 해야 합니다.

 

그러면 Agent 가 시키는 일을 하다가 자신이 결정 내릴 만한 일이 아니라고 판단되면 인간에게 허락을 받으러 오게 만들 수 있습니다.

 

이것을 어떻게 구현하는지 배워 봅니다.

 

오늘 비디오에서 다루는 소스코드는 아래 CoLab에 있습니다.

 

https://youtu.be/2r961w7y4-Y

 

 

반응형


반응형

오늘은 LangGraph Quick Start Tutorial Part 5 : Manually updating the State 를 다룹니다.

 

핵심 개념은 update_state 입니다.

 

Tool이나 AI 메세지를 임의로 만들어서 처리할 수 있구요.

이 때 Tool 이나 AI 를 Call 하지 않고 중간에 처리한 것 처럼 만드는 겁니다.

 

Message ID 를 사용하면 Tool 이나 AI 로부터 받은 기존의 메세지를 바꿀 수도 있습니다.

 

Graph 가 처리하는 과정에서 수정이 필요하거나 Agent의 궤적을 제어할 필요가 있을 때 유용한 기능입니다.

 

https://youtu.be/KitVTQivgHU

 



반응형


반응형

오늘은 Lang Graph 의 주요 기능 중 하나인 Human In The Loop 이라는 기능을 배웁니다.

 

AI Agent 가 일 하다가 어떤 결정을 해야 할 떄, 선택의 순간이 왔을 때 인간의 의견을 물어보도록 만들 수 있습니다.

 

Interrupt_before , Interrupt_after 가 AI Agent 가 그렇게 인간의 선택을 물어보도록 만들 수 있습니다.

 

이 HIL (Human In The Loop) 기능은 LangGraph 에서 Checkpointer 라는 개념을 기반으로 제공이 됩니다.

 

이 외에 지나간 과거의 State 를 변경할 수도 있고 그 기능을 이용해서 Time Travel 이라는 기능도 제공하고 있습니다.

 

오늘은 LangGraph Quick Start 의 Part 4 Human in the loop 를 공부하고 이어서 다른 다양한 기능을 계속 공부 하겠습니다.

 

그 개념들에 대한 공부가 마쳐지면 LangGraph 의 이러한 Checkpointer 를 이용한 advanced 한 기능들을 응용해서 다양한 Web Application을 만들어 보겠습니다.

 

https://youtu.be/eWe3dFHshgA

 



반응형


반응형

매일 매일 쏟아지는 AI 신기술들...

 

6개월 전에 Olympia 라는 워싱턴주의 시골 (그래도 워싱턴 주의 Capital City 임) 에서 AI 를 공부하려고 시애틀 옆에 있고 Microsoft 본사 등 IT 기업들이 많이 있는 Redmond 로 이사 왔습니다.

 

그동안 networking 을 하면서 이런 저런 AI 관련 일들을 벌이다 보니 직장일 이외에 하는 일이 한 손에 있는 손가락 수를 넘어 버렸네요.

 

다시 Burn out 이 올 기미가 보여서 지금 하는 일들을 쭉 나열하고 어떤 것을 접어야 하나 고민 했습니다.

 

결론은...

 

그나마 생활비라도 나오는 직장을 그만 두는 것을 선택하게 되더라구요.

 

아직 한푼도 수익이 없는 AI 관련 일들을 하기 위해서요.

 

그 동안 좀 복잡해서 AI 강좌는 못 올리고 다른 내용들의 Contents 들만 올렸었는데요.

 

오늘은 그동안 공부했던 LangGraph 의 Quick Start Tutorial 의 Part 1 ~ Part 3 부분을 복습하고 내일부터 쭉쭉 진도 빼겠습니다.

 

LangGraph 에서도 해당 Tutorial 의 소스코드들을 조금 변경 했더라구요.

그 변경된 내용도 왜 변경했는지 그리고 그렇게 Refactoring 하면 어떤게 좋아 지길래 update를 했는지 설명 드립니다.

 

https://youtu.be/ykBpEUteeqY?si=R75CbDtQfH0Ix3II

 

비디오에서 사용한 CoLab page Link 는 아래에 있습니다.

 

New Version

https://colab.research.google.com/drive/1fhjPuBnQJOwFT-1_JLXpXN9k58MBgXfZ?usp=sharing

 

LangGraph_QuickStart_02.ipynb

Colab notebook

colab.research.google.com

 

 

Old Version

https://colab.research.google.com/drive/1SARxtUTLUpLi4tX0v4E1oIC_xe1nhQa_?usp=sharing

 

LangGraph_QuickStart_01.ipynb

Colab notebook

colab.research.google.com

 

 

반응형


반응형
오늘 비디오는 구독자님이 Streamlit ,LangChain 그리고 LangGraph 에서 Chatbot 기능을 지원하기 위한 Memory 기능의 차이점을 문의 하셔서 거기에 대한 답변을 드리기 위해 만들었습니다.
답변을 준비하다 보니까 그냥 댓글로 몇마디 할 만한 사항이 아니더라구요.
AI 가 처음 나왔을 때 LangChain 에서는 Input Context 의 Length limit 에 대한 고민을 많이 했었던 것 같습니다.
그래서 대화 히스토리 관리하는데 있어서 input context를 줄이는 방법에 집중을 했었습니다. (Conversational Memory)
하지만 이 기능은 AI Model 들이 input context의 크기를 대폭 늘리면서 더 이상 필요성이 대두 되지는 않은 것 같습니다.
곧이어 나온 RAG 기능을 제대로 지원할 수 있는 대화 history 관리 툴을 LangChain에서는 제공 했습니다. (Conversation Retrieval Chain)
그런데 AI 세계는 멈추지 않았습니다.
좀 더 복잡한 문제를 해결하는 AI 서비스를 제공하기 위해 AI Agent 개념이 나왔습니다. (CheckPointer)
이것을 설명하기 위해서 AI , RAG , AI Agent 이런 AI App 개발의 트렌드 변화까지 다 말하게 됐네요.
반응형


반응형

오늘은 이번 강좌에서 배운 LangGraph에서의 Memory 관리를 응용해서 AI Web Application을 개발해 보겠습니다.

 

LangGraph 와 Streamlit 을 이용해서 만듭니다. 

둘 다 Python을 기반으로 작동하고 LangGraph는 MultiAgent AI 앱 개발을 위한 프레임워크이고 Streamlit은 Web 어플리케이션 개발을 위한 파이썬 모듈입니다.

 

이 예제에서는 MemorySaver를 이용해서 어떻게 checkpointers 를 사용하는지 그리고 thread_id 를 사용해서 2명 이상의 사용자의 대화를 어떻게 관리하는지를 공부해 봅니다.

 

그런데 도대체 아수라 백작을 아는 사람들은 연령대가……..?

제가 어렸을 때 봤던 마징가 Z 에 나오는 빌런이었는데...

 

https://youtu.be/fED_jtEXTQ4

 

이 예제의 소스 코드는 아래 웹사이트에 가시면 보실 수 있습니다.

https://catchuplanggraph.streamlit.app/

 

Catchup LangGraph Tutorial

This app was built in Streamlit! Check it out and visit https://streamlit.io for more awesome community apps. 🎈

catchuplanggraph.streamlit.app

 

반응형


반응형

오늘은 지난 시간에 이어서 LangGraph Quick start Part 3 : Adding Memory to the Chatbot을 공부합니다.

 

LangGraph 공식 Tutorials site에 나와 있는 Quick Start 예제를 제대로 분석해 봅니다.

 

말 그대로 교과서 위주로 공부 해 보겠습니다.

 

AI 와 대화를 계속 이어가려면 이전에 어떤 대화가 있었는지 AI 에게 질문할 때마다 계속 대화 history 정보를 제공 해야 AI 가 맥락에 맞는 대답을 할 수 있습니다.

 

지금까지는 이 대화 history를 Streamlit의 session_state 를 사용해서 관리를 했습니다.

 

LangGraph에서는 Checkpointer 기능을 제공해서 쉽게 대화 history를 관리할 수 있도록 합니다.

 

그럼으로서 AI 와 맥락 있는 대화를 할 수 있는 Chatbot 기능을 제공할 수 있도록 합니다.

 

그 뿐만 아니라 다음에 배우게 될 LangGraph의 Human in the loop 이나 Time Travel 등의 추가적인 기능도 사용할 수 있도록 해 줍니다.

 

이 checkpointer의 가장 핵심적이고 기본적인 기능 사용법을 알려주는 LangGraph의 Tutorial (교과서) 에 있는 Quick Start 예제를 집중 분석 해 봅니다.

 

오늘은 교과서 위주로 공부합니다. 

 

https://youtu.be/33cKGuuPtgk?si=gjj8j0_bPbLAWDDd

 

반응형


반응형

오늘은 LangGraph의 Checkpointers에 대해 배워 봅니다.

 

지난 시간까지는 사용자와 AI와의 대화를 Streamlit의 Session_state 를 사용해서 저장을 했고 그 데이터를 사용해서 Chatbot 기능을 구현했습니다.

 

LangGraph에서도 그와 비슷한 기능을 하는 개념이 있습니다.

Checkpointers인데요. 

 

LangGraph에서 Checkpointers를 구현하는 방법은 MemorySaver, SqliteSaver, PostgresSaver 등이 있습니다.

 

사실 이 Checkpointers는 Chatbot 기능만을 위한 것은 아니고 다음 단원에서 배울 Human-in-the-loop, Time Travel 등의 고급 기능을 구현할 수 있게 해 주는 주요한 개념입니다.

 

오늘부터 이 LangGraph의 Checkpointers를 배워 보겠습니다.

 

https://youtu.be/TwQzTw0A51s?si=You1IAeaLRLsAP6 

 

 

이 유투브 클립에서 설명하는 AI Web application의 소스코드는 아래 웹 사이트로 가시면 보실 수 있습니다.

https://catchuplanggraph.streamlit.app/

 

Catchup LangGraph Tutorial

This app was built in Streamlit! Check it out and visit https://streamlit.io for more awesome community apps. 🎈

catchuplanggraph.streamlit.app

 



반응형


반응형

지난 시간에 이어서 LangGraph Chatbot with Tool 에 대해 알려 드립니다.

지난 시간에 LangGraph로 구현하는 로직을 모두 완료 했었습니다.
이번 비디오에서는 그 로직에 Streamlit 의 session_state와 chatbot 기능을 더 해 완성된 AI Application을 만들어 봅니다.

LangGraph의 Tool을 사용해 최신 정보까지 제공하는 대화형 AI Application 개발하는 과정을 보실 수 있습니다.

 

https://youtu.be/M4ejvxxLF_w?si=6gUX8C5hZ-gfNNE-

 

 

그리고 아래 웹사이트로 가면 완성된 AI Application과 전체 Source Code도 받아 보실 수 있습니다.

https://catchuplanggraph.streamlit.app/

 

Catchup LangGraph Tutorial

This app was built in Streamlit! Check it out and visit https://streamlit.io for more awesome community apps. 🎈

catchuplanggraph.streamlit.app

 

반응형


반응형

이번 시간부터 영상에 약간의 변화를 주었습니다.
중간에 짤막한 짤들 넣는게 영상이란 안 맞는다는 의견이 많아서요.
과감하게 짤 영상들 없앴습니다.
언제나 제 영상을 봐 주시는 분들의 의견에 귀 기울이겠습니다.

오늘은 LangGraph에서 Tool을 사용하는 방법을 배워 보겠습니다.
이것을 배우면 Multiple Node를 사용해서 더 복잡한 기능을 구현할 수 있게 됩니다.

그러기 위해서 사용되는 bind_tools 라던가 add_conditional_edges 같은 새로운 메소드들을 배웁니다.

영상이 길어서 오늘은 전반부 LangGraph 소스 코드만 분석하구요.

다음 영상에서는 이 LangGraph 소스코드를 기반으로 Streamlit으로 웹 어플리케이션을 만드는 방법을 알아 보겠습니다.

 

https://youtu.be/f3GB5fQmTcM?si=Nu9FNQR5WsjGnNaI

 

제가 만든 웹어플리케이션을 보시고 소스코드도 가져가서 공부하고 싶으시면 이리로 오시면 됩니다.

https://catchuplanggraph.streamlit.app/

 

Catchup LangGraph Tutorial

This app was built in Streamlit! Check it out and visit https://streamlit.io for more awesome community apps. 🎈

catchuplanggraph.streamlit.app

 

반응형
이전 1 2 3 4 다음