devmodetest2 / perm /agents /.ipynb_checkpoints /project_agent-checkpoint.py
tengel's picture
Upload 56 files
9c9a39f verified
from langchain.agents import AgentExecutor, Agent, create_openai_tools_agent
from langchain_core.prompts import PromptTemplate, ChatPromptTemplate, MessagesPlaceholder
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI
#from tools.robot_information import robot_information
from langchain.agents import create_tool_calling_agent
from langchain.agents import AgentExecutor, ZeroShotAgent
from langchain_core.tools import tool
import json
@tool
def robot_information(project_name: str) -> str:
"""Retrieves count and detailed information about the robots in the named project in real-time in JSON format"""
print("retrieved robot")
data = {
"count": 2,
"information": [
{"name": "Robot1", "battery": 90, "type": "heavy"},
{"name": "Robot2", "battery": 34, "type": "medium"}
]
}
return json.dumps(data)
class ProjectAgent(AgentExecutor):
def __init__(self, llm, system_prompt):
prompt = ChatPromptTemplate.from_messages(
[
MessagesPlaceholder(variable_name="messages"),
MessagesPlaceholder(variable_name="agent_scratchpad"),
]
)
#agent = prompt | llm
tools = [robot_information]
#llm_with_tools = llm.bind_tools(tools)
# agent = create_openai_tools_agent(llm, [robot_information], prompt)
agent = create_tool_calling_agent(llm, tools, prompt)
#agent = prompt | llm_with_tools
super().__init__(agent=agent, tools=[robot_information], verbose=True)