20

Streamlit: 제조 엔지니어를 위한 가장 쉬운 UI

Day 4: 제조 도메인 챗봇

학습 목표

Streamlit의 장점과 한계를 이해한다 제조 현장에서 Streamlit이 적합한 이유를 파악한다 챗봇 아키텍처를 설계할 수 있다

왜 Streamlit인가?


선택지 비교

프레임워크난이도개발 시간디자인제조 적합도
React + FastAPI2주+자유도 높음프로덕션용
Gradio1일제한적ML 데모용
Streamlit1~2일적당내부 도구용
Flask + HTML1주수동범용

Streamlit을 선택하는 이유:

  • Python만 알면 된다 (HTML/CSS/JS 불필요)
  • 1~2일이면 완성 가능
  • 제조 현장의 "내부 도구"에 최적

Streamlit 핵심 개념 3가지

import streamlit as st

# 1. st.session_state: 대화 히스토리 저장
if "messages" not in st.session_state:
    st.session_state.messages = []

# 2. st.chat_message: 챗봇 말풍선
with st.chat_message("assistant"):
    st.markdown("안녕하세요! 제조 AI입니다.")

# 3. st.chat_input: 사용자 입력
user_input = st.chat_input("질문을 입력하세요")

이 3가지만 알면 챗봇을 만들 수 있다.


챗봇 아키텍처

┌─────────────────────────────────────────────────────────┐
│                      Streamlit UI                        │
├─────────────────────────────────────────────────────────┤
│  ┌─────────────────┐  ┌──────────────────────────────┐  │
│  │   사이드바       │  │       메인 채팅창            │  │
│  │                  │  │                              │  │
│  │  분야 선택       │  │  chat_message("user")       │  │
│  │  모델 선택       │  │  chat_message("assistant")  │  │
│  │  온도 조절       │  │  ...                        │  │
│  │  대화 초기화     │  │                              │  │
│  │  사용량 표시     │  │  chat_input()               │  │
│  └─────────────────┘  └──────────────────────────────┘  │
├─────────────────────────────────────────────────────────┤
│                    비즈니스 로직                          │
│  ┌─────────────────────────────────────────────────────┐│
│  │  분야별 시스템 프롬프트 관리                          ││
│  │  대화 히스토리 관리 (session_state)                   ││
│  │  스트리밍 응답 처리                                   ││
│  │  에러 처리 & 재시도                                   ││
│  │  비용 추적                                            ││
│  └─────────────────────────────────────────────────────┘│
├─────────────────────────────────────────────────────────┤
│                      OpenAI API                          │
└─────────────────────────────────────────────────────────┘

분야별 시스템 프롬프트

SYSTEM_PROMPTS = {
    "CNC 가공": (
        "당신은 20년 경력의 CNC 가공 전문가입니다. "
        "FANUC, MAZAK, DMG MORI 설비에 정통합니다. "
        "알람 코드, 가공 조건, 트러블슈팅을 전문으로 합니다."
    ),
    "PLC 제어": (
        "당신은 15년 경력의 PLC 프로그래밍 전문가입니다. "
        "Mitsubishi, Siemens, Allen-Bradley PLC 경험이 있습니다. "
        "래더 로직, 통신 설정, 디버깅을 전문으로 합니다."
    ),
    "품질관리": (
        "당신은 ISO 9001 수석심사원이자 SPC 전문가입니다. "
        "자동차(IATF 16949) 및 반도체 품질관리 경험이 있습니다. "
        "SPC, MSA, FMEA, 8D를 전문으로 합니다."
    ),
    "설비 보전": (
        "당신은 설비보전기사 자격의 유지보수 전문가입니다. "
        "예방정비, 예지정비, 고장 진단에 정통합니다. "
        "TPM, RCM 방법론을 전문으로 합니다."
    ),
}

각 분야에 맞는 전문가 역할을 부여하면 같은 질문에도 관점이 다른 답변을 얻을 수 있다.

AI로 학습하기 — 꿀팁
Streamlit 제조 현장 적합성 검증AI 학습 팁

Streamlit이 제조 현장 내부 도구에 정말 적합한지, 아니면 다른 선택지(Gradio, FastAPI+React 등)가 나은지 비교 분석하세요.

Streamlit을 제조 AI 내부 도구 개발에 적합하다고 추천하는 의견을 비판적으로 검토해주세요. (1) 제조 현장 내부 도구 요구사항(다중 사용자 동시 접속, OT 네트워크 보안, 모바일/태블릿 지원, 배포 용이성)에서 Streamlit의 실제 한계점, (2) 같은 요구사항 대비 Gradio, FastAPI+React, Retool의 비교 우위, (3) '제조 엔지니어가 빠르게 프로토타입을 만들 때'와 '실제 공장 운영 환경에 배포할 때' Streamlit 적합성이 어떻게 달라지는지 분석해주세요.
이 팁이 도움이 됐나요?