Repository navigation
Expand file tree
/
Copy pathorder.py
More file actions
68 lines (57 loc) · 1.78 KB
/
Copy pathorder.py
File metadata and controls
68 lines (57 loc) · 1.78 KB
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
import argparse
import json
from models.api import ApiVoices
from models.base import DEFAULT_API_VOICE
from models.ordering import DEFAULT_PERSONALITY_MODIFIER, Menu, SalesAgent, logger
TEST_MENU_DIR = "tests/test_menus"
def main():
parser = argparse.ArgumentParser(description="Process a food order.")
parser.add_argument(
"--menu_name",
type=str,
default="archies_deli",
help="The menu file to use (default: archies_deli)",
)
parser.add_argument(
"--mock",
type=bool,
default=False,
help="Whether to use the mock API response (default: False)",
)
parser.add_argument(
"--speech_input",
type=bool,
default=False,
help="Whether or not activate speech recognition responses (default: False)",
)
parser.add_argument(
"--log_level",
type=int,
default=1,
help="The logging level (default: 1/DEBUG)",
)
parser.add_argument(
"--personality",
type=str,
default=DEFAULT_PERSONALITY_MODIFIER,
help="Personality modifier for agent. Usage: <agent instructions> while being <personality>",
)
parser.add_argument(
"--voice",
choices=[v.value for v in ApiVoices],
default=DEFAULT_API_VOICE,
help="Voice selection for agent when interation with users",
)
args = parser.parse_args()
logger.set_level(args.log_level)
menu = Menu.from_file(args.menu_name)
logger.info(f"Menu: {json.dumps(menu.full_detail, indent=4)} \n")
sales_agent = SalesAgent(
menu,
use_speech_input=args.speech_input,
personality_modifier=args.personality,
voice_selection=args.voice,
)
sales_agent.process_order()
if __name__ == "__main__":
main()