diff --git a/examples/cooking_recipe_example.py b/examples/cooking_recipe_example.py new file mode 100644 index 0000000..1d8990c --- /dev/null +++ b/examples/cooking_recipe_example.py @@ -0,0 +1,66 @@ +from pydantic import BaseModel +import simplemind as sm + + +class InstructionStep(BaseModel): + step_number: int + instruction: str + +class RecipeIngredient(BaseModel): + name: str + quantity: float + unit: str + +class Recipe(BaseModel): + name: str + ingredients: list[RecipeIngredient] + instructions: list[InstructionStep] + + def __str__(self) -> str: + output = f"\n=== {self.name.upper()} ===\n\n" + + output += "INGREDIENTS:\n" + for ing in self.ingredients: + output += f"• {ing.quantity} {ing.unit} {ing.name}\n" + + output += "\nINSTRUCTIONS:\n" + for step in self.instructions: + output += f"{step.step_number}. {step.instruction}\n" + + return output + + +recipe = sm.generate_data( + "Write a recipe for chocolate chip cookies", + llm_model="gpt-4o-mini", + llm_provider="openai", + response_model=Recipe, +) + +print(recipe) +# Expected output is something like this: +# +# === CHOCOLATE CHIP COOKIES === +# +# INGREDIENTS: +# • 2.25 cups all-purpose flour +# • 1.0 teaspoon baking soda +# • 0.5 teaspoon salt +# • 1.0 cup unsalted butter +# • 0.75 cup sugar +# • 0.75 cup brown sugar +# • 1.0 teaspoon vanilla extract +# • 2.0 large eggs +# • 2.0 cups semi-sweet chocolate chips +# +# INSTRUCTIONS: +# 1. Preheat your oven to 350°F (175°C). +# 2. In a small bowl, combine flour, baking soda, and salt; set aside. +# 3. In a large bowl, cream together the butter, sugar, and brown sugar until smooth. +# 4. Beat in the vanilla extract and eggs, one at a time. +# 5. Gradually blend in the flour mixture until just combined. +# 6. Stir in the chocolate chips. +# 7. Drop by rounded tablespoon onto ungreased cookie sheets. +# 8. Bake for 9 to 11 minutes, or until edges are golden. +# 9. Let cool on the cookie sheet for a few minutes before transferring to wire racks to cool completely. + diff --git a/examples/math_plugin.py b/examples/math_plugin.py index 436d04f..0ed7da1 100644 --- a/examples/math_plugin.py +++ b/examples/math_plugin.py @@ -2,7 +2,7 @@ from _context import sm class MathPlugin(sm.BasePlugin): - def send_hook(self, conversation: sm.Conversation): + def pre_send_hook(self, conversation: sm.Conversation): last_user_message = conversation.get_last_message(role="user") if last_user_message is None: return