import streamlit as st import requests import os import json import sys # 시스템 정보 확인 st.write("Python version:", sys.version) st.write("현재 작업 디렉토리:", os.getcwd()) # 환경 변수 확인 (보안상 민감한 정보는 가려서 표시) env_vars = {} for key in os.environ: value = os.environ[key] if key in ['API_BASE_URL']: env_vars[key] = value elif 'SECRET' in key or 'KEY' in key or 'TOKEN' in key or 'PASSWORD' in key: env_vars[key] = value[:4] + '****' if len(value) > 4 else '****' st.subheader("환경 변수") st.json(env_vars) # API 연결 테스트 st.subheader("API 연결 테스트") api_url = os.environ.get('API_BASE_URL', 'https://enter-your-api-url.com') st.write(f"API URL: {api_url}") test_url = st.text_input("테스트할 API URL", api_url) if st.button("API 연결 테스트"): try: with st.spinner("API 연결 테스트 중..."): response = requests.get(f"{test_url}/docs", timeout=10) st.success(f"API 연결 성공! 상태 코드: {response.status_code}") st.text(f"응답 내용 (처음 500자): {response.text[:500]}") except Exception as e: st.error(f"API 연결 실패: {str(e)}") st.info("API 서버가 실행 중인지, URL이 올바른지 확인하세요.") # 파일 시스템 확인 st.subheader("파일 시스템 확인") files = os.listdir('.') st.write("현재 디렉토리 파일:", files) # 간단한 채팅 UI st.subheader("간단한 채팅 테스트") user_input = st.text_input("질문 입력") if st.button("전송") and user_input: st.write(f"사용자: {user_input}") try: with st.spinner("응답 생성 중..."): response = requests.post( f"{api_url}/rag", json={ "query": user_input, "retriever_type": "reranker", "top_k": 3 }, timeout=30 ) if response.status_code == 200: result = response.json() st.write(f"챗봇: {result.get('answer', '응답을 받지 못했습니다.')}") st.write("응답 세부 정보:") st.json(result) else: st.error(f"API 오류: {response.status_code} - {response.text}") except Exception as e: st.error(f"오류 발생: {str(e)}") st.info("자세한 오류 정보:") st.exception(e)