fix(api): constrain shopping suggestion enums
This commit is contained in:
parent
cebea2ac86
commit
5d9d18bd05
2 changed files with 17 additions and 4 deletions
|
|
@ -255,12 +255,12 @@ class InventoryUpdate(SQLModel):
|
|||
|
||||
|
||||
class ProductSuggestion(PydanticBase):
|
||||
category: str
|
||||
category: ProductCategory
|
||||
product_type: str
|
||||
key_ingredients: list[str]
|
||||
target_concerns: list[str]
|
||||
why_needed: str
|
||||
recommended_time: str
|
||||
recommended_time: DayTime
|
||||
frequency: str
|
||||
|
||||
|
||||
|
|
@ -274,12 +274,12 @@ class ShoppingSuggestionResponse(PydanticBase):
|
|||
|
||||
|
||||
class _ProductSuggestionOut(PydanticBase):
|
||||
category: str
|
||||
category: ProductCategory
|
||||
product_type: str
|
||||
key_ingredients: list[str]
|
||||
target_concerns: list[str]
|
||||
why_needed: str
|
||||
recommended_time: str
|
||||
recommended_time: DayTime
|
||||
frequency: str
|
||||
|
||||
|
||||
|
|
@ -981,6 +981,11 @@ ZASADY:
|
|||
7. Jeśli użytkownik ma uszkodzoną barierę, unikaj silnych eksfoliantów i retinoidów
|
||||
8. Zwracaj uwagę na ewentualne konflikty polecanych składników z tymi, które użytkownik już posiada (np. nie polecaj peptydów miedziowych jeśli użytkownik nadużywa kwasów)
|
||||
9. Odpowiadaj w języku polskim
|
||||
10. Używaj wyłącznie dozwolonych wartości enumów poniżej - nie twórz synonimów typu "night", "evening" ani "treatment"
|
||||
|
||||
DOZWOLONE WARTOŚCI ENUMÓW:
|
||||
- category: "cleanser" | "toner" | "essence" | "serum" | "moisturizer" | "spf" | "mask" | "exfoliant" | "hair_treatment" | "tool" | "spot_treatment" | "oil"
|
||||
- recommended_time: "am" | "pm" | "both"
|
||||
|
||||
Format odpowiedzi - zwróć wyłącznie JSON zgodny z podanym schematem."""
|
||||
|
||||
|
|
|
|||
|
|
@ -121,6 +121,14 @@ def test_suggest_shopping(client, session):
|
|||
assert data["reasoning"] == "Test shopping"
|
||||
kwargs = mock_gemini.call_args.kwargs
|
||||
assert "USER PROFILE:" in kwargs["contents"]
|
||||
assert (
|
||||
'category: "cleanser" | "toner" | "essence"'
|
||||
in kwargs["config"].system_instruction
|
||||
)
|
||||
assert (
|
||||
'recommended_time: "am" | "pm" | "both"'
|
||||
in kwargs["config"].system_instruction
|
||||
)
|
||||
assert "function_handlers" in kwargs
|
||||
assert "get_product_details" in kwargs["function_handlers"]
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue