jeongsoo/RAG6_DockerLLM_API_Service
0
1import streamlit as st2import requests3import os4import json5import sys6 7# 시스템 정보 확인8st.write("Python version:", sys.version)9st.write("현재 작업 디렉토리:", os.getcwd())10 11# 환경 변수 확인 (보안상 민감한 정보는 가려서 표시)12env_vars = {}13for key in os.environ:14 value = os.environ[key]15 if key in ['API_BASE_URL']:16 env_vars[key] = value17 elif 'SECRET' in key or 'KEY' in key or 'TOKEN' in key or 'PASSWORD' in key:18 env_vars[key] = value[:4] + '****' if len(value) > 4 else '****'19 20st.subheader("환경 변수")21st.json(env_vars)22 23# API 연결 테스트24st.subheader("API 연결 테스트")25 26api_url = os.environ.get('API_BASE_URL', 'https://enter-your-api-url.com')27st.write(f"API URL: {api_url}")28 29test_url = st.text_input("테스트할 API URL", api_url)30 31if st.button("API 연결 테스트"):32 try:33 with st.spinner("API 연결 테스트 중..."):34 response = requests.get(f"{test_url}/docs", timeout=10)35 st.success(f"API 연결 성공! 상태 코드: {response.status_code}")36 st.text(f"응답 내용 (처음 500자): {response.text[:500]}")37 except Exception as e:38 st.error(f"API 연결 실패: {str(e)}")39 st.info("API 서버가 실행 중인지, URL이 올바른지 확인하세요.")40 41# 파일 시스템 확인42st.subheader("파일 시스템 확인")43files = os.listdir('.')44st.write("현재 디렉토리 파일:", files)45 46# 간단한 채팅 UI47st.subheader("간단한 채팅 테스트")48user_input = st.text_input("질문 입력")49 50if st.button("전송") and user_input:51 st.write(f"사용자: {user_input}")52 53 try:54 with st.spinner("응답 생성 중..."):55 response = requests.post(56 f"{api_url}/rag",57 json={58 "query": user_input,59 "retriever_type": "reranker",60 "top_k": 361 },62 timeout=3063 )64 65 if response.status_code == 200:66 result = response.json()67 st.write(f"챗봇: {result.get('answer', '응답을 받지 못했습니다.')}")68 st.write("응답 세부 정보:")69 st.json(result)70 else:71 st.error(f"API 오류: {response.status_code} - {response.text}")72 except Exception as e:73 st.error(f"오류 발생: {str(e)}")74 st.info("자세한 오류 정보:")75 st.exception(e)