SOY NV AI
commited on
Commit
Β·
ead5574
1
Parent(s):
ef22967
Improve Ollama error handling and connection checking - Add Ollama server connection check before API calls - Improve error messages for better debugging - Add detailed error logging for Ollama communication errors
Browse files- app/routes.py +20 -3
app/routes.py
CHANGED
|
@@ -3059,6 +3059,17 @@ def chat():
|
|
| 3059 |
response_text = 'μλ΅μ μμ±ν μ μμμ΅λλ€. λ€μ μλν΄μ£ΌμΈμ.'
|
| 3060 |
else:
|
| 3061 |
# Ollama API νΈμΆ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3062 |
# μ
λ ₯ ν ν° μλ₯Ό num_ctxλ‘ μ¬μ©
|
| 3063 |
num_ctx = get_model_token_limit_by_type(answer_model, 100000, 'input')
|
| 3064 |
num_predict = get_model_token_limit_by_type(answer_model, 8192, 'output')
|
|
@@ -3189,12 +3200,18 @@ def chat():
|
|
| 3189 |
|
| 3190 |
return jsonify(response_data)
|
| 3191 |
|
| 3192 |
-
except requests.exceptions.ConnectionError:
|
| 3193 |
-
|
|
|
|
|
|
|
| 3194 |
except requests.exceptions.Timeout:
|
| 3195 |
return jsonify({'error': 'μλ΅ μκ°μ΄ μ΄κ³Όλμμ΅λλ€. λ μ§§μ λ©μμ§λ₯Ό μλν΄λ³΄μΈμ.'}), 504
|
| 3196 |
except Exception as e:
|
| 3197 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3198 |
else:
|
| 3199 |
# λͺ¨λΈμ΄ μ νλμ§ μμ κ²½μ° κΈ°λ³Έ μλ΅
|
| 3200 |
response_text = f"μλ
νμΈμ! '{message}'μ λν λ΅λ³μ μ€λΉ μ€μ
λλ€.\n\nμ’μΈ‘ νλ¨μμ λ‘컬 AI λͺ¨λΈμ μ ννλ©΄ λ μ νν λ΅λ³μ μ 곡ν μ μμ΅λλ€."
|
|
|
|
| 3059 |
response_text = 'μλ΅μ μμ±ν μ μμμ΅λλ€. λ€μ μλν΄μ£ΌμΈμ.'
|
| 3060 |
else:
|
| 3061 |
# Ollama API νΈμΆ
|
| 3062 |
+
# Ollama μλ² μ°κ²° νμΈ
|
| 3063 |
+
try:
|
| 3064 |
+
# κ°λ¨ν μ°κ²° ν
μ€νΈ
|
| 3065 |
+
test_response = requests.get(f'{OLLAMA_BASE_URL}/api/tags', timeout=5)
|
| 3066 |
+
if test_response.status_code != 200:
|
| 3067 |
+
return jsonify({'error': f'Ollama μλ²μ μ°κ²°ν μ μμ΅λλ€. (μν μ½λ: {test_response.status_code}) Ollamaκ° μ€ν μ€μΈμ§ νμΈνμΈμ. Ollama URL: {OLLAMA_BASE_URL}'}), 503
|
| 3068 |
+
except requests.exceptions.ConnectionError:
|
| 3069 |
+
return jsonify({'error': f'Ollama μλ²μ μ°κ²°ν μ μμ΅λλ€. Ollamaκ° μ€ν μ€μΈμ§ νμΈνμΈμ. Ollama URL: {OLLAMA_BASE_URL}'}), 503
|
| 3070 |
+
except Exception as e:
|
| 3071 |
+
return jsonify({'error': f'Ollama μλ² μ°κ²° νμΈ μ€ μ€λ₯κ° λ°μνμ΅λλ€: {str(e)}. Ollama URL: {OLLAMA_BASE_URL}'}), 503
|
| 3072 |
+
|
| 3073 |
# μ
λ ₯ ν ν° μλ₯Ό num_ctxλ‘ μ¬μ©
|
| 3074 |
num_ctx = get_model_token_limit_by_type(answer_model, 100000, 'input')
|
| 3075 |
num_predict = get_model_token_limit_by_type(answer_model, 8192, 'output')
|
|
|
|
| 3200 |
|
| 3201 |
return jsonify(response_data)
|
| 3202 |
|
| 3203 |
+
except requests.exceptions.ConnectionError as e:
|
| 3204 |
+
error_msg = f'Ollama μλ²μ μ°κ²°ν μ μμ΅λλ€. Ollamaκ° μ€ν μ€μΈμ§ νμΈνμΈμ. (URL: {OLLAMA_BASE_URL})'
|
| 3205 |
+
print(f"[μ±ν
] Ollama μ°κ²° μ€λ₯: {str(e)}")
|
| 3206 |
+
return jsonify({'error': error_msg}), 503
|
| 3207 |
except requests.exceptions.Timeout:
|
| 3208 |
return jsonify({'error': 'μλ΅ μκ°μ΄ μ΄κ³Όλμμ΅λλ€. λ μ§§μ λ©μμ§λ₯Ό μλν΄λ³΄μΈμ.'}), 504
|
| 3209 |
except Exception as e:
|
| 3210 |
+
error_msg = f'Ollama ν΅μ μ€ μ€λ₯κ° λ°μνμ΅λλ€: {str(e)}'
|
| 3211 |
+
print(f"[μ±ν
] Ollama ν΅μ μ€λ₯ μμΈ: {str(e)}")
|
| 3212 |
+
import traceback
|
| 3213 |
+
traceback.print_exc()
|
| 3214 |
+
return jsonify({'error': error_msg}), 500
|
| 3215 |
else:
|
| 3216 |
# λͺ¨λΈμ΄ μ νλμ§ μμ κ²½μ° κΈ°λ³Έ μλ΅
|
| 3217 |
response_text = f"μλ
νμΈμ! '{message}'μ λν λ΅λ³μ μ€λΉ μ€μ
λλ€.\n\nμ’μΈ‘ νλ¨μμ λ‘컬 AI λͺ¨λΈμ μ ννλ©΄ λ μ νν λ΅λ³μ μ 곡ν μ μμ΅λλ€."
|