Spaces:
Running
Running
sunheycho
commited on
Commit
·
b149ffe
1
Parent(s):
6a00dc7
Optimize endpoint authentication requirements
Browse files- Made /api/status public endpoint (no auth required)
- Removed @fresh_login_required from root paths to prevent redirect loops
- Changed @fresh_login_required to @login_required for consistency
- Simplified authentication flow for better user experience
- api.py +7 -15
- product_comparison.py +1 -1
api.py
CHANGED
@@ -1946,7 +1946,6 @@ def static_js_files(filename):
|
|
1946 |
# 기본 경로 및 기타 경로 처리 (로그인 필요)
|
1947 |
@app.route('/', defaults={'path': ''}, methods=['GET'])
|
1948 |
@app.route('/<path:path>', methods=['GET'])
|
1949 |
-
@fresh_login_required
|
1950 |
def serve_react(path):
|
1951 |
"""Serve React frontend"""
|
1952 |
print(f"Serving React frontend for path: {path}, user: {current_user.username if current_user.is_authenticated else 'not authenticated'}")
|
@@ -2059,7 +2058,7 @@ def serve_react(path):
|
|
2059 |
return resp
|
2060 |
|
2061 |
@app.route('/similar-images', methods=['GET'])
|
2062 |
-
@
|
2063 |
def similar_images_page():
|
2064 |
"""Serve similar images search page"""
|
2065 |
resp = send_from_directory(app.static_folder, 'similar-images.html')
|
@@ -2069,7 +2068,7 @@ def similar_images_page():
|
|
2069 |
return resp
|
2070 |
|
2071 |
@app.route('/object-detection-search', methods=['GET'])
|
2072 |
-
@
|
2073 |
def object_detection_search_page():
|
2074 |
"""Serve object detection search page"""
|
2075 |
resp = send_from_directory(app.static_folder, 'object-detection-search.html')
|
@@ -2079,7 +2078,7 @@ def object_detection_search_page():
|
|
2079 |
return resp
|
2080 |
|
2081 |
@app.route('/model-vector-db', methods=['GET'])
|
2082 |
-
@
|
2083 |
def model_vector_db_page():
|
2084 |
"""Serve model vector DB UI page"""
|
2085 |
resp = send_from_directory(app.static_folder, 'model-vector-db.html')
|
@@ -2089,7 +2088,7 @@ def model_vector_db_page():
|
|
2089 |
return resp
|
2090 |
|
2091 |
@app.route('/openai-chat', methods=['GET'])
|
2092 |
-
@
|
2093 |
def openai_chat_page():
|
2094 |
"""Serve OpenAI chat UI page"""
|
2095 |
resp = send_from_directory(app.static_folder, 'openai-chat.html')
|
@@ -2099,7 +2098,7 @@ def openai_chat_page():
|
|
2099 |
return resp
|
2100 |
|
2101 |
@app.route('/api/openai/chat', methods=['POST'])
|
2102 |
-
@
|
2103 |
def openai_chat_api():
|
2104 |
"""Forward chat request to OpenAI Chat Completions API.
|
2105 |
Expects JSON: { prompt: string, model?: string, api_key?: string, system?: string }
|
@@ -2357,13 +2356,7 @@ def vision_rag_query():
|
|
2357 |
|
2358 |
@app.route('/api/status', methods=['GET'])
|
2359 |
def status():
|
2360 |
-
#
|
2361 |
-
user_id = session.get('user_id')
|
2362 |
-
username = session.get('username')
|
2363 |
-
|
2364 |
-
if not user_id or not username:
|
2365 |
-
return jsonify({"error": "Not authenticated"}), 401
|
2366 |
-
|
2367 |
return jsonify({
|
2368 |
"status": "online",
|
2369 |
"models": {
|
@@ -2371,8 +2364,7 @@ def status():
|
|
2371 |
"detr": detr_model is not None and detr_processor is not None,
|
2372 |
"vit": vit_model is not None and vit_processor is not None
|
2373 |
},
|
2374 |
-
"device": "GPU" if torch.cuda.is_available() else "CPU"
|
2375 |
-
"user": username
|
2376 |
})
|
2377 |
|
2378 |
# Root route is now handled by serve_react function
|
|
|
1946 |
# 기본 경로 및 기타 경로 처리 (로그인 필요)
|
1947 |
@app.route('/', defaults={'path': ''}, methods=['GET'])
|
1948 |
@app.route('/<path:path>', methods=['GET'])
|
|
|
1949 |
def serve_react(path):
|
1950 |
"""Serve React frontend"""
|
1951 |
print(f"Serving React frontend for path: {path}, user: {current_user.username if current_user.is_authenticated else 'not authenticated'}")
|
|
|
2058 |
return resp
|
2059 |
|
2060 |
@app.route('/similar-images', methods=['GET'])
|
2061 |
+
@login_required
|
2062 |
def similar_images_page():
|
2063 |
"""Serve similar images search page"""
|
2064 |
resp = send_from_directory(app.static_folder, 'similar-images.html')
|
|
|
2068 |
return resp
|
2069 |
|
2070 |
@app.route('/object-detection-search', methods=['GET'])
|
2071 |
+
@login_required
|
2072 |
def object_detection_search_page():
|
2073 |
"""Serve object detection search page"""
|
2074 |
resp = send_from_directory(app.static_folder, 'object-detection-search.html')
|
|
|
2078 |
return resp
|
2079 |
|
2080 |
@app.route('/model-vector-db', methods=['GET'])
|
2081 |
+
@login_required
|
2082 |
def model_vector_db_page():
|
2083 |
"""Serve model vector DB UI page"""
|
2084 |
resp = send_from_directory(app.static_folder, 'model-vector-db.html')
|
|
|
2088 |
return resp
|
2089 |
|
2090 |
@app.route('/openai-chat', methods=['GET'])
|
2091 |
+
@login_required
|
2092 |
def openai_chat_page():
|
2093 |
"""Serve OpenAI chat UI page"""
|
2094 |
resp = send_from_directory(app.static_folder, 'openai-chat.html')
|
|
|
2098 |
return resp
|
2099 |
|
2100 |
@app.route('/api/openai/chat', methods=['POST'])
|
2101 |
+
@login_required
|
2102 |
def openai_chat_api():
|
2103 |
"""Forward chat request to OpenAI Chat Completions API.
|
2104 |
Expects JSON: { prompt: string, model?: string, api_key?: string, system?: string }
|
|
|
2356 |
|
2357 |
@app.route('/api/status', methods=['GET'])
|
2358 |
def status():
|
2359 |
+
# Public endpoint - no authentication required
|
|
|
|
|
|
|
|
|
|
|
|
|
2360 |
return jsonify({
|
2361 |
"status": "online",
|
2362 |
"models": {
|
|
|
2364 |
"detr": detr_model is not None and detr_processor is not None,
|
2365 |
"vit": vit_model is not None and vit_processor is not None
|
2366 |
},
|
2367 |
+
"device": "GPU" if torch.cuda.is_available() else "CPU"
|
|
|
2368 |
})
|
2369 |
|
2370 |
# Root route is now handled by serve_react function
|
product_comparison.py
CHANGED
@@ -164,7 +164,7 @@ class BaseAgent:
|
|
164 |
api_key = os.environ.get('OPENAI_API_KEY')
|
165 |
if api_key:
|
166 |
self.llm = ChatOpenAI(
|
167 |
-
model="gpt-5
|
168 |
temperature=0.7,
|
169 |
api_key=api_key
|
170 |
)
|
|
|
164 |
api_key = os.environ.get('OPENAI_API_KEY')
|
165 |
if api_key:
|
166 |
self.llm = ChatOpenAI(
|
167 |
+
model="gpt-5",
|
168 |
temperature=0.7,
|
169 |
api_key=api_key
|
170 |
)
|