tdurzynski commited on
Commit
dbd9b9e
·
verified ·
1 Parent(s): 76aecb4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -40
app.py CHANGED
@@ -11,46 +11,6 @@ from ultralytics import YOLO
11
 
12
  model = YOLO("yolov8n.pt") # Nano model for speed, fine-tune on food data later
13
 
14
- # Multi-label recognition model (placeholder - swap for fine-tuned multi-label later)
15
- recognizer = pipeline("image-classification", model=model)
16
-
17
- # AutoGen Agent Definitions
18
- food_recognizer = AssistantAgent(
19
- name="FoodRecognizer",
20
- system_message="Identify all food items in the image and return a list of (label, probability) pairs.",
21
- function_map={"recognize_foods": recognize_foods}
22
- )
23
-
24
- size_estimator = AssistantAgent(
25
- name="SizeEstimator",
26
- system_message="Estimate portion sizes in grams for each recognized food based on the image.",
27
- function_map={"estimate_sizes": estimate_sizes}
28
- )
29
-
30
- nutrition_fetcher = AssistantAgent(
31
- name="NutritionFetcher",
32
- system_message="Fetch nutritional data from the Nutritionix API using the user's key.",
33
- function_map={"fetch_nutrition": fetch_nutrition}
34
- )
35
-
36
- ##advice_agent = AssistantAgent(
37
- ## name="NutritionAdvisor",
38
- ## system_message="Provide basic nutrition advice using the user's OpenAI/Grok key."
39
- ##)
40
-
41
- orchestrator = AssistantAgent(
42
- name="Orchestrator",
43
- system_message="Coordinate the workflow, format the output, and return the final result as text.",
44
- function_map={}
45
- )
46
-
47
- group_chat = GroupChat(
48
- agents=[food_recognizer, size_estimator, nutrition_fetcher, advice_agent, orchestrator],
49
- messages=[],
50
- max_round=10
51
- )
52
- manager = GroupChatManager(groupchat=group_chat)
53
-
54
  # Agent Functions
55
  def recognize_foods(image):
56
  start = time.time()
@@ -135,6 +95,45 @@ def fetch_nutrition(foods_with_sizes, nutritionix_key):
135
  # except Exception as e:
136
  # return f"Error with LLM key: {str(e)}"
137
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  # Orchestrator Logic (via AutoGen chat)
139
  def orchestrate_workflow(image, nutritionix_key):
140
  start = time.time()
 
11
 
12
  model = YOLO("yolov8n.pt") # Nano model for speed, fine-tune on food data later
13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  # Agent Functions
15
  def recognize_foods(image):
16
  start = time.time()
 
95
  # except Exception as e:
96
  # return f"Error with LLM key: {str(e)}"
97
 
98
+
99
+ # AutoGen Agent Definitions
100
+ food_recognizer = AssistantAgent(
101
+ name="FoodRecognizer",
102
+ system_message="Identify all food items in the image and return a list of (label, probability) pairs.",
103
+ function_map={"recognize_foods": recognize_foods}
104
+ )
105
+
106
+ size_estimator = AssistantAgent(
107
+ name="SizeEstimator",
108
+ system_message="Estimate portion sizes in grams for each recognized food based on the image.",
109
+ function_map={"estimate_sizes": estimate_sizes}
110
+ )
111
+
112
+ nutrition_fetcher = AssistantAgent(
113
+ name="NutritionFetcher",
114
+ system_message="Fetch nutritional data from the Nutritionix API using the user's key.",
115
+ function_map={"fetch_nutrition": fetch_nutrition}
116
+ )
117
+
118
+ ##advice_agent = AssistantAgent(
119
+ ## name="NutritionAdvisor",
120
+ ## system_message="Provide basic nutrition advice using the user's OpenAI/Grok key."
121
+ ##)
122
+
123
+ orchestrator = AssistantAgent(
124
+ name="Orchestrator",
125
+ system_message="Coordinate the workflow, format the output, and return the final result as text.",
126
+ function_map={}
127
+ )
128
+
129
+ group_chat = GroupChat(
130
+ agents=[food_recognizer, size_estimator, nutrition_fetcher, advice_agent, orchestrator],
131
+ messages=[],
132
+ max_round=10
133
+ )
134
+ manager = GroupChatManager(groupchat=group_chat)
135
+
136
+
137
  # Orchestrator Logic (via AutoGen chat)
138
  def orchestrate_workflow(image, nutritionix_key):
139
  start = time.time()