Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 20 additions & 6 deletions core/gemini_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,15 @@ async def generate_response(
)

response_obj = model.generate_content(prompt)

# Check for empty candidates due to safety block or prohibited content
if not response_obj.candidates:
feedback = getattr(response_obj, 'prompt_feedback', 'No feedback provided')
logger.warning(f"Blocked prompt. Feedback: {feedback}")
if lang == "en":
return "I can't talk about that topic. Let's talk about something else! \U0001F605"
return "Alya gak bisa bahas topik itu nih. Bahas yang lain aja yuk! \U0001F605"

response = response_obj.text

if user_id is not None and response:
Expand Down Expand Up @@ -222,6 +231,11 @@ async def generate_response(
safety_settings=safety_settings,
)
varied_response_obj = varied_model.generate_content(varied_prompt)

if not varied_response_obj.candidates:
logger.warning("Blocked prompt on varied request.")
continue

varied_response = varied_response_obj.text

if not self._is_duplicate_response(varied_response, user_id):
Expand All @@ -244,14 +258,14 @@ async def generate_response(
if not success:
logger.critical("All API keys exhausted. Unable to generate content.")
if lang == "en":
return "Sorry, I'm having some internal issues right now. Please try again later. 😓"
return "Maaf, sepertinya Alya lagi ada masalah internal. Coba lagi nanti ya. 😓"
return "Sorry, I'm having some internal issues right now. Please try again later. \U0001F613"
return "Maaf, sepertinya Alya lagi ada masalah internal. Coba lagi nanti ya. \U0001F613"
else:
logger.critical(f"Failed to generate content after trying all API keys: {e}")
if lang == "en":
return "I'm so sorry, all my connections to the data center are failing. Maybe try again in a few moments? 😥"
return "Aduh, maaf banget, semua koneksi Alya ke pusat data lagi gagal. Mungkin bisa coba beberapa saat lagi? 😥"
return "I'm so sorry, all my connections to the data center are failing. Maybe try again in a few moments? \U0001F625"
return "Aduh, maaf banget, semua koneksi Alya ke pusat data lagi gagal. Mungkin bisa coba beberapa saat lagi? \U0001F625"

if lang == "en":
return "I tried multiple times but it still failed. Something's not right. Please try again later. 😔"
return "Duh, Alya coba berkali-kali tapi tetep gagal. Kayaknya ada yang gak beres. Coba lagi nanti ya. 😔"
return "I tried multiple times but it still failed. Something's not right. Please try again later. \U0001F614"
return "Duh, Alya coba berkali-kali tapi tetep gagal. Kayaknya ada yang gak beres. Coba lagi nanti ya. \U0001F614"
Loading