LangChain과 멀티모달 모델

Jeonghyeon Park·2025년 3월 13일

SKALA

목록 보기
3/13

개요

OpenAI의 비전 인식과 이미지 생성(DALL-E) 기능을 활용하여 스마트 냉장고 앱을 구현해보았다. 전체적인 작동 과정을 설명하자면, LLM모델에 냉장고 이미지를 업로드 하면 비전 기능을 통해 재료 목록을 추출하고 그 재료를 바탕으로 만들 수 있는 음식을 추천해준다. 그리고 그 추천된 음식을 기반으로 이미지를 생성해준다. 이 모든 과정에서 LangChain을 사용함으로서 여러 개의 프롬프트 및 연산을 연결하여 복잡한 워크플로우를 쉽게 구성하였고 작업들을 자동화시켰다.

작동과정

  1. 냉장고 사진을 업로드하면 Vision 기능을 통해 재료 목록을 추출.
  2. 추출된 재료를 바탕으로 만들 수 있는 음식 2가지를 추천.
  3. 추천된 음식을 기반으로 이미지를 생성.

What I Learned

  • 이미지를 LLM모델에 첨부하기 위해서는 base64 방식의 인코딩이 필요하다고 한다.

  • 인코딩 함수에 이미지 파일경로를 담고, prompt에 인코딩된 이미지를 변수로 넣어주면 된다. 그 후에는, LangChain을 활용해 LLM모델에 프롬프트를 적용시켜 파싱하면 모델이 비전 기능을 활용해 이미지를 읽고 필요한 재료들의 리스트를 답변해준다.

  • 비슷한 형식으로 recommend해주는 prompt를 만들고 난 후, “food”라는 변수에, 위에서 listing_prompt에 대해 LLM이 생성한 재료들의 값을 할당하여 LLM을 invoke하면 두 가지 프롬프트에 대한 워크플로우가 생기게 된다. 이게 바로 LangChain의핵심이다.

  • 두 체인을 연결해서, 한 번의 실행으로 만들 수 있다. 이 때 쓰는 함수가 RunnableParallel.assign인데 이렇게 구현하면 두 체인을 병렬적으로 처리함과 동시에 각 체인에 대한 결과를 모두 확인할 수 있다.
  • 이제 생성된 이미지를 gradio를 활용해 인터페이스 생성을 하면 앱이 완성된다.

느낀 점

LangChain과 멀티모달 AI의 결합이 가져오는 잠재력을 체감하였다. LLM이나 생성형 AI가 텍스트 기반으로만 작동할까 했는데, OpenAI의 비전 인식과 DALL-E 같은 이미지 생성 기술을 활용해 스마트 냉장고 메뉴 추천 시스템을 구현한 사례를 보니, AI가 단순히 텍스트를 넘어 이미지와 같은 멀티모달 데이터를 처리하며 실생활 문제를 해결할 수 있다는 점을 알게 되었다. LangChain의 체인 구조를 활용해 복잡한 작업을 모듈화하고 체계적으로 해결하는 코드를 실습해보면서 예전에 LLM만 활용했을 때에 느꼈던 한계점(Hallucination)을 조금은 보완할 수 있다 생각했다. 여기에 RAG 및 Vector DB를 연결하고 데이터가 없을 시 활용할 검색 엔진을 tool로 활용해서 LangChain을 구성하고 워크플로우를 자동화 시키면 생성형 AI의 대부분의 한계점을 극복할 수 있지 않을까 하는 생각이 들었다.

향후 기술 활용성

LangChain과 멀티모달 기술을 개발에 활용한다면, 개인 프로젝트에서 실용적인 AI 솔루션을 빠르게 구현할 수 있을 것 같다. 팀 프로젝트에서는 이를 확장해 더 많은 데이터를 vector화 시켜 수집하고 유사도를 측정해 오차를 줄이면 되지 않을까? 상용화 측면에서는, 비용 효율적인 모델을 사용해 도메인에 맞게 학습시켜 유지비를 줄이고, 개인화된 서비스를 제공할 수 있어 좋은 아이디어로 기획 및 솔루션 개발을 한다면 틈새 시장을 노릴 수 있는 경쟁력을 가질 수 있을 것 같다. 뒷 배경의 모든 로직을 이해하진 않지만, 수많은 간편한 모듈과 라이브러리가 존재한 이 시점에 생성형 AI를 제대로 구축하는 법만 익힌다면 완벽하진 않더라도 많은 분야에서 자동화를 이룰 수 있을 것이라 본다.

profile
안녕하세요

2개의 댓글

comment-user-thumbnail
2025년 3월 13일

이해관계자입니다.
설득이 되지 않는데요??

1개의 답글