File size: 1,144 Bytes
4d824dd
9b71572
 
f097df2
 
433e633
9e9cfa6
5263e94
82c862d
9b71572
 
 
 
 
b41e06b
4d824dd
7125228
4d824dd
 
f439d6e
9b71572
 
82c862d
4d824dd
9b71572
3285f8f
82c862d
9cc7636
9f81c9d
 
b41e06b
 
9b71572
4d824dd
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
import os

from datetime import date
from llama_index.agent.openai import OpenAIAgent
from llama_index.llms.openai import OpenAI
from llama_index.core.tools import FunctionTool
from llama_hub.tools.weather import OpenWeatherMapToolSpec

def today_tool(text: str) -> str:
    """Returns today's date. Use this for any questions related to knowing today's date. 
       The input should always be an empty string, and this function will always return today's date. 
       Any date mathematics should occur outside this function."""
    return str(date.today())

def agent_llamaindex(config, prompt):
    llm = OpenAI(
        model = config["model"],
        temperature = config["temperature"])

    tool_spec = OpenWeatherMapToolSpec(key = os.environ["OPENWEATHERMAP_API_KEY"])
    tools = tool_spec.to_tool_list()
    
    date_tool = FunctionTool.from_defaults(fn = today_tool)
            
    agent = OpenAIAgent.from_tools(
        [tools[0],   # built-in tools
         date_tool], # custom tools
        llm = llm,
        max_iterations = 10,
        max_execution_time = 60,
        verbose = True
    )

    return agent.chat(prompt)