-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunction_definitions.py
96 lines (89 loc) · 3.22 KB
/
function_definitions.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
from kasa import Module
from openai.types.chat import ChatCompletionToolParam
def get_loop_function() -> ChatCompletionToolParam:
return {
"type": "function",
"function": {
"name": "loop",
"description": "Loops the previous commands",
"parameters": {},
}
}
def get_delay_function() -> ChatCompletionToolParam:
return {
"type": "function",
"function": {
"name": "delay",
"description": "Delay for a number of milliseconds, use this when you need to implement transitions",
"parameters": {
"type": "object",
"properties": {
"milliseconds": {
"type": "integer",
"description": "Number of milliseconds to delay"
}
},
"required": ["milliseconds"]
}
}
}
def get_light_color_control_function(device_configs) -> ChatCompletionToolParam:
return {
"type": "function",
"function": {
"name": "set_light_color",
"description": """Set the HSV color values for a light""",
"parameters": {
"type": "object",
"properties": {
"light_name": {
"type": "string",
"description": "Name of the light to control",
"enum": list(filter(lambda x: Module.Light in device_configs[x].modules, device_configs.keys()))
},
"hue": {
"type": "integer",
"description": "Hue value between 0-360",
"minimum": 0,
"maximum": 360
},
"saturation": {
"type": "integer",
"description": "Saturation percentage between 0-100",
"minimum": 0,
"maximum": 100
},
"value": {
"type": "integer",
"description": "Brightness value between 0-100",
"minimum": 0,
"maximum": 100
}
},
"required": ["hue", "saturation", "value"]
}
}
}
def get_turn_light_on_off_function(device_configs) -> ChatCompletionToolParam:
return {
"type": "function",
"function": {
"name": "turn_light_on_off",
"description": "Turn a light on or off",
"parameters": {
"type": "object",
"properties": {
"light_name": {
"type": "string",
"description": "Name of the light to control",
"enum": list(device_configs.keys())
},
"on": {
"type": "boolean",
"description": "True to turn the light on, False to turn it off"
}
},
"required": ["light_name", "on"]
}
}
}