-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathchatbot.py
More file actions
59 lines (46 loc) · 3.37 KB
/
chatbot.py
File metadata and controls
59 lines (46 loc) · 3.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import os
from openai import OpenAI
from dotenv import load_dotenv
import base64
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
client = OpenAI(api_key=api_key)
# 로컬 이미지 열기
def analyze_image(img_path):
with open(img_path, "rb") as image_file:
base64_image = base64.b64encode(image_file.read()).decode("utf-8")
prompt = """
다음 이미지를 분석해서 다음 기준에 따라 차량의 불법 적재 여부를 판단해줘:
적재불량 이란?
적재물 조치 미흡으로 낙하물이 발생할 위험이 있는 차량
적재불량 차량(예시)
1.편중적재 : 적재물을 한쪽으로 쏠리게 한 차량
2.결속상태불량 : 덮개, 묶기 등 화물을 확실하게 고정하지 않고 운행하는 차량
3.적재함 청소 불량 : 적재함 잡물 미제거로 잡물 비산 우려 차량
4.덮개 미설치 : 모래, 흙, 자갈 등을 운반하면서 덮개를 미설치한 차량
5.액체 방류 : 기름, 물, 레미콘 등 액화물질 방류 우려 차량
6.기타 적재물 낙하 우려 차량 : 기타 적재물 낙하우려가 있는 차량(적재함개방 등)
도로교통법 (승차 또는 적재의 방법과 제한)
1모든 차의 운전자는 승차 인원, 적재중량 및 적재용량에 관하여 대통령령으로 정하는 운행상의 안전기준을 넘어서 승차시키거나 적재한 상태로 운전하여서는 아니 된다. 다만, 출발지를 관할하는 경찰서장의 허가를 받은 경우에는 그러하지 아니하다.
2 제1항 단서에 따른 허가를 받으려는 차가 「도로법」 제77조제1항 단서에 따른 운행허가를 받아야 하는 차에 해당하는 경우에는 제14조제4항을 준용한다. <신설 2014. 12. 30.>
3모든 차의 운전자는 운전 중 타고 있는 사람 또는 타고 내리는 사람이 떨어지지 아니하도록 하기 위하여 문을 정확히 여닫는 등 필요한 조치를 하여야 한다. <개정 2014. 12. 30.>
4모든 차의 운전자는 운전 중 실은 화물이 떨어지지 아니하도록 덮개를 씌우거나 묶는 등 확실하게 고정될 수 있도록 필요한 조치를 하여야 한다. <개정 2014. 12. 30.>
5모든 차의 운전자는 영유아나 동물을 안고 운전 장치를 조작하거나 운전석 주위에 물건을 싣는 등 안전에 지장을 줄 우려가 있는 상태로 운전하여서는 아니 된다. <개정 2014. 12. 30.>
6지방경찰청장은 도로에서의 위험을 방지하고 교통의 안전과 원활한 소통을 확보하기 위하여 필요하다고 인정하는 경우에는 차의 운전자에 대하여 승차 인원, 적재중량 또는 적재용량을 제한할 수 있다. <개정 2014. 12. 30.>
사진 각도나 품질 때문에 판단이 어려운 경우는 '판단이 어렵습니다'라고 명확히 말해주세요.
"""
response = client.responses.create(
model="gpt-4.1-nano",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": prompt},
{
"type": "input_image",
"image_url": f"data:image/jpeg;base64,{base64_image}",
},
],
}],
)
text = response.output[0].content[0].text
return text