mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-12-12 13:25:14 -05:00
feat: OpenAI Custom Headers/Params and Debug Page (#4227)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
This commit is contained in:
@@ -90,6 +90,8 @@ class OpenAIService(BaseService):
|
||||
base_url=settings.OPENAI_BASE_URL,
|
||||
api_key=settings.OPENAI_API_KEY,
|
||||
timeout=settings.OPENAI_REQUEST_TIMEOUT,
|
||||
default_headers=settings.OPENAI_CUSTOM_HEADERS,
|
||||
default_query=settings.OPENAI_CUSTOM_PARAMS,
|
||||
)
|
||||
|
||||
super().__init__()
|
||||
@@ -176,6 +178,5 @@ class OpenAIService(BaseService):
|
||||
if not response.choices:
|
||||
return None
|
||||
return response.choices[0].message.content
|
||||
except Exception:
|
||||
self.logger.exception("OpenAI Request Failed")
|
||||
return None
|
||||
except Exception as e:
|
||||
raise Exception(f"OpenAI Request Failed. {e.__class__.__name__}: {e}") from e
|
||||
|
||||
1
mealie/services/openai/prompts/debug.txt
Normal file
1
mealie/services/openai/prompts/debug.txt
Normal file
@@ -0,0 +1 @@
|
||||
You are a simple chatbot being used for debugging purposes.
|
||||
@@ -80,10 +80,20 @@ class OpenAIParser(ABCIngredientParser):
|
||||
tasks.append(service.get_response(prompt, message, force_json_response=True))
|
||||
|
||||
# re-combine chunks into one response
|
||||
responses_json = await asyncio.gather(*tasks)
|
||||
responses = [
|
||||
OpenAIIngredients.parse_openai_response(response_json) for response_json in responses_json if responses_json
|
||||
]
|
||||
try:
|
||||
responses_json = await asyncio.gather(*tasks)
|
||||
except Exception as e:
|
||||
raise Exception("Failed to call OpenAI services") from e
|
||||
|
||||
try:
|
||||
responses = [
|
||||
OpenAIIngredients.parse_openai_response(response_json)
|
||||
for response_json in responses_json
|
||||
if responses_json
|
||||
]
|
||||
except Exception as e:
|
||||
raise Exception("Failed to parse OpenAI response") from e
|
||||
|
||||
if not responses:
|
||||
raise Exception("No response from OpenAI")
|
||||
|
||||
|
||||
@@ -487,7 +487,13 @@ class OpenAIRecipeService(RecipeServiceBase):
|
||||
if translate_language:
|
||||
message += f" Please translate the recipe to {translate_language}."
|
||||
|
||||
response = await openai_service.get_response(prompt, message, images=openai_images, force_json_response=True)
|
||||
try:
|
||||
response = await openai_service.get_response(
|
||||
prompt, message, images=openai_images, force_json_response=True
|
||||
)
|
||||
except Exception as e:
|
||||
raise Exception("Failed to call OpenAI services") from e
|
||||
|
||||
try:
|
||||
openai_recipe = OpenAIRecipe.parse_openai_response(response)
|
||||
recipe = self._convert_recipe(openai_recipe)
|
||||
|
||||
Reference in New Issue
Block a user