jeongsoo's picture
Add application file
64a6951
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)