LangChain 에서 LLM 모델에게 이미지 보내기
1. 이미지를 보내는 방법
LLM 모델에게 이미지를 보내는 방법은 아래 세 가지입니다.
(1) URL 로 이미지 보내기
(2) Base64로 인코딩해 보내기
(3) LLM 제공자 관리 File ID 로 이미지 보내기
예시 이미지
(1) URL로 이미지 보내기
message 를 dictionary 로 구성할 경우의 예시입니다.
이미지를 추가할 경우 type 은 image 로, 그리고 url 파라미터를 추가해줍니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from langchain_openai import ChatOpenAI
import os
os . environ [ "OPENAI_API_KEY" ] = "MyAPIKey"
model = ChatOpenAI ( model = "gpt-4o" )
message = {
"role" : "user" ,
"content" : [
{ "type" : "text" , "text" : "이 사진에 대해 설명하고, 이곳이 어디인지 추측해보세요." },
{ "type" : "image" , "url" : "https://whdrns2013.github.io/assets/images/20260327_001_001.png" },
]
}
model . invoke ([ message ])
1
2
3
4
5
6
7
8
# 답변
이 사진은 강 위에 다리가 놓여 있고 , 해가 지는 장면을 담고 있습니다 .
해가 다리 아래로 지고 있어 강물에 반사가 아름답게 이루어지고 있으며 ,
도시의 고층 빌딩들이 실루엣으로 보입니다 .
이런 풍경은 서울의 한강과 비슷해 보입니다 .
특히 고층 빌딩과 강이 같이 보이는 것으로 보아 서울의 여의도나 강변북로 근처일 가능성이 있습니다 .
하지만 정확한 장소는 확실히 알 수 없습니다 .
(2) Base64로 인코딩해 보내기
message 를 dictionary 로 구성할 경우의 예시입니다.
이미지를 추가할 경우 type 은 image 로, 그리고 base64 와 mime_type파라미터를 추가해줍니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from langchain_openai import ChatOpenAI
import os
import base64
os . environ [ "OPENAI_API_KEY" ] = "MyAPIKey"
model = ChatOpenAI ( model = "gpt-4o" )
with open ( "data/image.jpg" , "rb" ) as f :
base64_data = base64 . b64encode ( f . read ()). decode ()
message = {
"role" : "user" ,
"content" : [
{ "type" : "text" , "text" : "이 사진에 대해 설명하고, 이곳이 어디인지 추측해보세요." },
{ "type" : "image" ,
"base64" : base64_data ,
"mime_type" : "image/jpeg"
},
]
}
model . invoke ([ message ])
1
2
3
4
5
6
7
8
# 답변
이 사진은 강 위에 놓인 다리와 저녁 노을이 지는 장면을 담고 있습니다 .
다리 너머로는 고층 건물들이 보이며 ,
해가 지면서 하늘과 물 위에 따뜻한 색깔의 노을이 아름답게 펼쳐져 있습니다 .
이곳은 도시의 대형 강변 또는 호수에 있는 다리로 보이며 ,
풍경으로 미루어 보아 서울의 한강 주변일 가능성이 있습니다 .
특히 서울에는 여러 다리와 고층 건물들이 있어 이와 유사한 도시 경관을 자주 볼 수 있습니다 .
(3) LLM 제공자 관리 File ID 로 이미지 보내기
LLM 제공자(예: OpenAI, Anthropic)가 내부적으로 관리하는 파일의 고유 ID를 참조하는 옵션
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from langchain_openai import ChatOpenAI
import os
os . environ [ "OPENAI_API_KEY" ] = "MyAPIKey"
model = ChatOpenAI ( model = "gpt-4o" )
message = {
"role" : "user" ,
"content" : [
{ "type" : "text" , "text" : "Describe the content of this image." },
{ "type" : "image" , "file_id" : "file-abc123" },
]
}
model . invoke ([ message ])
Reference
https://docs.langchain.com/oss/javascript/langchain/messages#multimodal
Tags:
ai ,
langchain ,
llm ,
개념 ,
그림 ,
기본 ,
대화 ,
랭체인 ,
보내기 ,
사용법 ,
영상 ,
이미지
Categories:
AI
Updated: 2026-03-d
Comments