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