File size: 2,506 Bytes
babf3f3
a90b938
babf3f3
 
64a6951
a90b938
64a6951
 
 
a90b938
64a6951
 
 
 
 
 
 
 
a90b938
64a6951
 
a90b938
64a6951
 
a90b938
64a6951
 
a90b938
64a6951
a90b938
64a6951
 
 
 
 
 
 
 
 
babf3f3
64a6951
 
 
 
babf3f3
64a6951
 
 
babf3f3
64a6951
 
a90b938
64a6951
 
 
 
 
 
 
 
 
 
 
a90b938
64a6951
 
 
 
 
babf3f3
64a6951
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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)