You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kempt-kinkajou-2023/weather_platform/apps/py-tg-bot-weather-agent/examples/custom_agent_tool.py

44 lines
1.2 KiB

import pandas as pd
from langchain.chat_models import ChatOpenAI
from langchain.agents import initialize_agent, AgentType
from langchain.tools.base import StructuredTool
from typing import Optional
import requests
OPENAI_API = "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"
# ONPU AGW
AGW_PORT = 3000
AGW_HOST = 'localhost'
AGW_URL = f"http://{AGW_HOST}:{AGW_PORT}/"
def fetch_get_devices(params={}):
try:
response = requests.post(AGW_URL + 'api/matrix/get', json=params)
response.raise_for_status()
data = response.json()
return data
except requests.exceptions.RequestException as e:
print('Error fetching data:', e)
return None
def get_devices_insight() -> str:
"""Tool that counts the number of items for a given Laboratory Brains data object"""
data = fetch_get_devices()
# return str(len(data))
return data
device_insights_tool = StructuredTool.from_function(get_devices_insight)
chat = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.2, openai_api_key=OPENAI_API)
tools = [device_insights_tool]
agent_chain = initialize_agent(
tools,
chat,
agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
print(agent_chain("how many devices with online status?"))