SOY NV AI
commited on
Commit
ยท
34d15be
1
Parent(s):
a7879f6
Improve SystemConfig logging and add verification after saving settings
Browse files- app/database.py +11 -0
- 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 |
-
|
| 2221 |
-
|
| 2222 |
-
|
| 2223 |
-
|
| 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:
|