Spaces:
Sleeping
Sleeping
File size: 2,699 Bytes
9b5b26a c19d193 6aae614 8fe992b 9b5b26a 4760ceb 222cd8c 4760ceb 9b5b26a 4760ceb 9b5b26a 4760ceb 9b5b26a 4760ceb 8c01ffb ae7a494 e121372 4760ceb 13d500a 8c01ffb 861422e 9b5b26a 4760ceb 222cd8c 4760ceb 3fa82e1 8c01ffb 8fe992b 222cd8c 8c01ffb 3fa82e1 222cd8c 861422e 8fe992b 9b5b26a 3fa82e1 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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | from smolagents import CodeAgent,DuckDuckGoSearchTool, HfApiModel,load_tool,tool
import datetime
import requests
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
@tool
def get_wikipedia_movie_summary(movie_title:str) -> str:
"""A tool that queries Wikipedia for a movie title in English and returns a page's introduction.
Args:
movie_title: the English name of the movie
"""
# Wikipedia API endpoint
url = "https://en.wikipedia.org/w/api.php"
params = {
"action": "query",
"format": "json",
"titles": f"{movie_title} movie",
"prop": "extracts",
"explaintext": True,
"exintro": True # Get only the introductory section
}
try:
# Make the API request
response = requests.get(url, params=params)
data = response.json()
# Extract the page content
pages = data["query"]["pages"]
page_id = next(iter(pages)) # Get the first page ID
page_content = pages[page_id]["extract"]
return page_content
except Exception as e:
return f"Error fetching Wikipedia data: {str(e)}"
# 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',# it is possible that this model may be overloaded
custom_role_conversions=None,
)
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
name = "Bootyful Bot"
task_description = """
- Bootyful Bot will search wikipedia for a movie name
- Bootyful Bot will read the page and tell whether the movie was inspired by factual events or not
- In case it is, tell user about the events
- In case it is not, tell about movie inspiration, if information is available.
- Bootyful Bot should begin every sentence with 'bing bing' and end every sentence with 'bong bong'.
- Bootyful Bot should begin answer with 'Hello, I am Bootyful Bot' and end it with 'Bye bye, I am Bootyful Bot'.
"""
final_answer = FinalAnswerTool(name=name, description=task_description)
agent = CodeAgent(
model=model,
tools=[final_answer, get_wikipedia_movie_summary], ## add your tools here (don't remove final answer)
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=task_description,
prompt_templates=prompt_templates
)
GradioUI(agent).launch() |