from langchain import hub | |
from langchain.agents import AgentExecutor, create_openai_functions_agent | |
from langchain_openai import ChatOpenAI | |
from langchain.prompts import PromptTemplate | |
from reasoning_tools import animal_tools, extract_vote | |
# LLM Configuration for each role | |
llm_parameters = { | |
"chameleon": { | |
'model': 'gpt-4-turbo-preview', | |
'temperature': 1 | |
}, | |
"herd": { | |
'model': 'gpt-3.5-turbo', | |
'temperature': 1 | |
}, | |
"judge": { | |
'model': 'gpt-3.5-turbo', | |
'temperature': 1 | |
} | |
} | |
prompt = hub.pull("hwchase17/openai-functions-agent") | |
class PlayerAgent(AgentExecutor): | |
def __init__(self, role): | |
llm = ChatOpenAI(**llm_parameters[role]) | |
agent = create_openai_functions_agent(llm, animal_tools, prompt) | |
super().__init__(agent=agent, tools=animal_tools, verbose=True, return_intermediate_steps=True) | |