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

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형
오늘 비디오는 구독자님이 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 개발의 트렌드 변화까지 다 말하게 됐네요.
반응형

GenAI 가 까발린 Human Creativity의 하찮음

2024. 10. 16. 21:06 | Posted by 솔웅


반응형

GenAI 가 까발린 Human Creativity이 하찮음 이라는 도발적인 Topic 으로 시애틀 지역 한인 IT 종사자 모임인 Changbal 에서 주최한 Relay Speach에 참가했습니다.

 

이때 나눈 내용으로 이번 비디오를 만들었습니다.

 

Human Creativity 는 어디에서 오는가? AI 는 어디에서부터 오는가?

예술이란 무엇인가?

 

인간의 예술과 AI 의 예술 지적 자산은 어떻게 봐야 하나?

 

관계 AI로 인해 벌어들이는 소득은 어떻게 해야 하나?

 

샘알트먼 빌 게이츠 강호동 서장훈 이 Youtube Clip 에서는 한가지를 얘기하기 위해 많은 것들을 이야기 합니다.

 

바로 우리들의 밝은 미래 입니다. 저의 생각이고 같이 생각해 보고 싶은 주제입니다.

 

https://youtu.be/ou89Ug7sjck

 

이 발표의 자료는 여기에 가시면 보실 수 있습니다.

 

https://docs.google.com/presentation/d/1j6qBTwcrFoRsQXLIFVeFdC21GrlRPnHgt5E6KLowyzI/edit?usp=sharing

 

GenAI 발표

GenAI 가 까발린 Human Creativity 의 하찮음 Changsoo Park

docs.google.com

 

 

 

그리고 중간에 나오는 AI vs Human: The Creativity Experiment 라는 독일의 다큐먼터리는 여기에서 보실 수 있습니다.

 

https://iview.abc.net.au/show/ai-vs-human-the-creativity-experiment?utm_content=link&utm_medium=content_shared

 

AI vs Human: The Creativity Experiment

Can AI match humans for artistic creativity? Rad Yeo explores the 'creep' of generative AI, from performing a ChatGPT written comedy routine to portrait painting robots. If it can, what does it mean for humanity?

iview.abc.net.au

 

 

 

 

 

반응형


반응형

오늘은 이번 강좌에서 배운 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

 

반응형


반응형

오늘은 LangGraph 이름이 왜 그렇게 지어 졌는지를 찾다가 발견한 내용을 공유 합니다.

바로 이산 수학 (Discrete mathematics) 중 하나인 그래프 이론 (Graph Theory) 에서 그 이름이 유래한 건데요.

그래프 이론 어렵지 않습니다. 

점 들과 그 점들을 연결하는 선. 유치원때 배운 선긋기 수준의 이야기 입니다.

그리고 그 이론 설명을 들으면 LangGraph 도 정말 쉽게 시작하실 수 있습니다.

 

개발자는 그냥 점 찍고 선 긋는 것만 구현 하면 됩니다.

 

자 그럼 AI 어플리케이션 개발의 트랜드인 Multi-Agent와 Agentic Workflow를 사용할 수 있도록 하는 기능을 제공하는 어려운 LangGraph를 정말 쉽게 이해해 보세요.

 

처음 공부하시는 분들의 진입 장벽을 완전히 낮춰 줄 겁니다.

 

LangGraph - 점찍고 선만 그으면 됩니다. 정말 쉽게 설명 드립니다. Graph Theory 만 생각하세요.

 

https://youtu.be/mvGp8Wz3KdI

 



반응형


반응형

지난 시간에  LangGraph 의 Tool을 사용할 때 발생한 Chatbot 기능의 에러가 있었습니다.
제가 과제로 냈었는데요.
오늘 그 에러를 해결하는 과정을 단계별로 보여드릴께요.

ChatBot 기능에서 질문과 대답 사이에 Tool 을 사용했던 기록들이 나오는게 문제 였는데요.
에러가 난 부분으로 가서 log를 찍어보고 필요 없는데 print 되는 부분들의 패턴을 파악한 후 Session message에 append 하는 것을 막아 버리면 됩니다.

이 과정을 직접 확인해 보세요.

 

https://youtu.be/jPK7i7YVg68?si=QIUGOGFbwk2qqSxo

 

 

반응형


반응형
오늘은 이전에 개발한 AI 웹 어플리케이션의 소스코드를 개선하는 **리팩토링(refactoring)** 작업과 새로운 기능을 추가하는 **확장(enhancement)** 작업을 진행했습니다.
리팩토링 작업에서는 Streamlit의 `session_state`가 서로 다른 페이지 간에 메시지 데이터를 공유하는 문제를 해결했습니다. API 키는 공유가 필요한 부분에서만 동일하게 사용하고, 각 페이지에서 개별적으로 관리해야 하는 메시지 부분은 분리하여 처리했습니다.
확장 작업으로는 기존에 Anthropic의 Claude 모델만 사용 가능했던 것을 OpenAI의 ChatGPT도 사용할 수 있도록 기능을 추가했습니다. 이를 통해 더 다양한 모델을 활용할 수 있게 되었습니다.
외에도 Visual Studio Code에서 변경된 파일을 커밋하고 GitHub에 푸시하는 방법, 그리고 GitLens를 사용해 로컬 파일과 서버 파일을 비교하는 방법 등 실무에서 유용하게 사용되는 팁들을 공유했습니다.
또한, 기대한 결과가 나오지 않았을 때 차분하게 문제를 검증하고 해결해 나가는 과정을 보여드렸습니다. 이는 개발자에게 필수적인 문제 해결 능력을 키우는 데 도움이 될 것입니다.
LangGraph에 새로운 툴을 추가하는 방법을 배우기 위해 Quick Start 튜토리얼의 소스코드를 Streamlit과 결합해 웹 페이지에 표시하도록 구현한 소스코드도 함께 확인하실 수 있습니다.
이 소스코드에는 하나의 에러가 있는데, 이 에러는 여러분과 함께 해결해 볼 과제로 남겨두었습니다. 다음 시간까지 함께 고민해 보시길 바랍니다.
전체 영상을 보시려면 여기를 클릭하세요:

 

https://youtu.be/N4t-YQufGLg?si=ySA0Toof6Ng69APf

 

 

Today, I focused on refining the AI web application we previously developed by undertaking some critical refactoring and implementing enhancements.

 

The refactoring work addressed an issue where session_state in Streamlit was unintentionally sharing message data across different pages. By ensuring that shared API keys are used consistently while individual messages are managed separately, the application now functions more reliably across various pages.

 

On the enhancement side, I expanded the application's capabilities by integrating OpenAI's ChatGPT alongside Anthropic's Claude, offering more flexibility in model usage.

 

In addition to these improvements, I also covered some practical tips for developers. These include committing changes in Visual Studio Code, pushing updates to GitHub, and using GitLens to compare local and server-side files. These insights are grounded in real-world scenarios and are essential for efficient development workflows.

 

Moreover, you'll see how to methodically troubleshoot when results don't match expectations—a vital skill in any developer's toolkit.

 

As part of my journey into LangGraph, I also combined the Quick Start tutorial code with Streamlit to create an interactive web page. This integration serves as an excellent example of adding tools to enhance LangGraph functionality.

Lastly, I've left one error in the code as a challenge for you to solve before our next session. It’s an excellent opportunity for us to explore problem-solving together.

 

Check out the full video here: https://youtu.be/N4t-YQufGLg?si=uPlA2xqlUDUZFrgw

 

 

반응형