Skip to content

Commit

Permalink
chore: added missing dependencies and linting
Browse files Browse the repository at this point in the history
  • Loading branch information
PeriniM committed Jan 2, 2025
1 parent cf5babd commit 4e4169c
Show file tree
Hide file tree
Showing 14 changed files with 94 additions and 85 deletions.
4 changes: 2 additions & 2 deletions brickllm/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
from .schemas import (
ElemListSchema,
RelationshipsSchema,
SensorSchema,
TTLSchema,
TTLToBuildingPromptSchema,
SensorSchema
)
from .states import State, StateLocal

Expand All @@ -18,5 +18,5 @@
"StateLocal",
"GraphConfig",
"custom_logger",
"SensorSchema"
"SensorSchema",
]
2 changes: 1 addition & 1 deletion brickllm/edges/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from .check_sensor_presence import check_sensor_presence
from .validate_condition import validate_condition
from .validate_condition_local import validate_condition_local
from .check_sensor_presence import check_sensor_presence

__all__ = ["validate_condition", "validate_condition_local", "check_sensor_presence"]
6 changes: 4 additions & 2 deletions brickllm/edges/check_sensor_presence.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
from typing import Any, Dict, Literal

from ..utils import get_hierarchical_info
from ..logger import custom_logger
from ..utils import get_hierarchical_info


def check_sensor_presence(state: Dict[str, Any]) -> Literal["get_sensors", "schema_to_ttl"]:
def check_sensor_presence(
state: Dict[str, Any]
) -> Literal["get_sensors", "schema_to_ttl"]:
"""
Check if the sensors are present in the building structure.
Expand Down
14 changes: 7 additions & 7 deletions brickllm/graphs/brickschema_graph.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
from langgraph.graph import END, START, StateGraph

from .. import GraphConfig, State
from ..edges import validate_condition, check_sensor_presence
from ..edges import check_sensor_presence, validate_condition
from ..nodes import (
get_elem_children,
get_elements,
get_relationships,
get_sensors,
schema_to_ttl,
validate_schema
validate_schema,
)
from .abstract_graph import AbstractBrickSchemaGraph

Expand All @@ -38,11 +38,11 @@ def build_graph(self):
self.workflow.add_edge(START, "get_elements")
self.workflow.add_edge("get_elements", "get_elem_children")
self.workflow.add_edge("get_elem_children", "get_relationships")
self.workflow.add_conditional_edges("get_relationships", check_sensor_presence,
{
"get_sensors": "get_sensors",
"schema_to_ttl": "schema_to_ttl"
})
self.workflow.add_conditional_edges(
"get_relationships",
check_sensor_presence,
{"get_sensors": "get_sensors", "schema_to_ttl": "schema_to_ttl"},
)
self.workflow.add_edge("get_sensors", "schema_to_ttl")
self.workflow.add_edge("schema_to_ttl", "validate_schema")
self.workflow.add_conditional_edges("validate_schema", validate_condition)
Expand Down
4 changes: 2 additions & 2 deletions brickllm/helpers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
get_elem_children_instructions,
get_elem_instructions,
get_relationships_instructions,
get_sensors_instructions,
prompt_template_local,
schema_to_ttl_instructions,
ttl_example,
ttl_to_user_prompt,
get_sensors_instructions
)

__all__ = [
Expand All @@ -19,5 +19,5 @@
"ttl_example",
"prompt_template_local",
"ttl_to_user_prompt",
"get_sensors_instructions"
"get_sensors_instructions",
]
6 changes: 4 additions & 2 deletions brickllm/helpers/llm_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

from langchain.chat_models.base import BaseChatModel
from langchain_anthropic import ChatAnthropic
from langchain_ollama import ChatOllama
from langchain_community.llms import Ollama
from langchain_fireworks import ChatFireworks
from langchain_ollama import ChatOllama
from langchain_openai import ChatOpenAI


Expand Down Expand Up @@ -38,4 +38,6 @@ def _get_model(model: Union[str, BaseChatModel]) -> BaseChatModel:
return Ollama(model="hf.co/Giudice7/llama32-3B-brick-demo:latest")

else:
raise ValueError(f"Unsupported model type: {model}. Load your own BaseChatModel if this one is not supported.")
raise ValueError(
f"Unsupported model type: {model}. Load your own BaseChatModel if this one is not supported."
)
2 changes: 1 addition & 1 deletion brickllm/nodes/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@
"get_sensors",
"schema_to_ttl",
"validate_schema",
"generation_local"
"generation_local",
]
15 changes: 7 additions & 8 deletions brickllm/nodes/get_relationships.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import json
from collections import defaultdict
from typing import Any, Dict

from langchain_core.messages import HumanMessage, SystemMessage
Expand Down Expand Up @@ -48,7 +47,7 @@ def get_relationships(state: State, config: Dict[str, Any]) -> Dict[str, Any]:
try:
tree_dict = build_hierarchy(answer.relationships)
except Exception:
custom_logger.warning(f"Error building the hierarchy. Trying again.")
custom_logger.warning("Error building the hierarchy. Trying again.")

# Group sensors by their paths
sensor_paths = []
Expand All @@ -58,10 +57,10 @@ def get_relationships(state: State, config: Dict[str, Any]) -> Dict[str, Any]:
grouped_sensors = {}

for sensor in sensor_paths:
grouped_sensors[sensor["name"]] = {"name": sensor["name"],
"uuid": None,
"unit": None}
grouped_sensors[sensor["name"]] = {
"name": sensor["name"],
"uuid": None,
"unit": None,
}

return {
"rel_tree": tree_dict,
"sensors_dict": grouped_sensors}
return {"rel_tree": tree_dict, "sensors_dict": grouped_sensors}
6 changes: 3 additions & 3 deletions brickllm/nodes/get_sensors.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from typing import Any, Dict
import json
from typing import Any, Dict

from langchain_core.messages import HumanMessage, SystemMessage

from .. import State, SensorSchema
from ..logger import custom_logger
from .. import SensorSchema, State
from ..helpers import get_sensors_instructions
from ..logger import custom_logger


def get_sensors(state: State, config: Dict[str, Any]) -> Dict[str, Any]:
Expand Down
4 changes: 2 additions & 2 deletions brickllm/schemas.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from typing import List, Tuple, Dict, Optional, Any
from typing import List, Optional, Tuple

from pydantic.v1 import BaseModel, Field
from pydantic import BaseModel, Field


# pydantic schemas
Expand Down
3 changes: 2 additions & 1 deletion brickllm/states.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
from typing import Any, Dict, List
from .schemas import Sensor

from typing_extensions import TypedDict

from .schemas import Sensor


# state for BrickSchemaGraph class
class State(TypedDict):
Expand Down
2 changes: 1 addition & 1 deletion examples/example_openai.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
brick_graph = BrickSchemaGraph(model="openai")

# Display the graph structure
brick_graph.display(file_name="graph_openai.png")
brick_graph.display(filename="graph_openai.png")

# Prepare input data
input_data = {"user_prompt": building_description}
Expand Down
107 changes: 55 additions & 52 deletions examples/my_building.ttl
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
@prefix bldg: <urn:Building#> .
@prefix brick: <https://brickschema.org/schema/Brick#> .
@prefix unit: <https://qudt.org/vocab/unit/> .
@prefix ref: <https://brickschema.org/schema/Brick/ref#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

bldg:Bolzano_Building a brick:Building ;
brick:hasLocation [ brick:value "Bolzano" ] .
brick:hasLocation [ brick:value "Bolzano"^^xsd:string ] .

bldg:Floor_1 a brick:Floor ;
brick:isPartOf bldg:Bolzano_Building .
Expand All @@ -13,83 +16,83 @@ bldg:Floor_2 a brick:Floor ;
bldg:Floor_3 a brick:Floor ;
brick:isPartOf bldg:Bolzano_Building .

bldg:Office_1 a brick:Office ;
bldg:Office_1_Floor_1 a brick:Room ;
brick:isPartOf bldg:Floor_1 .

bldg:Office_2 a brick:Office ;
bldg:Office_1_Floor_2 a brick:Room ;
brick:isPartOf bldg:Floor_2 .

bldg:Office_3 a brick:Office ;
bldg:Office_1_Floor_3 a brick:Room ;
brick:isPartOf bldg:Floor_3 .

bldg:Room_1 a brick:Room ;
brick:isPartOf bldg:Office_1 .
bldg:Room_1_Office_1_Floor_1 a brick:Room ;
brick:isPartOf bldg:Office_1_Floor_1 .

bldg:Room_2 a brick:Room ;
brick:isPartOf bldg:Office_1 .
bldg:Room_2_Office_1_Floor_1 a brick:Room ;
brick:isPartOf bldg:Office_1_Floor_1 .

bldg:Room_3 a brick:Room ;
brick:isPartOf bldg:Office_2 .
bldg:Room_1_Office_1_Floor_2 a brick:Room ;
brick:isPartOf bldg:Office_1_Floor_2 .

bldg:Room_4 a brick:Room ;
brick:isPartOf bldg:Office_2 .
bldg:Room_2_Office_1_Floor_2 a brick:Room ;
brick:isPartOf bldg:Office_1_Floor_2 .

bldg:Room_5 a brick:Room ;
brick:isPartOf bldg:Office_3 .
bldg:Room_1_Office_1_Floor_3 a brick:Room ;
brick:isPartOf bldg:Office_1_Floor_3 .

bldg:Room_6 a brick:Room ;
brick:isPartOf bldg:Office_3 .
bldg:Room_2_Office_1_Floor_3 a brick:Room ;
brick:isPartOf bldg:Office_1_Floor_3 .

bldg:Temperature_Sensor_1 a brick:Temperature_Sensor ;
brick:isPointOf bldg:Room_1 .
bldg:Temperature_Sensor_Room_1_Office_1_Floor_1 a brick:Temperature_Sensor ;
brick:isPointOf bldg:Room_1_Office_1_Floor_1 .

bldg:Humidity_Sensor_1 a brick:Humidity_Sensor ;
brick:isPointOf bldg:Room_1 .
bldg:Humidity_Sensor_Room_1_Office_1_Floor_1 a brick:Humidity_Sensor ;
brick:isPointOf bldg:Room_1_Office_1_Floor_1 .

bldg:CO_Sensor_1 a brick:CO_Sensor ;
brick:isPointOf bldg:Room_1 .
bldg:CO2_Sensor_Room_1_Office_1_Floor_1 a brick:CO2_Sensor ;
brick:isPointOf bldg:Room_1_Office_1_Floor_1 .

bldg:Temperature_Sensor_2 a brick:Temperature_Sensor ;
brick:isPointOf bldg:Room_2 .
bldg:Temperature_Sensor_Room_2_Office_1_Floor_1 a brick:Temperature_Sensor ;
brick:isPointOf bldg:Room_2_Office_1_Floor_1 .

bldg:Humidity_Sensor_2 a brick:Humidity_Sensor ;
brick:isPointOf bldg:Room_2 .
bldg:Humidity_Sensor_Room_2_Office_1_Floor_1 a brick:Humidity_Sensor ;
brick:isPointOf bldg:Room_2_Office_1_Floor_1 .

bldg:CO_Sensor_2 a brick:CO_Sensor ;
brick:isPointOf bldg:Room_2 .
bldg:CO2_Sensor_Room_2_Office_1_Floor_1 a brick:CO2_Sensor ;
brick:isPointOf bldg:Room_2_Office_1_Floor_1 .

bldg:Temperature_Sensor_3 a brick:Temperature_Sensor ;
brick:isPointOf bldg:Room_3 .
bldg:Temperature_Sensor_Room_1_Office_1_Floor_2 a brick:Temperature_Sensor ;
brick:isPointOf bldg:Room_1_Office_1_Floor_2 .

bldg:Humidity_Sensor_3 a brick:Humidity_Sensor ;
brick:isPointOf bldg:Room_3 .
bldg:Humidity_Sensor_Room_1_Office_1_Floor_2 a brick:Humidity_Sensor ;
brick:isPointOf bldg:Room_1_Office_1_Floor_2 .

bldg:CO_Sensor_3 a brick:CO_Sensor ;
brick:isPointOf bldg:Room_3 .
bldg:CO2_Sensor_Room_1_Office_1_Floor_2 a brick:CO2_Sensor ;
brick:isPointOf bldg:Room_1_Office_1_Floor_2 .

bldg:Temperature_Sensor_4 a brick:Temperature_Sensor ;
brick:isPointOf bldg:Room_4 .
bldg:Temperature_Sensor_Room_2_Office_1_Floor_2 a brick:Temperature_Sensor ;
brick:isPointOf bldg:Room_2_Office_1_Floor_2 .

bldg:Humidity_Sensor_4 a brick:Humidity_Sensor ;
brick:isPointOf bldg:Room_4 .
bldg:Humidity_Sensor_Room_2_Office_1_Floor_2 a brick:Humidity_Sensor ;
brick:isPointOf bldg:Room_2_Office_1_Floor_2 .

bldg:CO_Sensor_4 a brick:CO_Sensor ;
brick:isPointOf bldg:Room_4 .
bldg:CO2_Sensor_Room_2_Office_1_Floor_2 a brick:CO2_Sensor ;
brick:isPointOf bldg:Room_2_Office_1_Floor_2 .

bldg:Temperature_Sensor_5 a brick:Temperature_Sensor ;
brick:isPointOf bldg:Room_5 .
bldg:Temperature_Sensor_Room_1_Office_1_Floor_3 a brick:Temperature_Sensor ;
brick:isPointOf bldg:Room_1_Office_1_Floor_3 .

bldg:Humidity_Sensor_5 a brick:Humidity_Sensor ;
brick:isPointOf bldg:Room_5 .
bldg:Humidity_Sensor_Room_1_Office_1_Floor_3 a brick:Humidity_Sensor ;
brick:isPointOf bldg:Room_1_Office_1_Floor_3 .

bldg:CO_Sensor_5 a brick:CO_Sensor ;
brick:isPointOf bldg:Room_5 .
bldg:CO2_Sensor_Room_1_Office_1_Floor_3 a brick:CO2_Sensor ;
brick:isPointOf bldg:Room_1_Office_1_Floor_3 .

bldg:Temperature_Sensor_6 a brick:Temperature_Sensor ;
brick:isPointOf bldg:Room_6 .
bldg:Temperature_Sensor_Room_2_Office_1_Floor_3 a brick:Temperature_Sensor ;
brick:isPointOf bldg:Room_2_Office_1_Floor_3 .

bldg:Humidity_Sensor_6 a brick:Humidity_Sensor ;
brick:isPointOf bldg:Room_6 .
bldg:Humidity_Sensor_Room_2_Office_1_Floor_3 a brick:Humidity_Sensor ;
brick:isPointOf bldg:Room_2_Office_1_Floor_3 .

bldg:CO_Sensor_6 a brick:CO_Sensor ;
brick:isPointOf bldg:Room_6 .
bldg:CO2_Sensor_Room_2_Office_1_Floor_3 a brick:CO2_Sensor ;
brick:isPointOf bldg:Room_2_Office_1_Floor_3 .
4 changes: 3 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,12 @@ langgraph = "0.2.23"
langchain_openai = "0.2.0"
langchain-fireworks = "0.2.0"
langchain-anthropic = "0.2.1"
langchain-ollama = "^0.2.2"
langchain_community = "0.3.0"
langchain_core = "0.3.5"
langchain_core = "^0.3.5"
rdflib = ">=6.2.0,<7"
pyshacl = "0.21"
python-dotenv = "^1.0.1"

[tool.poetry.group.dev.dependencies]
pytest = "^7.4"
Expand Down

0 comments on commit 4e4169c

Please sign in to comment.