File size: 1,790 Bytes
be13e49
c19d193
6aae614
d18f44e
 
8fe992b
9b5b26a
 
 
d18f44e
be13e49
9b5b26a
be13e49
d18f44e
068055e
be13e49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d18f44e
9b5b26a
6aae614
ae7a494
 
9ef7cb6
ae7a494
e121372
7a2f702
 
9ef7cb6
7a2f702
13d500a
8c01ffb
861422e
 
9b5b26a
8c01ffb
8fe992b
068055e
be13e49
8c01ffb
 
 
 
 
861422e
8fe992b
 
9b5b26a
8c01ffb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, tool
import yaml
from tools.final_answer import FinalAnswerTool
from recipe_scrapers import scrape_html
from urllib.request import urlopen

from Gradio_UI import GradioUI

@tool
def grandma_secret_sauce(url: str) -> str:
    """This tool look at the urls provided and returns the recipe from a wroking, existing page. 
    Args:
        url: list of url pages to scrape the recipe from.
    """

    scraper = None
    try:
        html = urlopen(url).read().decode("utf-8")
        scraper = scrape_html(html, org_url=url)
    except:
        return f"Recipe not found for provided url: {url}."

    ingredients = [f" - {ing}\n" for ing in scraper.ingredients()]

    recipe = f"""
👩🏼‍🍳 Et voilà! The {scraper.title()}! 
Preparation requires {scraper.total_time()} minutes, and it is for {scraper.yields()} people.

🧂 Ingredients:\n
{''.join(ingredients)}
🥘 Instructions:
{scraper.instructions()}
"""

    return recipe

final_answer = FinalAnswerTool()

# If the agent does not answer, the model is overloaded, please use another model or the following Hugging Face Endpoint that also contains qwen2.5 coder:
model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud' 

model = HfApiModel(
    max_tokens=2096,
    temperature=0.5,
    model_id=model_id,
    custom_role_conversions=None,
)

with open("prompts.yaml", 'r') as stream:
    prompt_templates = yaml.safe_load(stream)
    
agent = CodeAgent(
    model=model,
    tools=[final_answer, DuckDuckGoSearchTool(), grandma_secret_sauce],
    max_steps=10,
    verbosity_level=1,
    grammar=None,
    planning_interval=None,
    name=None,
    description=None,
    prompt_templates=prompt_templates
)


GradioUI(agent).launch()