2929 logger .warning (f"Failed to initialize Gemini: { e } " )
3030 genai_model = None
3131
32+
3233def fetch_products_from_catalog () -> List [Dict [str , Any ]]:
3334 """Fetch products from the Product Catalog Service."""
3435 try :
@@ -46,6 +47,7 @@ def fetch_products_from_catalog() -> List[Dict[str, Any]]:
4647 print (f"Error fetching products from catalog: { e } " )
4748 return get_mock_products ()
4849
50+
4951def get_mock_products () -> List [Dict [str , Any ]]:
5052 """Fallback mock product data if catalog service is unavailable."""
5153 return [
@@ -64,6 +66,7 @@ def get_mock_products() -> List[Dict[str, Any]]:
6466 {"id" : "13" , "name" : "Lian Li O11 Dynamic" , "subcategory" : "Case" , "price" : 149.99 , "brand" : "Lian Li" , "specs" : {"formFactor" : "ATX" }},
6567 ]
6668
69+
6770def generate_build_suggestion (query : str ) -> Dict [str , Any ]:
6871 lower_query = query .lower ()
6972 budget = 2000
@@ -166,6 +169,7 @@ def get_spec_value(p, spec_key, default=0):
166169
167170 # Filter out None values if any lists were empty
168171 selected_components = [c for c in selected_components if c ]
172+
169173
170174 # Normalize component format for response
171175 normalized_components = []
@@ -191,6 +195,7 @@ def get_spec_value(p, spec_key, default=0):
191195 }
192196 }
193197
198+
194199def generate_chat_response (message : str ) -> str :
195200 """Generate a chat response. Uses Gemini if configured, otherwise rule-based."""
196201 lower_message = message .lower ()
0 commit comments