인사이트 제공형 차량 운전습관 분석 에이전트
개요
이 API는 차량진단 스캐너 혹은 앱 등을 이용해 수집된 속도 및 엔진회전수(rpm)를 활용하여, LLM이 운전 성향을 분석하고 인사이트 리포트를 자동 생성하는 서비스입니다. 본 API는 SSE(Server-Sent Events) 기반 Streaming 응답을 지원하며, 아래는 파이썬을 이용한 API 사용예시 입니다.
Quickstart
파이썬 예시 입니다.
import requests
import json
# 분석 API URL
url = "http://llm.theimc.co.kr/driving_analyze"
# 업로드할 센서 데이터 파일 경로
file_path = "your_sensor_file.csv"
# 파일 및 요청 파라미터 구성
files = {
"file": open(file_path, "rb"),
}
data = {
"request": json.dumps({
"output_format": "json"
})
}
# SSE Streaming 응답 처리
with requests.post(url, files=files, data=data, stream=True) as response:
print("Status:", response.status_code)
for line in response.iter_lines(decode_unicode=True):
if line and line.startswith("data: "):
content = line[len("data: "):]
try:
json_data = json.loads(content)
# LLM이 생성 중인 내용은 줄바꿈 없이 이어서 출력
if "content" in json_data:
print(json_data["content"], end="", flush=True)
# 상태 정보나 이벤트는 별도 표기
else:
print(f"\n[Event: {json_data.get('type')}] {json_data.get('data')}")
except json.JSONDecodeError:
# 스트리밍 중 출력되지 않는 조각 데이터는 무시
pass
API 안내 내용
- 운행 데이터 입력 시, LLM이 다음과 같은 인사이트를 자동으로 생성:
- 운행 거리 및 운전 점수 요약
- 과속/급가속/급감속 등 위험 운전 지표 분석
- 과거 점수와 비교한 운전 습관 개선 평가
- 공회전 시간에 대한 효율성 분석 및 개선 제안
활용 분야
- 차량 운행 리포트 자동 요약 서비스
- 보험사 UBI 운전습관 평가 대시보드
- 기업 차량관제 시스템의 운전 리스크 관리
- 공단/지자체용 운전 성향 분석 리포트 자동화
API Endpoint
POST http://llm.theimc.co.kr/driving_analyze
요청(Request)
Content-Type
multipart/form-data
Form Fields
| 필드명 | 타입 | 필수 | 설명 |
|---|---|---|---|
file
| File | Yes | csv형태의 주행 데이터 |
request
| JSON String | Yes | 분석 옵션을 포함한 JSON 문자열 |
file Fields
- 속도(speed) 및 rpm을 반드시 포함하고 있는 csv 차량 데이터
- CSV 형식만 허용
- 아래 컬럼명을 사용하는 것을 권장
| 컬럼명 | 설명 |
|---|---|
time_iso
| 타임스탬프 (ISO 8601 형식) |
speed
| 차량 속도 (km/h) |
rpm
| 엔진 회전수 (RPM) |
Request Fields
- output_format(sting) 출력 결과의 형식을 지정합니다. 아래 표 값 중 하나를 선택할 수 있습니다.
| 값 | 설명 |
|---|---|
json
| 기계 처리용 구조화된 JSON 형식으로 결과제공 |
markdown
| Markdown 문법 기반의 구조화된 결과 제공 (보고서/문서화에 적합) |
html
| HTML 형식으로 결과 제공 (웹 UI 렌더링에 적합) |
mobile
| 모바일 화면에 최적화된 간결한 출력 포맷 |
예시
{
"output_format": "json"
}
응답(Response)
SSE(Server-Sent Events)를 사용하여 모델의 응답을 실시간으로 클라이언트에 전달합니다.
sse 이벤트 타입
| type | 설명 | 응답 예시 |
|---|---|---|
| start | 시작 신호 | {"type": "start"} |
| analysis | 분석 결과 데이터 | {"type": "driving_analysis", "data": {...}} |
| answer_start | LLM 응답 시작 신호 | {"type": "answer_start"} |
| answer_chunk | LLM 생성 토큰 | {"type": "answer_chunk", "content": "텍스트"} |
| complete | 응답 완료 | {"type": "complete"} |
| error | 에러 발생 | {"type": "error", "error": "에러 메시지"} |
요청 성공 예시
data: {"type": "start"}
data: {"type": "driving_analysis", "data": {"운행거리": "약 120km", "UBI 기준 운행점수": "85.5점", ...}}
data: {"type": "answer_start"}
data: {"type": "answer_chunk", "content": "이번"}
data: {"type": "answer_chunk", "content": " 운행은"}
data: {"type": "answer_chunk", "content": " 전반적으로"}
data: {"type": "complete"}
요청 실패 예시
| 상태 | 설명 |
|---|---|
| 파일 오류 | CSV 파일만 업로드 가능합니다 |
| 빈 파일 | 빈 파일입니다 |
| 파싱 오류 | CSV 파일 형식이 올바르지 않습니다 |
| 데이터 없음 | 분석할 데이터가 없습니다 |
| 서버 오류 | 예상치 못한 오류가 발생했습니다 |
API 호출에서 발생하는 오류는
API Error code
페이지를 확인해주세요.
