Spaces:
Paused
Paused
| 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_index.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 str(agent.chat(prompt)) |