Views
No views yet
British Breakfast with baked beans, fried eggs, black pudding, sausages, bacon, mushrooms, a cup of tea and toast and fried tomatoesfood_or_drink: 1
tags: fi, di
foods: British Breakfast, baked beans, fried eggs, black pudding, sausages, bacon, mushrooms, toast, fried tomatoes
drinks: teagpt-oss-120b.another optional quest takes place on windfall island during the night time play the song of passing a number of times and each time, glance towards the skygpt-oss-120b generated output (JSON) would be:{'is_food_or_drink': 'false', 'tags': [], 'food_items': [], 'drink_items': []}food_or_drink: 0\ntags: \nfoods: \ndrinks:tags_dict = {'np': 'nutrition_panel',
'il': 'ingredient list',
'me': 'menu',
're': 'recipe',
'fi': 'food_items',
'di': 'drink_items',
'fa': 'food_advertistment',
'fp': 'food_packaging'}1def condense_output(original_output):
2 '''Helper function to condense a given FoodExtract string.
3
4 Example input: {'is_food_or_drink': True, 'tags': ['fi'], 'food_items': ['cape gooseberries', 'mulberry', 'chilli powder', 'flathead lobster', 'hoisin sauce', 'duck leg', 'chestnuts', 'raw quail', 'duck breast', 'rogan josh curry sauce', 'brown rice', 'dango'], 'drink_items': []}
5
6 Example output: food_or_drink: 1\ntags: fi\nfoods: cape gooseberries, mulberry, chilli powder, flathead lobster, hoisin sauce, duck leg, chestnuts, raw quail, duck breast, rogan josh curry sauce, brown rice, dango\ndrinks:'''
7
8 condensed_output_string_base = '''food_or_drink: <is_food_or_drink>
9 tags: <output_tags>
10 foods: <food_items>
11 drinks: <drink_items>'''
12
13 is_food_or_drink = str(1) if str(original_output["is_food_or_drink"]).lower() == "true" else str(0)
14 tags = ", ".join(original_output["tags"]) if len(original_output["tags"]) > 0 else ""
15 foods = ", ".join(original_output["food_items"]) if len(original_output["food_items"]) > 0 else ""
16 drinks = ", ".join(original_output["drink_items"]) if len(original_output["drink_items"]) > 0 else ""
17
18 condensed_output_string_formatted = condensed_output_string_base.replace("<is_food_or_drink>", is_food_or_drink).replace("<output_tags>", tags).replace("<food_items>", foods).replace("<drink_items>", drinks)
19
20 return condensed_output_string_formatted.strip()
21
22def uncondense_output(condensed_output):
23 '''Helper to go from condensed output to uncondensed output.
24
25 Example input: food_or_drink: 1\ntags: fi\nfoods: cape gooseberries, mulberry, chilli powder, flathead lobster, hoisin sauce, duck leg, chestnuts, raw quail, duck breast, rogan josh curry sauce, brown rice, dango\ndrinks:
26
27 Example output: {'is_food_or_drink': True, 'tags': ['fi'], 'food_items': ['cape gooseberries', 'mulberry', 'chilli powder', 'flathead lobster', 'hoisin sauce', 'duck leg', 'chestnuts', 'raw quail', 'duck breast', 'rogan josh curry sauce', 'brown rice', 'dango'], 'drink_items': []}
28 '''
29
30 condensed_list = condensed_output.split("\n")
31
32 condensed_dict_base = {
33 "is_food_or_drink": "",
34 "tags": [],
35 "food_items": [],
36 "drink_items": []
37 }
38
39 # Set values to defaults
40 food_or_drink_item = None
41 tags_item = None
42 foods_item = None
43 drinks_item = None
44
45 # Extract items from condensed_list
46 for item in condensed_list:
47 if "food_or_drink:" in item.strip():
48 food_or_drink_item = item
49
50 if "tags:" in item:
51 tags_item = item
52
53 if "foods:" in item:
54 foods_item = item
55
56 if "drinks:" in item:
57 drinks_item = item
58
59 if food_or_drink_item:
60 is_food_or_drink_bool = True if food_or_drink_item.replace("food_or_drink: ", "").strip() == "1" else False
61 else:
62 is_food_or_drink_bool = None
63
64 if tags_item:
65 tags_list = [item.replace("tags: ", "").replace("tags:", "").strip() for item in tags_item.split(", ")]
66 tags_list = [item for item in tags_list if item] # Filter for empty items
67 else:
68 tags_list = []
69
70 if foods_item:
71 foods_list = [item.replace("foods:", "").replace("foods: ", "").strip() for item in foods_item.split(", ")]
72 foods_list = [item for item in foods_list if item] # Filter for empty items
73 else:
74 foods_list = []
75
76 if drinks_item:
77 drinks_list = [item.replace("drinks:", "").replace("drinks: ", "").strip() for item in drinks_item.split(", ")]
78 drinks_list = [item for item in drinks_list if item] # Filter for empty items
79 else:
80 drinks_list = []
81
82 condensed_dict_base["is_food_or_drink"] = is_food_or_drink_bool
83 condensed_dict_base["tags"] = tags_list
84 condensed_dict_base["food_items"] = foods_list
85 condensed_dict_base["drink_items"] = drinks_list
86
87 return condensed_dict_base1from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
2
3MODEL_PATH = "mrdbourke/FoodExtract-gemma-3-270m-fine-tune-v1"
4
5# Load the model into a pipeline
6loaded_model = AutoModelForCausalLM.from_pretrained(
7 pretrained_model_name_or_path=MODEL_PATH,
8 dtype="auto",
9 device_map="auto",
10 attn_implementation="eager"
11)
12
13# Load the tokenizer
14tokenizer = AutoTokenizer.from_pretrained(
15 pretrained_model_name_or_path=MODEL_PATH,
16)
17
18# Create model pipeline
19loaded_model_pipeline = pipeline("text-generation",
20 model=loaded_model,
21 tokenizer=tokenizer)
22
23# Create a sample to predict on
24input_text = "A plate with bacon, eggs and toast on it"
25input_text_user = [{'content': input_text, 'role': 'user'}]
26
27# Apply the chat template
28input_prompt = loaded_model_pipeline.tokenizer.apply_chat_template(conversation=input_text_user,
29 tokenize=False,
30 add_generation_prompt=True)
31
32# Let's run the default model on our input
33default_outputs = loaded_model_pipeline(text_inputs=input_prompt,
34 max_new_tokens=256)
35
36# View the outputs
37print(f"[INFO] Test sample input:\n{input_prompt}\n")
38print(f"[INFO] Fine-tuned model output:\n{default_outputs[0]['generated_text'][len(input_prompt):]}\n")[INFO] Test sample input:
<bos><start_of_turn>user
A plate with bacon, eggs and toast on it<end_of_turn>
<start_of_turn>model
[INFO] Fine-tuned model output:
food_or_drink: 1
tags: fi
foods: bacon, eggs, toast
drinks:EssentialAI/eai-distill-0.5b.