File size: 1,568 Bytes
7a2f702
c19d193
6aae614
d18f44e
 
8fe992b
9b5b26a
 
 
d18f44e
 
9b5b26a
068055e
9b5b26a
d18f44e
 
 
 
 
 
 
 
 
068055e
d18f44e
9b5b26a
6aae614
ae7a494
 
 
 
e121372
7a2f702
 
d18f44e
7a2f702
13d500a
8c01ffb
861422e
 
9b5b26a
8c01ffb
8fe992b
068055e
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
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, 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 url provided and returns the recipe from the page. 
    Args:
        url: The url of the page to scrape.
    """
    html = urlopen(url).read().decode("utf-8")
    scraper = scrape_html(html, org_url=url)

    recipe = f"""Title: {scraper.title()}
    Total Time: {scraper.total_time()}
    Yields: {scraper.yields()}
    Ingredients: {scraper.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='Qwen/Qwen2.5-Coder-32B-Instruct',
    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=6,
    verbosity_level=1,
    grammar=None,
    planning_interval=None,
    name=None,
    description=None,
    prompt_templates=prompt_templates
)


GradioUI(agent).launch()