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.
44 lines
1.2 KiB
44 lines
1.2 KiB
1 year ago
|
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?"))
|