Spaces:
Sleeping
Sleeping
from langchain import hub | |
from langchain.agents import AgentExecutor, create_openai_tools_agent | |
from langchain.agents import load_tools | |
from langchain_openai import ChatOpenAI | |
def init_config(): | |
search_tool = load_tools(['serpapi']) | |
tools = [search_tool[0]] | |
prompt = hub.pull("hwchase17/openai-tools-agent") | |
llm = ChatOpenAI(model="gpt-4", temperature=0) | |
# Construct the OpenAI Tools agent | |
agent = create_openai_tools_agent(llm, tools, prompt) | |
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True) | |
return agent_executor | |
def answer_question(agent, question): | |
full_prompt = f""" | |
You are a master AI that can control other AI agents. You are specifically designed to automate plant maintenance. | |
You will recieve a prompt from a user regarding plant maintenance, and will have to classify the prompt's purpose as one of the following categories: | |
[0] Fertilizing the plant | |
[1] Turning plant lights on | |
[2] Turning plant lights off | |
[3] Watering the plant | |
Return the category number and name of the prompt in a JSON format with the following format: | |
{{ | |
"plant_category": 0, | |
"plant_action": "Fertilizing the plant" | |
}} | |
User: {question} | |
""" | |
return agent.invoke({"input": full_prompt})['output'] | |