Views
No views yet
1import re
2# Using this library to beautifully print the long recipe string.
3from pprint import pprint
4
5from transformers import AutoModelForCausalLM, AutoTokenizer
6
7
8# Load the model and tokenizer:
9MODEL_ID = "auhide/chef-gpt"
10tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
11chef_gpt = AutoModelForCausalLM.from_pretrained(MODEL_ID)
12
13# Prepare the input:
14title = "Пиле с ориз"
15input_text = f"[TTL]{title}[ING]"
16input_ids = tokenizer(input_text, return_tensors="pt").input_ids
17
18# Generate the text:
19output = chef_gpt.generate(input_ids, max_length=150)
20recipe = tokenizer.batch_decode(output)[0]
21# Get the generated recipe - it is up until the 1st [SEP] token. It includes the ingredients.
22recipe = re.findall(r"\[ING\](.+?)\[SEP\]", recipe)[0]
23
24# Format the output text:
25recipe = recipe.replace("[ING]", "- ")
26recipe = recipe.replace("[EOL]", "\n- ")
27recipe = recipe.replace("[REC]", "\n\n")
28
29
30print("Име на рецепта/Recipe name:")
31print(title)
32print("\nРецепта/Recipe:")
33pprint(recipe)1Име на рецепта/Recipe name:
2Пиле с ориз
3
4Рецепта/Recipe:
5('- 2 бр. пилешки бутчета\n'
6 '- 1 кг зеле\n'
7 '- 1 ч.ч. ориз\n'
8 '- 1 ч.ч. доматено пюре\n'
9 '- 1 глава лук\n'
10 '- олио\n'
11 '- червен пипер, черен пипер, сол, джоджен, чубрица\n'
12 '- целина\n'
13 '\n'
14 'Бутчетата се сваряват, обезкостяват и месото се накъсва. Лукът се нарязва на '
15 'полумесеци е се задушава в олио. Прибавя се нарязаното на ивици зеле. Когато '
16 'зелето омекне се слага оризът, а като стане прозрачен се добавят '
17 'подправките. Разбърква се добре, полива се с доматеното пюре и 3 ч.ч. от '
18 'бульона, в който е вряло месото. Оставя се да ври на тих огън около 20-30 '
19 'минути. Ястието се прехвърля в тава и се пече на 250С докато изври водата.')