Spaces:
Runtime error
Runtime error
| from openai import OpenAI | |
| client = None | |
| Meal2Json = """ | |
| 對於每道菜的描述,請提取關鍵資訊並轉化為JSON格式。請確保輸出包含菜品名稱、主要成分、估計的卡路里含量,以及可能的飲食限制。飲食限制請基於成分進行推斷,如海鮮過敏、紅肉限制、乳糖不耐症、麩質過敏等。如果沒有特別的飲食限制,請標注為"無"。在評估卡路里時,請考慮到菜品的主要成分和準備方式,提供一個合理的估計值。 | |
| 例如,給定菜品描述: | |
| "櫻花漂浮壽司 - 描述:精選當季最新鮮的生魚片,搭配上以櫻花葉醃製的特製醋飯,壽司表面點綴以食用櫻花花瓣,呈現春天的氣息與美麗。" | |
| 根據以上描述,請生成以下JSON輸出: | |
| ```Json | |
| { | |
| "name": "櫻花漂浮壽司", | |
| "ingredients": ["生魚片", "醋飯", "櫻花葉", "食用櫻花花瓣"], | |
| "calories": 200, | |
| "dietary_restrictions": ["海鮮過敏"] | |
| } | |
| ``` | |
| 請直接輸出 Json 本體 不需要多餘的內容,並且請確保輸出的Json格式是正確的。請注意,輸出的Json格式必須與上述範例一致,並且 | |
| 請依此格式處理以下菜品描述: | |
| """ | |
| AnylizeJson = """ | |
| 給定一位使用者的個人信息、飲食偏好、健康目標和餐飲計畫,請計算推薦的每日卡路里攝入量。然後根據使用者的飲食偏好和餐飲計畫,推薦一個合適的餐點。請確保推薦的餐點遵守使用者的飲食限制並考慮其偏好。最後,請提供營養上的注意事項和建議,幫助使用者達成其健康目標。 | |
| 請使用以下格式輸出結果: | |
| ```json | |
| { | |
| "recommended_daily_calories": "XXXX kcal", | |
| "meal_recommendation": "推薦的配餐", | |
| "nutrition_notes": "根據使用者的目標和限制,這裡是一些營養上的注意事項和建議。" | |
| } | |
| ``` | |
| 請注意,輸出的Json格式必須與上述範例一致,並且請確保輸出的Json格式是正確的。不要包含多餘的內容。尤其是,meal_recommendation 必須是具體的菜品名稱。並且請確保輸出僅有Json。根據這些使用者資訊和菜品資料,請首先計算出適合該使用者的每日推薦卡路里攝入量。接著,從菜品資料中選擇符合使用者需求的單一餐點,並提出具體推薦。最後,提出一些營養上的注意事項和建議,幫助使用者達成其健康目標。 | |
| """ | |
| def ai_function(Mode, Description): | |
| system_message = { | |
| "role": "system", | |
| "content": ( | |
| "You are an AI that assists the user in generating meal recommendations." | |
| ) | |
| } | |
| user_message = { | |
| "role": "user", | |
| "content": ( | |
| f"{Mode == 'Meal2Json' and Meal2Json or AnylizeJson} {Description}" | |
| ) | |
| } | |
| messages = [system_message, user_message] | |
| response = client.chat.completions.create(model="gpt-4", | |
| messages=messages, | |
| temperature=0.2, | |
| max_tokens=2000) | |
| return response.choices[0].message.content |