SOY NV AI commited on
Commit
34d15be
ยท
1 Parent(s): a7879f6

Improve SystemConfig logging and add verification after saving settings

Browse files
Files changed (2) hide show
  1. app/database.py +11 -0
  2. app/routes.py +31 -6
app/database.py CHANGED
@@ -214,14 +214,25 @@ class SystemConfig(db.Model):
214
 
215
  config = SystemConfig.query.filter_by(key=key).first()
216
  if config:
 
217
  config.value = value
218
  if description:
219
  config.description = description
220
  config.updated_at = datetime.utcnow()
221
  else:
 
222
  config = SystemConfig(key=key, value=value, description=description)
223
  db.session.add(config)
 
224
  db.session.commit()
 
 
 
 
 
 
 
 
225
  return config
226
  except Exception as e:
227
  db.session.rollback()
 
214
 
215
  config = SystemConfig.query.filter_by(key=key).first()
216
  if config:
217
+ print(f"[SystemConfig.set_config] ๊ธฐ์กด ์„ค์ • ์—…๋ฐ์ดํŠธ: {key}")
218
  config.value = value
219
  if description:
220
  config.description = description
221
  config.updated_at = datetime.utcnow()
222
  else:
223
+ print(f"[SystemConfig.set_config] ์ƒˆ ์„ค์ • ์ƒ์„ฑ: {key}")
224
  config = SystemConfig(key=key, value=value, description=description)
225
  db.session.add(config)
226
+
227
  db.session.commit()
228
+
229
+ # ์ €์žฅ ํ™•์ธ
230
+ verify_config = SystemConfig.query.filter_by(key=key).first()
231
+ if verify_config and verify_config.value == value:
232
+ print(f"[SystemConfig.set_config] ์„ค์ • ์ €์žฅ ํ™•์ธ๋จ: {key} (๊ธธ์ด: {len(str(value))}์ž)")
233
+ else:
234
+ print(f"[SystemConfig.set_config] ๊ฒฝ๊ณ : ์„ค์ • ์ €์žฅ ํ›„ ํ™•์ธ ์‹คํŒจ: {key}")
235
+
236
  return config
237
  except Exception as e:
238
  db.session.rollback()
app/routes.py CHANGED
@@ -2217,11 +2217,24 @@ def set_gemini_api_key():
2217
  return jsonify({'error': 'API ํ‚ค๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.'}), 400
2218
 
2219
  # API ํ‚ค ์ €์žฅ (SystemConfig.set_config ๋‚ด๋ถ€์—์„œ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์ฒ˜๋ฆฌ)
2220
- SystemConfig.set_config(
2221
- key='gemini_api_key',
2222
- value=api_key,
2223
- description='Google Gemini API ํ‚ค'
2224
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
2225
 
2226
  # Gemini ํด๋ผ์ด์–ธํŠธ์— API ํ‚ค ์žฌ๋กœ๋“œ ์•Œ๋ฆผ
2227
  try:
@@ -2231,9 +2244,21 @@ def set_gemini_api_key():
2231
  except Exception as e:
2232
  print(f"[Gemini] API ํ‚ค ์žฌ๋กœ๋“œ ์‹คํŒจ: {e}")
2233
 
 
 
 
 
 
 
 
 
 
2234
  return jsonify({
2235
  'message': 'Gemini API ํ‚ค๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ €์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.',
2236
- 'has_api_key': True
 
 
 
2237
  }), 200
2238
 
2239
  except Exception as e:
 
2217
  return jsonify({'error': 'API ํ‚ค๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.'}), 400
2218
 
2219
  # API ํ‚ค ์ €์žฅ (SystemConfig.set_config ๋‚ด๋ถ€์—์„œ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์ฒ˜๋ฆฌ)
2220
+ try:
2221
+ SystemConfig.set_config(
2222
+ key='gemini_api_key',
2223
+ value=api_key,
2224
+ description='Google Gemini API ํ‚ค'
2225
+ )
2226
+
2227
+ # ์ €์žฅ ํ™•์ธ
2228
+ saved_key = SystemConfig.get_config('gemini_api_key', '')
2229
+ if saved_key == api_key:
2230
+ print(f"[Gemini API ํ‚ค ์ €์žฅ] ์„ฑ๊ณต: ์ €์žฅ ํ™•์ธ๋จ (๊ธธ์ด: {len(api_key)}์ž)")
2231
+ else:
2232
+ print(f"[Gemini API ํ‚ค ์ €์žฅ] ๊ฒฝ๊ณ : ์ €์žฅ ํ›„ ํ™•์ธ ์‹คํŒจ. ์ €์žฅ๋œ ๊ฐ’: {saved_key[:20] if saved_key else 'None'}...")
2233
+ except Exception as save_error:
2234
+ print(f"[Gemini API ํ‚ค ์ €์žฅ] ์˜ค๋ฅ˜: {save_error}")
2235
+ import traceback
2236
+ traceback.print_exc()
2237
+ return jsonify({'error': f'API ํ‚ค ์ €์žฅ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค: {str(save_error)}'}), 500
2238
 
2239
  # Gemini ํด๋ผ์ด์–ธํŠธ์— API ํ‚ค ์žฌ๋กœ๋“œ ์•Œ๋ฆผ
2240
  try:
 
2244
  except Exception as e:
2245
  print(f"[Gemini] API ํ‚ค ์žฌ๋กœ๋“œ ์‹คํŒจ: {e}")
2246
 
2247
+ # ์ตœ์ข… ํ™•์ธ: DB์—์„œ ์‹ค์ œ๋กœ ์ €์žฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ
2248
+ final_check = SystemConfig.get_config('gemini_api_key', '')
2249
+ if not final_check:
2250
+ print(f"[Gemini API ํ‚ค ์ €์žฅ] ๊ฒฝ๊ณ : ์ €์žฅ ํ›„ DB์—์„œ ์กฐํšŒ ์‹คํŒจ")
2251
+ return jsonify({
2252
+ 'error': 'API ํ‚ค ์ €์žฅ ํ›„ ํ™•์ธ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ํ™•์ธํ•˜์„ธ์š”.',
2253
+ 'saved': False
2254
+ }), 500
2255
+
2256
  return jsonify({
2257
  'message': 'Gemini API ํ‚ค๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ €์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.',
2258
+ 'has_api_key': True,
2259
+ 'masked_key': api_key[:8] + '...' if api_key and len(api_key) > 8 else '',
2260
+ 'saved': True,
2261
+ 'config_count': SystemConfig.query.count() # ํ˜„์žฌ ์„ค์ • ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜
2262
  }), 200
2263
 
2264
  except Exception as e: