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

Files changed (2) hide show
  1. api.py +7 -15
  2. 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
- @fresh_login_required
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
- @fresh_login_required
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
- @fresh_login_required
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
- @fresh_login_required
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
- @fresh_login_required
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
- # Manual session check instead of @fresh_login_required
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-mini",
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
  )