2025.11.10 (Day 11) Streamlit · OpenAI Chat App#
1. 주요 개념 요약#
- Streamlit UI 구성:
st.sidebar, st.text_area, st.button 등을 활용해 사용자 입력–출력 구조를 설계한다. 빠른 프로토타이핑이 가능해 보안 로그 분석기의 대화 인터페이스로 확장 가능하다. - OpenAI API 연결 구조:
.env 파일의 API Key를 불러오거나 사용자가 직접 입력하도록 설계하여 OpenAI 클라이언트를 안전하게 초기화한다. - ChatCompletion 모델 호출: GPT 모델(
gpt-4o-mini)을 사용해 사용자의 입력 텍스트를 처리하고 응답을 반환한다. 모델 호출 로직을 함수화하면 다른 입력(로그, 이벤트, 에러 메시지)에도 재사용 가능하다. - 보안 LLM 개념: API Key 보호, 입력 데이터 검증, 프롬프트 인젝션 방어 등 보안 측면에서 LLM 사용의 기초를 이해해야 한다.
2. 실습 코드 및 응용#
A. Streamlit 기본 UI 구성#
- 텍스트 입력과 버튼 출력 구조를 구성하여 이후 LLM 기반 보안 로그 분석기의 인터페이스 기반으로 활용한다.
import streamlit as st
st.set_page_config(page_title='챗 모델을 이용한 응답')
st.header('요약 응답')
text = st.text_area('글 입력')
if st.button('요약해줘'):
st.info('요약 결과 표시')
B. OpenAI API 연결 및 챗 응답 생성#
- 모델 호출 로직을 함수화하여 보안 로그, 이벤트, 에러 메시지 등 다양한 입력에 재사용할 수 있다.
from openai import OpenAI
def askChat(query, key):
client = OpenAI(api_key=key)
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': query}]
)
return response.choices[0].message.content
C. API Key 보안 처리 및 세션 관리#
- API Key는 사용자가 직접 입력하며
st.session_state에만 임시 저장한다. .env 병행 시 환경 분리와 키 노출 방지 효과를 동시에 확보할 수 있다.
from dotenv import load_dotenv
import os
if 'api_key' not in st.session_state:
st.session_state['api_key'] = ''
with st.sidebar:
key = st.text_input(label='input key', placeholder='api key', type='password')
if key:
st.session_state['api_key'] = key
3. 보안 관점 분석#
- SOC / 관제: 실시간 로그나 경보 메시지를 LLM으로 요약하여 운영자 피로도를 감소시키고 탐지 피드백 속도를 향상시킨다.
- CERT / 사고대응: 공격 단계별 로그를 LLM에 입력하여 사건 개요·원인·조치 요약을 자동 생성하고 브리핑 효율성을 높인다.
- DevSecOps: 빌드 로그·취약점 스캔 결과를 ChatCompletion으로 자동 요약하여 CI/CD 파이프라인에서 자동 리포팅 시스템을 구축할 수 있다.
- 취약점 진단 / 펜테스트: 모의해킹 결과 텍스트를 입력해 취약점 유형별 요약 및 리스크 레벨을 자동 분류한다.
- 데이터 프라이버시: 사용자 입력값 검증 및 마스킹 처리로 민감정보 노출을 최소화하고 모델 입력 안정성을 확보한다.
4. 요약#
- Streamlit + OpenAI Chat API를 통해 LLM 응용 서비스를 빠르게 프로토타이핑하는 방법을 익혔다.
.env 또는 session_state를 이용한 API Key 보호 구조로 보안 환경에서의 안전한 모델 호출을 구현했다.- LLM 응답을 단순 대화가 아닌 보안 로그·사고 보고서 자동 요약에 적용할 수 있음을 확인했다.
- 본 실습은 이후 LangChain, Guardrails, RAG 기반 보안 LLM 파이프라인 학습의 기초가 된다.