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() |