mirror of
https://github.com/khoj-ai/khoj.git
synced 2025-02-17 08:04:21 +00:00
Improve user visibility into errors during image generation
This commit is contained in:
parent
0bbb5cff85
commit
2d61591c22
2 changed files with 15 additions and 8 deletions
|
@ -297,11 +297,7 @@ async def chat(
|
||||||
)
|
)
|
||||||
image, status_code, improved_image_prompt = await text_to_image(q, meta_log, location_data=location)
|
image, status_code, improved_image_prompt = await text_to_image(q, meta_log, location_data=location)
|
||||||
if image is None:
|
if image is None:
|
||||||
content_obj = {
|
content_obj = {"image": image, "intentType": "text-to-image", "detail": improved_image_prompt}
|
||||||
"image": image,
|
|
||||||
"intentType": "text-to-image",
|
|
||||||
"detail": "Failed to generate image. Make sure your image generation configuration is set.",
|
|
||||||
}
|
|
||||||
return Response(content=json.dumps(content_obj), media_type="application/json", status_code=status_code)
|
return Response(content=json.dumps(content_obj), media_type="application/json", status_code=status_code)
|
||||||
await sync_to_async(save_to_conversation_log)(
|
await sync_to_async(save_to_conversation_log)(
|
||||||
q,
|
q,
|
||||||
|
|
|
@ -381,11 +381,14 @@ async def text_to_image(
|
||||||
) -> Tuple[Optional[str], int, Optional[str]]:
|
) -> Tuple[Optional[str], int, Optional[str]]:
|
||||||
status_code = 200
|
status_code = 200
|
||||||
image = None
|
image = None
|
||||||
|
response = None
|
||||||
|
|
||||||
text_to_image_config = await ConversationAdapters.aget_text_to_image_model_config()
|
text_to_image_config = await ConversationAdapters.aget_text_to_image_model_config()
|
||||||
if not text_to_image_config:
|
if not text_to_image_config:
|
||||||
# If the user has not configured a text to image model, return an unsupported on server error
|
# If the user has not configured a text to image model, return an unsupported on server error
|
||||||
status_code = 501
|
status_code = 501
|
||||||
|
message = "Failed to generate image. Setup image generation on the server."
|
||||||
|
return image, status_code, message
|
||||||
elif state.openai_client and text_to_image_config.model_type == TextToImageModelConfig.ModelType.OPENAI:
|
elif state.openai_client and text_to_image_config.model_type == TextToImageModelConfig.ModelType.OPENAI:
|
||||||
text2image_model = text_to_image_config.model_name
|
text2image_model = text_to_image_config.model_name
|
||||||
chat_history = ""
|
chat_history = ""
|
||||||
|
@ -399,9 +402,17 @@ async def text_to_image(
|
||||||
prompt=improved_image_prompt, model=text2image_model, response_format="b64_json"
|
prompt=improved_image_prompt, model=text2image_model, response_format="b64_json"
|
||||||
)
|
)
|
||||||
image = response.data[0].b64_json
|
image = response.data[0].b64_json
|
||||||
except openai.OpenAIError as e:
|
except openai.OpenAIError or openai.BadRequestError as e:
|
||||||
logger.error(f"Image Generation failed with {e}", exc_info=True)
|
if "content_policy_violation" in e.message:
|
||||||
status_code = 500
|
logger.error(f"Image Generation blocked by OpenAI: {e}")
|
||||||
|
status_code = e.status_code
|
||||||
|
message = f"Image generation blocked by OpenAI: {e.message}"
|
||||||
|
return image, status_code, message
|
||||||
|
else:
|
||||||
|
logger.error(f"Image Generation failed with {e}", exc_info=True)
|
||||||
|
message = f"Image generation failed with OpenAI error: {e.message}"
|
||||||
|
status_code = e.status_code
|
||||||
|
return image, status_code, message
|
||||||
|
|
||||||
return image, status_code, improved_image_prompt
|
return image, status_code, improved_image_prompt
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue