Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import AutoTokenizer, AutoModelForCausalLM | |
# Load model and tokenizer | |
model_name = "shenzye46/SmolLM-135M-fine-tuned-recepie" # Replace with your model name | |
tokenizer_name = "HuggingFaceTB/SmolLM-135M" | |
def load_model_and_tokenizer(): | |
tokenizer = AutoTokenizer.from_pretrained(tokenizer_name) | |
model = AutoModelForCausalLM.from_pretrained(model_name) | |
# Ensure tokenizer.pad_token is set to tokenizer.eos_token | |
if tokenizer.pad_token is None: | |
tokenizer.pad_token = tokenizer.eos_token | |
tokenizer.pad_token_id = tokenizer.eos_token_id | |
return tokenizer, model | |
tokenizer, model = load_model_and_tokenizer() | |
def generate_recipe(recipe_name): | |
"""Generate cooking method given a recipe name.""" | |
prompt = f"Recipe Name: {recipe_name}\nInstructions: " | |
inputs = tokenizer(prompt, return_tensors="pt") | |
outputs = model.generate(inputs["input_ids"], max_length=512,temperature=0.7, # Sampling randomness | |
top_p=0.9, num_return_sequences=1, do_sample=True) | |
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
# Return only the method part, splitting after 'Method:' | |
return generated_text.split("Recipe Name:")[-1].strip() | |
# Create Gradio interface | |
interface = gr.Interface( | |
fn=generate_recipe, | |
inputs=gr.Textbox(label="Recipe Name", placeholder="Enter the recipe name, e.g., Chocolate Cake"), | |
outputs=gr.Textbox(label="Cooking Method"), | |
title="Recipe Generator", | |
description="Enter the name of a recipe, and the model will generate the method to cook it!", | |
) | |
# Launch the app | |
interface.launch() | |